A package for creating menus

Created by: xing, Last modification: 30 Jun 2008 (09:29 UTC) by Kozuch

Nexus Menus

Nexus is a Package that works closely with the LibertyPackage and makes it is easy to create menus pointing to any content in bitweaver, or any external URL. Nexus works with other tools in bitweaver to help users navigate the site.

Find nexus at:

Nexus will create functional links to all internal and external content; all you have to do is enter the correct content id, structure id or path. External links are rendered with a special class (.external) which makes it easy to control their appearance with a particular CSS style.

Help revise this package Nexus is still under development. If after testing nexus you have some feedback on the usability or the features please don't hesitate to add them to the end of the page or leave a comment.

Available plugins

Nexus supports three types of menus, which can variously appear in the top bar or in modules in the left or right columns.
  • Suckerfish menus: These CSS driven dropdown menus change to keep up with the various themes in use within the site.
  • Formelement menus: This is a menu that resides in a dropdown box and upon selecting a given option, it takes you to that page.
  • TikiWiki menus: Allows you to create collapsible menus reminiscent of tikiwiki style. The main difference is, that you can create a menu as many levels deep as you desire.

Create a horizontal menu in the top bar.

A customized horizontal "menu bar" whose look and feel is controlled by the site's CSS can be created with or without dropdowns.

Steps to create a custom horizontal menu.

bitweaver version 1

  1. Ensure that the theme you are using supports a horizontal menu in the top bar. If you don't see one already (a horizontal menu exists by default in all themes that support one), goto and pick a different theme.
  2. Pop inot nexus to create a new menu. Goto and fill out the name and description, choose suckerfish horizontal, and save.
  3. Upon saving, You should be directed to (or some small number) where you can start adding items to your menu. Use the filter if you like to sort the available content. If you select internal content, all the other required fields will be filled automatically and you can save right away. Saving reloads the page so you can add more content.
  4. A list of the content added to the menu is generated at the bottom of the screen, and hopefully, the menu items are indeed appearing in the top horizontal menu, in addition to those already there. Add all the menu items you want (whether they will ultimately be collapsed under one of the other headings or not) because you can sort them after.
  5. Sort the menu items at /nexus/menu_sort.php?menu_id=1&tab=organise (bug: there is no immediate link to this page from the last one, nor back again, and if you use your back button, you will probably add a page twice.)
  6. The next time you go to /nexus/index.php unfortunately it seems to hit a bug:.
error message:
Smarty error: unable to read resource: "/home/yoursite/public_html/bitweaver/temp/nexus/modules/top_bar_inc.tpl" in /home/yoursite/public_html/bitweaver/util/smarty/libs/Smarty.class.php on line 1095

. . . and i'm not sure where you go from there. The menu that appeared before still exists in the database, but is gone from the screen, and there is no way to get it back. ttfn

bitweaver version 2

  1. First of all, you can create your menu as you need it. Currently there are only few menu types that lend themselves to work as a horizontal menu in the top bar:
    1. suckerfish horizontal menus.
    2. formelements menu - think this is a bit buggy.
  2. Now that you have a menu, you need to go to the Adminstration --> Themes --> Manage Layouts.
    1. First make sure you have the top module area enabled in the Column Control tab.
  3. You can then assign the nexus menu to the top bar.
  4. The menu is now in your layout but probably lacks some basic CSS to get it the way you want.

Some sample CSS for the horizontal menu

/* use the correct #id of your module - this is 'header + the position number': e.g.: #header1 */
/* this will hide the module title */
#header1 h3    {display:none;}

Generally the dropdown should be working if the regular bitweaver dropdown menu works since it uses the same classes.

Nexus Features

  1. Nexus supports plugins for various different menus. This means that if you would like to use a different style of menu, you can add the approppriate plugin.
  2. Nexus provides you with an easy to use interface to structurise your menus. They can be any number of levels deep, giving you unlimited freedom when it comes to menu creation and content accessibility.
  3. Menu look is determined exclusively through CSS. this means that changing the look of the menu only requires some knowlegde of CSS.
  4. Converting wiki books to menus.

Package TODOs and feedback.

  1. Would be nice to allow the usage of icons.
  2. Might be good to read the structure straight from the db to ensure that the menu is updated automatically.
  3. Enable the display of a given package only while a user is browsing a particular package. this would allow for large menus that only show relevant pacakge specific links when required.
  4. Allow users to create their own menus. This will require some work and is currently not very high on my priority list.
  5. More plugins including support for coolmenu menus.
  6. Add more control for plugins. It should be possible to allow users to specify more criteria for a given plugin.


Carlos' newbie comment:

by carlos, 18 Jan 2005 (16:34 UTC)
I would love to see 'dynamic content menus'-> when creating a wikipage or blog, an option to add the page to wiki or blog menu would be fantastic.
  • Why: because it is easier to find the content you want, with less clicks, and less page refreshes.

On irc xing: was talking about automatic menu generation: "What i want to do is that you can add any wikipage to a menu if you want to while you're editing the wiki page" - I think this would be great, and would add some clarity/efficiency to navigating bitweaver.
  • Why: when you go to the blog or wiki menu, it would be nice if the added blog/wiki pages were in the menu too.. instead of having to click the "list blogs" etc...

Re: Carlos' newbie comment:

by xing, 06 Mar 2005 (19:38 UTC)
dynamic content menus have not been added yet, however, addition of a wiki page while editing that page is now possible.

i will have to think about dynamic menu generation some more in terms of keeping db access numbers to a minimum and setting a standard API to communicate with nexus.

Re: Re: Carlos' newbie comment:

by William Leibzon, 08 Mar 2005 (15:59 UTC)
With new universal structures I proposed (see the idea was to allow same structure to be shared among multiple types of content, i.e. menu could be dynamic and consist of content of the blog (blog posts).

So that there would be no extra database accesses, I was thinking that all there would be standard "Update" function for each content that could regenerate its cache. The general structure "Update" would then work so that when structure is updated, it would check what content types uses this structure and call Update function for each one. So whenever somebody were to modify a blog, when update is clicked, it would cause update of the assocaited menu as well as the blog.

The same could possibly be done with current system as well, but would require some new work with Liberty so that update of one content could be linked to updates of other content on the lower level.


by Helge Karl, 21 Jul 2005 (13:12 UTC)
I've been playing around with the menu system. The bitweaver menu is made up from package menu items, like organized in content type categorization. However if you plan to make the information organized in a way that let's the user find the path to a sertain type of information you may organize the stuff differently. In some ways it is set up for the site administrators and contributors point of wiev while the typical guest visitor may look for specific information may like to go through a structurized information menu system to reach the interesting stuff.
You may therefore think about the topbar menu as an action menu, like you wish to do something like create an article, categorize pages, add pictures to an article and so on. This is very useful indeed. So I think there is needed one more menu system that makes it easier for an visitor to find the stuff he/she is interested in, like an logical tree, web or delta of paths to the right pages.
I belive this has to be fine tuned in the theme templates so that you have somwhere logical to put such a menu system like the top or in a sidebar.
There are already many good plugins in the nexus package, I would however like to see the menu toc tree system in it as well since I like that it remembers your selection in the menu tree.


by , 22 Feb 2008 (19:49 UTC)
It would be very cool if these menus had the option of being just like the other menus.
I mean the drop down menus at the top.
Even better would be to have them next to the existing ones.

What I ended up doing after no one answered my forum post is edited the templates of the existing menus to get what I wanted.

Although do to not getting any reply back on the forum I am thinking of not using this software do to lack of support.

Open link in new window

by Shawn Thompson, 02 Sep 2008 (02:32 UTC)
I would like to see the option to make a menu item open in a new window. I have some links that must appear on all pages and should open in a new window but that isn't possible yet.
  Page 1 of 1  1