work in progress: breadcrumbs

This commit is contained in:
Helmut Merz 2011-11-19 10:12:53 +01:00
parent 274c5612b9
commit 7bc3671d74
2 changed files with 20 additions and 2 deletions

View file

@ -18,8 +18,6 @@
"""
View class for Node objects.
$Id$
"""
from urlparse import urlparse, urlunparse
@ -42,6 +40,7 @@ from zope.publisher.defaultview import getDefaultViewName
from zope.security import canAccess, canWrite, checkPermission
from zope.security.proxy import removeSecurityProxy
from zope.traversing.api import getParent, getParents, getPath
from zope.traversing.browser import absoluteURL
from cybertools.ajax import innerHtml
from cybertools.browser import configurator
@ -92,6 +91,17 @@ class NodeView(BaseView):
self.recordAccess()
return result
def breadcrumbs(self):
if not self.globalOptions('showBreadcrumbs'):
return []
menu = self.menu
data = [dict(label=menu.title, url=menu.url)]
menuItem = self.nearestMenuItem
if menuItem != menu.context:
data.append(dict(label=menuItem.title,
url=absoluteURL(menuItem, self.request)))
return data
def recordAccess(self, viewName=''):
target = self.virtualTargetObject
targetUid = target is not None and util.getUidForObject(target) or ''

View file

@ -26,6 +26,14 @@
<div id="content" class="span-6"
metal:define-macro="content">
<metal:breadcrumbs define-slot="breadcrumbs">
<div tal:define="crumbs view/breadcrumbs"
tal:condition="crumbs">
<span tal:repeat="crumb crumbs">
<a tal:attributes="href crumb/url"
tal:content="crumb/label" />
<span tal:condition="not:repeat/crumb/end"> / </span></span>
</div></metal:breadcrumbs>
<div metal:define-slot="actions"></div>
<div metal:define-slot="message"></div>
<metal:content define-slot="content">