El calendari d’[SPIP 1.8.2]

SPIP 1.8.2 permet visualitzar a l’espai públic els calendaris amb la mateixa presentació que els de l’espai privat, i, de forma més general, construir qualsevol agenda que es pugui beneficiar de les eines de configuració d’aquests calendaris. Aquesta possibilitat és subministrada per un nou criteri de bucle i tres nous filtres.

El criteri agenda posseeix un nombre variable d’arguments i, per tant, es pot escriure de dues maneres:
-  {agenda datetime, type, AAAA, MM, JJ}
-  {agenda datetime, periode, AAAA, MM, JJ, AAAA2, MM2, JJ2}

Els dos primers arguments són:

  1. un nom de camp SQL del tipus datetime (per exemple date o date_redac per a la taula Articles i date_time per a les Breus); aquest argument és obligatori.
  2. un tipus de calendari (jour, semaine, mois o periode); el valor per defecte és mois.

Aquests dos arguments han de ser literals (dit d’una altra manera, no poden ser calculats dinàmicament per #ENV o qualsevol altre etiqueta).

Els tres arguments següents són opcionals i poden ser indicats per etiquetes (amb i sense filtre):

  1. YYYY una cadena d’exactament 4 xifres indicant un any;
  2. MM una cadena d’exactament 2 xifres indicant un mes;
  3. JJ una cadena d’exactament 2 xifres indicant un dia.

Si aquests valors s’ometen o són nuls, són substituïts pels de la data actual. Aquests paràmetres representen la data d’un dia dins del període escollit:
-  si el tipus és jour, es mostraran els elements la data dels quals correspon al dia especificat,
-  si el tipus és semaine, es mostraran els elements la data dels quals es trobi en la setmana que conté el dia especificat,
-  si el tipus és mois, es mostraran els elements la data dels quals es trobi en el mes que conté el mes especificat (en aquest cas, el paràmetre del dia JJ és facultatiu).

Per exemple:

mostra una llista dels articles publicats en la setmana actual.

mostra una llista dels articles publicats el mateix mes que l’actual article.

En cas que l’argument tipus (el segon argument) tingui el valor periode, es poden especificar tres arguments més al final del criteri. En aquest cas:
-  YYYY, MM, JJ correspondran a la dat d’inici del període,
-  YYYY2, MM2, JJ2 correspondran a la data de finalització del període.

Si s’omet el segon trio especificant la data de finalització, la data actual s’agafarà com a data de finalització, i si el primer trio tampoc hi és, el període de selecció cobrirà tota la vida del lloc Web (pels llocs Web amb molts articles, el temps d’execució corre el risc de ser excessiu i altres criteris no en limiten el nombre).

Per exemple:

llista els articles que han estat publicats després de l’article actual.


Per configurar els elements seleccionats per un bucle (en particular un bucle amb un criteri agenda) en forma de calendari, SPIP subministra tres filtres. Aquests filtres faciliten una presentació similar al calendari de l’espai privat amb el mateix sistema de navegació.

-  El filtre agenda_memo s’aplica damunt d’una etiqueta data (per exemple #DATE o #DATE_MODIF) i agafa quatre paràmetres:

  1. una descripció
  2. un títol
  3. una URL que representa l’element que té aquest títol i aquesta descripció (per exemple #URL_ARTICLE)
  4. un nom de classe CSS

Si l’etiqueta sobre la que agenda_memo s’aplica no és nul·la, el filtre s’acontenta en memoritzar la data i els tres primers arguments en una taula indexada pel darrer argument (el nom de classe CSS) i no retorna res (cap presentació).

L’ús del darrer argument com a índex per l’element a memoritzar permet tenir diversos calendaris per pàgina. A més, la classe especificada aquí serà atribuïda a aquest element en la presentació en el calendari subministrat per agenda_affiche. D’aquesta manera, es poden donar estils diferents als elements. El full calendrier.css facilita 28 estils diferents que donen un exemple de diferents estils de calendari.

-  El filtre agenda_affiche s’aplica damunt d’una etiqueta que retorni el número d’elements a mostrar (en general #TOTAL_BOUCLE) i agafa tres paràmetres:

  1. un text que serà mostrat si l’etiqueta filtrada no retorna res (0 elements a mostrar);
  2. un tipus de calendari (jour, semaine, mois o periode);
  3. noms de classes CSS utilitzats en la crida del filtre precedent que permeten filtrar els elements a mostrar.

Si l’etiqueta filtrada és nul·la, aquest filtre retorna el seu primer argument. Sinó, retorna els elements memoritzats pel filtre agenda_memo configurat en un calendari del tipus demanat.

Només es mostraran els elements indexats per agenda_memo amb una de les classes CSS indicades en l’últim argument (o tots els elements en cas que aquest paràmetre no hi sigui). D’aquesta manera podem filtrar els elements per repartir-los en diversos calendaris en una mateixa pàgina.

El tipus periode restringirà la presentació al període comprès entre l’element més antic i el més recent trobats efectivament, la qual cosa permet donar al criteri un període més llarg sense recuperar una presentació massa llarga.

Exemple:

mostra els articles publicats a l’actual setmana en forma de calendari.

-  Finalment, el filtre agenda_connu verifica si el seu argument és un dels quatre tipus de calendari coneguts (jour, semaine, mois o periode).

Aquest criteri i aquests filtres són utilitzats pels nous esquelets agenda_jour.html, agenda_semaine.html, agenda_mois.html i agenda_periode.html, cridats a partir de l’esquelet agenda.html que indica en el seu encapçalament els fulls d’estil i funcions javascript necessàries (però substituïbles voluntàriament). Aquests esquelets proporcionen, per tant, un exemple representatiu d’ús.

Autor laura Publié le : Mis à jour : 26/10/12

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