You are here

function admin_menu_source_settings in Administration Menu Source 7

@file Menu callbacks for admin_menu_source module

3 string references to 'admin_menu_source_settings'
admin_menu_source_menu in ./admin_menu_source.module
Implements hook_menu().
admin_menu_source_settings_submit in ./admin_menu_source.admin.inc
_admin_menu_source_get_settings in ./admin_menu_source.module
Helper function to get settings for admin_menu_source. It assumes the settings are already sorted It appends new roles to the bottom (lowest priority)

File

./admin_menu_source.admin.inc, line 7
Menu callbacks for admin_menu_source module

Code

function admin_menu_source_settings() {
  $roles = user_roles(TRUE, 'access administration menu');
  $menus = menu_get_menus();
  $default_values = _admin_menu_source_get_settings();
  $form['#theme'] = 'admin_menu_source_settings_form';
  $form['admin_menu_source_description'] = array(
    '#markup' => t('Note: only roles with permission to access the administration menu are shown here.'),
  );
  $form['admin_menu_source_settings'] = array(
    '#tree' => TRUE,
    '#title' => t('Menu source per role'),
    '#sorted' => FALSE,
  );
  foreach ($default_values as $rid => $setting) {
    if (empty($roles[$rid])) {
      continue;
    }
    $form['admin_menu_source_settings'][$rid]['role'] = array(
      '#markup' => check_plain($roles[$rid]),
    );
    $form['admin_menu_source_settings'][$rid]['rid'] = array(
      '#type' => 'hidden',
      '#value' => $rid,
    );
    $form['admin_menu_source_settings'][$rid]['source'] = array(
      '#type' => 'select',
      '#options' => array(
        '' => t('Default'),
      ) + $menus,
      '#default_value' => isset($setting['source']) ? $setting['source'] : '',
    );
    $form['admin_menu_source_settings'][$rid]['weight'] = array(
      '#type' => 'weight',
      '#title' => t('Weight'),
      '#default_value' => isset($setting['weight']) ? $setting['weight'] : 0,
      '#title_display' => 'invisible',
    );
    $form['admin_menu_source_settings'][$rid]['#weight'] = isset($setting['weight']) ? $setting['weight'] : 0;
  }
  $form = system_settings_form($form);

  // Add a custom submit handler.
  $form['#submit'][] = 'admin_menu_source_settings_submit';
  return $form;
}