{ "info": { "author": "Souheil Chelfouh", "author_email": "trollfot@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "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": "======================\ndolmen.app.breadcrumbs\n======================\n\n`dolmen.app.breadcrumbs` provides a breadcrumbs navigation for the\nDolmen applications. It registers a viewlet to render the links.\n\nGetting started\n===============\n\nTo test the breadcrumbs' features, we need to create some content. We\nused here `dolmen.content` contents, as our breadcrumbs' behavior works\nonly for IBaseContent objects::\n\n >>> import dolmen.content\n >>> from grokcore.component import testing\n\n >>> class Container(dolmen.content.Container):\n ... dolmen.content.name('A dummy container')\n\n >>> testing.grok_component('container', Container)\n True\n\nWe now create our contents in an hypothetical application::\n\n >>> from zope.component.hooks import getSite\n\n >>> app = getSite()\n >>> app['cave'] = Container()\n >>> app['cave']['pot'] = Container()\n\nTo finish, we create a view. As we use a viewlet, we need a view to\ndisplay something::\n\n >>> import grokcore.view\n\n >>> class simpleView(grokcore.view.View):\n ... grokcore.view.context(dolmen.content.IBaseContent)\n ... def render(self):\n ... return u'For test purposes'\n\n >>> testing.grok_component('simpleview', simpleView)\n True\n\n\nAdapting\n========\n\nThe component that allows to build URLs and Breadcrumbs is a multi\nadapter providing the IAbsoluteUrl interface. let's have a closer\nlook::\n\n >>> from zope.component import getMultiAdapter\n >>> from zope.publisher.browser import TestRequest\n >>> from zope.traversing.browser.interfaces import IAbsoluteURL\n\n >>> request = TestRequest()\n >>> url = getMultiAdapter((app['cave'], request), IAbsoluteURL)\n\n >>> url\n \n\n >>> from zope.interface.verify import verifyObject\n >>> verifyObject(IAbsoluteURL, url)\n True\n\n >>> url()\n 'http://127.0.0.1/cave'\n\n >>> url.breadcrumbs()\n ({'url': 'http://127.0.0.1', 'name': ''},\n {'url': 'http://127.0.0.1/cave', 'name': u'cave'})\n\n\nRendering\n========= \n\nNow, we have some contents in our application. We can call our view\nand render the viewlet using its manager. \n\n >>> from dolmen.app.layout import master\n >>> from dolmen.app.breadcrumbs import Breadcrumbs\n\n >>> view = getMultiAdapter((app['cave'], request), name=\"simpleview\")\n >>> view\n \n\n\nThe Breadcrumbs viewlet is registered for the `dolmen.app.layout.Top`\nmanager::\n\n >>> manager = master.Top(app['cave'], request, view)\n >>> viewlet = Breadcrumbs(app['cave'], request, view, manager)\n >>> viewlet\n \n\nOur contents have no title yet. If we render the viewlet, it uses the\nlocation in the parent (`__name__`)::\n\n >>> viewlet.update()\n >>> print viewlet.render()\n
\n You are here:\n \n cave\n \n
\n\nIf we set a title, it uses the title::\n\n >>> app['cave'].title = u\"My cave with a fireplace\"\n\n >>> viewlet.update() \n >>> print viewlet.render()\n
\n You are here:\n \n My cave with a fireplace\n \n
\n\nIt works with all kind of objects although the title will only be used\nfor objects providing `dolmen.content.IBaseContent`::\n\n >>> app['cave']['pot']['bone'] = object()\n >>> bone = app['cave']['pot']['bone']\n >>> viewlet = Breadcrumbs(bone, request, view, manager)\n\n >>> viewlet.update()\n >>> print viewlet.render()\n
\n You are here:\n \n My cave with a fireplace\n \n \n \n pot\n \n \n \n bone\n \n
\n\nIf the object is not locatable, we raise a TypeError::\n\n >>> unlocatable = Container()\n >>> viewlet = Breadcrumbs(unlocatable, request, view, manager)\n >>> viewlet.update()\n Traceback (most recent call last):\n ...\n TypeError: There isn't enough context to get URL information. This is probably due to a bug in setting up location information.\n\n\nChangelog\n=========\n\n0.2 (2010-02-26)\n----------------\n\n* The Breadcrumbs now uses an adaptation to the ``zope.dublincore``\n `IDCDescriptiveProperties` interface in order to provide a name. The\n base multi adapter is registered for\n ``zope.location`` `ILocation`. Therefore, the Breadcrumbs is no longer\n limited to ``dolmen.content`` `IBaseContent` components.\n\n* The dependencies have been greatly cleaned. We are now using a ``Grok\n 1.1rc1`` version of the ZTK. We no longer depend on zope.app packages.\n\n* Updated the IAbsoluteUrl component to match the changes in\n ``zope.traversing``. The View has been removed and replace by a\n simple MultiAdapter providing IAbsoluteUrl.\n\n\n0.1 (2009-11-08)\n----------------\n\n* Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://gitweb.dolmen-project.org", "keywords": "Grok Zope3 CMS Dolmen", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "dolmen.app.breadcrumbs", "package_url": "https://pypi.org/project/dolmen.app.breadcrumbs/", "platform": "Any", "project_url": "https://pypi.org/project/dolmen.app.breadcrumbs/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://gitweb.dolmen-project.org" }, "release_url": "https://pypi.org/project/dolmen.app.breadcrumbs/0.2/", "requires_dist": null, "requires_python": null, "summary": "Breadcrumbs navigation for Dolmen applications.", "version": "0.2" }, "last_serial": 791317, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "879a02cf591c2e261c31efbe14c12325", "sha256": "4fa7b600d033e4c714dadb0e0bd5620f38f7cbe160e021fe35b0a007c257cc91" }, "downloads": -1, "filename": "dolmen.app.breadcrumbs-0.1.tar.gz", "has_sig": false, "md5_digest": "879a02cf591c2e261c31efbe14c12325", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4838, "upload_time": "2009-11-08T00:25:52", "url": "https://files.pythonhosted.org/packages/cd/8c/d45441322b9c27b9ffb73f750e0aa89668be5271ef6661dfae308b7237af/dolmen.app.breadcrumbs-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "adf09390acafc7b10741c70e5a43fc73", "sha256": "91ab91693eb92493ef06d429119f0807e07a557dac90b28f9a5700af7d176e31" }, "downloads": -1, "filename": "dolmen.app.breadcrumbs-0.2.tar.gz", "has_sig": false, "md5_digest": "adf09390acafc7b10741c70e5a43fc73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6742, "upload_time": "2010-02-26T01:04:09", "url": "https://files.pythonhosted.org/packages/8e/dd/1fa477474c04b3d5f0857ac85bf3c02668ec33d2ebf791ca7b7f1e6d49b2/dolmen.app.breadcrumbs-0.2.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "a49615615c5fc2092cc2ebca9e1d410d", "sha256": "1bb01987e2031b3271e10196cf8e455f30a422aa1d0320253fe5653068e97d37" }, "downloads": -1, "filename": "dolmen.app.breadcrumbs-1.0b1.tar.gz", "has_sig": false, "md5_digest": "a49615615c5fc2092cc2ebca9e1d410d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7008, "upload_time": "2010-07-08T12:24:15", "url": "https://files.pythonhosted.org/packages/c8/e8/a07e08927041f23d10bac310a03ff6b32a25f0a118c7698821b16f9518fa/dolmen.app.breadcrumbs-1.0b1.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "09eaae4df217ef9cd6c7c56229580d10", "sha256": "a7f78a6ab607b90d2e36541e3352ab125e7c400a8527ff31ff96aa7169ee8d4a" }, "downloads": -1, "filename": "dolmen.app.breadcrumbs-1.0b2.tar.gz", "has_sig": false, "md5_digest": "09eaae4df217ef9cd6c7c56229580d10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7250, "upload_time": "2011-01-18T15:04:14", "url": "https://files.pythonhosted.org/packages/00/5b/327c1b4d00e3a4857484752ddb6a7289fecf5bffdb09f02510c2be92cc13/dolmen.app.breadcrumbs-1.0b2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "adf09390acafc7b10741c70e5a43fc73", "sha256": "91ab91693eb92493ef06d429119f0807e07a557dac90b28f9a5700af7d176e31" }, "downloads": -1, "filename": "dolmen.app.breadcrumbs-0.2.tar.gz", "has_sig": false, "md5_digest": "adf09390acafc7b10741c70e5a43fc73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6742, "upload_time": "2010-02-26T01:04:09", "url": "https://files.pythonhosted.org/packages/8e/dd/1fa477474c04b3d5f0857ac85bf3c02668ec33d2ebf791ca7b7f1e6d49b2/dolmen.app.breadcrumbs-0.2.tar.gz" } ] }