function menu_block_admin_settings_form in Menu Block 7.2
Same name and namespace in other branches
- 6.2 menu_block.admin.inc \menu_block_admin_settings_form()
- 7.3 menu_block.admin.inc \menu_block_admin_settings_form()
Menu callback: admin settings form.
Return value
The settings form used by Menu block.
1 string reference to 'menu_block_admin_settings_form'
- menu_block_menu in ./
menu_block.module - Implements hook_menu().
File
- ./
menu_block.admin.inc, line 471 - Provides infrequently used functions and hooks for menu_block.
Code
function menu_block_admin_settings_form($form, &$form_state) {
// Option to suppress core's blocks of menus.
$form['menu_block_suppress_core'] = array(
'#type' => 'checkbox',
'#title' => t('Suppress Drupal’s standard menu blocks'),
'#default_value' => variable_get('menu_block_suppress_core', 0),
'#description' => t('On the blocks admin page, hide Drupal’s standard blocks of menus.'),
'#access' => module_exists('block'),
);
// Retrieve core's menus.
$menus = menu_get_menus();
// Retrieve all the menu names provided by hook_menu_block_get_sort_menus().
$menus = array_merge($menus, module_invoke_all('menu_block_get_sort_menus'));
asort($menus);
// Load stored configuration.
$menu_order = variable_get('menu_block_menu_order', array(
'main-menu' => '',
'user-menu' => '',
));
// Remove any menus no longer in the list of all menus.
foreach (array_keys($menu_order) as $menu) {
if (!isset($menus[$menu])) {
unset($menu_order[$menu]);
}
}
// Merge the saved configuration with any un-configured menus.
$all_menus = $menu_order + $menus;
$form['heading'] = array(
'#markup' => '<p>' . t('If a block is configured to use <em>"the menu selected by the page"</em>, the block will be generated from the first "available" menu that contains a link to the page.') . '</p>',
);
// Orderable list of menu selections.
$form['menu_order'] = array(
'#tree' => TRUE,
'#theme' => 'menu_block_menu_order',
);
$order = 0;
$total_menus = count($all_menus);
foreach (array_keys($all_menus) as $menu_name) {
$form['menu_order'][$menu_name] = array(
'title' => array(
'#markup' => check_plain($menus[$menu_name]),
),
'available' => array(
'#type' => 'checkbox',
'#attributes' => array(
'title' => t('Select from the @menu_name menu', array(
'@menu_name' => $menus[$menu_name],
)),
),
'#default_value' => isset($menu_order[$menu_name]),
),
'weight' => array(
'#type' => 'weight',
'#default_value' => $order - $total_menus,
'#delta' => $total_menus,
'#id' => 'edit-menu-block-menus-' . $menu_name,
),
);
$order++;
}
$form['footer_note'] = array(
'#markup' => '<p>' . t('The above list will <em>not</em> affect menu blocks that are configured to use a specific menu.') . '</p>',
);
$form['#submit'][] = 'menu_block_admin_settings_form_submit';
return system_settings_form($form);
}