Multi-column children
zdean - January 10, 2009 - 19:57
| Project: | Nice Menus |
| Version: | 6.x-1.3 |
| Component: | Code |
| Category: | feature request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | active |
Description
Is it possible to have the child of a parent appear in multi-column? This would be helpful when there are a lot of children under a particular parent.

#1
I have no idea what the code would need to be to make this happen. Unless there is some fancy CSS trick, you will probably need to either use PHP with the theme function to output the children in a table or use JS to do some magic to create the effect.
#2
I have changed this issue to a feature request.
My website is a city guide. One of the menus allows people to select business listings in the city. So for example, they can select "restaurants" or "art galleries". When one of those selections is made, the child menu pops up. In the case of restaurants, it would bring up "Chinese, Mexican, Italian, etc."
In my categories, there are are probably 40-50 subcategories (children) in the restaurant category. This creates 2 problems:
1. It creates a really long list of subcategories that the user has to scroll through (a convenience issue)
2. If the user is on a page without a lot of content (thus not a lot of room to scroll down), the subcategory list cuts off (see attachment)
I wish I could contribute to this...but my code skills are "zero"...but I do think this would be a very useful feature to add (the ability to choose the maximum number of rows in the children menus...thus creating multiple columns).
Thanks for considering this!
#3
someone included some code that does this in a patch for adding some classes. It doesn't really belong in that patch but if anyone wants to find some code to point them in the right direction, give it a look. #301247: add first and last class to items
I'm not sure how to add this to NM right now, not from code per se, but how would we create a UI for a user to be able to set it up? If anyone wants a stab at a patch, I'm willing to look at it, but not a patch I will get time to work on myself.
#4
Hey Addison,
I am working with a site that has 3,000+ pages. This presents a navigation challenge similar to the one zdean presents above. We have one topic that has 65 sub-topics organized in 5 groups. We have another area that has a topic per day of the year -- 366 in total broken down by month. It is possible to create navigation that changes the current page to a page of links for selection (for example, create a January page with 30 links). This doesn't seem to be the correct solution for a user that is browsing for information -- too much page swapping.
Here is an example of the type of solution we are looking for. I hate to use this specific example but it is handy. Please see the "All Products" link at the top of http://www.microsoft.com -- also attached here. Do you believe this is within the scope of Nice Menus? Perhaps a joint venture is possible? If not, are you aware of another module/solution to obtain this effect?
Thanks for considering this Addison!! Greg
#5
Just look here:
http://www.cssplay.co.uk/menus/drop-table.html
http://www.cssplay.co.uk/menus/multi-column.html
http://www.cssplay.co.uk/menus/drop_lists.html
I think it would be the solution we all need. Pure css, no java. I experimented with this sort of things on a static site and know that it is even possible to make the multicolumn menu nested (the next level can be a balloon with a few links or a scrolling menu) -- pure css again! It is quite easy. Pity I am a beginner to drupal otherwise I think I would be able to write the much needed module...
#6
Subscribing.
Just another example of a website which makes use of this technique: http://www.otto.de/
Maybe it could be configurable in the following way:
- first level of menu keeps top navigation
- second level keeps columns (configurable)
- third level keeps navigation items
+---------+| TopNav1 | TopNav2 | TopNav3 <- first Level (1)
| +------------------------+
| |
| Column1 Column2 Column3 | <- second level (2)
| - Nav1 | - Nav4 | - Nav6 | <- third level (3)
| - Nav2 | - Nav5 | - Nav7 |
| - Nav3 | | |
+-----------+-----------+----------+
Just add some theme specific css. ;-)
Could be a seperate module as well.
What do you think? I don't know much about NM, so this could be naive. :)
cheers, Ronald
#7
cool. i remember rockethemes has this feature their joomla template.
#8
yeah... It's very useful ...
Please help ...
Thank very much ...
#9
Hey All,
It is possible to implement "multi-column children" under Nice Menus. Please see this page:
http://www.raystedman.org/n
This page supports a two level menu. The first level us an unordered list (Bible Overview ...). The second level is also an unordered list to create the subnav menus. We converted the subnav unordered list into a table and added some css to fill in the gaps. The result is just what we were looking for our primary navigation.
Thanks to Nice Menus for providing the base function to make this possible!
Thanks Addison!
#10
Could you give a little more insight in how you did this in nice menus?
Many thanks
#11
GregSims, can you be more detailed on how it was done?
BTW, whitehouse.gov which was recently lauched with Drupal has 2 column primary menu. Are they using nice_menus? What are the alternatives?