You are here

function variable_realm_form_key_selector in Variable 7.2

Same name and namespace in other branches
  1. 7 variable_realm/variable_realm.form.inc \variable_realm_form_key_selector()

Key selector for realm forms.

2 calls to variable_realm_form_key_selector()
variable_admin_realm_edit in variable_admin/variable_admin.inc
Edit variables for realm.
_variable_realm_variable_settings_form_switcher in variable_realm/variable_realm.form.inc
Add realm switcher to the form.

File

variable_realm/variable_realm.form.inc, line 155
Administrative forms for variable realms.

Code

function variable_realm_form_key_selector($realm_name, $current_key) {
  $element_name = VARIABLE_REALM_FORM_SWITCHER . $realm_name;
  $query_name = 'variable_realm_' . $realm_name . '_key';
  $controller = variable_realm_controller($realm_name);
  $keys = $controller
    ->getAllKeys();

  // Don't show selector if there aren't any keys to select.
  if (empty($keys)) {
    return array();
  }
  $form[$element_name] = array(
    '#type' => 'fieldset',
    '#title' => t('There are %name variables in this form', array(
      '%name' => $controller
        ->getVariableName(),
    )),
    '#weight' => -100,
    '#description' => t('Check you are editing the variables for the right %realm value or select the desired %realm.', array(
      '%realm' => $controller
        ->getTitle(),
    )),
  );

  // Replace only this element on current query string, there may be others.
  $current_query = $_GET;
  unset($current_query['q']);
  foreach ($keys as $realm_key => $key_name) {
    $query[VARIABLE_REALM_QUERY_STRING . $realm_name] = $realm_key;
    $link = l($key_name, $_GET['q'], array(
      'query' => $query + $current_query,
    ));
    $items[] = $current_key == $realm_key ? '<strong>' . $link . '</strong>' : $link;
  }
  $form[$element_name]['select_key'] = array(
    '#type' => 'item',
    '#markup' => implode(' | ', $items),
  );
  return $form;
}