function menu_editor_overview_form in Menu Editor 6
Same name and namespace in other branches
- 6.3 menu_editor.admin.inc \menu_editor_overview_form()
- 6.2 menu_editor.admin.inc \menu_editor_overview_form()
- 7 menu_editor.admin.inc \menu_editor_overview_form()
Form for editing an entire menu tree at once.
Shows for one menu the menu items accessible to the current user and relevant operations.
1 string reference to 'menu_editor_overview_form'
- menu_editor_menu in ./
menu_editor.module - Implementation of hook_menu().
File
- ./
menu_editor.admin.inc, line 10
Code
function menu_editor_overview_form(&$form_state, $menu) {
global $menu_admin;
$sql = "\n SELECT\n m.load_functions, m.to_arg_functions, m.access_callback, m.access_arguments,\n m.page_callback, m.page_arguments, m.title, m.title_callback, m.title_arguments,\n m.type, m.description, ml.*\n FROM {menu_links} ml\n LEFT JOIN {menu_router} m ON m.path = ml.router_path\n WHERE ml.menu_name = '%s'\n ORDER BY p1 ASC, p2 ASC, p3 ASC, p4 ASC, p5 ASC, p6 ASC, p7 ASC, p8 ASC, p9 ASC";
$result = db_query($sql, $menu['menu_name']);
$tree = menu_tree_data($result);
$node_links = array();
menu_tree_collect_node_links($tree, $node_links);
// We indicate that a menu administrator is running the menu access check.
$menu_admin = TRUE;
menu_tree_check_access($tree, $node_links);
$menu_admin = FALSE;
$form = array(
'#tree' => TRUE,
);
if (module_exists('i18nmenu')) {
$language_options = array(
'' => t('All languages'),
) + locale_language_list('name');
$form['#_language_options'] = $language_options;
}
$max_root_weight = _menu_editor_overview_tree_form($form, $form_state, $tree, $language_options);
// default values for all new menu items..
$default_values = array(
'link_title' => '',
'link_path' => '<front>',
'hidden' => true,
'expanded' => false,
'weight' => 0,
// 'mlid' => NULL, // this is different for every single one
'plid' => 0,
'language' => '',
);
foreach (module_invoke_all('menu_editor_placeholders') as $placeholder_code => $placeholder_path) {
// take the first placeholder as default link path instead of <front>
$default_values['link_path'] = $placeholder_code;
break;
}
for ($i = 0; $i < 8; ++$i) {
// new menu item
$default_values['mlid'] = 'new' . $i;
$item_key = 'mlid-new' . $i;
$form[$item_key] = _menu_editor_overview_tree_form_item('new' . $i, $default_values, $language_options);
$form[$item_key]['weight']['#default_value'] = $max_root_weight + $i + 1;
$form[$item_key]['#item'] = array();
$form[$item_key]['#attributes'] = array(
'class' => 'menu-new',
);
$form[$item_key]['drag']['#value'] = t('New menu item');
}
$form['#menu'] = $menu;
if (element_children($form)) {
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save configuration'),
);
}
else {
$form['empty_menu'] = array(
'#value' => t('There are no menu items yet.'),
);
}
return $form;
}