You are here

function instagram_feeds_wysiwyg_plugin in Instagram Feeds 7

Implements hook_wysiwyg_plugin().

File

./instagram_feeds.module, line 1006

Code

function instagram_feeds_wysiwyg_plugin($editor, $version) {
  static $set;
  if (user_access(INSTAGRAM_FEEDS_WYSIWYG_PERMISSION)) {
    $path = drupal_get_path('module', 'instagram_feeds') . '/plugins/ckeditor';
    if (!$set) {
      $query = db_select('node', 'N');
      $query
        ->leftJoin('field_data_field_instf_rows', 'R', 'N.nid = R.entity_id');
      $query
        ->leftJoin('field_data_field_instf_columns', 'C', 'N.nid = C.entity_id');
      $query
        ->leftJoin('field_data_field_instf_thumb_size', 'S', 'N.nid = S.entity_id');
      $query
        ->leftJoin('field_data_field_instf_border_width', 'B', 'N.nid = B.entity_id');
      $query
        ->leftJoin('field_data_field_instf_favorites', 'F', 'N.nid = F.entity_id');
      $query
        ->addField('R', 'field_instf_rows_value', 'rows');
      $query
        ->addField('C', 'field_instf_columns_value', 'cols');
      $query
        ->addField('S', 'field_instf_thumb_size_value', 'size');
      $query
        ->addField('B', 'field_instf_border_width_value', 'border');
      $query
        ->addField('F', 'field_instf_favorites_value', 'type');
      $data = $query
        ->fields('N', array(
        'nid',
        'title',
      ))
        ->condition('N.status', 1)
        ->condition('N.type', INSTAGRAM_FEEDS_SETTINGS_NODE_TYPE)
        ->orderBy('title')
        ->execute()
        ->fetchAllAssoc('nid');
      $langs = array(
        'title' => t('Select an Instagram Feed'),
        'feed' => t('Name of Feed'),
        'type' => t('Type of Feed:'),
        'layout' => t('Feed Layout:'),
        'size' => t('Thumbnail Size:'),
        'col' => t('1 column'),
        'cols' => t('@count columns'),
        'row' => t('1 row'),
        'rows' => t('@count rows'),
        'create' => t('Create a new feed'),
        'pos' => t('Position'),
        'none' => t('None'),
        'left' => t('Left'),
        'center' => t('Center'),
        'right' => t('Right'),
        'type0' => t('All Images'),
        'type1' => t('Favorites First'),
        'type2' => t('Favorites Only'),
        'fake' => t('Instagram Feed'),
        'broken' => t('Instagram Feed (broken)'),
      );
      drupal_add_js(array(
        'Instagram' => array(
          'data' => $data,
          'langs' => $langs,
        ),
      ), 'setting');
      drupal_add_css($path . '/plugin.css');
      $set = TRUE;
    }
    switch ($editor) {
      case 'ckeditor':
        return array(
          'instagram' => array(
            'path' => $path,
            'buttons' => array(
              'instagram_button' => t('Instagram'),
            ),
            'load' => TRUE,
          ),
        );
    }
  }
}