Hallo,
das Prinzip hinter dieser Abfrage ist einfach: Das Listview wird "ganz normal" ausgeführt, so dass der Bereich innerhalb von we:repeat für jeden Datensatz wiederholt wird.
Jetzt wird aber bei jedem Mal, wo dieser Bereich angezeigt wird eine "wenn dann (if) Anweisung ausgeführt, ist deren Kriterium erfüllt, wird in diesem Beispiel der Begriff "neu" hinzugefügt. Im Beispiel, wird am Anfang eine Variable auf den Wert 0 gesetzt und bei jedem durchlauf um eins erhöht ($counter++) ist der Wert kleiner 3 ist die Bedingung erfüllt.
Möchten Sie das ganze also für Ihre Anforderungen anpassen, müssen Sie die Bedingung so ändern, dass der Wert eines Feldes mit dem aktuellen Datum verglichen wird und wenn die Abweichung weniger als 3 Tage ist muss die Bedingung zutreffen. Also...
1. Schritt - Datumsfeld ermitteln und ausgeben lassen
Zuerst lassen wir den Inhalt des Datumsfeldes ausgeben, so können wir erstmal sehen, mit was wir vergleichen - ist einfacher als später Fehler zu suchen
<?php echo $lv->f("Feldname_Datumsfeld"); ?>
Sie sollten jetzt eine lange Zahl ausgegeben bekommen. Das liegt daran, dass in webEdition ein Datum als "unix timestamp" gespeichert wird. Bedeutet, es wird die Anzahl der Sekunden seit dem 1.01.1970 angegeben.
2. Schritt - Aktuelles Datum minus x Tage ermitteln
Die Funktion time(); gibt den aktuellen Timestamp zurück:
<?php echo time(); ?>
Jetzt noch die Tage abziehen:
<?php
$tage = 2;
echo (time() - ($tage * 60 * 60 * 24));
?>
3. Schritt - wir bauen alles zusammen
<?php
/* Bedingung für den Block angeben */
$tage = 2;
if(intval($lv-f("Feldname_Datum")) > (time() - ($tage * 3600 * 24))){
?>
Dieser Bereich wird nun nur ausgeführt, wenn das Datum im angegebenen Feld nicht älter als $tage * 24 Stunden ist.
Da durch die if Anweisung ein Block geöffnet wird, müssen wir diesen natürlich auch wieder schließen. Die folgende Zeile darf also auf keinen Fall fehlen:
<?php } /* Ende des if Blocks */ ?>