You are here

function better_formats_get_role_default_fields in Better Formats 6

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

Builds FAPI form elements for the default format selection.

Parameters

$mode: 'node', 'comment', or 'block'. Top most level type for requested default.

$node_type: Type of node this request is for.

Return value

FAPI array for the default select field.

2 calls to better_formats_get_role_default_fields()
better_formats_defaults_admin_form in ./better_formats_defaults.admin.inc
Builds the form for the filters admin.
better_formats_node_type_form in ./better_formats.module
FAPI form to add to the content type edit form.

File

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

Code

function better_formats_get_role_default_fields($mode, $node_type = '') {
  $form = array();
  $format_options = better_formats_get_formats_per_role();
  $type = $types = $mode;
  $per_node_type = variable_get('better_formats_per_node_type', FALSE);
  if ($per_node_type && $node_type) {
    $type = $mode . '/' . $node_type;
    $types = $type . "','" . $mode;
  }

  // get data from db
  $sql = "SELECT bf.*, role.name\n          FROM {better_formats_defaults} AS bf\n          INNER JOIN {role} AS role\n          ON bf.rid = role.rid\n          WHERE bf.type IN ('{$types}')\n          ORDER BY bf.type_weight DESC, bf.weight, role.rid";
  $result = db_query($sql);
  $roles_set = array();
  while ($role = db_fetch_object($result)) {
    if (in_array($role->rid, $roles_set)) {
      continue;
    }
    $roles_set[] = $role->rid;
    $key = $mode . '-' . $role->rid;
    $form[$key]['role'] = array(
      '#value' => $role->name,
    );
    $form[$key]['format'] = array(
      '#type' => 'select',
      '#options' => $format_options[$role->rid],
      '#default_value' => $role->format,
      '#attributes' => array(
        'class' => 'bf-default-formats',
      ),
    );
    $form[$key]['weight'] = array(
      '#type' => 'weight',
      '#delta' => 25,
      '#default_value' => $role->weight,
    );
  }
  return $form;
}