Casey Duncan wrote:
BTW: This list if for development *of* Zope, the zope@zope.org list is better for questions bout developing *with* Zope.
On to your question:
There is no automatic way in which DTML can do this for you. This is simply because <dtml-var foo> doesn't tell Zope what foo is. Is it a document or a script that returns something different every time it is called or something else? In fact foo might different things at different times, if you aquire the template into different contexts.
Anyhow, if you really want to set a Last-Modified header that reflects the latest of a group of documents, you can write a python script that accepts either a list of names or objects to test. For the latter here's a Py script named "setLastModTime" with a single argument, "*objects":
last_mod = objects[0].bobobase_modification_time() for ob in objects[1:]: last_mod = max(last_mod, ob.bobobase_modification_time()) context.REQUEST.RESPONSE.setHeader('Last-Modified', last_mod.rfc822()) return last_mod # for debugging purposes
Then from dtml:
<dtml-call expr="setLastModTime(this(), fooMethod, barDocument, ...)">
A similar approach would be for each page fragment to set the Last-Modified head if either there is no header set, or its own last-modified time is later than one that is set. -- Steve Alexander