function menu_edit_item
menu_edit_item($form, &$form_state, $type, $item, $menu)
Menu callback; Build the menu link editing form.
File
- modules/menu/menu.admin.inc, line 265
- Administrative page callbacks for menu module.
Code
function menu_edit_item($form, &$form_state, $type, $item, $menu) { if ($type == 'add' || empty($item)) { // This is an add form, initialize the menu link. $item = array('link_title' => '', 'mlid' => 0, 'plid' => 0, 'menu_name' => $menu['menu_name'], 'weight' => 0, 'link_path' => '', 'options' => array(), 'module' => 'menu', 'expanded' => 0, 'hidden' => 0, 'has_children' => 0); } else { // Get the human-readable menu title from the given menu name. $titles = menu_get_menus(); $current_title = $titles[$item['menu_name']]; // Get the current breadcrumb and add a link to that menu's overview page. $breadcrumb = menu_get_active_breadcrumb(); $breadcrumb[] = l($current_title, 'admin/structure/menu/manage/' . $item['menu_name']); drupal_set_breadcrumb($breadcrumb); } $form['actions'] = array('#type' => 'actions'); $form['link_title'] = array( '#type' => 'textfield', '#title' => t('Menu link title'), '#maxlength' => 255, '#default_value' => $item['link_title'], '#description' => t('The text to be used for this link in the menu.'), '#required' => TRUE, ); foreach (array('link_path', 'mlid', 'module', 'has_children', 'options') as $key) { $form[$key] = array('#type' => 'value', '#value' => $item[$key]); } // Any item created or edited via this interface is considered "customized". $form['customized'] = array('#type' => 'value', '#value' => 1); $form['original_item'] = array('#type' => 'value', '#value' => $item); $path = $item['link_path']; if (isset($item['options']['query'])) { $path .= '?' . drupal_http_build_query($item['options']['query']); } if (isset($item['options']['fragment'])) { $path .= '#' . $item['options']['fragment']; } if ($item['module'] == 'menu') { $form['link_path'] = array( '#type' => 'textfield', '#title' => t('Path'), '#maxlength' => 255, '#default_value' => $path, '#description' => t('The path for this menu link. This can be an internal path such as %add-node or an external URL such as %example. Enter %front to link to the front page.', array('%front' => '<front>', '%add-node' => 'node/add', '%example' => 'http://example.com')), '#required' => TRUE, ); $form['actions']['delete'] = array( '#type' => 'submit', '#value' => t('Delete'), '#access' => $item['mlid'], '#submit' => array('menu_item_delete_submit'), '#weight' => 10, ); } else { $form['_path'] = array( '#type' => 'item', '#title' => t('Path'), '#description' => l($item['link_title'], $item['href'], $item['options']), ); } $form['description'] = array( '#type' => 'textarea', '#title' => t('Description'), '#default_value' => isset($item['options']['attributes']['title']) ? $item['options']['attributes']['title'] : '', '#rows' => 1, '#description' => t('Shown when hovering over the menu link.'), ); $form['enabled'] = array( '#type' => 'checkbox', '#title' => t('Enabled'), '#default_value' => !$item['hidden'], '#description' => t('Menu links that are not enabled will not be listed in any menu.'), ); $form['expanded'] = array( '#type' => 'checkbox', '#title' => t('Show as expanded'), '#default_value' => $item['expanded'], '#description' => t('If selected and this menu link has children, the menu will always appear expanded.'), ); // Generate a list of possible parents (not including this link or descendants). $options = menu_parent_options(menu_get_menus(), $item); $default = $item['menu_name'] . ':' . $item['plid']; if (!isset($options[$default])) { $default = 'navigation:0'; } $form['parent'] = array( '#type' => 'select', '#title' => t('Parent link'), '#default_value' => $default, '#options' => $options, '#description' => t('The maximum depth for a link and all its children is fixed at !maxdepth. Some menu links may not be available as parents if selecting them would exceed this limit.', array('!maxdepth' => MENU_MAX_DEPTH)), '#attributes' => array('class' => array('menu-title-select')), ); $form['weight'] = array( '#type' => 'weight', '#title' => t('Weight'), '#delta' => 50, '#default_value' => $item['weight'], '#description' => t('Optional. In the menu, the heavier links will sink and the lighter links will be positioned nearer the top.'), ); $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Save')); return $form; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!menu!menu.admin.inc/function/menu_edit_item/7.x