Skip to main content

Dropdown menus for global navigation in Plone

Project description

webcouturier.dropdownmenu

Overview

The dropdown solution for Plone since 2007.

You will get the dropdown menus for those items in global navigation that have the subitems. Submenus are built based on the same policy as the Site Map, so it will show the same tree as you would get in the Site Map or navigation portlet being in appropriate section.

How it works

Dropdown menus are build based on the same policy as the Site Map, so it will show the same tree as you would get in the Site Map or navigation portlet being in appropriate section. This means - no private objects for anonymouses; no objects, excluded from the navigation - exactly the same behavior you would expect from Site Map or navigation portlet.

Installation

As any addons, please follow the official install documentation: http://plone.org/documentation/kb/add-ons/installing

Tips

  • While disabling clicking the links with children, I want the links in the global navigation bar to be clickable nevertheless.

    What you need is to customize the browser/dropdown.js file like the following:

    jQuery(function ($) {
        $('#portal-globalnav ul .noClick').click(function (e) {
            e.preventDefault();
        });
    });

    Note that we have added ul in the jQuery selector. This will stop clickability of the links in the dropdowns only, but not the section’s link in the global navigation bar itself.

Credits

Authors:

Contributors:

  • Wichert Akkerman [wichert] Simplon

  • JeanMichel FRANCOIS [toutpt] Makina-Corpus

  • Thomas Desvarin [thomasdesvenain] Ecréall

  • Maurits van Rees [maurits]

  • David Glick [davisagli]

  • Matt Halstead [matthal]

  • Leonardo J. Caballero G. [macagua]

  • Florian Schulze [fschulze]

Installation

Global python environment

easy_install webcouturier.dropdownmenu

Find out how to install setuptools (and EasyInstall) here: http://peak.telecommunity.com/DevCenter/EasyInstall

Buildout

  • Add webcouturier.dropdownmenu to the list of eggs to install, e.g.

    [buildout]
    ...
    eggs =
        ...
        webcouturier.dropdownmenu
  • Tell the plone.recipe.zope2instance recipe to install a ZCML slug

    [instance]
    recipe = plone.recipe.zope2instance
    ...
    zcml =
        webcouturier.dropdownmenu
  • Re-run buildout, e.g. with:

    $ ./bin/buildout

You can skip the ZCML slug if you are going to explicitly include the package from another package’s configure.zcml file.

Your package’s dependency

If you want to automatically install webcouturier.dropdownmenu when installing your own package, do the following.

  • Add webcouturier.dropdownmenu as a dependency for your package. Add the dependency to your package’s setup.py’s install_requires array

    setup(
      ...
      install_requires = [
          ...
          'webcouturier.dropdownmenu',
      ],
      ...
    )

This will automatically download the latest version of the package.

  • In your package’s profiles/default/metadata.xml, within <dependencies></dependencies> block add

    ...
    <dependency>profile-webcouturier.dropdownmenu:default</dependency>
    ...
  • Re-build your buildout and re-start the instance. Now, you should get webcouturier.dropdownmenu package installed the same very moment you are installing your own package.

Changelog

(name of developer listed in brackets)

2.3.1 (2012-07-26)

  • move css from import to link [toutpt]

2.3 (2012-01-23)

  • Moved the plone.app.testing and unittest2 dependencies to a test extra. [Maurits]

  • Only load the CMF permissions when on Plone 4.1 or higher. [maurits]

  • fix unkown version in quickinstaller. [toutpt]

  • fix typo in skins.xml provide wrong install on sunburst [toutpt]

  • rename dropdown css from dtml to static css [toutpt]

2.2 (August 17, 2011)

2.1 (2010-09-23)

  • Add z3c.autoinclude entry point so ZCML is loaded automatically in Plone. [davisagli]

  • Fix icons for compatibility with Plone 4. [matthal]

  • Added support for i18n [macagua]

  • Added Spanish translation [macagua]

2.0 (2009-05-26)

  • Updated README.txt with the whole bunch of information that users need about the package. [spliter]

  • Icon for the package’s configlet link. [spliter]

  • Added configlet for managing dropdown settings rom Plone Control panel. [spliter]

  • Added caching feature for output xhtml. [spliter]

  • Fixed an IE Javascript error when dropdown.js was loaded on templates without a #portal-globalnav. [davisagli]

1.1.5 (2008-04-19)

  • Made the package work in both Plone 3.0.x and Plone 3.1 [spliter]

  • Got rid of buggy default skin’s resetting in package’s profile [spliter]

  • Look for ‘path’ in the global tabs data, if it’s available then it’s used to get the object instead of trying to reconstruct it from the url which fails in many cases. [fschulze]

  • Got rid of hardcoded version of plone.browserlayer. It’s up to users now to decide what version of plone.browserlayer to use. [spliter]

1.1.4 (2008-04-11)

  • Fixed the bug when you have could get the error in case your navigation root differs from site root. In this case you could get “‘NoneType’ object has no attribute ‘endswith’” error [spliter]

1.1.3 (2008-04-09)

  • Switched the package from using browser resource for the main stylesheet. It’s now in skins/ to follow main theme’s colors better [spliter]

  • Added a workaround for objects that contain spaces in their ID’s [spliter]

  • Fixed the problem with images in the site’s root [spliter]

  • Only override the depth for navtree queries for the dropdown menus. The override for the path was a nop for the common case but would break for sites with a different navigation root. [wichert]

  • Call constructor for base class in our DropdownMenuViewlet class. This removes some boilerplate code and makes sure everything is initialised properly. [wichert]

1.1 (2007-10-29)

  • Dropdownmenu uses it’s own builder now (instead of sharing the same one with site map). Implemented new property dropdownDepth to contain depth property for dropdown menu separately from sitemapDepth. [spliter]

  • Fixed the problem with installation in Plone 3.0.2 because of relations with webstats.js file [spliter]

1.0 (2007-10-05)

  • Initial release. Tested in all modern browsers, incl. Safari, IE6, IE7 and so on. [spliter]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

webcouturier.dropdownmenu-2.3.1.zip (51.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page