diff options
author | Dries Buytaert <dries@buytaert.net> | 2005-11-12 11:26:16 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2005-11-12 11:26:16 +0000 |
commit | aeed4cd8e4814bb0ed8ad06d581a95b82e2d718b (patch) | |
tree | 4a022207fea4b4d7a4a48a6ac20099c3b38e0629 /modules/menu.module | |
parent | 64a617c208c02b6360d16d0960eebc67839d4dc8 (diff) | |
download | brdo-aeed4cd8e4814bb0ed8ad06d581a95b82e2d718b.tar.gz brdo-aeed4cd8e4814bb0ed8ad06d581a95b82e2d718b.tar.bz2 |
- Patch #35644 by webchick: forms API simplificiations.
Diffstat (limited to 'modules/menu.module')
-rw-r--r-- | modules/menu.module | 134 |
1 files changed, 114 insertions, 20 deletions
diff --git a/modules/menu.module b/modules/menu.module index e0a4b23c6..ef14ca9d6 100644 --- a/modules/menu.module +++ b/modules/menu.module @@ -106,17 +106,21 @@ function menu_configure() { $primary_options[$mid] = $menu['items'][$mid]['title']; } - $form['settings_links'] = array('#type' => 'fieldset', '#title' => t('Primary links settings')); + $form['settings_links'] = array( + '#type' => 'fieldset', + '#title' => t('Primary links settings'), + ); + $form['settings_links']['intro'] = array( - '#type' => 'markup', - '#value' => t('Primary links is a navigation system which usually (depending on your theme) appears at the top-right of the browser window. There are usually two rows of links, primary and secondary. You may control which links appear in this area by choosing a menu from which the links will be generated and then placing your links into the menu using the <a href="%menu">menu administration</a> or the \'Menu settings\' pane on each edit node form.', array('%menu' => url('admin/menu'))) + '#type' => 'item', + '#value' => t('Primary links is a navigation system which usually (depending on your theme) appears at the top-right of the browser window. There are usually two rows of links, primary and secondary. You may control which links appear in this area by choosing a menu from which the links will be generated and then placing your links into the menu using the <a href="%menu">menu administration</a> or the \'Menu settings\' pane on each node authoring form.', array('%menu' => url('admin/menu'))), ); $form['settings_links']['menu_primary_menu'] = array( '#type' => 'select', '#title' => t('Menu containing primary links'), '#default_value' => variable_get('menu_primary_menu', 0), - '#options' => $primary_options + '#options' => $primary_options, ); $secondary_options[0] = t('No secondary links'); @@ -129,7 +133,30 @@ function menu_configure() { '#title' => t('Menu containing secondary links'), '#default_value' => variable_get('menu_secondary_menu', 0), '#options' => $secondary_options, - '#description' => t('If you select the same menu as primary links then secondary links will display the appropriate second level of your navigation hierarchy.') + '#description' => t('If you select the same menu as primary links then secondary links will display the appropriate second level of your navigation hierarchy.'), + ); + + $form['settings_authoring'] = array( + '#type' => 'fieldset', + '#title' => t('Node authoring form settings'), + ); + + $form['settings_authoring']['intro'] = array( + '#type' => 'item', + '#value' => t('On each post authoring form there is a \'Menu settings\' pane. This setting allows you to limit what is displayed in the \'Parent item\' drop-down menu of that pane. This can be used to force new menu items to be created in the primary links menu or to hide admin menu items.'), + ); + + $authoring_options = array(0 => t('Show all menus')); + foreach ($menu['items'][0]['children'] as $mid) { + $authoring_options[$mid] = $menu['items'][$mid]['title']; + } + + $form['settings_authoring']['menu_parent_items'] = array( + '#type' => 'select', + '#title' => t('Restrict parent items to'), + '#default_value' => variable_get('menu_parent_items', 0), + '#options' => $authoring_options, + '#description' => t('Choose the menu from which parent items will be made available. Only this menu item and its children will be shown.'), ); return system_settings_form('menu_configure', $form); @@ -365,7 +392,7 @@ function menu_edit_item($mid = 0) { function menu_edit_item_form($edit) { $menu = menu_get_menu(); - $form['title'] = array('#type' => 'textfield', '#title' => t('Title'), '#default_value' => $edit['title'], '#size' => 60, '#maxlength' => 128, '#description' => t('The name of the menu.'), '#required' => TRUE); + $form['title'] = array('#type' => 'textfield', '#title' => t('Title'), '#default_value' => $edit['title'], '#description' => t('The name of the menu.'), '#required' => TRUE); if ($edit['pid'] == 0) { // Display a limited set of fields for menus (not items). @@ -374,7 +401,7 @@ function menu_edit_item_form($edit) { $form['weight'] = array('#type' => 'hidden', '#value' => 0); } else { - $form['description'] = array('#type' => 'textfield', '#title' => t('Description'), '#default_value' => $edit['description'], '#size' => 60, '#maxlength' => 128, '#description' => t('The description displayed when hovering over a menu item.')); + $form['description'] = array('#type' => 'textfield', '#title' => t('Description'), '#default_value' => $edit['description'], '#description' => t('The description displayed when hovering over a menu item.')); $path_description = t('The Drupal path this menu item links to.'); if (isset($edit['path']) && array_key_exists($edit['path'], $menu['path index']) && $menu['path index'][$edit['path']] != $edit['mid']) { @@ -384,7 +411,7 @@ function menu_edit_item_form($edit) { } if ($edit['type'] & MENU_CREATED_BY_ADMIN) { - $form['path'] = array('#type' => 'textfield', '#title' => t('Path'), '#default_value' => $edit['path'], '#size' => 60, '#maxlength' => 128, '#description' => $path_description, '#required' => TRUE); + $form['path'] = array('#type' => 'textfield', '#title' => t('Path'), '#default_value' => $edit['path'], '#description' => $path_description, '#required' => TRUE); } else { $form['_path'] = array('#type' => 'item', '#title' => t('Path'), '#title' => l($edit['path'], $edit['path'])); @@ -397,7 +424,7 @@ function menu_edit_item_form($edit) { $options = menu_parent_options($edit['mid']); $form['pid'] = array('#type' => 'select', '#title' => t('Parent item'), '#default_value' => $edit['pid'], '#options' => $options); - $form['weight'] = array('#type' => 'weight', '#title' => t('Weight'), '#default_value' => $edit['weight'], '#delta' => 10, '#description' => t('Optional. In the menu, the heavier items will sink and the lighter items will be positioned nearer the top.')); + $form['weight'] = array('#type' => 'weight', '#title' => t('Weight'), '#default_value' => $edit['weight'], '#description' => t('Optional. In the menu, the heavier items will sink and the lighter items will be positioned nearer the top.')); } $form['submit'] = array('#type' => 'submit', '#value' => t('Submit')); @@ -610,22 +637,89 @@ function menu_node_form($edit = array()) { } } - $form['menu'] = array('#type' => 'fieldset', '#title' => t('Menu settings'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#tree' => TRUE); + $form['menu'] = array( + '#type' => 'fieldset', + '#title' => t('Menu settings'), + '#collapsible' => TRUE, + '#collapsed' => TRUE, + '#tree' => TRUE, + ); - $form['menu']['title'] = array('#type' => 'textfield', '#title' => t('Title'), '#default_value' => $item['title'], '#size' => 60, '#maxlength' => 128, '#description' => t('The name to display for this link.')); + $form['menu']['title'] = array( + '#type' => 'textfield', + '#title' => t('Title'), + '#default_value' => $item['title'], + '#size' => 60, + '#maxlength' => 128, + '#description' => t('The name to display for this link.'), + ); - // Generate a list of possible parents (not including this item or descendants). - $options = menu_parent_options($edit['mid']); - $form['menu']['pid'] = array('#type' => select, '#title' => t('Parent item'), '#default_value' => $item['pid'], '#options' => $options); - $form['menu']['description'] = array('#type' => 'hidden', '#value' => $item['description']); - $form['menu']['path'] = array('#type' => 'hidden', '#value' => $item['path']); - $form['menu']['weight'] = array('#type' => 'hidden', '#value' => $item['weight'] ? $item['weight'] : 0); + $form['menu']['description'] = array( + '#type' => 'textfield', + '#title' => t('Description'), + '#default_value' => $item['description'], + '#size' => 60, + '#maxlength' => 128, + '#description' => t('The description displayed when hovering over a menu item.'), + ); - $form['menu']['mid'] = array('#type' => 'hidden', '#value' => $item['mid'] ? $item['mid'] : 0); - $form['menu']['type'] = array('#type' => 'hidden', '#value' => $item['type'] ? $item['type'] : MENU_CUSTOM_ITEM); + // Generate a list of possible parents. Exclude this item and its children. + $pid = variable_get('menu_parent_items', 0); + $options = array(); + $menu = menu_get_menu(); + $depth = 0; + // if $pid is not root, add it to the option list + if ($pid > 0 && isset($menu['items'][$pid])) { + $depth = 1; + $title = $menu['items'][$pid]['title']; + if (!($menu['items'][$pid]['type'] & MENU_VISIBLE_IN_TREE)) { + $title .= ' ('. t('disabled') .')'; + } + $options[$pid] = $title; + } + $options += menu_parent_options($item['mid'], $pid, $depth); + + $form['menu']['pid'] = array( + '#type' => select, + '#title' => t('Parent item'), + '#default_value' => $item['pid'], + '#options' => $options, + ); + + $form['menu']['path'] = array( + '#type' => 'hidden', + '#value' => $item['path'], + ); + + $form['menu']['weight'] = array( + '#type' => 'weight', + '#title' => t('Weight'), + '#default_value' => $item['weight'], + '#delta' => 10, + '#description' => t('Optional. In the menu, the heavier items will sink and the lighter items will be positioned nearer the top.'), + ); + + $form['menu']['mid'] = array( + '#type' => 'hidden', + '#value' => $item['mid'] ? $item['mid'] : 0, + ); + + $form['menu']['type'] = array( + '#type' => 'hidden', + '#value' => $item['type'] ? $item['type'] : MENU_CUSTOM_ITEM, + ); if ($item['mid'] > 0) { - $form['menu']['delete'] = array('#type' => 'checkbox', '#title' => t('Check to delete this menu item.'), '#default_value' => $item['delete']); + $form['menu']['delete'] = array( + '#type' => 'checkbox', + '#title' => t('Check to delete this menu item.'), + '#default_value' => $item['delete'], + ); + + $form['menu']['advanced'] = array( + '#type' => 'item', + '#value' => t('You may also <a href="%menuitem">edit the advanced settings</a> for this menu item.', array('%menuitem' => url("admin/menu/item/edit/{$item['mid']}"))), + ); } return $form; |