Same name and namespace in other branches
  1. 4.7.x modules/filter.module \filter_filter()
  2. 5.x modules/filter/filter.module \filter_filter()
  3. 6.x modules/filter/filter.module \filter_filter()

Implementation of hook_filter(). Contains a basic set of essential filters.

  • HTML filter: Validates user-supplied HTML, transforming it as necessary.
  • PHP evaluator: Executes PHP code.
  • Line break converter: Converts newlines into paragraph and break tags.

File

modules/filter.module, line 869
Framework for handling filtering of content.

Code

function filter_filter($op, $delta = 0, $format = -1, $text = '') {
  switch ($op) {
    case 'list':
      return array(
        0 => t('HTML filter'),
        1 => t('PHP evaluator'),
        2 => t('Line break converter'),
      );
    case 'no cache':
      return $delta == 1;

    // No caching for the PHP evaluator.
    case 'description':
      switch ($delta) {
        case 0:
          return t('Allows you to restrict if users can post HTML and which tags to filter out.');
        case 1:
          return t('Runs a piece of PHP code. The usage of this filter should be restricted to administrators only!');
        case 2:
          return t('Converts line breaks into HTML (i.e. <br> and <p> tags).');
        default:
          return;
      }
    case 'process':
      switch ($delta) {
        case 0:
          return _filter_html($text, $format);
        case 1:
          return drupal_eval($text);
        case 2:
          return _filter_autop($text);
        default:
          return $text;
      }
    case 'settings':
      switch ($delta) {
        case 0:
          return _filter_html_settings($format);
        default:
          return;
      }
    default:
      return $text;
  }
}