From 7bc3671d7420b7c3349828d2ba08b1adaf498788 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 19 Nov 2011 10:12:53 +0100 Subject: [PATCH] work in progress: breadcrumbs --- browser/node.py | 14 ++++++++++++-- browser/skin/lobo/body.pt | 8 ++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/browser/node.py b/browser/node.py index fc5aeb3..9c4cc9b 100644 --- a/browser/node.py +++ b/browser/node.py @@ -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 '' diff --git a/browser/skin/lobo/body.pt b/browser/skin/lobo/body.pt index 9d1a66c..6f8f83c 100644 --- a/browser/skin/lobo/body.pt +++ b/browser/skin/lobo/body.pt @@ -26,6 +26,14 @@
+ +
+ + + / +