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;
}
}