Autor: Dirk Nordmann, Dr. F. Hoffmann, 24.10.2003
Mithilfe einer ZMS-Aktion soll redaktionell aktualisierbare, rechenintensive Liste erzeugt werden, die als dynamischer Code zu lange Responsezeiten bedingen würde.
Lösungsansatz: Am Beispiel der Aktion "Neue Objekte im aktuellen Zeitraum" (Code-Download siehe unten) wird nun als Variante dieser Lösung der Ergebnis-Code aus der Objektiteraton in ein Listenobjekt 'html' geschrieben. Dieses Objekt 'html' wird über die Funktion manage_addZMSTextarea() bzw. join() in einen neuen Textabschnitt geschrieben. Zum Einsatz kommt das Kontrukt 'text':''.join(html).
...
<dtml-call "REQUEST.set('html',[])">
<dtml-call "html.append('<b>%i %s</b>\n'%(_.len(res),
getLangStr('ATTR_RECORDS',manage_lang)))">
<dtml-call "html.append('<br/><br/>\n')">
<dtml-in res>
<dtml-let ob=sequence-item>
<dtml-call "html.append(f_breadcrumbs(_,_,objectPathElements
=ob.breadcrumbs_obj_path(),no_icon=0,REQUEST=REQUEST))">
<dtml-call "html.append('<br/>\n')">
</dtml-let>
</dtml-in>
<dtml-call "REQUEST.set('textarea',
manage_addZMSTextarea({
'active':1,
'format':'plain_html',
'text':''.join(html)
},REQUEST
))">
...
manage_findNew2.xml
(4KB)
![]() |
Aktuelle Dokumente der letzten 14 Tage listen |
| Über den gesamten Content-Baum sollen die aktuellsten Seiten-Objekte der letzten 14 Tage in einer sortierten Liste erscheinen. |
![]() |
Liste aller neuen Objekte in vorgegebenem Zeitraum |
| Die Aktion generiert eine Liste aller neuen Objekte in einem vorgegebenem Zeitraum und schreibt die Liste statisch in einen neuen Textabschnitt. |