[Zope] template / context question
Erik Myllymaki
erik.myllymaki at aviawest.com
Fri Jun 20 13:56:01 EDT 2008
I am trying to separate out small bits of HTML that are used on many
pages of a site.
In one case I use a secondary navigation on some pages in the right
column that is supposed to look in the containing folder's sub-folders
and list the Page Templates that is finds there.
I create a folder called /templates/widgets and within there I have a
Page Template called template-lister.
<h2><strong>Quick Links</strong></h2>
<ul tal:define="ztu modules/ZTUtils;
raw python:context.objectValues('Folder');
location_folder_list python:ztu.LazyFilter(raw, skip='View')">
<li tal:repeat="location_folder location_folder_list">
<a href="" tal:attributes="href location_folder/absolute_url"
tal:content="location_folder/title">Location Title</a>
<span tal:define="raw
python:location_folder.objectValues('Folder');
office_folder_list
python:ztu.LazyFilter(raw, skip='View')">
<span tal:repeat="office_folder office_folder_list">
<span tal:content="office_folder/title" >title</span>
<ul tal:define="raw
python:office_folder.objectValues('Page Template');
posting_list
python:ztu.LazyFilter(raw, skip='View')">
<li tal:repeat="posting posting_list"
tal:condition="posting_list">
<a href="" tal:attributes="href posting/absolute_url"
tal:content="posting/title">Posting Title</a>
</li>
<li tal:condition="not: posting_list">
No Postings at this time
</li>
</ul>
</span>
</span>
</li>
</ul>
If I put this code directly in each Page Template that uses it, it works
fine, but when removed from each Page Template and called like so:
<span tal:content="structure context/templates/widgets/template-lister"
tal:omit-tag="" />
it uses the context of the "/templates/widgets" folder and does not work.
Because this bit of TAL is used on many pages and the style of it
changes often, I really want to pull it out into one place for easy
updating.
I know I am missing something elemental here ...
Thanks for any advice.
More information about the Zope
mailing list