Die Verwaltung von Datumsangaben

[SPIP 1.6] führte eine Reihe von Kriterien und Tags ein, mit der die Verwaltung der Datumsangaben für die Artikel verbessert wird. Es folgt eine Liste.

Datum anzeigen

-  #DATE ist das Datum der Online-Stellung (modifizierbar nach dem Onlinestellen des Artikels, der Meldung usw. Das Datum einer Rubrik ist das Datum ihres neuesten Elements.)

-  #DATE_REDAC ist das Datum der Erstveröffentlichung (beliebig modifizierbar, ist nur für Artikel verfügbar).

-  #DATE_MODIF [SPIP 1.5] ist das Datum, zu dem der Artikel zuletzt bearbeitet wurde; genaugenommen handelt es sich um das letzte Datum, zu dem sich der Artikel im Stadium «in Bearbeitung» befand, ob er da nun tatsächlich verändert wurde oder nicht. Das ist oft praktisch, entbehrt aber der wissenschaftlichen Genauigkeit. (Nicht modifizierbar, außer wenn man es auf den «aktuellen» Zeitpunkt setzen möchte; dann genügt es, einfach den Artikel zur Bearbeitung zu öffnen.)

-  #DATE_NOUVEAUTES [SPIP 1.6] erlaubt die Anzeige des Datums, zu dem letztmals eine Mail zur Ankündigung von Neuigkeiten versendet wurde.

Die Filter |annee, |mois, |jour, |heures, |minutes, |secondes, aber auch |affdate, |nom_mois, |nom_jour, |saison usw. werden eingesetzt, um alle üblichen Anzeigen in unterschiedlichen Formaten zu erhalten. (Ohne diese Filter zeigen die Datums-Tags #DATE...usw. ein Resultat im MySQL-Format an: "2001-12-01 03:25:02".)

Kontext des Datums

[SPIP 1.6] liefert für alle Schleifen einen Kontext des Datums. Wenn man sich im Inneren einer (ARTICLES)-, (BREVES)- oder (RUBRIQUES)-Schleife befindet, ist das betreffende Datum dasjenige der Veröffentlichung des Artikels bzw. der Meldung beziehungsweise das Datum der letzten Modifizierung der Rubrik.

Wenn man sich andererseits auf der ersten Ebene des Templates befindet (das heißt außerhalb aller Schleifen), ist das berücksichtigte Datum dasjenige des heutigen Tages - wenn man nicht ein Datum in der URL der Seite übergeben hat (siehe hierzu das Beispiel weiter unten).

In diesem letzteren Falle und bei höheren PHP-Versionen als 3.0.12 wird das in der URL übergebene Datum mittels der Funktion strtotime() analysiert: also funktioniert ?date=2003, ?date=2003/01, aber auch ?date=-1year (das ergibt ein Jahr), ?date=1march1970 (Artikel, die am 1. März 1970 veröffentlicht wurden) usw.

Kriterien für Datum, Alter und relatives Alter

Das Kriterium {age} erlaubt die Auswahl von Artikeln in Abhängigkeit von der Zeitspanne, die seit dem Datum ihrer Veröffentlichung bis zum aktuellen Datum verstrichen ist. Also bewirkt {age<30}, daß keine Artikel angezeigt werden, die älter als 30 Tage sind.

{age_relatif} erlaubt den Vergleich der Veröffentlichungsdaten zweier Artikel: wenn man einen Artikel in einer Schleife ausgewählt hat, kann eine zweite Schleife im Inneren der ersten alle Artikel anfordern, die in der laufenden Woche vor dem betreffenden Artikel veröffentlicht wurden, und zwar mittels {age_relatif<=7}{age_relatif>=0} usw.

Die Kriterien {age} und {age_relatif} erlauben die Unterscheidung zweier Artikel, die am selben Tag veröffentlicht wurden (das war vor der Version [SPIP 1.6] nicht möglich). Seither kann man also Schleifen programmieren, mit denen man den «vorhergehenden» oder den «folgenden» Artikel erhält:

<BOUCLE_art(ARTICLES){id_article}>
<BOUCLE_vorher(ARTICLES){age_relatif>=0}{par date}{inverse}{1,1}>
voriger Artikel : <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_vorher>
<br />
<b>#TITRE</b> - #DATE
<br />
<BOUCLE_folgend(ARTICLES){age_relatif<0}{par date}{0,1}> 
nachfolgender Artikel : <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_folgend>
</BOUCLE_art>

Achtung! Entgegen dem Anschein sind Datumsvergleiche mit Vorsicht zu genießen: bei «unscharfen» Daten (wenn bei einem Artikel nur der Monat der Veröffentlichung angegeben ist, aber nicht der genaue Tag), kann die Berechnung des relativen Alters (age_relatif) in der einen Richtung den Wert Null ergeben, in der anderen Richtung aber nicht! Daher die Asymmetrie der unten vorgestellten Schleifen: in der einen Richtung sucht man den «zweitneuesten» Artikel {age_relatif>=0} (da der jüngste beim nicht-strengen Vergleich nur der Artikel selbst sein kann), in der anderen Richtung den ältesten unter den Artikeln, die im strengen Vergleich später publiziert wurden.

Die Kriterien {jour_relatif}, {mois_relatif} und {annee_relatif} funktionieren wie {age_relatif}, berücksichtigen aber auf Tag, Monat bzw. Jahr gerundete Datumsangaben; wenn die URL beispielsweise die Variable ?date=2003-03-01 überträgt, ergibt die folgende Schleife «alle Artikel aus dem Monat März 2003»

<h3>Artikel vom [(#DATE|nom_mois)] [(#DATE|annee)] :</h3>
<BOUCLE_blog(ARTICLES){mois_relatif=0}{par date}{"<br />"}>
<a href='#URL_ARTICLE'>#TITRE</a> ([(#DATE|jour)]/[(#DATE|nom_mois)]
</BOUCLE_blog>

Das Datum einer früheren Veröffentlichung

Wenn Sie im privaten Bereich die Option «Datum einer früheren Veröffentlichung» (Konfiguration → Website-Konfiguration → Inhalte der Website → Artikel → Inhalt der Artikel) aktiviert haben, funktionieren die meisten der oben vorgestellten Kriterien auch damit: es genügt, dem Kriterium ein _redac anzuhängen. Demnach zeigt {age_redac>365} die Artikel an, deren Datum der früheren Veröffentlichung mehr als ein Jahr zurückliegt.

Wenn eine Schleife einen Artikel auswählt, dessen Datum einer früheren Veröffentlichung (date_redac) definiert ist, sucht eine interne Schleife, die das Kriterium {annee_relatif_redac=0} enthält, nach Artikeln, deren Datum einer früheren Veröffentlichung im selben Jahr liegt.

Ein Beispiel für eine nach Datum sortierte Zusammenfassung der Site

Als Beispiel sehen Sie hier, wie man alle Artikel einer Site, sortiert nach Veröffentlichungs-Monat, anzeigen kann:

<BOUCLE_artikelM(ARTICLES){par date}{inverse}>
<BOUCLE_monat_1st(ARTICLES){id_article}{doublons}>
<BR><UL><b> [(#DATE|nom_mois|majuscules)] [(#DATE|annee)] </b>
   <li><a href="#URL_ARTICLE">[(#TITRE|couper{50})]</a> - [(#DATE|jour)]/[(#DATE|mois)]</li>
</BOUCLE_monat_1st>
   <BOUCLE_MONAT(ARTICLES) {mois_relatif=0}{doublons}{par date}{inverse} >
       <li><a href="#URL_ARTICLE">[(#TITRE|couper{50})]</a> - [(#DATE|jour)]/[(#DATE|mois)]</li>
   </BOUCLE_MONAT>
</ul>
</BOUCLE_artikelM>

Autor wshSchlegel Publié le : Mis à jour : 21/03/23

Traductions : عربي, català, Deutsch, English, Español, français, italiano, Nederlands