Solved

How do I programmatically expand a Drupal 6 navigation menu entry?

Posted on 2010-08-15
5
599 Views
Last Modified: 2012-05-10
I have written a custom module that creates several top level entries in the navigation menu.  When a user selects one of these entries and navigates into it, the menu tree is expanded as selections are made.  However, selecting an entry that creates, views or edits a node, causes Drupal to redirect to "/node/xxx" or "/node/xxx/edit".  This results in the custom navigation menu tree collapsing, so that the user has to re-navigate it again to select another entry.

I can mark the menu entries as permanently expanded, but then the navigation menu is too busy as the trees show on all pages whether the user is using that function or not.

Are there any mechanisms to programmatically expand a menu item so that the relevant menu tree remains visible when the user has been re-directed away?

Thanks
0
Comment
Question by:jayelless
  • 3
5 Comments
 
LVL 17

Expert Comment

by:Thomas4019
ID: 33446403
This modules not perfect, http://drupal.org/project/dhtml_menu, but might help.
0
 

Author Comment

by:jayelless
ID: 33449613
Thanks for pointing out that module.  It looks as though it may do some of what I am wanting, but is not the approach I was hoping to be able to take.  For performance reasons, I am trying to keep the amount of javascript deployed with each page to a minimum.

I am hoping that someone might know of some variables that can be set programmatically that will cause the Drupal rendering routines to expand a particular menu item.  When the item is selected via normal navigation, Drupal knows to expand it, so there should be a setting somewhere that controls this behaviour.

Regards
0
 
LVL 2

Accepted Solution

by:
TheChemic earned 125 total points
ID: 33492845
I dont know much about custom drupal modules.  However, I solved a similar problem myself.  I have several tabs and I wanted drupal to remember the last tab a user had viewed.  Each time the user would visit a page with those tabs, his "last viewed tab" would be selected and open by default.

I just created a custom session variable and stored the "last tab" info into it, then and hard coded the script into a template file.  I did not create a module.  This is not the "drupal way" but it worked just fine for me.
0
 

Author Comment

by:jayelless
ID: 33493057
Thanks for the suggestion.  It is an approach I have not yet considered, but it seems to be an approach that fits with my objectives, so I will explore this idea to find a solution to my problem.

Regards,
0
 

Author Closing Comment

by:jayelless
ID: 33493058
Maybe my question was too difficult or not well expressed.
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Not showing page correctly 3 40
Host asp.net pages 5 34
css icomoons will not display on page 14 30
What are the best practices for updating dead links to valid ones? 6 35
Developer tools in browsers have been around for a while, yet they are still heavily underused by developers. Developers still fix html or CSS then refresh page to see effect, or they put alert or debugger in JavaScript and then try again and again …
These days, all we hear about hacktivists took down so and so websites and retrieved thousands of user’s data. One of the techniques to get unauthorized access to database is by performing SQL injection. This article is quite lengthy which gives bas…
In this tutorial viewers will learn how to embed custom externally-hosted Google Fonts using the Google Font API in CSS Go to the Google Fonts website at google.com/fonts: Browse or search based on font properties or name to find a suitable font for…
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question