You are here

function _variable_realm_variable_settings_form_switcher in Variable 7.2

Add realm switcher to the form.

2 calls to _variable_realm_variable_settings_form_switcher()
variable_realm_form_system_theme_settings_alter in variable_realm/variable_realm.module
Implements hook_form_FORM_ID_alter()
variable_realm_variable_settings_form_alter in variable_realm/variable_realm.variable.inc
Implements hook_variable_settings_form_alter().

File

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

Code

function _variable_realm_variable_settings_form_switcher(&$form) {

  // Add switchers for current realms and current key.
  // Add realm values and subform realm / key selector.
  foreach (array_keys($form['#realm_variables']) as $realm_name) {
    $current_key = variable_realm_form_key_current($realm_name);
    $info = variable_realm_info($realm_name);
    if (!empty($info['form switcher'])) {
      $form += variable_realm_form_key_selector($realm_name, $current_key);
    }
    $form['#realm_keys'][$realm_name] = $current_key;
  }

  // Make sure realm switchers are added for all parent realms of current ones.
  foreach (variable_realm_list_all() as $realm_name => $realm_controller) {
    if (($parent_realms = $realm_controller
      ->getParentRealms()) && !empty($form['#realm_variables'][$realm_name]) && empty($form[VARIABLE_REALM_FORM_SWITCHER . $realm_name])) {

      // Check we have selectors for the other realms.
      foreach ($parent_realms as $realm) {
        $info = variable_realm_info($realm);
        if (!empty($info['form switcher']) && empty($form[VARIABLE_REALM_FORM_SWITCHER . $realm])) {
          $current_key = variable_realm_form_key_current($realm);
          $form += variable_realm_form_key_selector($realm, $current_key);
        }
      }
    }
  }
}