Il calendario di SPIP 1.8.2

SPIP 1.8.2 permette di mostrare nell’area pubblica i calendari dell’area riservata, e più in generale di realizzare una qualsiasi agenda beneficiando degli strumenti di impaginazione di questi calendari. Questa possibilità è offerta da un nuovo criterio di ciclo e da tre nuovi filtri.

Il criterio agenda ha un numero variabile di argomenti tra i quali i primi due sono:

-  un nome di campo SQL di tipo datetime (per esempio date oppure date_redac per la tabella Articles); questo argomento non può essere omesso.

-  un tipo di calendario (jour, semaine, mois oppure periode); il valore predefinito è mois.

Questi due argomenti devono essere scritti (in altre parole, non possono essere calcolati dinamicamente da #ENV o qualsiasi altro segnaposto). Ad essi seguono eventualmente altri tre argomenti supplementari che possono essere indicati da segnaposti:
-  una stringa di esattamente 4 cifre che indica un anno;
-  una stringa di esattamente 2 cifre che indica un mese;
-  una stringa di esattamente 2 cifre che indica un giorno.

Se questi valori vengono omessi oppure sono nulli vengono sostituiti dai corrispondenti valori della data attuale. Nel caso in cui il secondo argomento sia uguale a periode, è necessario un secondo trio di argomenti aventi la medesima sintassi spiegata in precedenza; in virtù dell’affermazione precedente, se gli argomenti vengono omessi verrà considerata la data attuale, e se anche il primo trio di argomenti è assente il periodo coprirà tutta la vita del sito (per i siti con molti articoli il tempo di esecuzione rischia di essere eccessivo se mancano altri criteri che ne limitino il numero).

Questo criterio si utilizza in un ciclo con un campo di tipo datetime indicato come primo argomento. Esso porta a selezionare in questo ciclo unicamente gli elementi che hanno in questo campo un valore compatibile con gli altri argomenti, ovvero:

-  essere un valore uguale a anno-mese-giorno se il tipo è jour,
-  essere un valore compreso nella settimana del giorno indicato da anno-mese-giorno se il tipo è semaine,
-  essere un valore compreso nel mese indicato da anno-mese se il tipo è mois,
-  essere un valore compreso nel periodo indicato dai due trio di date se il tipo è periode.

Il filtro agenda_memo si applica a:

  1. una data
  2. una descrizione
  3. un titolo
  4. l’URL di un articolo che ha questo titolo, questa descrizione e questa data
  5. un nome di classe CSS

Se il primo argomento non è nullo il filtro si accontenta di memorizzare i primi quattro argomenti in una tabella privata identificata dal quinto argomento e non restituisce alcun valore. In caso contrario esso restituisce la tabella privata. L’utilizzo del quinto argomento come indice nella tabella privata permette di avere tanti calendari per pagina quanto necessario, con una tipografia differenziata a seconda dei bisogni. Il foglio calendrier.css fornisce 28 stili differenti che è possibile modificare o ampliare.

Il filtro agenda_affiche si applica a:

  1. un numero che si suppone essere il numero di avvenimenti trovati dal criterio agenda;
  2. un testo puro;
  3. un tipo di calendario (jour, semaine, mois oppure periode);
  4. ... dei nomi di classi CSS utilizzati nella chiamata del filtro precedente

Se il primo argomento è nullo esso restituisce il secondo argomento. Altrimenti restituisce l’impaginazione degli elementi memorizzati dal filtro precedente sotto i nomi forniti in argomento (oppure tutti gli elementi se non è specificato alcun nome), in base al tipo richiesto e alle classi CSS indicate. Il tipo periode limita la visualizzazione al periodo compreso tra l’elemento più vecchio e quello più recente effettivamente trovati, il che permette di dare nel criterio un periodo molto ampio senza generare una visualizzazione troppo lunga.

Infine, il filtro agenda_connu testa se il suo argomento è uno dei quattro tipi di calendario conosciuti (jour, semaine, mois oppure periode).

Questo criterio e questi filtri sono utilizzati dai nuovi modelli agenda_jour.html, agenda_semaine.html, agenda_mois.html e agenda_periode.html, chiamati dal modello agenda.html che indica nell’intestazione i fogli di stile e le funzioni javascript necessarie (ma sostituibili a volontà). Questi modelli di layout forniscono un esempio rappresentativo di utilizzo.

Autore Fausto Barbarito Publié le : Mis à jour : 26/10/12

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