You are here

function mobile_codes_settings_form in Mobile Codes 7.2

Same name and namespace in other branches
  1. 5 mobile_codes.admin.inc \mobile_codes_settings_form()
  2. 6.2 includes/mobile_codes.admin.inc \mobile_codes_settings_form()
  3. 6 mobile_codes.admin.inc \mobile_codes_settings_form()

Settings form callback.

1 call to mobile_codes_settings_form()
mobile_codes_variable_element_mobile_codes_settings in includes/variable.inc
Element callback for Mobile Ocdes settings variable type.
1 string reference to 'mobile_codes_settings_form'
mobile_codes_mobile_codes_menu_alter in ./mobile_codes.module
Implements hook_mobile_codes_menu_alter().

File

./mobile_codes.admin.inc, line 10
Administration functions for the Mobile Codes module.

Code

function mobile_codes_settings_form($form, &$form_state) {
  $form['#tree'] = TRUE;
  $defaults = mobile_codes_defaults();
  $settings = array();
  drupal_alter('mobile_codes_settings', $settings);
  foreach ($settings as $type => $setting) {
    $form['settings'][$type] = array(
      '#type' => 'fieldset',
      '#title' => t('@type settings', array(
        '@type' => drupal_strtoupper($type),
      )),
    );
    $order = array();
    if (is_array($settings[$type]) && count($settings[$type]) > 0) {
      foreach ($settings[$type] as $setting => $values) {
        $weight = isset($values['weight']) ? $values['weight'] : 0;
        $order[$weight] = isset($order[$weight]) ? $order[$weight] : array();
        $order[$weight][] = $setting;
      }
      ksort($order);
      foreach ($order as $order_settings) {
        sort($order_settings);
        foreach ($order_settings as $setting) {
          $form['settings'][$type][$setting] = array(
            '#type' => 'checkbox',
            '#title' => check_plain($settings[$type][$setting]['label']),
            '#description' => check_plain($settings[$type][$setting]['description']),
            '#default_value' => isset($defaults[$type][$setting]) ? $defaults[$type][$setting] : FALSE,
          );
          if (isset($settings[$type][$setting]['form']) && is_array($settings[$type][$setting]['form'])) {
            $form['settings'][$type][$setting] = $settings[$type][$setting]['form'] + $form['settings'][$type][$setting];
          }
        }
      }
    }
  }
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save settings'),
  );
  return $form;
}