[Checkins] SVN: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/ Added ISiteMenu

Roger Ineichen roger at projekt01.ch
Sun Dec 30 22:54:31 EST 2007


Log message for revision 82615:
  Added ISiteMenu
  Changed getURLContext for GlobalMenu
  
  Note:
  The global menu item uses the ZOEB root as url context
  and the site menu uses the nearest site as url context

Changed:
  U   z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py
  U   z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/interfaces.py
  U   z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py

-=-
Modified: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py	2007-12-31 01:44:21 UTC (rev 82614)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py	2007-12-31 03:54:30 UTC (rev 82615)
@@ -22,6 +22,10 @@
     """CSS viewlet manager."""
 
 
+class ISiteMenu(interfaces.IMenuManager):
+    """CSS viewlet manager."""
+
+
 class IContextMenu(interfaces.IMenuManager):
     """CSS viewlet manager."""
 

Modified: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/interfaces.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/interfaces.py	2007-12-31 01:44:21 UTC (rev 82614)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/interfaces.py	2007-12-31 03:54:30 UTC (rev 82615)
@@ -107,6 +107,10 @@
 
 
 class IGlobalMenuItem(IMenuItem):
+    """Menu item with ZODB application root as url base."""
+
+
+class ISiteMenuItem(IMenuItem):
     """Menu item with nearest site as url base."""
 
 

Modified: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py	2007-12-31 01:44:21 UTC (rev 82614)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py	2007-12-31 03:54:30 UTC (rev 82615)
@@ -17,7 +17,9 @@
 __docformat__ = "reStructuredText"
 
 import zope.interface
+from zope.traversing.api import getRoot
 from zope.traversing.browser import absoluteURL
+
 from zope.viewlet import viewlet
 from zope.app.component import hooks
 from zope.app.pagetemplate import ViewPageTemplateFile
@@ -58,9 +60,9 @@
 
     @property
     def selected(self):
+        """Selected if context and view interfaces compares."""
         if self.viewInterface.providedBy(self.__parent__) and \
-            self.contextInterface.providedBy(self.__parent__.context) and \
-            self.__parent__.__name__ == self.viewName:
+            self.contextInterface.providedBy(self.__parent__.context):
             return True
         return False
 
@@ -75,7 +77,7 @@
         return self.subMenuProviderName
 
     def getURLContext(self):
-        return hooks.getSite()
+        return getRoot(self.context)
 
     def render(self):
         """Return the template with the option 'menus'"""
@@ -97,6 +99,12 @@
             return True
         return False
 
+
+class SiteMenuItem(MenuItem):
+    """Site menu item."""
+
+    zope.interface.implements(interfaces.IGlobalMenuItem)
+
     def getURLContext(self):
         return hooks.getSite()
 
@@ -106,6 +114,15 @@
 
     zope.interface.implements(interfaces.IContextMenuItem)
 
+    @property
+    def selected(self):
+        """Selected if also view name compares."""
+        if self.viewInterface.providedBy(self.__parent__) and \
+            self.contextInterface.providedBy(self.__parent__.context) and \
+            self.__parent__.__name__ == self.viewName:
+            return True
+        return False
+
     def getURLContext(self):
         return self.context
 



More information about the Checkins mailing list