You are here

function quickedit_filter_info_alter in Quick Edit 7

Implements hook_filter_info_alter().

Assigns filter types to Drupal core and contrib modules to allow the Quick Edit module's CKEditor integration to reason about filters.

File

includes/filter.inc, line 36
Backport of Drupal 8 filter module improvements.

Code

function quickedit_filter_info_alter(&$info) {

  /* CORE */
  if (module_exists('php')) {

    // php.module
    $info['php_code']['type'] = FILTER_TYPE_MARKUP_LANGUAGE;
  }

  // filter.module
  $info['filter_autop']['type'] = FILTER_TYPE_MARKUP_LANGUAGE;
  $info['filter_url']['type'] = FILTER_TYPE_MARKUP_LANGUAGE;
  $info['filter_html_escape']['type'] = FILTER_TYPE_MARKUP_LANGUAGE;
  $info['filter_html']['type'] = FILTER_TYPE_HTML_RESTRICTOR;
  $info['filter_htmlcorrector']['type'] = FILTER_TYPE_HTML_RESTRICTOR;

  /* CONTRIB */
  $contrib_filter_type = array(
    // https://drupal.org/project/biblio
    'biblio_filter_reference' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    'biblio_filter_inline_reference' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/caption_filter
    'caption_filter' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // https://drupal.org/project/ckeditor_link
    'ckeditor_link_filter' => FILTER_TYPE_TRANSFORM_REVERSIBLE,
    // http://drupal.org/project/editor
    'editor_align' => FILTER_TYPE_TRANSFORM_REVERSIBLE,
    // http://drupal.org/project/editor
    'editor_caption' => FILTER_TYPE_TRANSFORM_REVERSIBLE,
    // https://drupal.org/project/emptyparagraphkiller
    'emptyparagraphkiller' => FILTER_TYPE_HTML_RESTRICTOR,
    // https://drupal.org/project/entity_embed
    'entity_embed' => FILTER_TYPE_TRANSFORM_REVERSIBLE,
    // https://drupal.org/project/footnotes
    'filter_footnotes' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // https://drupal.org/project/commons_hashtags
    'filter_hashtags' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/filter_html_image_secure
    'filter_html_image_secure' => FILTER_TYPE_HTML_RESTRICTOR,
    // https://drupal.org/project/htmlpurifier
    'htmlpurifier_basic' => FILTER_TYPE_HTML_RESTRICTOR,
    'htmlpurifier_advanced' => FILTER_TYPE_HTML_RESTRICTOR,
    // http://drupal.org/project/image_resize_filter
    'image_resize_filter' => FILTER_TYPE_TRANSFORM_REVERSIBLE,
    // http://drupal.org/project/entity_embed
    'filter_align' => FILTER_TYPE_TRANSFORM_REVERSIBLE,
    // http://drupal.org/project/markdown
    'filter_markdown' => FILTER_TYPE_MARKUP_LANGUAGE,
    // https://drupal.org/project/insert_view
    'insert_view' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/mathjax: see http://drupal.org/node/1900436#comment-7198530
    // http://drupal.org/project/media
    'media_filter' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // https://drupal.org/project/node_embed
    'node_embed' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // https://drupal.org/project/oembed
    'oembed' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/pathologic
    'pathologic' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // https://drupal.org/project/smart_paging
    'smart_paging_filter' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    'smart_paging_filter_autop' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/spamspan
    'spamspan' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/transliteration
    'transliteration' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/typogrify
    'typogrify' => FILTER_TYPE_TRANSFORM_IRREVERSIBLE,
    // http://drupal.org/project/wysiwyg_filter
    'wysiwyg' => FILTER_TYPE_HTML_RESTRICTOR,
  );
  foreach ($contrib_filter_type as $filter => $type) {
    if (empty($info[$filter])) {
      continue;
    }
    $info[$filter]['type'] = $type;
  }
}