Aktuelle Dokumente der letzten 14 Tage listenAutor: Dirk Nordmann, Dr. F. Hoffmann, 24.10.2003 Über den gesamten Content-Baum sollen die aktuellsten Seiten-Objekte der letzten 14 Tage in einer sortierten Liste erscheinen. Lösungsansatz: Über den zu prüfenden Knoten (im Beispiel-Code das root-Element 'content') wird mit filteredTreeNodes() eine auf den Datumszeitraum begrenzte sortierte Liste geschrieben. Der Code wird in einen Textabschnitt gesetzt (Format HTML); alternativ kann den Code in ein Teasertext-Element schreiben (und den Einstiegspfad z.B. mit getParentNode().getParentNode().filteredTreeNodes korrigieren). <dtml-call "REQUEST.set('res',[])">
<dtml-call "REQUEST.set('curr_dt',ZopeTime())">
<dtml-call "REQUEST.set('curr_dt',
_.DateTime('%4d/%2d/%2d'%(curr_dt.year(),curr_dt.month(),curr_dt.day())))">
<dtml-call "REQUEST.set('curr_dt',curr_dt.timeTime())">
<dtml-call "REQUEST.set('delta_dt',REQUEST.get('days',14)*24*60*60)">
<dtml-in "content.filteredTreeNodes(REQUEST,None,'attr_active_start','desc')">
<dtml-let ob=sequence-item>
<dtml-call "REQUEST.set('start_dt',
getObjProperty('attr_active_start',REQUEST))">
<dtml-if start_dt>
<dtml-call "REQUEST.set('start_dt',
_.DateTime('%4d/%2d/%2d'%(REQUEST['start_dt'][0],
REQUEST['start_dt'][1],REQUEST['start_dt'][2])))">
<dtml-call "REQUEST.set('start_dt',REQUEST['start_dt'].timeTime())">
<dtml-if "curr_dt-REQUEST['start_dt']<=delta_dt">
<dtml-call "res.append(ob)">
</dtml-if>
</dtml-if>
</dtml-let>
</dtml-in>
<!-- generate html code -->
<hr size="1"/>
<div class="form-small">
<b>Aktuelle Dokumente:</b>
<br/>
<dtml-in res>
<dtml-let ob=sequence-item>
<a href="<dtml-var "getHref2IndexHtml(REQUEST)">">
<dtml-var "getTitle(REQUEST)"></a>
<dtml-var "getLangFmtDate(getObjProperty('attr_active_start',
REQUEST),lang,'DATE_FMT')">
<dtml-if "getObjProperty('attr_dc_description',REQUEST)">
<br /><dtml-var "getObjProperty('attr_dc_description',REQUEST)">
</dtml-if>
<br />
</dtml-let>
</dtml-in>
</div>
<hr size="1"/>Kommentar: Achtung: die Iteration über alle Objekte kann bei großen Dokumentzahlen erhebliche Rechenzeiten bedingen References:
|
Home |
Sitemap |
Druckversion |
Seitenanfang |
Impressum |
pressinfo
© 2001-2008 Hoffmann+Liebenberg GmbH, SNTL Publishing GmbH & Co KG
|
ZMS is a partner project of medvalue.net