[CMF-checkins] CVS: Products/CMFDecor/skins/zpt_generic - searchQueryString.py:1.1 actions_box.pt:1.5 content_byline.pt:1.4 discussion_reply_form.pt:1.4 discussion_reply_preview.pt:1.2 folder_add.pt:1.2 folder_contents.pt:1.6 folder_factories.pt:1.3 folder_filter_form.pt:1.2 folder_rename_form.pt:1.2 index_html.pt:1.3 join_form.pt:1.5 logged_in.pt:1.3 logged_out.pt:1.2 login_form.pt:1.2 mail_password_form.pt:1.2 mail_password_response.pt:1.2 main_template.pt:1.7 metadata_help.pt:1.2 news_box.pt:1.3 password_form.pt:1.2 personalize_form.pt:1.2 recent_news.pt:1.3 reconfig_form.pt:1.2 registered.pt:1.2 roster.pt:1.2 rssDisabled.pt:1.2 search.pt:1.6 search_form.pt:1.3 simple_metadata.pt:1.2 talkback_tree.pt:1.2
Tres Seaver
tseaver@zope.com
Thu, 9 Aug 2001 10:20:03 -0400
Update of /cvs-repository/Products/CMFDecor/skins/zpt_generic
In directory cvs.zope.org:/tmp/cvs-serv10935/zpt_generic
Modified Files:
actions_box.pt content_byline.pt discussion_reply_form.pt
discussion_reply_preview.pt folder_add.pt folder_contents.pt
folder_factories.pt folder_filter_form.pt
folder_rename_form.pt index_html.pt join_form.pt logged_in.pt
logged_out.pt login_form.pt mail_password_form.pt
mail_password_response.pt main_template.pt metadata_help.pt
news_box.pt password_form.pt personalize_form.pt
recent_news.pt reconfig_form.pt registered.pt roster.pt
rssDisabled.pt search.pt search_form.pt simple_metadata.pt
talkback_tree.pt
Added Files:
searchQueryString.py
Log Message:
- Remove carriage returns.
- zpt_generic/search.pt: enable full search, as well as default
(remove dependency on request/SearchableText). Uses new
PythonScript, zpt_generic/searchQueryString.py, to build
"Next" and "Previous" batching links.
=== Added File Products/CMFDecor/skins/zpt_generic/searchQueryString.py ===
## Script (Python) "searchQueryString.py $Revision: 1.1 $"
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=**kw
##title=Build search query string
##
#from urllib import urlencode # no security assertions :(
import string
req=context.REQUEST
kw.update( req.form )
#return urlencode( kw )
tokens=[]
for kv in kw.items():
tokens.append( '%s=%s' % kv )
return '?' + string.join( tokens, '&' )
=== Products/CMFDecor/skins/zpt_generic/actions_box.pt 1.4 => 1.5 ===
-<div tal:define="isAnon python:here.portal_membership.isAnonymousUser();
- AuthClass python:isAnon and 'GuestActions' or 'MemberActions';
- uname python: isAnon and 'Guest' or here.portal_membership.getAuthenticatedMember().getUserName();
- actions python:here.portal_actions.listFilteredActionsFor(here);
- user_actions python:actions['user'];
- folder_actions python:actions['folder'];
- object_actions python:(actions['object'] + actions['workflow']);
- global_actions python:actions['global']">
-<table class="ActionBox" width="100%">
- <tbody tal:condition="object_actions">
- <tr class=""
- tal:attributes="class AuthClass">
- <td class="ActionTitle"
- tal:define="getIcon python:hasattr(here, 'getIcon') and here.getIcon();
- icon python:getIcon or getattr(here, 'icon', '');
- typ python:getattr(here, 'Type', '');
- objID python:here.getId()">
- <img src=""
- tal:condition="icon" align="left" alt="Type"
- tal:attributes="src python:'%s/%s' % (here.portal_url(), icon); alt typ" />
- <span tal:replace="structure python: here.truncID(objID, size=15)">ObjectID</span>
- </td>
- </tr>
- <tr class=""
- tal:attributes="class AuthClass">
- <td tal:define="review_state python:here.portal_workflow.getInfoFor(here, 'review_state', '')">
- <span tal:condition="review_state">Status: <span tal:replace="review_state">Private</span><br></span>
- <span tal:repeat="action object_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
- </td>
- </tr>
-</tbody>
-<tr class=""
- tal:attributes="class AuthClass"
- tal:condition="folder_actions">
- <td>
- <span tal:repeat="action folder_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
- </td>
- </tr>
- <tr class=""
- tal:attributes="class AuthClass"
- tal:condition="global_actions">
- <td>
- <span tal:repeat="action global_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
-
- </td>
- </tr>
-</table>
-</div>
-</div>
+<div metal:define-macro="actions">
+<div tal:define="isAnon python:here.portal_membership.isAnonymousUser();
+ AuthClass python:isAnon and 'GuestActions' or 'MemberActions';
+ uname python: isAnon and 'Guest' or here.portal_membership.getAuthenticatedMember().getUserName();
+ actions python:here.portal_actions.listFilteredActionsFor(here);
+ user_actions python:actions['user'];
+ folder_actions python:actions['folder'];
+ object_actions python:(actions['object'] + actions['workflow']);
+ global_actions python:actions['global']">
+<table class="ActionBox" width="100%">
+ <tbody tal:condition="object_actions">
+ <tr class=""
+ tal:attributes="class AuthClass">
+ <td class="ActionTitle"
+ tal:define="getIcon python:hasattr(here, 'getIcon') and here.getIcon();
+ icon python:getIcon or getattr(here, 'icon', '');
+ typ python:getattr(here, 'Type', '');
+ objID python:here.getId()">
+ <img src=""
+ tal:condition="icon" align="left" alt="Type"
+ tal:attributes="src python:'%s/%s' % (here.portal_url(), icon); alt typ" />
+ <span tal:replace="structure python: here.truncID(objID, size=15)">ObjectID</span>
+ </td>
+ </tr>
+ <tr class=""
+ tal:attributes="class AuthClass">
+ <td tal:define="review_state python:here.portal_workflow.getInfoFor(here, 'review_state', '')">
+ <span tal:condition="review_state">Status: <span tal:replace="review_state">Private</span><br></span>
+ <span tal:repeat="action object_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
+ </td>
+ </tr>
+</tbody>
+<tr class=""
+ tal:attributes="class AuthClass"
+ tal:condition="folder_actions">
+ <td>
+ <span tal:repeat="action folder_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
+ </td>
+ </tr>
+ <tr class=""
+ tal:attributes="class AuthClass"
+ tal:condition="global_actions">
+ <td>
+ <span tal:repeat="action global_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action</a><br></span>
+
+ </td>
+ </tr>
+</table>
+</div>
+</div>
=== Products/CMFDecor/skins/zpt_generic/content_byline.pt 1.3 => 1.4 ===
- tal:define="creator here/Creator; home_url python: here.portal_membership.getHomeUrl(creator)"
- tal:condition="home_url">
- Created by <span class="Desktop"><a href="here.html" title="Here"
- tal:attributes="href home_url; title creator"
- tal:content="creator">Me</a>.</span>
- <span tal:condition="python: not(home_url)"
- tal:replace="creator">Me</span>
- <br>
- <span tal:condition="here/ModificationDate">
- Last modified on <span tal:content="here/ModificationDate">Today</span>
- </span>
+<div class="Desktop" metal:define-macro="byline"
+ tal:define="creator here/Creator; home_url python: here.portal_membership.getHomeUrl(creator)"
+ tal:condition="home_url">
+ Created by <span class="Desktop"><a href="here.html" title="Here"
+ tal:attributes="href home_url; title creator"
+ tal:content="creator">Me</a>.</span>
+ <span tal:condition="python: not(home_url)"
+ tal:replace="creator">Me</span>
+ <br>
+ <span tal:condition="here/ModificationDate">
+ Last modified on <span tal:content="here/ModificationDate">Today</span>
+ </span>
</div>
=== Products/CMFDecor/skins/zpt_generic/discussion_reply_form.pt 1.3 => 1.4 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div tal:define="dummy python:here.portal_discussion.getDiscussionFor(here)">This is evaluated.</div>
-
-<form method="POST" action=""
- tal:attributes="action python: here.absolute_url() + '/talkback'">
-<input type="hidden" name="Creator" value=""
- tal:attributes="value python: here.portal_membership.getAuthenticatedMember()">
-
-<table class="FormLayout">
- <tr>
- <th align="left">Subject (Title)</th>
- <td><input name="title" value=""
- tal:attributes="value here/title_override|here/title">
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <b>Reply body</b><br>
- <textarea name="text" cols="70" rows="10" wrap="soft" style="width: 100%"
- tal:content="here/text_override | nothing"></textarea>
- </td>
- </tr>
- <tr>
- <td></td>
- <td>
- <input type="submit" value="Preview" name=""
- tal:define="hId here/getId"
- tal:attributes="name python: hId + '/discussion_reply_preview:method'">
- <input type="submit" value="Reply" name=""
- tal:attributes="name string:discussion_reply:method">
- </td>
- </tr>
-</table>
-</form>
-</div>
-</body>
-</html>
-
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div tal:define="dummy python:here.portal_discussion.getDiscussionFor(here)">This is evaluated.</div>
+
+<form method="POST" action=""
+ tal:attributes="action python: here.absolute_url() + '/talkback'">
+<input type="hidden" name="Creator" value=""
+ tal:attributes="value python: here.portal_membership.getAuthenticatedMember()">
+
+<table class="FormLayout">
+ <tr>
+ <th align="left">Subject (Title)</th>
+ <td><input name="title" value=""
+ tal:attributes="value here/title_override|here/title">
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <b>Reply body</b><br>
+ <textarea name="text" cols="70" rows="10" wrap="soft" style="width: 100%"
+ tal:content="here/text_override | nothing"></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <input type="submit" value="Preview" name=""
+ tal:define="hId here/getId"
+ tal:attributes="name python: hId + '/discussion_reply_preview:method'">
+ <input type="submit" value="Reply" name=""
+ tal:attributes="name string:discussion_reply:method">
+ </td>
+ </tr>
+</table>
+</form>
+</div>
+</body>
+</html>
+
=== Products/CMFDecor/skins/zpt_generic/discussion_reply_preview.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-
-<h3 tal:content="python: request.form['title']"></h3>
-
-<div tal:define="pss modules/Products.PythonScripts.standard"
- tal:replace="structure python: pss.structured_text(request.form['text'])">Text Body</div>
-
-<form method="POST" action=""
- tal:attributes="action python: here.absolute_url() + '/talkback'">
- <input type="hidden" name="title" value=""
- tal:attributes="value python: request.form['title']">
- <input type="hidden" name="text" value=""
- tal:attributes="value python: request.form['text']">
- <input type="hidden" name="title_override" value=""
- tal:attributes="value python: request.form['title']">
- <input type="hidden" name="text_override" value=""
- tal:attributes="value python: request.form['text']">
- <input type="hidden" name="Creator" value=""
- tal:attributes="value python: here.portal_membership.getAuthenticatedMember()">
- <table><tr>
- <td width="15%"></td>
- <td>
- <input type="submit" value="Edit" name=""
- tal:define="hId here/getId"
- tal:attributes="name python: hId + '/discussion_reply_form:method'">
- <input type="submit" value="Reply" name="discussion_reply:method">
- </td>
- </tr></table>
-</form>
-</div>
-</body>
-</html>
-
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+
+<h3 tal:content="python: request.form['title']"></h3>
+
+<div tal:define="pss modules/Products.PythonScripts.standard"
+ tal:replace="structure python: pss.structured_text(request.form['text'])">Text Body</div>
+
+<form method="POST" action=""
+ tal:attributes="action python: here.absolute_url() + '/talkback'">
+ <input type="hidden" name="title" value=""
+ tal:attributes="value python: request.form['title']">
+ <input type="hidden" name="text" value=""
+ tal:attributes="value python: request.form['text']">
+ <input type="hidden" name="title_override" value=""
+ tal:attributes="value python: request.form['title']">
+ <input type="hidden" name="text_override" value=""
+ tal:attributes="value python: request.form['text']">
+ <input type="hidden" name="Creator" value=""
+ tal:attributes="value python: here.portal_membership.getAuthenticatedMember()">
+ <table><tr>
+ <td width="15%"></td>
+ <td>
+ <input type="submit" value="Edit" name=""
+ tal:define="hId here/getId"
+ tal:attributes="name python: hId + '/discussion_reply_form:method'">
+ <input type="submit" value="Reply" name="discussion_reply:method">
+ </td>
+ </tr></table>
+</form>
+</div>
+</body>
+</html>
+
=== Products/CMFDecor/skins/zpt_generic/folder_add.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-<H1>Add Folder</H1>
-
-<P> A Folder contains other objects. Use Folders to organize your
- web objects in to logical groups.</P>
-
-<FORM ACTION="manage_addPortalFolder" METHOD="POST">
-<TABLE class="FormLayout">
- <TR>
- <TD>
- <STRONG>Id</STRONG>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <INPUT TYPE="TEXT" NAME="id" SIZE="40">
- </TD>
- </TR>
- <TR>
- <TD>
- <EM><STRONG>Title</STRONG></EM>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <INPUT TYPE="TEXT" NAME="title" SIZE="40">
- </TD>
- </TR>
- <TR><TD COLSPAN="2"><BR></TD></TR>
- <TR>
- <TD><br></TD>
- <TD>
- <BR><INPUT TYPE="SUBMIT" VALUE=" Add ">
- </TD>
- </TR>
-</TABLE>
-</form>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div class="Desktop">
+<H1>Add Folder</H1>
+
+<P> A Folder contains other objects. Use Folders to organize your
+ web objects in to logical groups.</P>
+
+<FORM ACTION="manage_addPortalFolder" METHOD="POST">
+<TABLE class="FormLayout">
+ <TR>
+ <TD>
+ <STRONG>Id</STRONG>
+ </TD>
+ <TD ALIGN="LEFT" VALIGN="TOP">
+ <INPUT TYPE="TEXT" NAME="id" SIZE="40">
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <EM><STRONG>Title</STRONG></EM>
+ </TD>
+ <TD ALIGN="LEFT" VALIGN="TOP">
+ <INPUT TYPE="TEXT" NAME="title" SIZE="40">
+ </TD>
+ </TR>
+ <TR><TD COLSPAN="2"><BR></TD></TR>
+ <TR>
+ <TD><br></TD>
+ <TD>
+ <BR><INPUT TYPE="SUBMIT" VALUE=" Add ">
+ </TD>
+ </TR>
+</TABLE>
+</form>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/folder_contents.pt 1.5 => 1.6 ===
-
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
- <div tal:condition="python: not(here.portal_membership.checkPermission('List folder contents', here))">
- <span tal:define="redirect python: request.RESPONSE.redirect(here.absolute_url())"></span>
- </div>
-
-<!-- This is the desktop area -->
-<div class="Desktop">
-
-<h1> Desktop </h1>
-
-<form action="" METHOD="POST"
- tal:attributes="action here/absolute_url">
- <table class="FormLayout">
- <tr>
- <td valign="top">
- <table class="ContentsList">
- <tbody tal:condition="python: here.portal_membership.checkPermission('List folder contents', here, 'aq_parent')">
- <tr valign="top"
- tal:define="upNav python: hasattr(here.aq_parent, 'portal_url');
- upID python: here.aq_parent.getId()">
- <td colspan="3" align="left">
- <span tal:condition="upNav|nothing"><a href="../folder_contents"><img src="" alt="[Link]" border="0"
- tal:attributes="src python: here.portal_url() + '/UpFolder_icon.gif'"></a>
- </span>
- <span tal:condition="upNav">Up to <a href="../folder_contents" tal:content="upID">Up ID</a></span>
- <span tal:condition="python: not(upNav)"><span class="mild">Root</span></span>
- </td>
- </tr>
- </tbody>
- <tr><td colspan="1" align="left" width="49%">
- <table>
- <tbody tal:define="global b_start string:0;b_start request/b_start | b_start;
- filterString python: request.get('folderfilter', '');
- filter python: here.decodeFolderFilter(filterString);
- items python: here.listFolderContents(contentFilter=filter);
- Batch python:modules['ZTUtils'].Batch;
- global batch python:Batch(items, 8, int(b_start), orphan=0);
- global batch1 batch/next">
- <tr align="top"
- tal:repeat="items batch">
- <td align="left" width="5" NOWRAP
- tal:define="folderish items/isPrincipiaFolderish;
- portalish items/isPortalContent|nothing;
- global methodID python: folderish and 'folder_contents' or (portalish and 'view' or '');
- global icon items/getIcon|items/icon|nothing">
- <input type="checkbox" name="ids:list" value="" id=""
- tal:attributes="value items/getId; id python: 'cb_' + items.getId()" />
- </td>
- <td>
- <span tal:condition="icon">
- <a href=""
- tal:attributes="href python: items.getId() + '/' + methodID">
- <img src="" alt="" border="0"
- tal:attributes="src python: here.portal_url() + '/' + icon;
- alt items/Type|nothing"></a>
- </span>
- </td>
- <td>
- <a href=""
- tal:attributes="href python: items.getId() + '/' + methodID"><span tal:replace="items/getId">ID
- <span tal:condition="items/title"
- tal:replace="python: '(' + items.title() + ')'">(Title)</span></span></a>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- <td width="2%"> </td>
- <td colspan="1" width="49%">
- <table>
- <tr align="top"
- tal:repeat="items batch1">
- <td align="left" width="5" NOWRAP
- tal:define="folderish items/isPrincipiaFolderish;
- portalish items/isPortalContent|nothing;
- global methodID python: folderish and 'folder_contents' or (portalish and 'view' or '');
- global icon items/getIcon|items/icon|nothing">
- <input type="checkbox" name="ids:list" value="" id=""
- tal:attributes="value items/getId; id python: 'cb_' + items.getId()" />
- </td>
- <td>
- <span tal:condition="icon">
- <a href=""
- tal:attributes="href python: items.getId() + '/' + methodID">
- <img src="" alt="" border="0"
- tal:attributes="src python: here.portal_url() + '/' + icon;
- alt items/Type|nothing"></a>
- </span>
- </td>
- <td>
- <a href=""
- tal:attributes="href python: items.getId() + '/' + methodID"><span tal:replace="items/getId">ID
- <span tal:condition="items/title"
- tal:replace="python: '(' + items.title() + ')'">(Title)</span></span></a>
- </td>
- </tr>
- </table>
-
- </tr>
-
-
-
- <tr>
- <td align="left">
- <span tal:define="p batch/previous" tal:condition="p">
- <a href=""
- tal:attributes="href string:?b_start=${p/previous/first}">Previous Items</a>
- </span>
- </td>
-<td> </td>
- <td align="left">
- <span tal:define="n batch1/next|nothing" tal:condition="n">
- <a href=""
- tal:attributes="href string:?b_start=${batch1/end}">Next Items</a>
- </span>
- </td>
- </tr>
-<!-- end cotentList -->
-</table>
-
-<TABLE BORDER="0" CELLSPACING="0" CELLPADDING=2>
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="16"></TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <span tal:condition="python: here.portal_membership.checkPermission('Add portal content', here)">
- <INPUT TYPE="SUBMIT" NAME="folder_factories:method" VALUE="New...">
- </span>
- <span tal:condition="python: here.portal_membership.checkPermission('View management screens', here)">
- <INPUT TYPE="SUBMIT" NAME="folder_rename_form:method" VALUE="Rename">
- <INPUT TYPE="SUBMIT" NAME="folder_cut:method" VALUE="Cut">
- <INPUT TYPE="SUBMIT" NAME="folder_copy:method" VALUE="Copy">
- <span tal:condition="here/cb_dataValid">
- <INPUT TYPE="SUBMIT" NAME="folder_paste:method" VALUE="Paste">
- </span>
- </span>
- <span tal:condition="python: here.portal_membership.checkPermission('Delete objects', here)">
- <INPUT TYPE="SUBMIT" NAME="folder_delete:method" VALUE="Delete">
- </span>
- </TD>
-</TR>
-</TABLE>
-</table>
-</form>
-<span tal:replace="structure here/folder_filter_form">Filter Form Here</span>
-</div>
-</div>
-</body>
-</html>
+<span tal:define="dummy here/filterCookie; desktop python: request.set('isDesktop', 1)"></span>
+
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+ <div tal:condition="python: not(here.portal_membership.checkPermission('List folder contents', here))">
+ <span tal:define="redirect python: request.RESPONSE.redirect(here.absolute_url())"></span>
+ </div>
+
+<!-- This is the desktop area -->
+<div class="Desktop">
+
+<h1> Desktop </h1>
+
+<form action="" METHOD="POST"
+ tal:attributes="action here/absolute_url">
+ <table class="FormLayout">
+ <tr>
+ <td valign="top">
+ <table class="ContentsList">
+ <tbody tal:condition="python: here.portal_membership.checkPermission('List folder contents', here, 'aq_parent')">
+ <tr valign="top"
+ tal:define="upNav python: hasattr(here.aq_parent, 'portal_url');
+ upID python: here.aq_parent.getId()">
+ <td colspan="3" align="left">
+ <span tal:condition="upNav|nothing"><a href="../folder_contents"><img src="" alt="[Link]" border="0"
+ tal:attributes="src python: here.portal_url() + '/UpFolder_icon.gif'"></a>
+ </span>
+ <span tal:condition="upNav">Up to <a href="../folder_contents" tal:content="upID">Up ID</a></span>
+ <span tal:condition="python: not(upNav)"><span class="mild">Root</span></span>
+ </td>
+ </tr>
+ </tbody>
+ <tr><td colspan="1" align="left" width="49%">
+ <table>
+ <tbody tal:define="global b_start string:0;b_start request/b_start | b_start;
+ filterString python: request.get('folderfilter', '');
+ filter python: here.decodeFolderFilter(filterString);
+ items python: here.listFolderContents(contentFilter=filter);
+ Batch python:modules['ZTUtils'].Batch;
+ global batch python:Batch(items, 8, int(b_start), orphan=0);
+ global batch1 batch/next">
+ <tr align="top"
+ tal:repeat="items batch">
+ <td align="left" width="5" NOWRAP
+ tal:define="folderish items/isPrincipiaFolderish;
+ portalish items/isPortalContent|nothing;
+ global methodID python: folderish and 'folder_contents' or (portalish and 'view' or '');
+ global icon items/getIcon|items/icon|nothing">
+ <input type="checkbox" name="ids:list" value="" id=""
+ tal:attributes="value items/getId; id python: 'cb_' + items.getId()" />
+ </td>
+ <td>
+ <span tal:condition="icon">
+ <a href=""
+ tal:attributes="href python: items.getId() + '/' + methodID">
+ <img src="" alt="" border="0"
+ tal:attributes="src python: here.portal_url() + '/' + icon;
+ alt items/Type|nothing"></a>
+ </span>
+ </td>
+ <td>
+ <a href=""
+ tal:attributes="href python: items.getId() + '/' + methodID"><span tal:replace="items/getId">ID
+ <span tal:condition="items/title"
+ tal:replace="python: '(' + items.title() + ')'">(Title)</span></span></a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ <td width="2%"> </td>
+ <td colspan="1" width="49%">
+ <table>
+ <tr align="top"
+ tal:repeat="items batch1">
+ <td align="left" width="5" NOWRAP
+ tal:define="folderish items/isPrincipiaFolderish;
+ portalish items/isPortalContent|nothing;
+ global methodID python: folderish and 'folder_contents' or (portalish and 'view' or '');
+ global icon items/getIcon|items/icon|nothing">
+ <input type="checkbox" name="ids:list" value="" id=""
+ tal:attributes="value items/getId; id python: 'cb_' + items.getId()" />
+ </td>
+ <td>
+ <span tal:condition="icon">
+ <a href=""
+ tal:attributes="href python: items.getId() + '/' + methodID">
+ <img src="" alt="" border="0"
+ tal:attributes="src python: here.portal_url() + '/' + icon;
+ alt items/Type|nothing"></a>
+ </span>
+ </td>
+ <td>
+ <a href=""
+ tal:attributes="href python: items.getId() + '/' + methodID"><span tal:replace="items/getId">ID
+ <span tal:condition="items/title"
+ tal:replace="python: '(' + items.title() + ')'">(Title)</span></span></a>
+ </td>
+ </tr>
+ </table>
+
+ </tr>
+
+
+
+ <tr>
+ <td align="left">
+ <span tal:define="p batch/previous" tal:condition="p">
+ <a href=""
+ tal:attributes="href string:?b_start=${p/previous/first}">Previous Items</a>
+ </span>
+ </td>
+<td> </td>
+ <td align="left">
+ <span tal:define="n batch1/next|nothing" tal:condition="n">
+ <a href=""
+ tal:attributes="href string:?b_start=${batch1/end}">Next Items</a>
+ </span>
+ </td>
+ </tr>
+<!-- end cotentList -->
+</table>
+
+<TABLE BORDER="0" CELLSPACING="0" CELLPADDING=2>
+<TR>
+ <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="16"></TD>
+ <TD ALIGN="LEFT" VALIGN="TOP">
+ <span tal:condition="python: here.portal_membership.checkPermission('Add portal content', here)">
+ <INPUT TYPE="SUBMIT" NAME="folder_factories:method" VALUE="New...">
+ </span>
+ <span tal:condition="python: here.portal_membership.checkPermission('View management screens', here)">
+ <INPUT TYPE="SUBMIT" NAME="folder_rename_form:method" VALUE="Rename">
+ <INPUT TYPE="SUBMIT" NAME="folder_cut:method" VALUE="Cut">
+ <INPUT TYPE="SUBMIT" NAME="folder_copy:method" VALUE="Copy">
+ <span tal:condition="here/cb_dataValid">
+ <INPUT TYPE="SUBMIT" NAME="folder_paste:method" VALUE="Paste">
+ </span>
+ </span>
+ <span tal:condition="python: here.portal_membership.checkPermission('Delete objects', here)">
+ <INPUT TYPE="SUBMIT" NAME="folder_delete:method" VALUE="Delete">
+ </span>
+ </TD>
+</TR>
+</TABLE>
+</table>
+</form>
+<span tal:replace="structure here/folder_filter_form">Filter Form Here</span>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/folder_factories.pt 1.2 => 1.3 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master"
- tal:define="dummy python: here.request.set('isDesktop', 1)">
-<body>
-<div metal:fill-slot="main">
-<div tal:condition="python: not(here.portal_membership.checkPermission('Access contents information', here))">
- <span tal:define="dummy here/unauthRedirect"></span>
-</div>
-<div class="Desktop">
-<h1> Add Content </h1>
-<form action="invokeFactory" method="POST">
-<table class="FormLayout">
-<tr>
-<td>
-<table width="100%" class="FormLayout" tal:repeat="item here/allowedContentTypes">
-<tr valign="top">
- <td align="left" width="2%" NOWRAP><input type="radio" name="type_name" value="" id="" tal:attributes="value item/getId; id string:cb_${repeat/item/number}"/>
- </td>
- <td align="left" colspan="2" class="ListName"><label for=""
- tal:attributes="for string:cb_${repeat/item/number}"
- tal:content="item/Type"></label>
- </td>
-</tr>
- <tr valign="top">
- <td colspan="2"> <br> </td>
- <td align="left" class="ListDefinition" tal:content="item/Description"></td>
- </tr>
- </table>
- </td></tr></table>
-
-<table class="FormLayout">
- <tr valign="top">
- <td> <br> </td>
- <td colspan="2" class="TextField"> <strong> ID: </strong>
- <input type="text" name="id" size="20">
- <input type="submit" value="Add"> </td>
- </tr>
-</table>
-</form>
-
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ tal:define="dummy python: here.request.set('isDesktop', 1)">
+<body>
+<div metal:fill-slot="main">
+<div tal:condition="python: not(here.portal_membership.checkPermission('Access contents information', here))">
+ <span tal:define="dummy here/unauthRedirect"></span>
+</div>
+<div class="Desktop">
+<h1> Add Content </h1>
+<form action="invokeFactory" method="POST">
+<table class="FormLayout">
+<tr>
+<td>
+<table width="100%" class="FormLayout" tal:repeat="item here/allowedContentTypes">
+<tr valign="top">
+ <td align="left" width="2%" NOWRAP><input type="radio" name="type_name" value="" id="" tal:attributes="value item/getId; id string:cb_${repeat/item/number}"/>
+ </td>
+ <td align="left" colspan="2" class="ListName"><label for=""
+ tal:attributes="for string:cb_${repeat/item/number}"
+ tal:content="item/Type"></label>
+ </td>
+</tr>
+ <tr valign="top">
+ <td colspan="2"> <br> </td>
+ <td align="left" class="ListDefinition" tal:content="item/Description"></td>
+ </tr>
+ </table>
+ </td></tr></table>
+
+<table class="FormLayout">
+ <tr valign="top">
+ <td> <br> </td>
+ <td colspan="2" class="TextField"> <strong> ID: </strong>
+ <input type="text" name="id" size="20">
+ <input type="submit" value="Add"> </td>
+ </tr>
+</table>
+</form>
+
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/folder_filter_form.pt 1.1 => 1.2 ===
- <span tal:define="
- dummy1 python:request.RESPONSE.expireCookie('show_filter_form', path='/');
- dummy2 python:request.RESPONSE.setCookie('show_filter_form', '');
- dummy3 python:request.set('show_filter_form', '')
- " />
-</span>
-<span tal:condition="python:request.get('open_filter_form', 0)">
- <span tal:define="
- dummy1 python:request.RESPONSE.setCookie('show_filter_form', path='/', expires='Wed, 19 Feb 2020 14:28:00 GMT', value='1');
- dummy2 python:request.set('show_filter_form', '1')
- " />
-</span>
-<form action="" method="POST"
- tal:define="showfilter request/show_filter_form|nothing; hidefilter python:not showfilter; formaction python:here.absolute_url() + '/folder_contents'"
- tal:attributes="action formaction"
- >
-<table class="FormLayout"
- tal:condition="showfilter"
- tal:define="Type python:(); Subject python:'';filter python:here.decodeFolderFilter(request.get('folderfilter', ''))">
-<tr>
- <td colspan="2" align="left" valign="top">
- Contents View Filter
- </td>
-</tr>
-<tr>
- <td align="left" valign="top" width="*">Subject:</td>
- <td align="left" valign="top">
- <input type="text" name="filter_by_Subject:tokens"
- value="" tal:attributes="value python:modules['string'].join(Subject, ' ')" />
- </td>
-</tr>
-<tr>
- <td align="left" valign="top" width="*">Content Type:</td>
- <td align="left" valign="top">
- <select name="filter_by_Type:list" multiple size="3"
- tal:define="types python:here.portal_types.listContentTypes( container=container )">
- <option value="&dtml-sequence-item;"
- tal:repeat="type types"
- tal:attributes="value type"
- >
- <span tal:replace="type" /></option>
- </select>
- </td>
-</tr>
-<tr>
- <td colspan="1" align="left">
- <input type="submit" name="set_view_filter" value="Set Filter">
- </td>
- <td colspan="1" align="left">
- <input type="submit" name="close_filter_form" value="Close View Filter">
- </td>
- <td colspan="1" align="left">
- <input type="submit" name="clear_view_filter" value="Clear View Filter">
- </td>
-</tr>
-</table>
-<span tal:condition="hidefilter">
- <input type="submit" name="open_filter_form" value="Set View Filter">
-</span>
+<span tal:condition="python:request.get('close_filter_form', 0)">
+ <span tal:define="
+ dummy1 python:request.RESPONSE.expireCookie('show_filter_form', path='/');
+ dummy2 python:request.RESPONSE.setCookie('show_filter_form', '');
+ dummy3 python:request.set('show_filter_form', '')
+ " />
+</span>
+<span tal:condition="python:request.get('open_filter_form', 0)">
+ <span tal:define="
+ dummy1 python:request.RESPONSE.setCookie('show_filter_form', path='/', expires='Wed, 19 Feb 2020 14:28:00 GMT', value='1');
+ dummy2 python:request.set('show_filter_form', '1')
+ " />
+</span>
+<form action="" method="POST"
+ tal:define="showfilter request/show_filter_form|nothing; hidefilter python:not showfilter; formaction python:here.absolute_url() + '/folder_contents'"
+ tal:attributes="action formaction"
+ >
+<table class="FormLayout"
+ tal:condition="showfilter"
+ tal:define="Type python:(); Subject python:'';filter python:here.decodeFolderFilter(request.get('folderfilter', ''))">
+<tr>
+ <td colspan="2" align="left" valign="top">
+ Contents View Filter
+ </td>
+</tr>
+<tr>
+ <td align="left" valign="top" width="*">Subject:</td>
+ <td align="left" valign="top">
+ <input type="text" name="filter_by_Subject:tokens"
+ value="" tal:attributes="value python:modules['string'].join(Subject, ' ')" />
+ </td>
+</tr>
+<tr>
+ <td align="left" valign="top" width="*">Content Type:</td>
+ <td align="left" valign="top">
+ <select name="filter_by_Type:list" multiple size="3"
+ tal:define="types python:here.portal_types.listContentTypes( container=container )">
+ <option value="&dtml-sequence-item;"
+ tal:repeat="type types"
+ tal:attributes="value type"
+ >
+ <span tal:replace="type" /></option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td colspan="1" align="left">
+ <input type="submit" name="set_view_filter" value="Set Filter">
+ </td>
+ <td colspan="1" align="left">
+ <input type="submit" name="close_filter_form" value="Close View Filter">
+ </td>
+ <td colspan="1" align="left">
+ <input type="submit" name="clear_view_filter" value="Clear View Filter">
+ </td>
+</tr>
+</table>
+<span tal:condition="hidefilter">
+ <input type="submit" name="open_filter_form" value="Set View Filter">
+</span>
</form>
=== Products/CMFDecor/skins/zpt_generic/folder_rename_form.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-<h3> Rename Items </h3>
-<TABLE class="FormLayout"
- tal:condition="here/folder_rename_items">
- <FORM ACTION="folder_rename" METHOD="POST">
- <TR tal:repeat="item here/folder_rename_items">
- <TD ALIGN="LEFT" VALIGN="TOP" width="8%">
- <span tal:replace="structure item/iconHTML">Type Image</span>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP" width="20%" NOWRAP>
- <span tal:replace="item/getId">ID</span>
- <INPUT TYPE="HIDDEN" NAME="ids:list" VALUE=""
- tal:attributes="value item/getId">
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP" width="5%">
- <STRONG>to</STRONG>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <INPUT TYPE="TEXT" NAME="new_ids:list" value=""
- tal:attributes="value item/getId" SIZE="20">
- </TD>
- </TR>
-
- <TR>
- <TD COLSPAN=4>
- <INPUT TYPE="submit" VALUE=" Ok ">
- </TD>
- </TR>
- </FORM>
-</TABLE>
-
-
-
-<div tal:condition="python: not(here.folder_rename_items())">
- <FORM ACTION="folder_contents" METHOD="GET">
- <p>You must select one or more items to rename.</p>
- <INPUT TYPE="submit" VALUE=" Ok ">
- </FORM>
-</div>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div class="Desktop">
+<h3> Rename Items </h3>
+<TABLE class="FormLayout"
+ tal:condition="here/folder_rename_items">
+ <FORM ACTION="folder_rename" METHOD="POST">
+ <TR tal:repeat="item here/folder_rename_items">
+ <TD ALIGN="LEFT" VALIGN="TOP" width="8%">
+ <span tal:replace="structure item/iconHTML">Type Image</span>
+ </TD>
+ <TD ALIGN="LEFT" VALIGN="TOP" width="20%" NOWRAP>
+ <span tal:replace="item/getId">ID</span>
+ <INPUT TYPE="HIDDEN" NAME="ids:list" VALUE=""
+ tal:attributes="value item/getId">
+ </TD>
+ <TD ALIGN="LEFT" VALIGN="TOP" width="5%">
+ <STRONG>to</STRONG>
+ </TD>
+ <TD ALIGN="LEFT" VALIGN="TOP">
+ <INPUT TYPE="TEXT" NAME="new_ids:list" value=""
+ tal:attributes="value item/getId" SIZE="20">
+ </TD>
+ </TR>
+
+ <TR>
+ <TD COLSPAN=4>
+ <INPUT TYPE="submit" VALUE=" Ok ">
+ </TD>
+ </TR>
+ </FORM>
+</TABLE>
+
+
+
+<div tal:condition="python: not(here.folder_rename_items())">
+ <FORM ACTION="folder_contents" METHOD="GET">
+ <p>You must select one or more items to rename.</p>
+ <INPUT TYPE="submit" VALUE=" Ok ">
+ </FORM>
+</div>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/index_html.pt 1.2 => 1.3 ===
-<body>
- <div metal:fill-slot="main">
-
- <table cellpadding="0" cellspacing="0" width="100%">
- <tr>
- <td valign="top" width="80%">
-
- <h1> Welcome to <span tal:replace="here/title">(portal title)</span> </h1>
-
- <dl>
- <dt> Overview </dt>
- <dd tal:content="here/description"> Description here </dd>
- </dl>
-
- </td>
- <td valign="top" width="20%" tal:content="structure here/news_box">
- News here
- </td>
- </tr>
- </table>
-
- </div>
-</body>
-</html>
+<html metal:use-macro="here/main_template/macros/master">
+<body>
+ <div metal:fill-slot="main">
+
+ <table cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td valign="top" width="80%">
+
+ <h1> Welcome to <span tal:replace="here/title">(portal title)</span> </h1>
+
+ <dl>
+ <dt> Overview </dt>
+ <dd tal:content="here/description"> Description here </dd>
+ </dl>
+
+ </td>
+ <td valign="top" width="20%" tal:content="structure here/news_box">
+ News here
+ </td>
+ </tr>
+ </table>
+
+ </div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/join_form.pt 1.4 => 1.5 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-
-<h1>Become a member</h1>
-
-<div tal:define="registered python: here.portal_membership.getAuthenticatedMember().has_role('Member')">
- <div tal:condition="python: here.portal_membership.getAuthenticatedMember().has_role('Member')">
- <p>You are already a member. You may use the <a href="personalize_form">personalization form</a>
- to change your membership information. </p>
- </div>
- <div tal:condition="python: not(registered)">
- <p> Becoming a member gives you the ability to personalize the site and participate in the community.</p>
- <p> It does not cost any money to become a member and your email and other personal information will remain private.</p>
- <span tal:condition="python: here.portal_properties.validate_email">
- <p> You must submit a valid email address. This address will be used to send you your randomly-generated password.
- Once you have logged in with this password, you may change it to anything you like.</p>
- </span>
-<div class="DesktopStatusBar"
- tal:content="request/error|nothing">
- <hr>
-</div>
-<form action="register" method="POST">
-
-<input type="hidden" name="last_visit:date" value=""
- tal:attributes="value here/ZopeTime">
-<input type="hidden" name="prev_visit:date" value=""
- tal:attributes="value here/ZopeTime">
-
-<table class="FormLayout">
- <tr>
- <th> Login Name
- </th>
- <td>
- <input type="text"
- name="username" size="30"
- value=""
- tal:attributes="value request/username|nothing">
- </td>
- </tr>
- <tr>
- <th> Email Address
- </th>
- <td align="left" valign="top">
- <input type="text" name="email" size="30"
- value=""
- tal:attributes="value request/email|nothing">
- </td>
- </tr>
-
-<div tal:condition="python: not(here.portal_properties.validate_email)">
- <tr>
- <th> Password
- </th>
- <td align="left" valign="top">
- <input type="password" name="password" size="30">
- </td>
- </tr>
- <tr>
- <th> Password (confirm)
- </th>
- <td align="left" valign="top">
- <input type="password" name="confirm" size="30">
- </td>
- </tr>
- <tr>
- <th> Mail Password?
- </th>
- <td>
- <input type="checkbox" name="mail_me" size="30" id="cb_mailme" />
- <em><label for="cb_mailme">Check this box to have your password
- mailed to you.</label></em>
- </td>
- </tr>
-</div>
-
- <tr>
- <td><br></td>
- <td>
- <input type="submit" name="submit" value="Register">
- </td>
- </tr>
-</table>
-</form>
-
-</div>
-</div>
-</div>
-</div>
-
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div class="Desktop">
+
+<h1>Become a member</h1>
+
+<div tal:define="registered python: here.portal_membership.getAuthenticatedMember().has_role('Member')">
+ <div tal:condition="python: here.portal_membership.getAuthenticatedMember().has_role('Member')">
+ <p>You are already a member. You may use the <a href="personalize_form">personalization form</a>
+ to change your membership information. </p>
+ </div>
+ <div tal:condition="python: not(registered)">
+ <p> Becoming a member gives you the ability to personalize the site and participate in the community.</p>
+ <p> It does not cost any money to become a member and your email and other personal information will remain private.</p>
+ <span tal:condition="python: here.portal_properties.validate_email">
+ <p> You must submit a valid email address. This address will be used to send you your randomly-generated password.
+ Once you have logged in with this password, you may change it to anything you like.</p>
+ </span>
+<div class="DesktopStatusBar"
+ tal:content="request/error|nothing">
+ <hr>
+</div>
+<form action="register" method="POST">
+
+<input type="hidden" name="last_visit:date" value=""
+ tal:attributes="value here/ZopeTime">
+<input type="hidden" name="prev_visit:date" value=""
+ tal:attributes="value here/ZopeTime">
+
+<table class="FormLayout">
+ <tr>
+ <th> Login Name
+ </th>
+ <td>
+ <input type="text"
+ name="username" size="30"
+ value=""
+ tal:attributes="value request/username|nothing">
+ </td>
+ </tr>
+ <tr>
+ <th> Email Address
+ </th>
+ <td align="left" valign="top">
+ <input type="text" name="email" size="30"
+ value=""
+ tal:attributes="value request/email|nothing">
+ </td>
+ </tr>
+
+<div tal:condition="python: not(here.portal_properties.validate_email)">
+ <tr>
+ <th> Password
+ </th>
+ <td align="left" valign="top">
+ <input type="password" name="password" size="30">
+ </td>
+ </tr>
+ <tr>
+ <th> Password (confirm)
+ </th>
+ <td align="left" valign="top">
+ <input type="password" name="confirm" size="30">
+ </td>
+ </tr>
+ <tr>
+ <th> Mail Password?
+ </th>
+ <td>
+ <input type="checkbox" name="mail_me" size="30" id="cb_mailme" />
+ <em><label for="cb_mailme">Check this box to have your password
+ mailed to you.</label></em>
+ </td>
+ </tr>
+</div>
+
+ <tr>
+ <td><br></td>
+ <td>
+ <input type="submit" name="submit" value="Register">
+ </td>
+ </tr>
+</table>
+</form>
+
+</div>
+</div>
+</div>
+</div>
+
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/logged_in.pt 1.2 => 1.3 ===
- <div tal:condition="here/portal_skins/updateSkinCookie | nothing"
- tal:define="dummy here/setupCurrentSkin">
- </div>
-</div>
-<html xmlns:tal="http://xml.zope.org/namespaces/tal"
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
- <div tal:define="p_props here/portal_properties">
- <div tal:condition="here/portal_membership/isAnonymousUser | nothing">
- <span tal:define="dummy python: request['RESPONSE'].expireCookie('__ac', path='/')"></span>
- <h1 class="DesktopTitle">Login failure</h1>
- <p class="Desktop">You are not currently logged in. Your username and or password may be incorrect.
- Your browser may also not be configured to accept HTTP cookies. If you need help please contact
- <a href="mailto:admin@here.com" title="Email Admin"
- tal:attributes="href string:mailto:${p_props/email_from_address}"
- tal:content="p_props/email_from_address">Email Admin</a>.
- </p>
- </div>
- <div tal:condition="python: not(here.portal_membership.isAnonymousUser())"
- tal:define="member python: here.portal_membership.getAuthenticatedMember()">
- <div tal:condition="python: member.login_time == here.ZopeTime('2000/01/01') and p_props.validate_email"
- tal:define="dum_reg python: here.portal_registration.setProperties(last_login_time=here.ZopeTime(),login_time=here.ZopeTime())">
- <h1 class="DesktopTitle">Welcome!</h1>
- <p class="Desktop">This is the first time that you've logged in to <span replace="p_props/title">Here</span>.
- Before you start exploring you need to change your original password.
- This will ensure that the password we sent you via email cannot be used in a malicious manner.</p>
- <p class="Desktop">Please use the form below to change your password.</p>
- <form action="change_password" method="post">
- <input type="hidden" name="user" value=""
- tal:attributes="value member">
- <input type="hidden" name="domains:tokens" value="">
- <input type="hidden" name="redirect" value=""
- tal:attributes="value p_props/portal_url">
- <table>
- <tr valign="top" align="left">
- <th>Username</th>
- <td><span tal:replace="member">You</span></td>
- </tr>
- <tr valign="top" align="left">
- <th>New password</th>
- <td><input type="password" name="password"></td>
- </tr>
- <tr valign="top" align="left">
- <th>Confirm new password</th>
- <td><input type="password" name="confirm"></td>
- </tr>
- <tr>
- <td></td>
- <td><input type="submit" value="Change password"></td>
- </tr>
- </table>
- </form>
- </div>
- <div tal:condition="python: not(member.login_time == here.ZopeTime('2000/01/01') and here.validate_email)">
- <div tal:define="d_reg python: here.portal_registration.setProperties(last_login_time=member.login_time); ereg python: here.portal_registration.setProperties(login_time=here.ZopeTime())">
- </div>
- <div tal:condition="request/came_from | nothing ">
- <div tal:define="dredirect python: request.RESPONSE.redirect(request.get('came_from'))"></div>
- </div>
- <h1 class="DesktopTitle">Login success</h1>
- <p class="Desktop">Welcome. You are currently logged in.
- </p>
- </div>
- </div>
-</div>
-</div>
-</body>
-</html>
-
+<div tal:condition="exists: here/portal_skins | nothing">
+ <div tal:condition="here/portal_skins/updateSkinCookie | nothing"
+ tal:define="dummy here/setupCurrentSkin">
+ </div>
+</div>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+ <div tal:define="p_props here/portal_properties">
+ <div tal:condition="here/portal_membership/isAnonymousUser | nothing">
+ <span tal:define="dummy python: request['RESPONSE'].expireCookie('__ac', path='/')"></span>
+ <h1 class="DesktopTitle">Login failure</h1>
+ <p class="Desktop">You are not currently logged in. Your username and or password may be incorrect.
+ Your browser may also not be configured to accept HTTP cookies. If you need help please contact
+ <a href="mailto:admin@here.com" title="Email Admin"
+ tal:attributes="href string:mailto:${p_props/email_from_address}"
+ tal:content="p_props/email_from_address">Email Admin</a>.
+ </p>
+ </div>
+ <div tal:condition="python: not(here.portal_membership.isAnonymousUser())"
+ tal:define="member python: here.portal_membership.getAuthenticatedMember()">
+ <div tal:condition="python: member.login_time == here.ZopeTime('2000/01/01') and p_props.validate_email"
+ tal:define="dum_reg python: here.portal_registration.setProperties(last_login_time=here.ZopeTime(),login_time=here.ZopeTime())">
+ <h1 class="DesktopTitle">Welcome!</h1>
+ <p class="Desktop">This is the first time that you've logged in to <span replace="p_props/title">Here</span>.
+ Before you start exploring you need to change your original password.
+ This will ensure that the password we sent you via email cannot be used in a malicious manner.</p>
+ <p class="Desktop">Please use the form below to change your password.</p>
+ <form action="change_password" method="post">
+ <input type="hidden" name="user" value=""
+ tal:attributes="value member">
+ <input type="hidden" name="domains:tokens" value="">
+ <input type="hidden" name="redirect" value=""
+ tal:attributes="value p_props/portal_url">
+ <table>
+ <tr valign="top" align="left">
+ <th>Username</th>
+ <td><span tal:replace="member">You</span></td>
+ </tr>
+ <tr valign="top" align="left">
+ <th>New password</th>
+ <td><input type="password" name="password"></td>
+ </tr>
+ <tr valign="top" align="left">
+ <th>Confirm new password</th>
+ <td><input type="password" name="confirm"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td><input type="submit" value="Change password"></td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ <div tal:condition="python: not(member.login_time == here.ZopeTime('2000/01/01') and here.validate_email)">
+ <div tal:define="d_reg python: here.portal_registration.setProperties(last_login_time=member.login_time); ereg python: here.portal_registration.setProperties(login_time=here.ZopeTime())">
+ </div>
+ <div tal:condition="request/came_from | nothing ">
+ <div tal:define="dredirect python: request.RESPONSE.redirect(request.get('came_from'))"></div>
+ </div>
+ <h1 class="DesktopTitle">Login success</h1>
+ <p class="Desktop">Welcome. You are currently logged in.
+ </p>
+ </div>
+ </div>
+</div>
+</div>
+</body>
+</html>
+
=== Products/CMFDecor/skins/zpt_generic/logged_out.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<p tal:condition="python: here.portal_membership.isAnonymousUser()"
- tal:content="string:You have been logged out."></p>
-<p tal:condition="python: not(here.portal_membership.isAnonymousUser())">
-You are logged in outside the portal. You may need to
-<a href="/manage_zmi_logout">log out of the Zope management interface</a>.
-</p>
-</div>
-</body>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<p tal:condition="python: here.portal_membership.isAnonymousUser()"
+ tal:content="string:You have been logged out."></p>
+<p tal:condition="python: not(here.portal_membership.isAnonymousUser())">
+You are logged in outside the portal. You may need to
+<a href="/manage_zmi_logout">log out of the Zope management interface</a>.
+</p>
+</div>
+</body>
</html>
=== Products/CMFDecor/skins/zpt_generic/login_form.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-<h1 class="Desktop">Log in</h1>
-
-<form action="" method="post" tal:attributes="action python: here.portal_url() + '/logged_in'">
-
-<!-- ****** Enable the automatic redirect ***** -->
-<span tal:condition="exists: request/came_from">
- <input type="hidden" name="came_from" value="" tal:attributes="value request/came_from">
-</span>
-<!-- ****** Enable the automatic redirect ***** -->
-
-<table class="FormLayout">
-<tr>
- <td align="left" valign="top">
- <strong>Name</strong>
- </td>
- <td align="left" valign="top">
- <input type="TEXT" name="__ac_name" size="20" value="" tal:attributes="value python: request.get('__ac_name') or ''">
- </td>
-</tr>
-<tr>
- <td align="left" valign="top">
- <strong>Password</strong>
- </td>
- <td align="left" valign="top">
- <input type="PASSWORD" name="__ac_password" size="20">
- </td>
-</tr>
-
-<tr valign="top" align="left">
-<td></td>
-<td><input type="checkbox" name="__ac_persistent" value="1" checked
- id="cb_remember" />
-<label for="cb_remember">Remember my name.</label>
-</td></tr>
-
-<tr>
- <td align="left" valign="top">
- </td>
- <td align="left" valign="top">
- <input type="submit" name="submit" value=" Login ">
- </td>
-</tr>
-
-</table>
-</form>
-
-<p><a href="" tal:attributes="href python: here.portal_url() + '/mail_password_form'">I forgot my password!</a></p>
-
-<p>
-Having trouble logging in? Make sure to enable cookies in your web browser.
-</p>
-
-<p>Don't forget to logout or exit your browser when you're done.
-</p>
-
-<p>
-Setting the 'Remember my name' option will set a cookie with your username,
-so that when you next log in, your user name will already be filled in for you.
-</p>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div class="Desktop">
+<h1 class="Desktop">Log in</h1>
+
+<form action="" method="post" tal:attributes="action python: here.portal_url() + '/logged_in'">
+
+<!-- ****** Enable the automatic redirect ***** -->
+<span tal:condition="exists: request/came_from">
+ <input type="hidden" name="came_from" value="" tal:attributes="value request/came_from">
+</span>
+<!-- ****** Enable the automatic redirect ***** -->
+
+<table class="FormLayout">
+<tr>
+ <td align="left" valign="top">
+ <strong>Name</strong>
+ </td>
+ <td align="left" valign="top">
+ <input type="TEXT" name="__ac_name" size="20" value="" tal:attributes="value python: request.get('__ac_name') or ''">
+ </td>
+</tr>
+<tr>
+ <td align="left" valign="top">
+ <strong>Password</strong>
+ </td>
+ <td align="left" valign="top">
+ <input type="PASSWORD" name="__ac_password" size="20">
+ </td>
+</tr>
+
+<tr valign="top" align="left">
+<td></td>
+<td><input type="checkbox" name="__ac_persistent" value="1" checked
+ id="cb_remember" />
+<label for="cb_remember">Remember my name.</label>
+</td></tr>
+
+<tr>
+ <td align="left" valign="top">
+ </td>
+ <td align="left" valign="top">
+ <input type="submit" name="submit" value=" Login ">
+ </td>
+</tr>
+
+</table>
+</form>
+
+<p><a href="" tal:attributes="href python: here.portal_url() + '/mail_password_form'">I forgot my password!</a></p>
+
+<p>
+Having trouble logging in? Make sure to enable cookies in your web browser.
+</p>
+
+<p>Don't forget to logout or exit your browser when you're done.
+</p>
+
+<p>
+Setting the 'Remember my name' option will set a cookie with your username,
+so that when you next log in, your user name will already be filled in for you.
+</p>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/mail_password_form.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-
-<h1> Don't panic!</h1>
-
-<p> Just enter your username below, click <em>Send</em>, and your password
- will be mailed to you if you gave a valid email address when you signed on.
-</p>
-
-<p> If this will not work for you (for example, if you forget your member
- name or didn't enter your email address) send email to
- <a tal:attributes="href string:mailto:${here/portal_properties/email_from_address}"
- tal:content="here/portal_properties/email_from_address"
- href="mailto:me@here.com">me@here.com</a>.
-</p>
-
- <form action="mail_password">
- <input name="userid">
- <input type="submit" value=" Send ">
- </form>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div class="Desktop">
+
+<h1> Don't panic!</h1>
+
+<p> Just enter your username below, click <em>Send</em>, and your password
+ will be mailed to you if you gave a valid email address when you signed on.
+</p>
+
+<p> If this will not work for you (for example, if you forget your member
+ name or didn't enter your email address) send email to
+ <a tal:attributes="href string:mailto:${here/portal_properties/email_from_address}"
+ tal:content="here/portal_properties/email_from_address"
+ href="mailto:me@here.com">me@here.com</a>.
+</p>
+
+ <form action="mail_password">
+ <input name="userid">
+ <input type="submit" value=" Send ">
+ </form>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/mail_password_response.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<p class="DesktopStatusBar">Your password has been mailed.
-<br>
-It should arrive in your mailbox momentarily.</p>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<p class="DesktopStatusBar">Your password has been mailed.
+<br>
+It should arrive in your mailbox momentarily.</p>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/main_template.pt 1.6 => 1.7 ===
- <head>
- <title tal:define="ob_title here/Title; portal_title here/title" tal:content="string:${portal_title}: ${ob_title}">The title</title>
-
-<link rel="stylesheet" href="zpt_stylesheet.css" type="text/css"
- tal:attributes="href here/zpt_stylesheet/absolute_url">
-
-</head> <body>
-<div metal:define-macro="top_bar">
- <!-- Top bar -->
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr><td colspan="3" witdth="100%">
- <!-- hack around netscape 4.x to ensure top table is solid black -->
- <table class="Masthead" cellspacing="0" cellpadding="0" border="0" width="100%">
- <tr class="Masthead">
-
- <form action="search" method="GET"
- tal:define="portal_url here/portal_url"
- tal:attributes="action string:${portal_url}/search">
- <td class="PortalLogo" align="left" valign="middle" width="7%" height="32">
- <a href="." tal:attributes="href here/portal_url"><img src="../zpt_images/Zope_logo.gif" alt="Zope Logo" border="0" width="87" height="38"
- tal:attributes="src string:Zope_logo.gif"></a>
- </td>
-
- <td class="PortalTitle" width="43%" align="left" valign="middle" height="32">
- <span tal:define="portal_title here/title" tal:content="string:${portal_title}">Site
- Title</span> </td>
-
- <td class="NavBar" align="right" valign="middle" width="50%" wrap="no" height="32" NOWRAP>
- <a href="." tal:attributes="href portal_url">home</a> <a href="roster"
- tal:attributes="href string:${portal_url}/Members">members</a> <a href="recent_news"
- tal:attributes="href string:${portal_url}/recent_news">news</a> <a href="search_form"
- tal:attributes="href string:${portal_url}/search_form">search</a>
- <input name="SearchableText" size="16">
- <input border="0" type="image" name="go" src="../../../CMFDefault/skins/Images/go.gif" align="middle" width="20" height="20"
- tal:attributes="src string:go.gif">
-
- </td>
- </form>
- </tr>
- </table>
- </td></tr></table>
-</div>
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr><td colspan="4">
- <table width="100%" border="0" cellpadding="0" cellspacing="0" class="MemberActionBox">
- <tr class="MemberActions"
- tal:define="global isAnon python:here.portal_membership.isAnonymousUser();
- uname python: isAnon and 'Guest' or here.portal_membership.getAuthenticatedMember().getUserName();
- global actions python:here.portal_actions.listFilteredActionsFor(here);
- user_actions python:actions['user']">
- <td class="ActionTitle"
- tal:content="uname">
- UserName
- </td>
- <td class="MemberActionsList" align="right">
- <span tal:repeat="action user_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action List</a> | </span>
- </td>
- </tr>
- </table>
-</td></tr>
- <tr valign="top">
- <td class="ActionBox" width="15%" align="left" valign="top" tal:condition="python: not isAnon">
- <span metal:use-macro="here/actions_box/macros/actions">
- <!--everything below here is replaced, just here for view of actions_box -->
- <table class="ActionBox" width="100%">
- <tr class="AuthClass">
- <td class="ActionTitle"> <img src="../../../CMFDefault/skins/Images/UpFolder_icon.gif" align="left" alt="Holder Image" width="16" height="16">
- ObjectID </td>
- </tr>
- <tr class="AuthClass">
- <td>
- Status: Private<br>
- <a href="">Object Action</a><br>
- </td>
- </tr>
- </table>
- <!--end replacement -->
- </span>
- </td>
- <td width="1%"> </td>
- <td class="Desktop" colspan="" width="84%" valign="top" tal:attributes="colspan python: not isAnon and '2' or '3'">
- <table cellpadding="5">
- <tr>
- <td class="Desktop" width="100%" valign="top">
- <p tal:condition="request/portal_status_message|nothing" tal:content="request/portal_status_message" class="DesktopStatusBar"></p>
- <div metal:define-slot="main"/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </body>
-</html>
+<html metal:define-macro="master">
+ <head>
+ <title tal:define="ob_title here/Title; portal_title here/title" tal:content="string:${portal_title}: ${ob_title}">The title</title>
+
+<link rel="stylesheet" href="zpt_stylesheet.css" type="text/css"
+ tal:attributes="href here/zpt_stylesheet/absolute_url">
+
+</head> <body>
+<div metal:define-macro="top_bar">
+ <!-- Top bar -->
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr><td colspan="3" witdth="100%">
+ <!-- hack around netscape 4.x to ensure top table is solid black -->
+ <table class="Masthead" cellspacing="0" cellpadding="0" border="0" width="100%">
+ <tr class="Masthead">
+
+ <form action="search" method="GET"
+ tal:define="portal_url here/portal_url"
+ tal:attributes="action string:${portal_url}/search">
+ <td class="PortalLogo" align="left" valign="middle" width="7%" height="32">
+ <a href="." tal:attributes="href here/portal_url"><img src="../zpt_images/Zope_logo.gif" alt="Zope Logo" border="0" width="87" height="38"
+ tal:attributes="src string:Zope_logo.gif"></a>
+ </td>
+
+ <td class="PortalTitle" width="43%" align="left" valign="middle" height="32">
+ <span tal:define="portal_title here/title" tal:content="string:${portal_title}">Site
+ Title</span> </td>
+
+ <td class="NavBar" align="right" valign="middle" width="50%" wrap="no" height="32" NOWRAP>
+ <a href="." tal:attributes="href portal_url">home</a> <a href="roster"
+ tal:attributes="href string:${portal_url}/Members">members</a> <a href="recent_news"
+ tal:attributes="href string:${portal_url}/recent_news">news</a> <a href="search_form"
+ tal:attributes="href string:${portal_url}/search_form">search</a>
+ <input name="SearchableText" size="16">
+ <input border="0" type="image" name="go" src="../../../CMFDefault/skins/Images/go.gif" align="middle" width="20" height="20"
+ tal:attributes="src string:go.gif">
+
+ </td>
+ </form>
+ </tr>
+ </table>
+ </td></tr></table>
+</div>
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr><td colspan="4">
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" class="MemberActionBox">
+ <tr class="MemberActions"
+ tal:define="global isAnon python:here.portal_membership.isAnonymousUser();
+ uname python: isAnon and 'Guest' or here.portal_membership.getAuthenticatedMember().getUserName();
+ global actions python:here.portal_actions.listFilteredActionsFor(here);
+ user_actions python:actions['user']">
+ <td class="ActionTitle"
+ tal:content="uname">
+ UserName
+ </td>
+ <td class="MemberActionsList" align="right">
+ <span tal:repeat="action user_actions"><a href="" tal:attributes="href action/url" tal:content="action/name">Action List</a> | </span>
+ </td>
+ </tr>
+ </table>
+</td></tr>
+ <tr valign="top">
+ <td class="ActionBox" width="15%" align="left" valign="top" tal:condition="python: not isAnon">
+ <span metal:use-macro="here/actions_box/macros/actions">
+ <!--everything below here is replaced, just here for view of actions_box -->
+ <table class="ActionBox" width="100%">
+ <tr class="AuthClass">
+ <td class="ActionTitle"> <img src="../../../CMFDefault/skins/Images/UpFolder_icon.gif" align="left" alt="Holder Image" width="16" height="16">
+ ObjectID </td>
+ </tr>
+ <tr class="AuthClass">
+ <td>
+ Status: Private<br>
+ <a href="">Object Action</a><br>
+ </td>
+ </tr>
+ </table>
+ <!--end replacement -->
+ </span>
+ </td>
+ <td width="1%"> </td>
+ <td class="Desktop" colspan="" width="84%" valign="top" tal:attributes="colspan python: not isAnon and '2' or '3'">
+ <table cellpadding="5">
+ <tr>
+ <td class="Desktop" width="100%" valign="top">
+ <p tal:condition="request/portal_status_message|nothing" tal:content="request/portal_status_message" class="DesktopStatusBar"></p>
+ <div metal:define-slot="main"/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/metadata_help.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-
-<div class="Desktop">
-
-<h2> Dublin Core Metadata </h2>
-
-<table>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Title"> Title </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> the standard Zope 'title' attribute; we should look
- at making it mandatory for all PortalContent derivatives.
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Creator"> Creator </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> where possible, this should be one or more full
- names, of either persons or organizations. The current
- implementation finds the first user in the list returned
- by 'get_local_roles' who has the 'Owner' role; userids are
- not considered appropriate for this field by the DCI.
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Subject"> Subject </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> this is supposed to be drawn from a controlled
- list of keywords (e.g., selected from a multi-select list
- used across the whole site)
- </td>.
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Description"> Description </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> a short summary, an abstract, or a
- table-of-contents are all considered acceptable. We might
- look at making this required, as well, at least for some
- kinds of content.
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Publisher"> Publisher </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> a site-wide property, should be done through
- acquisition (do I smell a 'portal_metadata' tool about to
- appear?) Again, this is supposed to be a formal name.
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Contributor"> Contributor </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> used to convey others besides the Creator who
- have contributed to the document (the current implementation
- aliases 'Creator', which is not what DCI intends)
- </td>.
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Date"> Date </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> this one has modifiers, of which the approved set is:
- 'Created', 'Valid', 'Available', 'Issued', and 'Modified'.
- I propose extending the interface to include CreationDate(),
- EffectiveDate(), ExpirationDate(), and ModificationDate().
- The current Date() could just return the CreationDate(), while
- the DCI 'Valid' and 'Available' would be ranges derived from
- EffectiveDate() and ExpirationDate(
- </td>).
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Type"> Type </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> like the Zope 'meta_type', this is the main conceptual
- classification; 'meta_type' is often spelled identically to
- the class, which makes it less appropriate for the DCI usage.
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Format"> Format </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> the kind of physical representation, e.g., 'text/html'
- </td>.
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Identifier"> Identifier </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> should be the fully-qualified URL of the document
- (the current implementation returns the object's id, which is
- only required to be unique within its container)
- </td>.
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Language"> Language </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> 'en-us', 'pt-br', 'de', etc. Should be set at
- creation, with an appropriate default (and a picklist of
- values)
- </td>.
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Source"> Source </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> the original from which a piece of content is
- derived. I'd like to ignore this one.
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Relation"> Relation </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> more relationships to other documents. Again,
- I'd like to ignore it (ZopeStudio and other such tools need
- this, however, to build site maps)
- </td>.
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Coverage"> Coverage </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> geographic/chronological/jurisdictional scope.
- Again, ignore.
- </td>
- </tr>
-
- <tr>
- <td colspan="2" class="ListName"> <strong> <a name="Rights"> Rights </a>
- </strong> </td>
- </tr>
- <tr>
- <td> </td>
- <td class="ListDefinition"> copyright and other IP information related to the
- document. Most portals should care about this: witness
- the brouhaha on Slashdot over the compilation of the
- Hellmouth postings into a book.
- </td>
- </tr>
-
-</table>
-
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+
+<div class="Desktop">
+
+<h2> Dublin Core Metadata </h2>
+
+<table>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Title"> Title </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> the standard Zope 'title' attribute; we should look
+ at making it mandatory for all PortalContent derivatives.
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Creator"> Creator </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> where possible, this should be one or more full
+ names, of either persons or organizations. The current
+ implementation finds the first user in the list returned
+ by 'get_local_roles' who has the 'Owner' role; userids are
+ not considered appropriate for this field by the DCI.
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Subject"> Subject </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> this is supposed to be drawn from a controlled
+ list of keywords (e.g., selected from a multi-select list
+ used across the whole site)
+ </td>.
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Description"> Description </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> a short summary, an abstract, or a
+ table-of-contents are all considered acceptable. We might
+ look at making this required, as well, at least for some
+ kinds of content.
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Publisher"> Publisher </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> a site-wide property, should be done through
+ acquisition (do I smell a 'portal_metadata' tool about to
+ appear?) Again, this is supposed to be a formal name.
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Contributor"> Contributor </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> used to convey others besides the Creator who
+ have contributed to the document (the current implementation
+ aliases 'Creator', which is not what DCI intends)
+ </td>.
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Date"> Date </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> this one has modifiers, of which the approved set is:
+ 'Created', 'Valid', 'Available', 'Issued', and 'Modified'.
+ I propose extending the interface to include CreationDate(),
+ EffectiveDate(), ExpirationDate(), and ModificationDate().
+ The current Date() could just return the CreationDate(), while
+ the DCI 'Valid' and 'Available' would be ranges derived from
+ EffectiveDate() and ExpirationDate(
+ </td>).
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Type"> Type </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> like the Zope 'meta_type', this is the main conceptual
+ classification; 'meta_type' is often spelled identically to
+ the class, which makes it less appropriate for the DCI usage.
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Format"> Format </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> the kind of physical representation, e.g., 'text/html'
+ </td>.
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Identifier"> Identifier </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> should be the fully-qualified URL of the document
+ (the current implementation returns the object's id, which is
+ only required to be unique within its container)
+ </td>.
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Language"> Language </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> 'en-us', 'pt-br', 'de', etc. Should be set at
+ creation, with an appropriate default (and a picklist of
+ values)
+ </td>.
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Source"> Source </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> the original from which a piece of content is
+ derived. I'd like to ignore this one.
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Relation"> Relation </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> more relationships to other documents. Again,
+ I'd like to ignore it (ZopeStudio and other such tools need
+ this, however, to build site maps)
+ </td>.
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Coverage"> Coverage </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> geographic/chronological/jurisdictional scope.
+ Again, ignore.
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2" class="ListName"> <strong> <a name="Rights"> Rights </a>
+ </strong> </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <td class="ListDefinition"> copyright and other IP information related to the
+ document. Most portals should care about this: witness
+ the brouhaha on Slashdot over the compilation of the
+ Hellmouth postings into a book.
+ </td>
+ </tr>
+
+</table>
+
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/news_box.pt 1.2 => 1.3 ===
- <tbody tal:define="news python: here.portal_catalog(meta_type='News Item', sort_on='Date', sort_order='reverse', review_state='published');
- Batch python:modules['ZTUtils'].Batch;
- global batch python:Batch(news, 10, 0, orphan=1)">
- <tr>
- <td class="NewsBorder" width="1" rowspan="13" bgcolor="#6699CC">
- <img src="spacer.gif" alt=" "
- width="1" height="2" border="0">
- </td>
- <td valign="top" class="NewsTitle" width="100%">
- <b>News</b>
- </td>
- </tr>
- <tr class="NewsItemRow"
- tal:condition="news"
- tal:repeat="news batch">
- <td valign="top" nowrap>
- <a href=""
- tal:attributes="href python:news.getURL()"
- tal:content="news/Title"></a><br>
- <span tal:replace="news/Date">Date</span>
- </td>
- </tr>
- <tr class="NewsItemRow"
- tal:condition="python:not(news)">
- <td valign="top">
- No news is no news.
- </td>
- </tr>
- <tr class="NewsItemRow">
- <td>
- <a href="recent_news">More...</a>
- </td>
- </tr>
-</tbody>
- </table>
+ <table class="NewsItems" cellspacing="0" cellpadding="0" border="0" width="100%">
+ <tbody tal:define="news python: here.portal_catalog(meta_type='News Item', sort_on='Date', sort_order='reverse', review_state='published');
+ Batch python:modules['ZTUtils'].Batch;
+ global batch python:Batch(news, 10, 0, orphan=1)">
+ <tr>
+ <td class="NewsBorder" width="1" rowspan="13" bgcolor="#6699CC">
+ <img src="spacer.gif" alt=" "
+ width="1" height="2" border="0">
+ </td>
+ <td valign="top" class="NewsTitle" width="100%">
+ <b>News</b>
+ </td>
+ </tr>
+ <tr class="NewsItemRow"
+ tal:condition="news"
+ tal:repeat="news batch">
+ <td valign="top" nowrap>
+ <a href=""
+ tal:attributes="href python:news.getURL()"
+ tal:content="news/Title"></a><br>
+ <span tal:replace="news/Date">Date</span>
+ </td>
+ </tr>
+ <tr class="NewsItemRow"
+ tal:condition="python:not(news)">
+ <td valign="top">
+ No news is no news.
+ </td>
+ </tr>
+ <tr class="NewsItemRow">
+ <td>
+ <a href="recent_news">More...</a>
+ </td>
+ </tr>
+</tbody>
+ </table>
=== Products/CMFDecor/skins/zpt_generic/password_form.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
- <div tal:define="member python: here.portal_membership.getAuthenticatedMember()">
-<div class="Desktop">
-
-<h1> Change your Password </h1>
-<div class="error"
- tal:replace="request/error"
- tal:condition="request/error|nothing"><hr></div>
-
-<form action="change_password" method="post">
-<table class="FormLayout">
- <tr>
- <th>Username
- </th>
- <td><span tal:replace="member">You</span>
- </td>
- </tr>
- <tr>
- <th>New password
- </th>
- <td><input type="password" name="password">
- </td>
- </tr>
- <tr>
- <th>Confirm new password
- </th>
- <td><input type="password" name="confirm">
- </td>
- </tr>
- <tr>
- <th>Domains
- </th>
- <td>
- <input type="text" name="domains:tokens" value=""><br>
- <em> If you do not know what this field is for, leave it blank. </em>
- </td>
- </tr>
- <tr>
- <td><br></td>
- <td><input type="submit" value=" Change ">
- </td>
- </tr>
-</table>
-</form>
-
-</div>
-</div>
-
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+ <div tal:define="member python: here.portal_membership.getAuthenticatedMember()">
+<div class="Desktop">
+
+<h1> Change your Password </h1>
+<div class="error"
+ tal:replace="request/error"
+ tal:condition="request/error|nothing"><hr></div>
+
+<form action="change_password" method="post">
+<table class="FormLayout">
+ <tr>
+ <th>Username
+ </th>
+ <td><span tal:replace="member">You</span>
+ </td>
+ </tr>
+ <tr>
+ <th>New password
+ </th>
+ <td><input type="password" name="password">
+ </td>
+ </tr>
+ <tr>
+ <th>Confirm new password
+ </th>
+ <td><input type="password" name="confirm">
+ </td>
+ </tr>
+ <tr>
+ <th>Domains
+ </th>
+ <td>
+ <input type="text" name="domains:tokens" value=""><br>
+ <em> If you do not know what this field is for, leave it blank. </em>
+ </td>
+ </tr>
+ <tr>
+ <td><br></td>
+ <td><input type="submit" value=" Change ">
+ </td>
+ </tr>
+</table>
+</form>
+
+</div>
+</div>
+
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/personalize_form.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
- <div tal:define="member python: here.portal_membership.getAuthenticatedMember()">
-
-
-<div class="Desktop">
-
-<h1> Member Preferences </h1>
-<span tal:replace="request/msg"
- tal:condition="request/msg|nothing"><hr></span>
-
-<p><a href="password_form">Click here</a> to change your password.</p>
-
-<form action="personalize" method="post">
- <table class="FormLayout">
- <tr>
- <th>Email address</th>
- <td><input type="text" name="email" value=""
- tal:attributes="value member/email">
- </td>
- </tr>
- <tr>
- <th valign="top">Listed status</th>
- <td>
- <input type="radio" name="listed"
- tal:attributes="checked member/listed"
- value="on" id="cb_listed" />
- <label for="cb_listed">Listed</label>
-
- <dl class="FieldHelp">
- <dd>You will show up on the public membership roster.</dd>
- </dl>
-
- <input type="radio" name="listed"
- tal:attributes="checked python: not(member.listed)"
- value="" id="cb_unlisted" />
- <label for="cb_unlisted">Unlisted</label>
- <dl class="FieldHelp">
- <dd> You will <i>not</i> show up on the public membership roster.
- Your Member folder will still be publicly accessible unless
- you change its security settings.</dd>
- </dl>
- </td>
- </tr>
- <div tal:condition="here/portal_skins | nothing">
- <tr>
- <th>Skin</th>
- <td>
- <select name="portal_skin">
- <option value=""
- tal:define="skins python: here.portal_skins.getSkinSelections()"
- tal:repeat="skin skins"
- tal:attributes="value skin; selected python: request.get('portal_skin', '') == skin"
- tal:content="skin">
- </option>
- </select>
- </td>
- </tr>
- </div>
- <tr>
- <td></td>
- <td><input type="submit" value=" Change "></td>
- </tr>
- </table>
-</form>
-
- </div>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+ <div tal:define="member python: here.portal_membership.getAuthenticatedMember()">
+
+
+<div class="Desktop">
+
+<h1> Member Preferences </h1>
+<span tal:replace="request/msg"
+ tal:condition="request/msg|nothing"><hr></span>
+
+<p><a href="password_form">Click here</a> to change your password.</p>
+
+<form action="personalize" method="post">
+ <table class="FormLayout">
+ <tr>
+ <th>Email address</th>
+ <td><input type="text" name="email" value=""
+ tal:attributes="value member/email">
+ </td>
+ </tr>
+ <tr>
+ <th valign="top">Listed status</th>
+ <td>
+ <input type="radio" name="listed"
+ tal:attributes="checked member/listed"
+ value="on" id="cb_listed" />
+ <label for="cb_listed">Listed</label>
+
+ <dl class="FieldHelp">
+ <dd>You will show up on the public membership roster.</dd>
+ </dl>
+
+ <input type="radio" name="listed"
+ tal:attributes="checked python: not(member.listed)"
+ value="" id="cb_unlisted" />
+ <label for="cb_unlisted">Unlisted</label>
+ <dl class="FieldHelp">
+ <dd> You will <i>not</i> show up on the public membership roster.
+ Your Member folder will still be publicly accessible unless
+ you change its security settings.</dd>
+ </dl>
+ </td>
+ </tr>
+ <div tal:condition="here/portal_skins | nothing">
+ <tr>
+ <th>Skin</th>
+ <td>
+ <select name="portal_skin">
+ <option value=""
+ tal:define="skins python: here.portal_skins.getSkinSelections()"
+ tal:repeat="skin skins"
+ tal:attributes="value skin; selected python: request.get('portal_skin', '') == skin"
+ tal:content="skin">
+ </option>
+ </select>
+ </td>
+ </tr>
+ </div>
+ <tr>
+ <td></td>
+ <td><input type="submit" value=" Change "></td>
+ </tr>
+ </table>
+</form>
+
+ </div>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/recent_news.pt 1.2 => 1.3 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
- <div tal:define="b_start string:0;b_start request/b_start | b_start;
- newsitems python: here.portal_catalog.searchResults(meta_type='News Item', sort_on='Date', sort_order='reverse', review_state='published');
- Batch python:modules['ZTUtils'].Batch;
- global batch python:Batch(newsitems, 10, int(b_start), orphan=1)">
-
- <p class="Desktop"
- tal:define="p batch/previous" tal:condition="p">
- <a href=""
- tal:attributes="href string:?b_start=${p/first}"><span tal:replace="p/length">n</span> more recent articles</a>
- </p>
-
- <table cellspacing="0" border="0" width="90%"
- tal:repeat="newsitems batch"
- tal:condition="newsitems">
- <tr>
- <td class="NewsListing" align="left" valign="top">
- <a href=""
- tal:attributes="href newsitems/getURL"
- tal:content="newsitems/title">Title</a>
- </td>
- <td class="NewsListing" align="right" valign="top"
- tal:content="newsitems/Date">Date
- </td>
- </tr>
- <tr><td class="NewsByLine" valign="top" colspan="2" align="left">
- By <span tal:replace="newsitems/Creator">Creator</span>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <em> <span tal:define="pss modules/Products.PythonScripts.standard; niDescription newsitems/Description"
- tal:replace="structure python:pss.structured_text(niDescription)">Description</span></em>
- </td>
- </tr>
- </table>
-<div tal:condition="python:not(newsitems)">
- <p class="Desktop">
- No news is good news!
- </p>
-</div>
- <p class="Desktop"
- tal:define="n batch/next" tal:condition="n">
- <a href=""
- tal:attributes="href string:?b_start=${batch/end}"><span tal:replace="n/length">n</span> older articles</a>
- </p>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+ <div tal:define="b_start string:0;b_start request/b_start | b_start;
+ newsitems python: here.portal_catalog.searchResults(meta_type='News Item', sort_on='Date', sort_order='reverse', review_state='published');
+ Batch python:modules['ZTUtils'].Batch;
+ global batch python:Batch(newsitems, 10, int(b_start), orphan=1)">
+
+ <p class="Desktop"
+ tal:define="p batch/previous" tal:condition="p">
+ <a href=""
+ tal:attributes="href string:?b_start=${p/first}"><span tal:replace="p/length">n</span> more recent articles</a>
+ </p>
+
+ <table cellspacing="0" border="0" width="90%"
+ tal:repeat="newsitems batch"
+ tal:condition="newsitems">
+ <tr>
+ <td class="NewsListing" align="left" valign="top">
+ <a href=""
+ tal:attributes="href newsitems/getURL"
+ tal:content="newsitems/title">Title</a>
+ </td>
+ <td class="NewsListing" align="right" valign="top"
+ tal:content="newsitems/Date">Date
+ </td>
+ </tr>
+ <tr><td class="NewsByLine" valign="top" colspan="2" align="left">
+ By <span tal:replace="newsitems/Creator">Creator</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <em> <span tal:define="pss modules/Products.PythonScripts.standard; niDescription newsitems/Description"
+ tal:replace="structure python:pss.structured_text(niDescription)">Description</span></em>
+ </td>
+ </tr>
+ </table>
+<div tal:condition="python:not(newsitems)">
+ <p class="Desktop">
+ No news is good news!
+ </p>
+</div>
+ <p class="Desktop"
+ tal:define="n batch/next" tal:condition="n">
+ <a href=""
+ tal:attributes="href string:?b_start=${batch/end}"><span tal:replace="n/length">n</span> older articles</a>
+ </p>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/reconfig_form.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-
-<div class="Desktop">
-
-<h3> Configure the Portal </h3>
-
-<p> This form is used to set the portal configuration options.</p>
-
-<div tal:define="pprops here/portal_properties">
-
-<form action="" method="Post"
- tal:attributes="action python:here.portal_url() + '/reconfig'">
- <table class="FormLayout">
- <tr>
- <th valign="top" align="left"> Portal 'From' name
- </th>
- <td>
- <input name="email_from_name" value=""
- tal:attributes="value pprops/email_from_name">
- <dl class="FieldHelp">
- <dd> When the portal generates mail, it uses this name
- as its (apparent) sender. </dd>
- </dl>
- </td>
- </tr>
- <tr>
- <th valign="top" align="left"> Portal 'From' address
- </th>
- <td><input name="email_from_address" value=""
- tal:attributes="value pprops/email_from_address">
- <dl class="FieldHelp">
- <dd> When the portal generates mail, it uses this address
- as its (apparent) return address. </dd>
- </dl>
- </td>
- </tr>
- <tr>
- <th valign="top" align="left"> SMTP server
- </th>
- <td>
- <input name="smtp_server" value=""
- tal:attributes="value pprops/smtp_server">
- <dl class="FieldHelp">
- <dd> This is the address of your local SMTP (out-going
- mail) server.</dd>
- </dl>
- </td>
- </tr>
- <tr>
- <th valign="top" align="left"> Portal title
- </th>
- <td>
- <input name="title" value=""
- tal:attributes="value pprops/title">
- <dl class="FieldHelp">
- <dd> This is the title which appears at the top of every
- portal page.</dd>
- </dl>
- </td>
- </tr>
- <tr>
- <th valign="top" align="left"> Portal description
- </th>
- <td>
- <textarea cols="40" rows="6" name="description"
- style="width: 100%" wrap="soft"
- tal:content="pprops/description"></textarea>
- <dl class="FieldHelp">
- <dd> This description is made available via syndicated
- content and elsewhere. It should be fairly brief.</dd>
- </dl>
- </td>
- </tr>
- <tr>
- <th valign="top" align="left"> Password policy
- </th>
- <td>
- <input type=radio name="validate_email:int"
- value="1" tal:attributes="checked pprops/validate_email">
- Generate and email members' initial password<br>
- <input type=radio name="validate_email:int" value="0"
- tal:define="aec pprops/validate_email"
- tal:attributes="checked python:not(aec)">
- Allow members to select their initial password
- </td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"><input type="Submit" value="Change"></td>
- </tr>
- </table>
-</form>
-</div>
-</div>
-</div>
-</body>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+
+<div class="Desktop">
+
+<h3> Configure the Portal </h3>
+
+<p> This form is used to set the portal configuration options.</p>
+
+<div tal:define="pprops here/portal_properties">
+
+<form action="" method="Post"
+ tal:attributes="action python:here.portal_url() + '/reconfig'">
+ <table class="FormLayout">
+ <tr>
+ <th valign="top" align="left"> Portal 'From' name
+ </th>
+ <td>
+ <input name="email_from_name" value=""
+ tal:attributes="value pprops/email_from_name">
+ <dl class="FieldHelp">
+ <dd> When the portal generates mail, it uses this name
+ as its (apparent) sender. </dd>
+ </dl>
+ </td>
+ </tr>
+ <tr>
+ <th valign="top" align="left"> Portal 'From' address
+ </th>
+ <td><input name="email_from_address" value=""
+ tal:attributes="value pprops/email_from_address">
+ <dl class="FieldHelp">
+ <dd> When the portal generates mail, it uses this address
+ as its (apparent) return address. </dd>
+ </dl>
+ </td>
+ </tr>
+ <tr>
+ <th valign="top" align="left"> SMTP server
+ </th>
+ <td>
+ <input name="smtp_server" value=""
+ tal:attributes="value pprops/smtp_server">
+ <dl class="FieldHelp">
+ <dd> This is the address of your local SMTP (out-going
+ mail) server.</dd>
+ </dl>
+ </td>
+ </tr>
+ <tr>
+ <th valign="top" align="left"> Portal title
+ </th>
+ <td>
+ <input name="title" value=""
+ tal:attributes="value pprops/title">
+ <dl class="FieldHelp">
+ <dd> This is the title which appears at the top of every
+ portal page.</dd>
+ </dl>
+ </td>
+ </tr>
+ <tr>
+ <th valign="top" align="left"> Portal description
+ </th>
+ <td>
+ <textarea cols="40" rows="6" name="description"
+ style="width: 100%" wrap="soft"
+ tal:content="pprops/description"></textarea>
+ <dl class="FieldHelp">
+ <dd> This description is made available via syndicated
+ content and elsewhere. It should be fairly brief.</dd>
+ </dl>
+ </td>
+ </tr>
+ <tr>
+ <th valign="top" align="left"> Password policy
+ </th>
+ <td>
+ <input type=radio name="validate_email:int"
+ value="1" tal:attributes="checked pprops/validate_email">
+ Generate and email members' initial password<br>
+ <input type=radio name="validate_email:int" value="0"
+ tal:define="aec pprops/validate_email"
+ tal:attributes="checked python:not(aec)">
+ Allow members to select their initial password
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"><input type="Submit" value="Change"></td>
+ </tr>
+ </table>
+</form>
+</div>
+</div>
+</div>
+</body>
</html>
=== Products/CMFDecor/skins/zpt_generic/registered.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-
-<div class="Desktop"
- tal:define="pprops here/portal_properties; ve pprops/validate_email">
-
-<h1> Success! </h1>
-
-<p> You have been registered as a member. </p>
-
-<p tal:condition="ve"> You will receive an email shortly containing your password
- and instructions on how to activate your membership. </p>
-
-<p tal:condition="python:not(ve)"> You can log on immediately by clicking
- <a href=""
- tal:define="pss modules/Products.PythonScripts.standard; uname request/username; username python:pss.url_quote(uname); pword request/password; password python:pss.url_quote(pword)"
- tal:attributes="href python: here.portal_url() + '/logged_in?__ac_name=' + username + '&__ac_password=' + password">here</a>.
-</p>
-
-<p>
-<a href="" tal:attributes="href python:here.portal_url() + '/index_html'">Return to homepage</a>
-</p>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+
+<div class="Desktop"
+ tal:define="pprops here/portal_properties; ve pprops/validate_email">
+
+<h1> Success! </h1>
+
+<p> You have been registered as a member. </p>
+
+<p tal:condition="ve"> You will receive an email shortly containing your password
+ and instructions on how to activate your membership. </p>
+
+<p tal:condition="python:not(ve)"> You can log on immediately by clicking
+ <a href=""
+ tal:define="pss modules/Products.PythonScripts.standard; uname request/username; username python:pss.url_quote(uname); pword request/password; password python:pss.url_quote(pword)"
+ tal:attributes="href python: here.portal_url() + '/logged_in?__ac_name=' + username + '&__ac_password=' + password">here</a>.
+</p>
+
+<p>
+<a href="" tal:attributes="href python:here.portal_url() + '/index_html'">Return to homepage</a>
+</p>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/roster.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-
-<div tal:condition="python:not(request.has_key('bs'))"
- tal:define="dummy python:request.set('bs', '25')"></div>
-
-<div class="Desktop">
-
-<h3> Portal Members </h3>
-
-<table class="SearchResults">
- <tr>
- <td width="16"> <br>
- </td>
- <th>Member</th>
- <th tal:condition="python: here.portal_membership.checkPermission('Manage_users', here.Members)">Listed?</th>
- </tr>
-<div tal:define="b_start string:0;b_start request/b_start | b_start;
- members python: here.portal_membership.getRoster();
- Batch python:modules['ZTUtils'].Batch;
- global batch python:Batch(members, 25, int(b_start), orphan=1)">
-<tr tal:repeat="members batch">
-
- <td> <br> </td>
- <td tal:define="id members/id; homeUrl python: here.portal_membership.getHomeUrl(id, verifyPermission=1)">
- <a href="www.here.com"
- tal:condition="homeUrl"
- tal:attributes="href homeUrl"
- tal:content="id">ID</a>
- <span tal:condition="not:homeUrl"
- tal:replace="id">ID</span>
- </td>
- <td tal:condition="python: here.portal_membership.checkPermission( 'Manage_users', here.Members )"
- tal:define="listed members/listed">
- <span tal:replace="python: listed and 'Yes' or 'No'">Yes...Or No</span>
- </td>
-</tr>
-
-<tr>
- <td> <br> </td>
- <td>
- <span tal:define="p batch/previous" tal:condition="p">
- <a href=""
- tal:attributes="href string:?b_start=${p/first}">Previous <span tal:replace="p/length">p</span> Members</a>
- </span>
- <span tal:define="n batch/next" tal:condition="n">
- <a href=""
- tal:attributes="href string:?b_start=${batch/end}">Next <span tal:replace="n/length">n</span> Members</a>
- </span>
- </td>
-</tr>
-</div>
-</table>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+
+<div tal:condition="python:not(request.has_key('bs'))"
+ tal:define="dummy python:request.set('bs', '25')"></div>
+
+<div class="Desktop">
+
+<h3> Portal Members </h3>
+
+<table class="SearchResults">
+ <tr>
+ <td width="16"> <br>
+ </td>
+ <th>Member</th>
+ <th tal:condition="python: here.portal_membership.checkPermission('Manage_users', here.Members)">Listed?</th>
+ </tr>
+<div tal:define="b_start string:0;b_start request/b_start | b_start;
+ members python: here.portal_membership.getRoster();
+ Batch python:modules['ZTUtils'].Batch;
+ global batch python:Batch(members, 25, int(b_start), orphan=1)">
+<tr tal:repeat="members batch">
+
+ <td> <br> </td>
+ <td tal:define="id members/id; homeUrl python: here.portal_membership.getHomeUrl(id, verifyPermission=1)">
+ <a href="www.here.com"
+ tal:condition="homeUrl"
+ tal:attributes="href homeUrl"
+ tal:content="id">ID</a>
+ <span tal:condition="not:homeUrl"
+ tal:replace="id">ID</span>
+ </td>
+ <td tal:condition="python: here.portal_membership.checkPermission( 'Manage_users', here.Members )"
+ tal:define="listed members/listed">
+ <span tal:replace="python: listed and 'Yes' or 'No'">Yes...Or No</span>
+ </td>
+</tr>
+
+<tr>
+ <td> <br> </td>
+ <td>
+ <span tal:define="p batch/previous" tal:condition="p">
+ <a href=""
+ tal:attributes="href string:?b_start=${p/first}">Previous <span tal:replace="p/length">p</span> Members</a>
+ </span>
+ <span tal:define="n batch/next" tal:condition="n">
+ <a href=""
+ tal:attributes="href string:?b_start=${batch/end}">Next <span tal:replace="n/length">n</span> Members</a>
+ </span>
+ </td>
+</tr>
+</div>
+</table>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/rssDisabled.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-<h2 tal:content="here/getId">Document Title</h2>
-<div tal:condition="request/portal_status_message | nothing"
- tal:content="request/portal_status_message"
- class="error"></div>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div class="Desktop">
+<h2 tal:content="here/getId">Document Title</h2>
+<div tal:condition="request/portal_status_message | nothing"
+ tal:content="request/portal_status_message"
+ class="error"></div>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/search.pt 1.5 => 1.6 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-<div class="Desktop">
-
-<h3> Search Results </h3>
-
-<div tal:define="b_start string:0;b_start request/b_start | b_start;
- results here/portal_catalog;
- Batch python:modules['ZTUtils'].Batch;
- global batch python:Batch(results, 25, int(b_start), orphan=1)">
- <p>Found <span tal:define="pss modules/Products.PythonScripts.standard"
- tal:replace="python:pss.thousands_commas(len(results))">100</span> items
- <span tal:condition="exists: request/SearchableText|nothing"
- tal:replace="string:matching ${request/SearchableText}"></span>.
- </p>
-<table class="SearchResults">
- <tr>
- <td width="16"><br></td>
- <th> Title
- </th>
- <th> Type
- </th>
- <th> Date
- </th>
- </tr>
-<tbody tal:repeat="results batch"
- tal:condition="results">
- <tr>
- <td tal:define="global objURL python: results.getURL() + '/view'">
- <span tal:condition="results/getIcon|nothing">
- <a href="" tal:attributes="href objURL"><img src="" border="0" alt="" title=""
- tal:define="alt results/Type"
- tal:attributes="src results/getIcon; alt alt; title alt">
- </a>
- </span>
- </td>
- <td>
- <a href="" tal:attributes="href objURL"><span tal:condition="results/Title"
- tal:content="results/Title">Title</span><span tal:condition="not:results/Title" tal:content="string:(No title)"></span></a>
- </td>
- <td><span tal:content="results/Type">Type</span></td>
- <td tal:content="results/Date">Date</td>
-</tr>
-<tr>
- <td> </td>
- <td colspan="3">
- <em><span tal:condition="results/Description"
- tal:content="results/Description">Description</span>
- <span tal:condition="not:results/Description"
- tal:content="string:(No description)"></span></em>
- </td>
-</tr>
-</tbody>
- </table>
-<div tal:condition="not:results"
- tal:replace="string:There are no items matching your specified criteria"></div>
-
- <p class="Desktop">
- <span tal:define="p batch/previous" tal:condition="p">
- <a href=""
- tal:attributes="href string:?b_start=${p/first}&SearchableText=${request/SearchableText}">Previous <span tal:replace="p/length">n</span> items</a>
- </span>
- <span tal:define="n batch/next" tal:condition="n">
- <a href=""
- tal:attributes="href string:?b_start=${batch/end}&SearchableText=${request/SearchableText}">Next <span tal:replace="n/length">n</span> items</a>
- </span>
- </p>
-</div>
-</div>
-</div>
-</body>
-</html>
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+<div class="Desktop">
+
+<h3> Search Results </h3>
+
+<div tal:define="b_start string:0;b_start request/b_start | b_start;
+ results here/portal_catalog;
+ Batch python:modules['ZTUtils'].Batch;
+ global batch python:Batch(results, 25, int(b_start), orphan=1);
+ ">
+ <p>Found <span tal:define="pss modules/Products.PythonScripts.standard"
+ tal:replace="python:pss.thousands_commas(len(results))">100</span> items
+ <span tal:condition="exists: request/SearchableText"
+ tal:replace="string:matching ${request/SearchableText}"></span>.
+ </p>
+<table class="SearchResults">
+ <tr>
+ <td width="16"><br></td>
+ <th> Title
+ </th>
+ <th> Type
+ </th>
+ <th> Date
+ </th>
+ </tr>
+<tbody tal:repeat="results batch"
+ tal:condition="results">
+ <tr>
+ <td tal:define="global objURL python: results.getURL() + '/view'">
+ <span tal:condition="results/getIcon|nothing">
+ <a href="" tal:attributes="href objURL"><img src="" border="0" alt="" title=""
+ tal:define="alt results/Type"
+ tal:attributes="src results/getIcon; alt alt; title alt">
+ </a>
+ </span>
+ </td>
+ <td>
+ <a href="" tal:attributes="href objURL"><span tal:condition="results/Title"
+ tal:content="results/Title">Title</span><span tal:condition="not:results/Title" tal:content="string:(No title)"></span></a>
+ </td>
+ <td><span tal:content="results/Type">Type</span></td>
+ <td tal:content="results/Date">Date</td>
+</tr>
+<tr>
+ <td> </td>
+ <td colspan="3">
+ <em><span tal:condition="results/Description"
+ tal:content="results/Description">Description</span>
+ <span tal:condition="not:results/Description"
+ tal:content="string:(No description)"></span></em>
+ </td>
+</tr>
+</tbody>
+ </table>
+<div tal:condition="not:results"
+ tal:replace="string:There are no items matching your specified criteria"></div>
+
+ <p class="Desktop">
+ <span tal:define="p batch/previous" tal:condition="p">
+ <a href=""
+ tal:attributes="href python: here.searchQueryString( b_start=p.first )"
+ >Previous <span tal:replace="p/length">n</span> items</a>
+ </span>
+ <span tal:define="n batch/next" tal:condition="n">
+ <a href=""
+ tal:attributes="href python: here.searchQueryString( b_start=n.first )"
+ >Next <span tal:replace="n/length">n</span> items</a>
+ </span>
+ </p>
+</div>
+</div>
+</div>
+</body>
+</html>
=== Products/CMFDecor/skins/zpt_generic/search_form.pt 1.2 => 1.3 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-
-<div class="Desktop">
-
-<h1>Search <span tal:replace="here/Title" /></h1>
-
-<form action="search">
-
-<table class="FormLayout">
-
-
- <tr tal:condition="python: here.portal_membership.checkPermission('Review portal content', here)">
- <th> Review Status
- </th>
- <td>
- <select name="review_state" size="3" multiple>
- <option>private</option>
- <option>pending</option>
- <option>published</option>
- </select>
- <dl class="FieldHelp">
- <dd> As a reviewer, you may search for items based on their
- review state. If you wish to constrain results to items
- in certain states, select them from this list.
- </dd>
- </dl>
- </td>
- </tr>
-
- <tr valign="top">
- <th> Full Text
- </th>
- <td>
- <input name="SearchableText" size="40">
- <dl class="FieldHelp">
- <dd> For a simple text search, enter your search term
- here. Multiple words may be found by combining
- them with <b>AND</b> and <b>OR</b>. This will
- find text in items' contents, title and
- description.
- </dd>
- </dl>
- </td>
- </tr>
-
- <tr>
- <th>Title
- </th>
- <td>
- <input name="Title" size="20">
- </td>
- </tr>
-
- <tr valign="top">
- <th>Subject</th>
- <td><select name="Subject:list" multiple>
- <option value=""
- tal:define="items python: here.portal_catalog.uniqueValuesFor('Subject')"
- tal:repeat="item items"
- tal:attributes="value item"
- tal:content="item">
- </option>
- </select>
- </td>
- </tr>
-
- <tr>
- <th> Description
- </th>
- <td>
- <input name="Description" size="20">
- <dl class="FieldHelp">
- <dd> You may also search the items' descriptions and
- titles specifically. Multiple words may be found
- by combining them with <b>AND</b> and <b>OR</b>.
- </dd>
- </dl>
- </td>
- </tr>
-
- <tr>
- <th> Find new items since...
- </th>
- <td>
- <select name="created:date"
- tal:define="today python: here.ZopeTime().earliestTime()">
- <option value=""
- tal:condition="python:not(here.portal_membership.isAnonymousUser())"
- tal:define="member python:here.portal_membership.getAuthenticatedMember(); lastLogin exists: member/last_login_time"
- tal:attributes="value lastLogin">Last login</option>
- <option value=""
- tal:define="yesterday python:(today-1).Date()"
- tal:attributes="value yesterday">Yesterday</option>
- <option value=""
- tal:define="lastWeek python:(today-7).Date()"
- tal:attributes="value lastWeek">Last week</option>
- <option value=""
- tal:define="lastMth python:(today-31).Date()"
- tal:attributes="value lastMth">Last month</option>
- <option value="1970/01/01 00:00:00 GMT">Ever</option>
- </select>
- <input type="hidden" name="created_usage" value="range:min">
- <dl class="FieldHelp">
- <dd> You may find only recent items by selecting a time-frame.
- </dd>
- </dl>
- </td>
- </tr>
-
- <tr>
- <th> Item type
- </th>
- <td>
- <select name="Type:list" multiple size="5">
- <option value=""
- tal:define="items python: here.portal_types.listContentTypes()"
- tal:repeat="item items"
- tal:attributes="value item"
- tal:content="item">
- </option>
- </select>
- <dl class="FieldHelp">
- <dd> You may limit your results to particular kinds of
- items by selecting them above. To find all kinds
- of items, do not select anything.
- </dd>
- </dl>
- </td>
- </tr>
-
- <tr>
- <th> Creator
- </th>
- <td>
- <input name="Creator" size="20">
-
- <dl class="FieldHelp">
- <dd> To find items by a particular user only, enter
- their username above. Note that you must enter
- their username <i>exactly</i>.
- </dd>
- </dl>
- </td>
- </tr>
-
- <tr>
- <td><br></td>
- <td>
- <input type="submit" value="Search">
- </td>
- </tr>
-</table>
-</form>
-
-</div>
-</div>
-</body>
-</html>
-
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+
+<div class="Desktop">
+
+<h1>Search <span tal:replace="here/Title" /></h1>
+
+<form action="search">
+
+<table class="FormLayout">
+
+
+ <tr tal:condition="python: here.portal_membership.checkPermission('Review portal content', here)">
+ <th> Review Status
+ </th>
+ <td>
+ <select name="review_state" size="3" multiple>
+ <option>private</option>
+ <option>pending</option>
+ <option>published</option>
+ </select>
+ <dl class="FieldHelp">
+ <dd> As a reviewer, you may search for items based on their
+ review state. If you wish to constrain results to items
+ in certain states, select them from this list.
+ </dd>
+ </dl>
+ </td>
+ </tr>
+
+ <tr valign="top">
+ <th> Full Text
+ </th>
+ <td>
+ <input name="SearchableText" size="40">
+ <dl class="FieldHelp">
+ <dd> For a simple text search, enter your search term
+ here. Multiple words may be found by combining
+ them with <b>AND</b> and <b>OR</b>. This will
+ find text in items' contents, title and
+ description.
+ </dd>
+ </dl>
+ </td>
+ </tr>
+
+ <tr>
+ <th>Title
+ </th>
+ <td>
+ <input name="Title" size="20">
+ </td>
+ </tr>
+
+ <tr valign="top">
+ <th>Subject</th>
+ <td><select name="Subject:list" multiple>
+ <option value=""
+ tal:define="items python: here.portal_catalog.uniqueValuesFor('Subject')"
+ tal:repeat="item items"
+ tal:attributes="value item"
+ tal:content="item">
+ </option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <th> Description
+ </th>
+ <td>
+ <input name="Description" size="20">
+ <dl class="FieldHelp">
+ <dd> You may also search the items' descriptions and
+ titles specifically. Multiple words may be found
+ by combining them with <b>AND</b> and <b>OR</b>.
+ </dd>
+ </dl>
+ </td>
+ </tr>
+
+ <tr>
+ <th> Find new items since...
+ </th>
+ <td>
+ <select name="created:date"
+ tal:define="today python: here.ZopeTime().earliestTime()">
+ <option value=""
+ tal:condition="python:not(here.portal_membership.isAnonymousUser())"
+ tal:define="member python:here.portal_membership.getAuthenticatedMember(); lastLogin exists: member/last_login_time"
+ tal:attributes="value lastLogin">Last login</option>
+ <option value=""
+ tal:define="yesterday python:(today-1).Date()"
+ tal:attributes="value yesterday">Yesterday</option>
+ <option value=""
+ tal:define="lastWeek python:(today-7).Date()"
+ tal:attributes="value lastWeek">Last week</option>
+ <option value=""
+ tal:define="lastMth python:(today-31).Date()"
+ tal:attributes="value lastMth">Last month</option>
+ <option value="1970/01/01 00:00:00 GMT">Ever</option>
+ </select>
+ <input type="hidden" name="created_usage" value="range:min">
+ <dl class="FieldHelp">
+ <dd> You may find only recent items by selecting a time-frame.
+ </dd>
+ </dl>
+ </td>
+ </tr>
+
+ <tr>
+ <th> Item type
+ </th>
+ <td>
+ <select name="Type:list" multiple size="5">
+ <option value=""
+ tal:define="items python: here.portal_types.listContentTypes()"
+ tal:repeat="item items"
+ tal:attributes="value item"
+ tal:content="item">
+ </option>
+ </select>
+ <dl class="FieldHelp">
+ <dd> You may limit your results to particular kinds of
+ items by selecting them above. To find all kinds
+ of items, do not select anything.
+ </dd>
+ </dl>
+ </td>
+ </tr>
+
+ <tr>
+ <th> Creator
+ </th>
+ <td>
+ <input name="Creator" size="20">
+
+ <dl class="FieldHelp">
+ <dd> To find items by a particular user only, enter
+ their username above. Note that you must enter
+ their username <i>exactly</i>.
+ </dd>
+ </dl>
+ </td>
+ </tr>
+
+ <tr>
+ <td><br></td>
+ <td>
+ <input type="submit" value="Search">
+ </td>
+ </tr>
+</table>
+</form>
+
+</div>
+</div>
+</body>
+</html>
+
=== Products/CMFDecor/skins/zpt_generic/simple_metadata.pt 1.1 => 1.2 ===
- xmlns:metal="http://xml.zope.org/namespaces/metal"
- metal:use-macro="here/main_template/macros/master">
-<body>
-<div metal:fill-slot="main">
-
-<div class="Desktop">
-
-<dtml-if message>
- <p>&dtml-message;</p>
- <hr>
-</dtml-if>
-
-
-<div class="Metadata">
-
-<h2>Resource Metadata </h2>
-
-<div tal:define="effectiveString python:here.effective_date and here.effective_date.ISO() or 'None';
- expirationString python: here.expiration_date and here.expiration_date.ISO() or 'None'">
-
-<form action="editMetadata" method="post">
-<table class="FormLayout">
- <tr valign="top">
- <th align="right">
- <a href=""
- tal:attributes="href python:here.portal_url() + '/metadata_help#Identifier'">Identifier</a>
- </th>
- <td colspan="3"
- tal:content="here/Identifier">Identifier
- </td>
- </tr>
- <tr valign="top">
- <th align="right">
- <a href=""
- tal:attributes="href python: here.portal_url() + '/metadata_help#Title'">Title</a>
- </th>
- <td colspan="3">
- <input type="text"
- name="title"
- value=""
- size="65"
- tal:attributes="value here/Title">
- </td>
- </tr>
- <tr valign="top">
- <th align="right">
- <a href=""
- tal:attributes="href python: here.portal_url() + '/metadata_help#Description'">Description</a>
- </th>
- <td colspan="3">
- <textarea name="description:text" rows="5"
- cols="65"
- tal:content="here/Description">Description</textarea>
- </td>
- </tr>
- <tr valign="top">
- <th align="right">
- <a href=""
- tal:attributes="href python: here.portal_url() + '/metadata_help#Subject'">Subject</a>
- </th>
- <td>
- <textarea name="subject:lines" rows="5"
- cols="30"
- tal:define="lines here/Subject"><span tal:repeat="line lines" tal:replace="line"></span></textarea>
- </td>
- </tr>
- <tr valign="top">
- <th align="right">
- <a href=""
- tal:attributes="href python: here.portal_url() + '/metadata_help#Creation Date'">Created</a>
- </th>
- <td tal:content="here/CreationDate">CreationDate
- </td>
- <th align="right">
- <a href=""
- tal:attributes="href python: here.portal_url() + '/metadata_help#ModifiedDate'">Modified</a>
- </th>
- <td tal:content="here/ModificationDate">ModificationDate
- </td>
- </tr>
- <tr valign="top">
- <th align="right">
- <a href=""
- tal:attributes="tal:attributes="href python: here.portal_url() + '/metadata_help#EffectiveDate'">Effective</a>
- </th>
- <td> <input type="text" name="effective_date"
- value=""
- tal:attributes="value effectiveString">
- </td>
- <th align="right">
- <a href=""
- tal:attributes="tal:attributes="href python: here.portal_url() + '/metadata_help#ExpirationDate'"> Expires </a>
- </th>
- <td> <input type="text" name="expiration_date"
- value=""
- tal:attributes="value expirationString">
- </td>
- </tr>
- <tr valign="top">
- <td> <br> </td>
- <td>
- <input type="submit" value=" Change ">
- </td>
- </tr>
-</table>
-</form>
-</div>
-
-</div>
-
-</div>
-</div>
-</body>
-</html>
-
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master">
+<body>
+<div metal:fill-slot="main">
+
+<div class="Desktop">
+
+<dtml-if message>
+ <p>&dtml-message;</p>
+ <hr>
+</dtml-if>
+
+
+<div class="Metadata">
+
+<h2>Resource Metadata </h2>
+
+<div tal:define="effectiveString python:here.effective_date and here.effective_date.ISO() or 'None';
+ expirationString python: here.expiration_date and here.expiration_date.ISO() or 'None'">
+
+<form action="editMetadata" method="post">
+<table class="FormLayout">
+ <tr valign="top">
+ <th align="right">
+ <a href=""
+ tal:attributes="href python:here.portal_url() + '/metadata_help#Identifier'">Identifier</a>
+ </th>
+ <td colspan="3"
+ tal:content="here/Identifier">Identifier
+ </td>
+ </tr>
+ <tr valign="top">
+ <th align="right">
+ <a href=""
+ tal:attributes="href python: here.portal_url() + '/metadata_help#Title'">Title</a>
+ </th>
+ <td colspan="3">
+ <input type="text"
+ name="title"
+ value=""
+ size="65"
+ tal:attributes="value here/Title">
+ </td>
+ </tr>
+ <tr valign="top">
+ <th align="right">
+ <a href=""
+ tal:attributes="href python: here.portal_url() + '/metadata_help#Description'">Description</a>
+ </th>
+ <td colspan="3">
+ <textarea name="description:text" rows="5"
+ cols="65"
+ tal:content="here/Description">Description</textarea>
+ </td>
+ </tr>
+ <tr valign="top">
+ <th align="right">
+ <a href=""
+ tal:attributes="href python: here.portal_url() + '/metadata_help#Subject'">Subject</a>
+ </th>
+ <td>
+ <textarea name="subject:lines" rows="5"
+ cols="30"
+ tal:define="lines here/Subject"><span tal:repeat="line lines" tal:replace="line"></span></textarea>
+ </td>
+ </tr>
+ <tr valign="top">
+ <th align="right">
+ <a href=""
+ tal:attributes="href python: here.portal_url() + '/metadata_help#Creation Date'">Created</a>
+ </th>
+ <td tal:content="here/CreationDate">CreationDate
+ </td>
+ <th align="right">
+ <a href=""
+ tal:attributes="href python: here.portal_url() + '/metadata_help#ModifiedDate'">Modified</a>
+ </th>
+ <td tal:content="here/ModificationDate">ModificationDate
+ </td>
+ </tr>
+ <tr valign="top">
+ <th align="right">
+ <a href=""
+ tal:attributes="tal:attributes="href python: here.portal_url() + '/metadata_help#EffectiveDate'">Effective</a>
+ </th>
+ <td> <input type="text" name="effective_date"
+ value=""
+ tal:attributes="value effectiveString">
+ </td>
+ <th align="right">
+ <a href=""
+ tal:attributes="tal:attributes="href python: here.portal_url() + '/metadata_help#ExpirationDate'"> Expires </a>
+ </th>
+ <td> <input type="text" name="expiration_date"
+ value=""
+ tal:attributes="value expirationString">
+ </td>
+ </tr>
+ <tr valign="top">
+ <td> <br> </td>
+ <td>
+ <input type="submit" value=" Change ">
+ </td>
+ </tr>
+</table>
+</form>
+</div>
+
+</div>
+
+</div>
+</div>
+</body>
+</html>
+
=== Products/CMFDecor/skins/zpt_generic/talkback_tree.pt 1.1 => 1.2 ===
- <head>
- <title tal:content="template/title">The title</title>
- </head>
- <body tal:define="t python:here.setup_talkback_tree(here); height t/root/height">
- <table cellspacing="0" border="0">
- <tr tal:repeat="row t/rows">
-
-
- <td tal:define="indent python:row.depth - 1"
- tal:condition="indent"
- tal:attributes="colspan indent" colspan="1"></td>
- <td width="16" tal:define="rlink row/branch">
- <a tal:condition="rlink"
- tal:attributes="name row/id;href rlink/link"
- tal:content="structure rlink/img" href name><img src="/p_/pl"></a>
- </td>
- <td tal:attributes="colspan python:height-row.depth"
- tal:define="obj nocall:row/object;url python:obj.absolute_url()"
- colspan="1" width="99%">
- <a tal:attributes="href url">
- <img tal:attributes="src python:obj.portal_url() + '/' + obj.getIcon()"
- border="0" src="" /></a>
-<a tal:attributes="href url"
- tal:content="obj/Title" href="">Title</a>, by <span tal:replace="obj/Creator">Me</span> on <span tal:replace="obj/CreationDate">Today</span>
- </td>
- </tr>
- </table>
- </body>
-</html>
+<html>
+ <head>
+ <title tal:content="template/title">The title</title>
+ </head>
+ <body tal:define="t python:here.setup_talkback_tree(here); height t/root/height">
+ <table cellspacing="0" border="0">
+ <tr tal:repeat="row t/rows">
+
+
+ <td tal:define="indent python:row.depth - 1"
+ tal:condition="indent"
+ tal:attributes="colspan indent" colspan="1"></td>
+ <td width="16" tal:define="rlink row/branch">
+ <a tal:condition="rlink"
+ tal:attributes="name row/id;href rlink/link"
+ tal:content="structure rlink/img" href name><img src="/p_/pl"></a>
+ </td>
+ <td tal:attributes="colspan python:height-row.depth"
+ tal:define="obj nocall:row/object;url python:obj.absolute_url()"
+ colspan="1" width="99%">
+ <a tal:attributes="href url">
+ <img tal:attributes="src python:obj.portal_url() + '/' + obj.getIcon()"
+ border="0" src="" /></a>
+<a tal:attributes="href url"
+ tal:content="obj/Title" href="">Title</a>, by <span tal:replace="obj/Creator">Me</span> on <span tal:replace="obj/CreationDate">Today</span>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>