You are here: Home Plone products Collective MetaNav

Collective MetaNav (1.0)

1
by Olha Pelishok last modified 2008-08-13
0.0
0.0
0.0
0.0
Released on 2008-08-08 by Brian Gershon for Plone 2.5, Plone 3.0, Plone 3.1 under GPL - GNU General Public License available for All platforms.
Software development stage: stable
This product allows Plone sites to create and manage a navigation system for their website that doesn't need to match the actual hierarchy of the site. This can allow administrators to create alternative navigation structures for their content, such as in audience-based navigation schemes. Visitors to a site can be led to content they might otherwise have difficulty finding.
This product allows Plone sites to create and manage a navigation system for their website that doesn't need to match the actual hierarchy of the site.
This can allow administrators to create alternative navigation structures for their content, such as in audience-based navigation schemes. Visitors to a site can be led to content they might otherwise have difficulty finding.

There is also an "overview" and "plone walkthru" video here:

The product consists of 3 parts:
  1. A series of content types that allow administrators to create a 2-level navigation hierarchy which contains navigation items that represent menus to internal and external content. The hierarchy is easily managed as folders and sub-folders, with menu content-types representing the menu items within those folders.
    A new NavigationManager role has been created to allow users to be able to manage pending menu items, as well as management of the navigation hierarchy.
  2. A user-interface for content-editors to request that their content be added/removed from the navigation.
    Content editors will see a new "global navigation" tab for the piece of content they are editing. This tab allows them to request that a menu be created in a specific part of the hierarchy that points to the piece of content they are editing.
    Content editors can also request that a link be created to an external URL, or request that an existing navigation menu be removed.
    Workflow allows menu requests for additions/deletions wait in a "pending" or "pending removal" state.
  3. A vanilla theme that generates the hierarchical navigation that can be used in a home page template. The theme includes javascript open/collapse functionality and CSS.
    Navigation items can be categorized as either "top" or "side" to allow navigation to appear in one of two places -- often the top or left side.
    Google Analytics can be added to track usage of the menus and determine which menu items are most active. See INSTALL.txt for instructions.

How do I integrate the functionality demonstrated by globalnavigation_view.pt into my own site?

The current metanav product is focused on showing one hierarchy (or two hierarchies "top" and "side" -- which will be explained shortly) of links for the entire site. In the primary use-case for this version of metanav, the hierarchy appears as the home page of the site, and it doesn't exist anywhere else. It's not meant to replace the auto-generated Plone navigation once you start delving into the site.

Template code (as demonstrated in globalnavigation_view) could be added to your main_template (or inside a portlet) if you want it to show up in all or some parts of the site. There currently isn't a navigation portlet for metanav. (Only a portlet for Navigation Managers who are approving addition/removal of nav links)

globalnavigation_view.pt is a good vanilla example of how to pull in the hierarchy and links created by your navigation folder structure -- a dictionary is returned via "getNavigation" method, then TAL, JavaScript and CSS do the rest.

You can classify top-level navigation folders as being "top" or "side" and call a function to generate a hierarchy for those individually (e.g. getNavigationTopOnly and getNavigationSideOnly). This could be used to have "navigation by topic" in one place, and "navigation by audience" in another (for example).

Future idea: If you wanted to replace the default navigation portlet in Plone with a completely home-grown metanav version unique for each section of the site, a future possibility may be to generalize the "top" and "side" features into any number of arbitrary tags (e.g. section names), then a template/portlet could be written that examines what section of the site it is in (based on context), and load up only the top-level navigation folders that have that section tag via new method like getNavigationByTag("section abc").

Document Actions
Powered by Plone