Index: nice_menus.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/nice_menus/nice_menus.module,v retrieving revision 1.16.2.3 diff -u -F^f -r1.16.2.3 nice_menus.module --- nice_menus.module 30 Apr 2007 16:08:16 -0000 1.16.2.3 +++ nice_menus.module 24 Jul 2007 16:35:03 -0000 @@ -115,41 +115,57 @@ function nice_menus_block($op = 'list', break; case 'view': - if ($menu_tree = theme('nice_menu_tree', (variable_get('nice_menus_menu_'.$delta, '1')))) { - if ($menu_tree['content']) { - $block['content'] = '
'; - if (variable_get('nice_menus_type_'. $delta, 'right') == 'down') { - $class = 'nice-menu-hide-title'; - } - else { - $class = 'nice-menu-show-title'; - } - $block['subject'] = ''. check_plain($menu_tree['subject'] == t('Navigation') ? ($user->uid ? $user->name : t('Navigation')) : $menu_tree['subject']) .''; + // Build the nice menu for the block. + $pid = variable_get('nice_menus_menu_'.$delta, '1'); + $direction = variable_get('nice_menus_type_'. $delta, 'right'); + if ($output = theme('nice_menu', $delta, $pid, $direction)) { + $block['content'] = $output['content']; + if (variable_get('nice_menus_type_'. $delta, 'right') == 'down') { + $class = 'nice-menu-hide-title'; } + else { + $class = 'nice-menu-show-title'; + } + // If we're building the navigation block, use the same block title logic as menu module. + if ($output['subject'] == t('Navigation') && $user->uid) { + $subject = $user->name; + } + else { + $subject = $output['subject']; + } + $block['subject'] = ''. check_plain($subject) .''; + } + else { + $block['content'] = false; } - else $block['content'] = false; return $block; break; } } -/* - * Theme Nice Menus output +/** + * Builds the inner portion of a nice menu. + * + * @param $pid + * The parent menu ID from which to build the items. + * @param $menu + * Optional. A custom menu array to use for theming -- it should have the same structure as that returned by menu_get_menu(). + * @return + * An HTML string of properly nested nice menu lists. */ -function theme_nice_menu_tree($pid = 1) { - $menu = menu_get_menu(); +function theme_nice_menu_tree($pid = 1, $menu = NULL) { + $menu = isset($menu) ? $menu : menu_get_menu(); $output['content'] = ''; $output['subject'] = $menu['items'][$pid]['title']; if ($menu['visible'][$pid]['children']) { foreach ($menu['visible'][$pid]['children'] as $mid) { - // Build class name based on menu path e.g. to give each menu item individual style + // Build class name based on menu path e.g. to give each menu item individual style. $path_class = 'menu-path-'. str_replace('/', '-', $menu['items'][$mid]['path']); if (count($menu['visible'][$mid]['children']) > 0) { $output['content'] .= '