You are here

function filter_formats in Drupal 6

Same name and namespace in other branches
  1. 8 core/modules/filter/filter.module \filter_formats()
  2. 4 modules/filter.module \filter_formats()
  3. 5 modules/filter/filter.module \filter_formats()
  4. 7 modules/filter/filter.module \filter_formats()
  5. 9 core/modules/filter/filter.module \filter_formats()
  6. 10 core/modules/filter/filter.module \filter_formats()

Retrieve a list of input formats.

6 calls to filter_formats()
blogapi_mt_supported_text_filters in modules/blogapi/blogapi.module
Blogging API callback. Sends a list of available input formats.
filter_access in modules/filter/filter.module
Returns TRUE if the user is allowed to access this format.
filter_admin_overview in modules/filter/filter.admin.inc
Menu callback; Displays a list of all input formats and which one is the default.
filter_form in modules/filter/filter.module
Generates a selector for choosing a format in a form.
filter_format_load in modules/filter/filter.module

... See full list

1 string reference to 'filter_formats'
system_install in modules/system/system.install
Implementation of hook_install().

File

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

Code

function filter_formats($index = NULL) {
  global $user;
  static $formats;

  // Administrators can always use all input formats.
  $all = user_access('administer filters');
  if (!isset($formats)) {
    $formats = array();
    $query = 'SELECT * FROM {filter_formats}';

    // Build query for selecting the format(s) based on the user's roles.
    $args = array();
    if (!$all) {
      $where = array();
      foreach ($user->roles as $rid => $role) {
        $where[] = "roles LIKE '%%,%d,%%'";
        $args[] = $rid;
      }
      $query .= ' WHERE ' . implode(' OR ', $where) . ' OR format = %d';
      $args[] = variable_get('filter_default_format', 1);
    }
    $result = db_query($query, $args);
    while ($format = db_fetch_object($result)) {
      $formats[$format->format] = $format;
    }
  }
  if (isset($index)) {
    return isset($formats[$index]) ? $formats[$index] : FALSE;
  }
  return $formats;
}