summaryrefslogtreecommitdiff
path: root/modules/menu
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-08-22 23:18:29 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-08-22 23:18:29 +0000
commita8cc3e30c374e64d1bff2fda233190fd05c9a0ee (patch)
tree900d20ce096da38fd2e2c7ca52427293d2568238 /modules/menu
parent7ad9777c45a0b65cdad09c3c079d1961c447904a (diff)
downloadbrdo-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.inc66
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">&nbsp;</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;
}