<INCLUDE> altri modelli

[SPIP 1.4] Quando si hanno elementi di testo e cicli comuni a diversi file si potrebbe voler estrarre questi elementi dalle pagine in cui si trovano e inserirli in un file separato, e poterli chiamare da altri modelli. In tal modo, il codice comune viene raggruppato in un unico file, e ciò facilita soprattutto le modifiche che riguardano più modelli contemporaneamente.

Gli esperti di PHP conoscono la funzione include, che ha un principio simile a quanto presentato qui.

Con SPIP è possibile chiamare un modello da un altro modello grazie al tag <INCLUDE> (si può utilizzare anche il corrispettivo francese <INCLURE>). La sintassi generica è:

<INCLUDE(file.php3){parametro}...>

Il "file.php3" è il nome del file che si desidera integrare nella pagina. Per esempio, immaginiamo che tutte le pagine del sito mostrino le stesse informazioni a fondo pagina. Raggruppiamo il codice HTML di questo "piè di pagina" in un file "piede.html", modello chiamato dalla pagina "piede.php3" (sempre secondo il principio della coppia di file per chiamare i modelli). È sufficiente aggiungere la riga seguente, nel posto desiderato, in ognuno dei modelli che devono visualizzare il piè di pagina:

<INCLUDE(piede.php3)>

Alcune inclusioni possono dipendere dal contesto. Per esempio, immaginiamo un modello "gerarchia", che mostra il percorso da una rubrica alla radice del sito; chiameremo questa pagina con un URL del tipo: "gerarchia.php3?id_rubrique=xxx".

Nei modelli che devono mostrare la gerarchia a partire dalla rubrica attuale dobbiamo quindi indicare che il parametro in questione è {id_rubrique}; se necessario, avremmo creato un ciclo che permette di ottenere il numero della rubrica in questione, e avremmo inserito il seguente codice all’interno di questo ciclo:

<INCLUDE(gerarchia.php3){id_rubrique}>
Nota: in questo caso il modello gerarchia.html comincerà certamente con un ciclo RUBRIQUES con il criterio {id_rubrique}...

È possibile ipotizzare che in alcuni modelli si vuole avere non la gerarchia in base a una rubrica "variabile" (secondo il contesto, per esempio il parametro passato nell’URL), ma in base a una rubrica di cui si sa già il numero. In tal caso è possibile impostare il valore del parametro così:

<INCLUDE(gerarchia.php3){id_rubrique=5}>

N.B. È possibile indicare più parametri nel tag <INCLUDE>; tuttavia, nella pratica questo caso è molto raro. Evitare di aggiungere parametri inutili, che penalizzano la cache e rendono il sito più lento.

N.B. Poiché il file incluso è esso stesso un modello, esso avrà il proprio valore di $delais [1]. Ciò può essere utile per separare elementi pesanti del sito, che devono essere rigenerati poco spesso, e altri elementi dinamici che invece devono essere aggiornati spesso (per esempio, la syndication).

In un contesto multilingue

Se viene attivato il multilinguismo di SPIP dalla versione SPIP 1.7.1 è possibile definire la lingua dell’ambiente di un modello incluso usando il parametro {lang}.

-  Se non è presente nessun parametro di lingua, cioè nella forma <INCLUDE(piede.php3)>, il modello incluso viene chiamato usando la lingua predefinita del sito,

-  <INCLUDE(piede.php3){lang=es}> chiama il modello in spagnolo. È chiaramente possibile sostituire "es" con il codice ISO della lingua desiderata: en per l’inglese, fr per il francese, it per l’italiano, ecc. (vedi Internazionalizzare i modelli),

-  e <INCLUDE(piede.php3){lang}> chiama il modello nella lingua attuale del contesto di inclusione.

È importante notare che ciò rende possibile utilizzare i codici dei file di lingua nei modelli inclusi (vedi Internazionalizzare i modelli).

Al pari dei modelli di "primo livello", i modelli inclusi permettono gli stessi meccanismi di selezione per lingua. In altre parole, i modelli inclusi (in questa sede piede.html) possono essere nominati in relazione a una data lingua (piede.es.html, per esempio) così come qualsiasi altro modello. Ancora una volta, vedi "Internazionalizzare i modelli" per maggiori informazioni.

Note

[1Ricordiamo che la variabile $delais definice la periodicità di aggiornamento della cache. Vedi la sezione "Il file .php3" in "article 2798".

Autore Fausto Barbarito Publié le : Mis à jour : 21/03/23

Traductions : عربي, català, English, Español, français, italiano, Nederlands, Türkçe