You are here

function better_formats_get_formats_per_role in Better Formats 6

Same name and namespace in other branches
  1. 6.2 better_formats_defaults.admin.inc \better_formats_get_formats_per_role()
  2. 7 better_formats.admin_defaults.inc \better_formats_get_formats_per_role()

Retrieve the formats available to users by role.

Gets all formats then creates an array keyed by role IDs that lists the formats available to that role. This is determined by Drupal core's format permissions set at admin/settings/filters/[filter_id].

Return value

Multi-dim array with role IDs for keys and list of allowed formats.

See also

better_formats_get_role_default_fields()

1 call to better_formats_get_formats_per_role()
better_formats_get_role_default_fields in ./better_formats_defaults.admin.inc
Builds FAPI form elements for the default format selection.

File

./better_formats_defaults.admin.inc, line 164
Contains FAPI and theme functions for the format defaults form.

Code

function better_formats_get_formats_per_role() {
  $formats = filter_formats();
  $roles = user_roles();

  // Get roles that have administer filters permission.
  $admin_roles = better_formats_get_roles_by_perm('administer filters');
  $site_default_format = filter_resolve_format(FILTER_FORMAT_DEFAULT);
  foreach ($formats as $format) {
    $roles_allowed = $format->roles ? explode(',', trim($format->roles, ',')) : array();
    foreach ($roles as $rid => $role) {
      $format_options[$rid][0] = t('Site default');
      if ($format->format == $site_default_format || in_array($rid, $admin_roles) || in_array($rid, $roles_allowed)) {
        $format_options[$rid][$format->format] = $format->name;
      }
    }
  }
  return $format_options;
}