[Checkins] SVN: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ Support macro access from page template pages through __getitem__ protocol.

Philipp von Weitershausen philikon at philikon.de
Sat Apr 22 03:05:11 EDT 2006


Log message for revision 67266:
  Support macro access from page template pages through __getitem__ protocol.
  

Changed:
  U   zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftest.txt
  U   zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftesting.zcml
  A   zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test3.pt
  A   zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test4.pt
  U   zope.browserzcml2/branches/3.2/src/zope/browserzcml2/zcml.py

-=-
Modified: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftest.txt
===================================================================
--- zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftest.txt	2006-04-21 23:50:46 UTC (rev 67265)
+++ zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftest.txt	2006-04-22 07:05:10 UTC (rev 67266)
@@ -99,7 +99,15 @@
   >>> print browser.contents
   Hi, the name's MacGyver.
 
+Pages created like that also support macro access:
 
+  >>> browser = Browser('http://localhost/bz2-usemacrotemplate.html')
+  >>> print browser.headers['status']
+  200 Ok
+  >>> print browser.contents
+  I work at the Phoenix Foundation.
+
+
 Pages from class
 ----------------
 

Modified: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftesting.zcml
===================================================================
--- zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftesting.zcml	2006-04-21 23:50:46 UTC (rev 67265)
+++ zope.browserzcml2/branches/3.2/src/zope/browserzcml2/ftesting.zcml	2006-04-22 07:05:10 UTC (rev 67266)
@@ -52,6 +52,20 @@
       permission="zope.Public"
       />
 
+  <browser2:pageTemplate
+      for="*"
+      name="bz2-macrotemplate.html"
+      template="test3.pt"
+      permission="zope.Public"
+      />
+
+  <browser2:pageTemplate
+      for="*"
+      name="bz2-usemacrotemplate.html"
+      template="test4.pt"
+      permission="zope.Public"
+      />
+
   <browser2:pagesFromClass
       for="*"
       class="zope.browserzcml2.ftests.PhoenixPages"

Added: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test3.pt
===================================================================
--- zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test3.pt	2006-04-21 23:50:46 UTC (rev 67265)
+++ zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test3.pt	2006-04-22 07:05:10 UTC (rev 67266)
@@ -0,0 +1 @@
+<metal:macro define-macro="phoenix">Phoenix Foundation</metal:macro>
\ No newline at end of file


Property changes on: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test3.pt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test4.pt
===================================================================
--- zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test4.pt	2006-04-21 23:50:46 UTC (rev 67265)
+++ zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test4.pt	2006-04-22 07:05:10 UTC (rev 67266)
@@ -0,0 +1 @@
+I work at the <metal:macro use-macro="context/@@bz2-macrotemplate.html/phoenix" />.
\ No newline at end of file


Property changes on: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/test4.pt
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: zope.browserzcml2/branches/3.2/src/zope/browserzcml2/zcml.py
===================================================================
--- zope.browserzcml2/branches/3.2/src/zope/browserzcml2/zcml.py	2006-04-21 23:50:46 UTC (rev 67265)
+++ zope.browserzcml2/branches/3.2/src/zope/browserzcml2/zcml.py	2006-04-22 07:05:10 UTC (rev 67266)
@@ -85,6 +85,8 @@
 
     class TemplatePage(zope.formlib.Page):
         __call__ = ViewPageTemplateFile(template)
+        def __getitem__(self, name):
+            return self.__call__.macros[name]
 
     page(_context, TemplatePage,
          for_, name, permission, layer,



More information about the Checkins mailing list