La gestió de les dates

SPIP 1.6 introdueix una colla de criteris i d’etiquetes per gestionar millor les dates dels articles. Aquí en teniu una llista.

Publicar les dates

-   #DATE és la data de publicació a la Web. (Modificable, després de la publicació de l’article, la breu, etc. La data d’una secció és la data de la publicació del seu element més recent).

-  #DATE_REDAC és la data de la primera publicació. (Modificable quan vulguem però només disponible en els articles) .

-  #DATE_MODIF Apareguda amb la versió d’[SPIP 1.5], aquesta etiqueta ens indica la data de la darrera modificació de l’article.

-  #DATE_NOUVEAUTES [SPIP 1.6] permet publicar la data de l’última tramesa de correu electrònic presentant les novetats.

Formatar les dates

Si les etiquetes #DATE... es fan servir sense filtre, llavors totes les informacions de data es mostren en un format numèric (el format MySQL) : «2001-12-01 03:25:02».

Els filtres |annee, |mois, |jour, |heures, |minutes, |secondes, mais aussi |affdate, |date_relative, |nom_mois, |nom_jour, |saison, etc. s’apliquen per permetre totes les publicacions habituals en diversos formats. A l’article Els filtres d’SPIP hi podeu trobar una llista completa dels filtres que es poden aplicar a les dates.

Context de la data

[SPIP 1.6] proporciona en tots els bucles un context de data. Si ens trobem a l’interior d’un bucle (ARTICLES), (BREVES) o (RUBRIQUES) , la data en qüestió és la data de publicació de l’article, de la breu o la data de la darrera modificació de la secció.

Si ens trobem en el primer nivell de la plantilla (és a dir a l’exterior de tot bucle), la data que passa és la del dia, excepte quan una data es passa en l’URL de la pàgina (veure l’exemple que hi ha una mica més avall).

En aquest darrer cas, i per les versions de PHP superiors a 3.0.12, la data passada en l’URL és analitzada amb la funció strtotime : d’aquesta manera, ?date=2003, ?date=2003/01 funcionaran, però també date=-1year (fa un any), ?date=1march1970 (articles publicats l’1 de març de 1970), etc.

Criteri de date (data), d’âge (d’antiguitat) i d’âge relatif (d’antiguitat relativa)

Le critère {age} [1] permet seleccionar els articles en funció de la durada que separa la seva data de publicació en línia amb la data actual. Així {age<30} permetrà que no es mostrin els articles amb més de 30 dies d’antiguitat.

L’{age_relatif} permet comparar les dates de publicació de dos articles: si acabem de seleccionar un article en un bucle, un segon bucle situat a l’interior del primer podrà demanar els articles publicats la setmana abans, via {age_relatif<=7}{age_relatif>=0}, etc.

Els criteris {age} i {age_relatif} permeten distingir dos articles publicats el mateix dia (no era possible abans de l’[SPIP 1.6]). A més, també es poden programar bucles per obtenir l’article «precedent » o el «següent»:

<BOUCLE_art(ARTICLES){id_article}>
<BOUCLE_precedent(ARTICLES){age_relatif>=0}{par date}{inverse}{1,1}>
précédent : <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_precedent>
<br />
<b>#TITRE</b> - #DATE
<br />
<BOUCLE_suivant(ARTICLES){age_relatif<0}{par date}{0,1}> 
suivant : <a href='#URL_ARTICLE'>#TITRE</a> #DATE
</BOUCLE_suivant>
</BOUCLE_art>

Atenció! Malgrat les aparences, les comparacions de data són d’un manejament delicat: en efecte, per culpa de «dates ambigües» (un article publicat en un mes concret però sense que se’n precisi el dia), el càlcul de l’age_relatif pot donar el valor zero en un sentit i no en l’altre! D’aquí la asimetria dels bucles que presentem a continuació: en un sentit es busca el «segon dels articles més recent» {age_relatif>=0} (ja que el més recent, si apliquem la comparació no estricte, no pot ser cap més que el mateix article) ; en l’altre, el més antic dels articles publicats estrictament més tard.

Els criteris {jour_relatif}, {mois_relatif} i {annee_relatif} (dia, mes i any relatius) funcionen com l’age_relatif, però tenint en compte les dates arrodonides al dia, mes i a l’any respectivament; per exemple, si l’URL comporta la variable ?date=2003-01-01, el bucle següent donarà «tots els articles del mes de març de 2003»

<h3>Articles de [(#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>

La data de redacció anterior

Si heu activat la utilització de dates de publicació anterior, la major part dels criteris plantejats més amunt funcionen: n’hi ha prou en afegir _redac al criteri. Així {age_redac>365} mostrarà els articles que la data de publicació sigui superior a un any.

Si un bucle selecciona un article amb la date_redac definida, un bucle intern que contingui el criteri {annee_relatif_redac=0} anirà a buscar els articles amb data de publicació del mateix any.

Un exemple de sumari de lloc escollit per data

A títol d’exemple, vegem com es poden mostrar tots els articles d’un lloc, seleccionats per mes de publicació:

<BOUCLE_articlem(ARTICLES){par date}{inverse}>
<BOUCLE_premierdumois(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_premierdumois>
   <BOUCLE_MOIS(ARTICLES) {mois_relatif=0}{doublons}{par date}{inverse} >
       <li><a href="#URL_ARTICLE">[(#TITRE|couper{50})]</a> - [(#DATE|jour)]/[(#DATE|mois)]</li>
   </BOUCLE_MOIS>
</ul>
</BOUCLE_articlem>

Notes

[1Nota de traducció: hem traduït el concepte per «antiguitat» encara que la traducció literal del francès seria «edat»

Carpeta

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

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