The Smart menus, Smart tabs duo of modules make everyone's Drupal experience just that little bit more convenient. The two modules give menus and tabs a memory, so that when you revisit a page, your previous tab or menu choice is already pre-selected for you. Not only will this save you numerous clicks, it will almost feel like the system senses where you'd like to go, making the experience more intuitive. No longer will you have to retrace your clicks to get back to where you wanted to stay or waste clicks to escape from Drupal's rigid default selections. Instead you'll find that Smart menus and Smart tabs create default selections naturally, based on your personal click patterns as they evolve during the session.
Once you've used these modules for a while you won't notice they're there -- but you'll miss them when they're gone.

Smart menus

With Smart menus installed and your Navigation menu block replaced by the Smart navigation menu block (at Site building >> Blocks), a click on any parent menu link auto-expands the menu trail down to the previously selected child menu item and page.
Example First navigate to Administer >> Site building >> Menus >> Primary links. Then click away to, say, My account. As per normal Drupal behaviour this causes the Administer menu to collapse. Now click the Administer menu item a second time, and voila! Smart menus will automagically take you all the way down the menu tree to again present you with the Primary links page. That's 4 clicks for the price of one!

Every authenticated user can set their personal Smart menus auto-expansion depth on their My account >> Edit page. A depth of 0 switches the Smart menus feature off. My account >> Edit is also where users can opt to get the full active menu trail highlighted through expanded menus, rather than just the selected menu item, which is the Drupal default.

Smart menus can be configured to operate on any or all of Drupal's standard menus (navigation, primary-links, secondary-links), as well as on any custom menu you may want to define. Configuration is as a normal block, i.e. on the Administer >> Site building >> Blocks page, where you will find Smart versions of the aforementioned blocks for your consideration.

Smart tabs

The Smart tabs module enhances the behaviour of what Drupal calls menu local tasks, more commonly known as tabs. When a page features a row of tabs, Smart tabs will remember the tab you selected the last time you visited that page. For instance select a tab under My account or Site building >> Triggers. Click away from the page and return. Bang! You're ready to resume what you were doing last on the page. No more re-clicking of tabs whose previous selection was taken away from you, as is the case with Drupal core.

When a page has two rows of tabs and the second row is the same or almost the same for each of the primary tabs, Smart tabs is extra smart: when you click on a new primary tab, Smart tabs will carry the secondary tab selection across with it. This is more intuitive. It saves you a click and avoids the confusion and irritation arising from Drupal's normal behaviour, which is to always pre-select Drupal's cast-in-stone default, rather than the one that makes sense. A good example of this feature in action can be found on the Accessible content page of the Module Grants Monitor module.

As with Smart menus, the Smart tabs administrator can override Smart behaviour for selected pages or groups of pages. Authenticated users may opt out of Smart tabs via their My account >> Edit pages.

Smart menus, Smart tabs are server-side solutions that won't interfere with any javascript you have installed via other modules. Neither of the modules rely on cookies or the database to implement the memory function. Rather a small amount of data is kept in each user's HTTP session, which will be automatically erased when logging out or closing the browser.

The modules have been tested to work with every core theme, as well as Zen and Zen-Classic. If you use an exotic non-core theme, it may occasionally happen that Smart tabs affects the appearance of your tabs. This is most likely because Smart tabs overrides the menu_local_tasks theme hook, which may clash with a similar override in your theme. See the FAQs below for a simple way around this.

Installation and configuration

As with any other module download and extract the tar-ball into your sites/all/modules folder. Visit the Site building >> Modules page, tick the Smart menus and Smart tabs check-boxes ans press Save. Smart menus and Smart tabs operate independently. You don't have to enable one to use the other, but they do work together nicely.
For Smart menus to work you need to replace your existing menu links and/or navigation blocks by their Smart counterparts. Simply go to Site building >> Blocks and flick your Navigation block to the <none> region. Then move the Smart navigation block to take its place, e.g. in the Left sidebar. No further block configuration is required except perhaps for the "invisible" option. This comes in handy when you want to use Smart menus in combination with other menu rendering modules, such as Administration menu or Nice menus. See the FAQ below.
Both modules have some additional self-explanatory configuration options. Have a look at Administer >> Site configuration >> Smart menus/tabs, you may find some options of interest to you, in particular the page exclusion lists.

Smart menus FAQ

Q: Will Smart menus also make the Administration menu, SimpleMenu and Nice menus modules Smart?
A: Yes! With Smart menus installed on top of any (or all!) of these modules, you will find that you no longer have to painstakingly hover your cursor down the second, third, fourth... slide-out menu. Instead you just click the top menu item and Smart menus takes you all the way to that previously visited page somewhere deep down in some submenu. To enhance the synergy with these modules further, Smart menu blocks can be configured to operate in invisible mode. This means Smart menus does its magic behind the scenes without rendering any menus, leaving this to Administration menu , Nice menus or whatever menu rendering module you may have installed. Just make sure that while the Smart menu block is configured to be invisible the block still needs to be assigned a region other than <none> in order to be active.
Oh, and Smart tabs works nicely too with Admin menu, SimpleMenu and Nice Menus!

Q: Will Smart menus make Menu block smart?
A: Yes, as with the three menu modules mentioned above, just put a Smart menu block for the menu in question in any region on the page and configure it to be invisible. If, in addition to Menu block and Smart menus, you also have Smart tabs enabled, you may find that when using Menu blocks for normal content, as opposed to the navigation menu, you'll have to put node/* on the Smart tabs exclusion list.

Q: Will Smart menus make JQuery menu smart?
A: As far as the Navigation menu goes, yes! In addition to configuring your "Navigation - Jquerymenu" block, at Site building >> Blocks also place a Smart navigation menu block on the page and make it invisible. Naturally by relinquishing the Smart menus rendering to JQuery menu, you won't get the Smart menus feature that highlights the entire active menu trail. For Primary and secondary links menus, i.e. "normal" content, you'll find that the memory function works, however, parent menus collapse after selecting a submenu item.

Q: Does Smart menus work with DHTML Menu?
A: Not so well. DHTML Menu doesn't let Smart menus redirect to the expanded menu page. DHTML Menu works fine with Smart tabs, though.

Q: I enabled Smart menus but my menus do not auto-expand. What's not happening?
A: You need to use the Smart block versions for your menu blocks, for each theme you are using. Like any other block you configure Smart blocks at Administer >> Site building >> Blocks. For instance the Smart navigation block typically goes in the Left sidebar region, replacing the Navigation block, which you should set to <none>.

Q: As an administrator, how can I experiment with the page exclusion lists without affecting anonymous users?
A: Go to Site configuration >> Smart menus and set the auto-expansion depth to 0, disabling the feature for all users by default. Then go to My account >> Edit >> Smart menus and set the auto-expansion depth for yourself to 9 (or any non-zero depth).

Q: I stuffed up my Smart menus configuration and can no longer get to certain menu options. What do I do?
A: Log out and log back in. If you're not logged in, close your browser and reopen.

Smart tabs FAQ

Q: It seems that with some modules under certain conditions the occasional tab "sticks". Sometimes an infinite redirect loop or "Page not found" occurs. What can I do?
A: Add the URI of the page that the tab resides on to the page exclusion list at Administer >> Site configuration >> Smart tabs. Please let us know the exception via the issue queue, so that we can add your exclusion as a default in the next release.

Q: I use a really out there theme whose tab appearance gets altered by Smart tabs. How do I work around this?
A: Most likely your theme overrides menu_local_tasks() in some way, using calls to menu_primary_local_tasks(). In your theme folder under sites/all/themes do a search for menu_primary_local_tasks and menu_secondary_local_tasks. You'll probably find these in the template.php file, inside a function named phptemplate_menu_local_tasks() or THEMENAME_menu_local_tasks(). Simply replace menu_primary_local_tasks() by menu_primary_local_tasks_smart_tabs() and menu_secondary_local_tasks() by menu_secondary_local_tasks_smart_tabs() and you should be good to go.
At Site configuration>>Smart tabs untick the first checkbox "Allow Smart tabs to control tab behaviour" and press Save. To make sure the registry gets refreshed visit Site building >> Modules.

Q: I'm finding that with Smart tabs enabled, the submenus living below primary links won't open. What to do?
A: Put these primary links on the Smart tabs exclusion list. For instance, if you have a primary link named "recipes" and this has a submenu, possibly with further submenus, just add recipes to the text box on the Site configuration >> Smart tabs page. Putting recipes rather than, say, recipes*, allows you to continue to enjoy Smart tabs behaviour for the submenus and individual pages.
To make the specification of page exclusion lists for Smart menus and Smart tabs even easier, it is highly recommended you use URL aliases as much as possible, i.e. to enable the Path (core) or PathAuto modules.

Q: Does Smart tabs work with Quick Tabs ?
A: Errr.... well, yes... Smart tabs works with this module in that it shouldn't adversely affect it. However, as Quick Tabs aren't local tasks, Smart tabs won't make Quick Tabs Smarter. However, some work in this area has been done on the Quick Tabs module itself, see #354199: Remember last clicked tab.

Recent enhancements

Available in 6.x-1.8:
Fixed #707782: When clicking first tab (i.e. View), Smart tabs redirects to last clicked tab (e.g Edit). Note: View tab URLs will have a harmless '?view' appended.

Project Information

Downloads