menu

Menu Block: Because Primary Links Sometimes Need to Have a Second or Third Level.

10.17.2008

File this little gem under damn useful.

The author pitched menu blocks better than I could:

So if you’re only using your theme’s Primary links feature, you can add and configure a “Primary links (levels 2+)” block. That block would appear once you were on one of the Primary links’ pages and would show the menu tree for the 2nd level (and deeper) of your Primary links menu and would expand as you traversed down the tree... Pretty simple, eh? (I’m actually shocked this module didn’t exist before.)

Drupal trick: Returning a themed menu tree with nothing more than the system path

12.05.2007

I remember something a long time teacher said, "Nick, if you make a suit out of a gorrilla, the arms are too long." I forgot why that was relevent to the topic of theming menu trees.

Moving on, here's a nice little function I wrote to return a themed menu tree by path.

<?php
// will return all menu items under "administration".
print theme('menu_tree_by_path','admin');

// will return links to all node submission forms
print theme('menu_tree_by_path','node/add');

// return the correct menu array by path
function menu_get_mid_by_path($path) {
// oddly, menu_get_item accepts a path, but returns the parent id.

A CSS ID for Every Menu Item

06.03.2006

As you can see, these menu links have unique icons. Yet another miracle accomplished using Drupal's PHPTemplate. This technique is especially cool because it automatically generates CSS ID's from the menu link's name.

TEMPLATE.PHP: Override theme_menu_item() (includes/menu.inc)

<?php function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) { return _phptemplate_callback('menu_item', array( 'leaf' => $leaf, 'mid' => $mid, 'children' => $children )); } ?>

Now create a menu_item.tpl.php file.

Syndicate content