[Checkins] SVN: z3c.menu.ready2go/trunk/s Make the template
pluggable with z3c.template pattern
Roger Ineichen
roger at projekt01.ch
Fri Feb 15 08:34:42 EST 2008
Log message for revision 83857:
Make the template pluggable with z3c.template pattern
Register default template for menu item
Reflect changes in tests
Changed:
U z3c.menu.ready2go/trunk/setup.py
U z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/README.txt
A z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/browser.zcml
U z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/configure.zcml
U z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py
U z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/zcml.txt
-=-
Modified: z3c.menu.ready2go/trunk/setup.py
===================================================================
--- z3c.menu.ready2go/trunk/setup.py 2008-02-15 13:18:18 UTC (rev 83856)
+++ z3c.menu.ready2go/trunk/setup.py 2008-02-15 13:34:41 UTC (rev 83857)
@@ -60,6 +60,7 @@
install_requires = [
'setuptools',
'z3c.i18n',
+ 'z3c.template',
'zope.app.component',
'zope.app.pagetemplate',
'zope.schema',
Modified: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/README.txt
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/README.txt 2008-02-15 13:18:18 UTC (rev 83856)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/README.txt 2008-02-15 13:34:41 UTC (rev 83857)
@@ -5,9 +5,22 @@
The z3c.menu.ready2go package provides a menu implementation which allows you
to implement menus based on content providers and viewlets.
-Let's see what this means.
+First let's setup our defualt menu item template:
+ >>> import os
+ >>> import zope.component
+ >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+ >>> from zope.publisher.interfaces.browser import IBrowserView
+ >>> from z3c.template.interfaces import IContentTemplate
+ >>> from z3c.template.template import TemplateFactory
+ >>> import z3c.menu.ready2go
+ >>> baseDir = os.path.split(z3c.menu.ready2go.__file__)[0]
+ >>> itemTemplate = os.path.join(baseDir, 'item.pt')
+ >>> itemTemplateFactory = TemplateFactory(itemTemplate, 'text/html')
+ >>> zope.component.provideAdapter(itemTemplateFactory,
+ ... (IBrowserView, IDefaultBrowserLayer), IContentTemplate)
+
Global Menu
-----------
@@ -54,7 +67,6 @@
We also need our checker adapter which can check if a menu item is available
and/or selected:
- >>> import zope.component
>>> from z3c.menu.ready2go import checker
>>> zope.component.provideAdapter(checker.GlobalSelectedChecker)
>>> zope.component.provideAdapter(checker.SiteSelectedChecker)
@@ -97,7 +109,6 @@
And we need a view which knows about it's parent:
- >>> from zope.publisher.interfaces.browser import IBrowserView
>>> class View(contained.Contained):
...
... zope.interface.implements(IBrowserView)
@@ -139,8 +150,6 @@
Now we register a context menu item for our IGlobalMenu:
- >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer
-
>>> from z3c.menu.ready2go.item import GlobalMenuItem
>>> class MyGlobalMenuItem(GlobalMenuItem):
...
Added: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/browser.zcml
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/browser.zcml (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/browser.zcml 2008-02-15 13:34:41 UTC (rev 83857)
@@ -0,0 +1,13 @@
+<configure
+ xmlns:zope="http://namespaces.zope.org/zope"
+ xmlns="http://namespaces.zope.org/browser"
+ xmlns:z3c="http://namespaces.zope.org/z3c"
+ i18n_domain="z3c">
+
+ <z3c:template
+ template="item.pt"
+ for=".item.MenuItem"
+ layer="zope.publisher.interfaces.browser.IBrowserRequest"
+ />
+
+</configure>
Property changes on: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/browser.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/configure.zcml
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/configure.zcml 2008-02-15 13:18:18 UTC (rev 83856)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/configure.zcml 2008-02-15 13:34:41 UTC (rev 83857)
@@ -13,4 +13,6 @@
factory=".checker.ContextSelectedChecker"
/>
+ <include file="browser.zcml" />
+
</configure>
Modified: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py 2008-02-15 13:18:18 UTC (rev 83856)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py 2008-02-15 13:34:41 UTC (rev 83857)
@@ -22,8 +22,8 @@
from zope.viewlet import viewlet
from zope.app.component import hooks
-from zope.app.pagetemplate import ViewPageTemplateFile
+from z3c.template.template import getPageTemplate
from z3c.menu.ready2go import interfaces
@@ -31,7 +31,7 @@
class MenuItem(viewlet.ViewletBase):
"""Menu item base."""
- template = ViewPageTemplateFile('item.pt')
+ template = getPageTemplate()
# internal approved values
approved = False
Modified: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/zcml.txt
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/zcml.txt 2008-02-15 13:18:18 UTC (rev 83856)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/zcml.txt 2008-02-15 13:34:41 UTC (rev 83857)
@@ -5,6 +5,21 @@
Show how we can use the menu directive. Register the meta configuration for
the directive.
+First let's setup our defualt menu item template first:
+
+ >>> import os
+ >>> import zope.component
+ >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+ >>> from zope.publisher.interfaces.browser import IBrowserView
+ >>> from z3c.template.interfaces import IContentTemplate
+ >>> from z3c.template.template import TemplateFactory
+ >>> import z3c.menu.ready2go
+ >>> baseDir = os.path.split(z3c.menu.ready2go.__file__)[0]
+ >>> itemTemplate = os.path.join(baseDir, 'item.pt')
+ >>> itemTemplateFactory = TemplateFactory(itemTemplate, 'text/html')
+ >>> zope.component.provideAdapter(itemTemplateFactory,
+ ... (IBrowserView, IDefaultBrowserLayer), IContentTemplate)
+
>>> import sys
>>> from zope.configuration import xmlconfig
>>> import z3c.menu.ready2go
More information about the Checkins
mailing list