diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2009-08-22 23:18:29 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2009-08-22 23:18:29 +0000 |
commit | a8cc3e30c374e64d1bff2fda233190fd05c9a0ee (patch) | |
tree | 900d20ce096da38fd2e2c7ca52427293d2568238 /modules/menu | |
parent | 7ad9777c45a0b65cdad09c3c079d1961c447904a (diff) | |
download | brdo-a8cc3e30c374e64d1bff2fda233190fd05c9a0ee.tar.gz brdo-a8cc3e30c374e64d1bff2fda233190fd05c9a0ee.tar.bz2 |
#471018 by clemens.tolboom, sun, stBorchert, and mverbaar: Added generic pattern/js for hiding machine readable names (applied to menu and content types).
Diffstat (limited to 'modules/menu')
-rw-r--r-- | modules/menu/menu.admin.inc | 66 |
1 files changed, 41 insertions, 25 deletions
diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc index 0fb43aa67..872dfe1c7 100644 --- a/modules/menu/menu.admin.inc +++ b/modules/menu/menu.admin.inc @@ -402,43 +402,52 @@ function menu_edit_item_submit($form, &$form_state) { */ function menu_edit_menu(&$form_state, $type, $menu = array()) { $system_menus = menu_list_system_menus(); - if ($type == 'edit') { - $form['menu_name'] = array('#type' => 'value', '#value' => $menu['menu_name']); - $form['#insert'] = FALSE; - $form['delete'] = array( - '#type' => 'submit', - '#value' => t('Delete'), - '#access' => !isset($system_menus[$menu['menu_name']]), - '#submit' => array('menu_custom_delete_submit'), - '#weight' => 10, - ); + $menu += array('menu_name' => '', 'title' => '', 'description' => ''); + + // The title of a system menu cannot be altered. + if (isset($system_menus[$menu['menu_name']])) { + $form['title'] = array('#type' => 'value', '#value' => $menu['title']); } else { - $menu = array('menu_name' => '', 'title' => '', 'description' => ''); - $form['menu_name'] = array( + $form['title'] = array( '#type' => 'textfield', - '#title' => t('Menu name'), - '#maxsize' => MENU_MAX_MENU_NAME_LENGTH_UI, - '#description' => t('The machine-readable name of this menu. This text will be used for constructing the URL of the <em>menu overview</em> page for this menu. This name must contain only lowercase letters, numbers, and hyphens, and must be unique.'), + '#title' => t('Title'), + '#default_value' => $menu['title'], '#required' => TRUE, + '#field_suffix' => ' <small id="edit-title-suffix"> </small>', ); - $form['#insert'] = TRUE; } - $form['#title'] = $menu['title']; - if (isset($system_menus[$menu['menu_name']])) { - $form['title'] = array( - '#type' => 'value', - '#value' => $menu['title'], - ); + + // The internal menu name can only be defined during initial menu creation. + if ($type == 'edit') { + $form['#insert'] = FALSE; + $form['menu_name'] = array('#type' => 'value', '#value' => $menu['menu_name']); } else { - $form['title'] = array( + $form['#insert'] = TRUE; + $js_settings = array( + 'type' => 'setting', + 'data' => array( + 'machineReadableValue' => array( + 'title' => array( + 'text' => t('URL path'), + 'target' => 'menu-name', + 'searchPattern' => '[^a-z0-9]+', + 'replaceToken' => '-', + ), + ), + ), + ); + $form['menu_name'] = array( '#type' => 'textfield', - '#title' => t('Title'), - '#default_value' => $menu['title'], + '#title' => t('Menu name'), + '#maxsize' => MENU_MAX_MENU_NAME_LENGTH_UI, + '#description' => t('This text will be used to construct the URL for the menu. The name must contain only lowercase letters, numbers and hyphens, and must be unique.'), '#required' => TRUE, + '#attached_js' => array(drupal_get_path('module', 'system') . '/system.js', $js_settings), ); } + $form['description'] = array( '#type' => 'textarea', '#title' => t('Description'), @@ -448,6 +457,13 @@ function menu_edit_menu(&$form_state, $type, $menu = array()) { '#type' => 'submit', '#value' => t('Save'), ); + // Only custom menus may be deleted. + $form['delete'] = array( + '#type' => 'submit', + '#value' => t('Delete'), + '#access' => $type == 'edit' && !isset($system_menus[$menu['menu_name']]), + '#submit' => array('menu_custom_delete_submit'), + ); return $form; } |