work in progress: breadcrumbs
This commit is contained in:
		
							parent
							
								
									274c5612b9
								
							
						
					
					
						commit
						7bc3671d74
					
				
					 2 changed files with 20 additions and 2 deletions
				
			
		|  | @ -18,8 +18,6 @@ | ||||||
| 
 | 
 | ||||||
| """ | """ | ||||||
| View class for Node objects. | View class for Node objects. | ||||||
| 
 |  | ||||||
| $Id$ |  | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
| from urlparse import urlparse, urlunparse | 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 import canAccess, canWrite, checkPermission | ||||||
| from zope.security.proxy import removeSecurityProxy | from zope.security.proxy import removeSecurityProxy | ||||||
| from zope.traversing.api import getParent, getParents, getPath | from zope.traversing.api import getParent, getParents, getPath | ||||||
|  | from zope.traversing.browser import absoluteURL | ||||||
| 
 | 
 | ||||||
| from cybertools.ajax import innerHtml | from cybertools.ajax import innerHtml | ||||||
| from cybertools.browser import configurator | from cybertools.browser import configurator | ||||||
|  | @ -92,6 +91,17 @@ class NodeView(BaseView): | ||||||
|         self.recordAccess() |         self.recordAccess() | ||||||
|         return result |         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=''): |     def recordAccess(self, viewName=''): | ||||||
|         target = self.virtualTargetObject |         target = self.virtualTargetObject | ||||||
|         targetUid = target is not None and util.getUidForObject(target) or '' |         targetUid = target is not None and util.getUidForObject(target) or '' | ||||||
|  |  | ||||||
|  | @ -26,6 +26,14 @@ | ||||||
| 
 | 
 | ||||||
|     <div id="content" class="span-6" |     <div id="content" class="span-6" | ||||||
|          metal:define-macro="content"> |          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="actions"></div> | ||||||
|       <div metal:define-slot="message"></div> |       <div metal:define-slot="message"></div> | ||||||
|       <metal:content define-slot="content"> |       <metal:content define-slot="content"> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue