You are here

function better_formats_defaults_admin_form_validate in Better Formats 6

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

Validates better_formats_admin_filter_form.

See also

better_formats_defaults_admin_form()

better_formats_defaults_admin_form_submit()

1 call to better_formats_defaults_admin_form_validate()
better_formats_node_type_form_validate in ./better_formats.module
Handles validation of the addition to the content type edit form.

File

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

Code

function better_formats_defaults_admin_form_validate($form, &$form_state) {
  $formats = filter_formats();
  foreach ($formats as $fid => $format) {
    $roles[$fid] = explode(',', $format->roles);
  }

  // Get roles that have administer filters permission.
  $admin_roles = better_formats_get_roles_by_perm('administer filters');
  foreach ($form_state['values'] as $key => $values) {
    if (strpos($key, 'node-') === 0 || strpos($key, 'comment-') === 0 || strpos($key, 'block-') === 0) {
      list($type, $rid) = explode('-', $key);
      if (in_array($rid, $admin_roles)) {

        // Role has the 'administer filters' permission so it can use all formats.
        continue;
      }
      $fid = $values['format'];
      $site_default = filter_resolve_format(FILTER_FORMAT_DEFAULT);
      if ($fid != 0 && !in_array($rid, $roles[$fid]) && $fid !== $site_default) {
        form_set_error($key, t('Role does not have access to selected format.'));
      }
    }
  }
}