{ "info": { "author": "Jeroen Michiel", "author_email": "jmichiel@yahoo.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Zope3", "Intended Audience :: Other Audience", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": ".. contents::\n\n=================\nmegrok.navigation\n=================\n\nMegrok.navigation lets you easily add all sorts of menus to a site.\nMenus are implemented as viewletmanagers, and items as viewlets.\nYou can also override the default templates by registering your own IPageTemplate \n\nLet's first setup a simple site\n\n >>> import grok\n >>> class MySite(grok.Container, grok.Application):\n ... pass\n >>> grok_component('mysite', MySite)\n True\n\n >>> root = getRootFolder()\n >>> root['site'] = site = MySite()\n \nLet us now define a menu\nWe'll first define an Interface, so that later on we won't need to redefine some menus after we redefined \nthe Navigation menu, so this is not necessary to do, although it can lessen dependencies.\n\n >>> from megrok import navigation\n >>> class INavigation(navigation.interfaces.IMenu):\n ... pass\n >>> class Navigation(navigation.Menu):\n ... grok.name('navigation')\n ... grok.implements(INavigation)\n >>> grok_component('nav', Navigation)\n True\n \nMenus are implemented as viewletmanagers\n\n >>> from zope.viewlet.interfaces import IViewletManager\n >>> IViewletManager.implementedBy(Navigation)\n True\n \nRendering the menu now leaves us with an empty