You are here

function ckeditor_security_filters in CKEditor - WYSIWYG HTML editor 7

Return all modules that provide security filters.

2 calls to ckeditor_security_filters()
ckeditor_admin_profile_form in includes/ckeditor.admin.inc
Form builder for a profile
ckeditor_filter_xss in includes/ckeditor.page.inc
AJAX callback - XSS filter

File

includes/ckeditor.lib.inc, line 1468
CKEditor - The text editor for the Internet - http://ckeditor.com Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.

Code

function ckeditor_security_filters() {
  $security_filters = array();
  $security_filters['modules'] = array(
    'htmLawed' => array(
      'title' => 'htmLawed',
      'project_page' => 'http://drupal.org/project/htmLawed',
      'weight' => 0,
      'installed' => FALSE,
      'filters' => array(),
    ),
    'htmltidy' => array(
      'title' => 'Htmltidy',
      'project_page' => 'http://drupal.org/project/htmltidy',
      'weight' => 0,
      'installed' => FALSE,
      'filters' => array(),
    ),
    'htmlpurifier' => array(
      'title' => 'HTML Purifier',
      'project_page' => 'http://drupal.org/project/htmlpurifier',
      'weight' => 0,
      'installed' => FALSE,
      'filters' => array(),
    ),
    'wysiwyg_filter' => array(
      'title' => 'WYSIWYG Filter',
      'project_page' => 'http://drupal.org/project/wysiwyg_filter',
      'weight' => 0,
      'installed' => FALSE,
      'filters' => array(),
    ),
  );
  $security_filters['filters'] = array();
  foreach ($security_filters['modules'] as $module_name => $module_conf) {
    if (module_exists($module_name)) {
      $security_filters['modules'][$module_name]['installed'] = TRUE;
      $module_filters = module_invoke($module_name, 'filter_info');
      foreach ($module_filters as $module_filter_name => $module_filter_conf) {
        $security_filters['modules'][$module_name]['filters'][$module_filter_name] = $module_filter_conf;
        $security_filters['filters'][$module_filter_name] = TRUE;
      }
    }
  }

  //add filters from Drupal core
  $security_filters['modules']['__drupal'] = array(
    'title' => 'Drupal core',
    'project_page' => FALSE,
    'weight' => -1,
    'installed' => TRUE,
    'filters' => array(
      'filter_html' => array(
        'title' => 'Limit allowed HTML tags',
        'description' => 'Removes the attributes that the built-in "Limit allowed HTML tags"-filter does not allow inside HTML elements/tags',
      ),
    ),
  );
  $security_filters['filters']['filter_html'] = TRUE;

  //load security filters added by API
  $external_module_filters = module_invoke_all('ckeditor_security_filter');
  if (count($external_module_filters) > 0) {
    $security_filters['modules']['__external'] = array(
      'title' => 'External filters',
      'project_page' => FALSE,
      'weight' => 1,
      'installed' => TRUE,
      'filters' => array(),
    );
    foreach ($external_module_filters as $module_filter_name => $module_filter_conf) {
      $security_filters['modules']['__external']['filters'][$module_filter_name] = $module_filter_conf;
      $security_filters['filters'][$module_filter_name] = TRUE;
    }
  }
  drupal_alter('ckeditor_security_filter', $security_filters);
  return $security_filters;
}