Dove mettere i file dei modelli?

Nella cartella squelettes/ :-)

SPIP offre molteplici possibilità per la localizzazione dei modelli di layout. Nondimeno, è necessario sapere come configurarlo e non conviene lanciarsi a testa bassa nella modifica dei file della distribuzione.

Come saprete già (in caso contrario si deve levvere il tutorial e il manuale di riferimento), il sistema di modelli di layout si basa su file .html contenenti la presentazione grafica del sito. Per esempio, «article.html» presenta gli articoli, «rubrique.html» presenta le rubriche...

Ma dove bisogna metterli? Sia che si tratti di modificare lievemente i modelli standard, sia di riutilizzare un set completo di modelli prelevato dal sito Spip-contrib o sia di creare il proprio set di modelli, è comunque preferibile metterli nel posto giusto.

I modelli di layout predefiniti: dist/

Dalla versione [SPIP 1.8] i modelli della distribuzione sono raggruppati nella cartella dist/. Questi modelli, che sono utilizzati di default per produrre l’impaginazione del proprio sito, sono stati ampiamenti modificati e riscritti per la versione SPIP 1.9.

E’ possibile esaminare il contenuto di questo repertorio e partire da questo set di modelli per adattare l’impaginazione ai propri bisogni [1]. Tuttavia, non si devono assolutamente modificare i file della cartella dist/. In effetti, quando si aggiornerà SPIP il contenuto di questa cartella verrà sovrascritto e le modifiche andranno perdute...

Conviene mettere i propri file nella cartella squelettes/ o in un’altra cartella appropriata, come indicato di seguito.

Un po’ di storia:
Da SPIP 1.3 e fino a SPIP 1.7, SPIP 1.7.2, i file di modelli forniti con la distribuzione di SPIP erano localizzati alla radice ed erano chiamati article-dist.html, rubrique-dist.html, e via dicendo. Per personalizzare questi file bastava copiarli o rinominarli in article.html, rubrique.html, ecc. (senza il -dist).

La cartella squelettes/ personale

Dalla versione [SPIP 1.8], per manipolare i propri modelli, la cosa più semplice da fare è creare alla radice del sito una cartella chiamata squelettes/ (attenzione alla “s” finale!) e di metterci i propri modelli come file .html contenenti il codice SPIP.

E’ possibile limitarsi a sostituire solo una parte dei modelli: se SPIP non trova un file .html a lui necessario in quella cartella andrà a cercarlo nella cartella dist/. Quindi, se si è messo solo un file, per esempio article.html, nella cartella squelettes, SPIP utilizzerà questo modello per impaginare gli articoli e quelli della cartella dist per tutte le altre pagine del sito.

E anche altri file di personalizzazione!

In aggiunta ai file .html con il codice SPIP, la cartella squelettes/ è più spesso destinata a contenere tutti i file necessari all’impaginazione di un sito. In particolare:

-  una variante dei fogli di stile della distribuzione (habillage.css, spip_style.css, agenda.css e impression.css: in effetti, un primo modo di personalizzare l’impaginazione di default del sito (senza nemmeno dover imparare il linguaggio dei cicli di SPIP, ma che può già ottenere dei risultati spettacolari dal punto di vista della grafica!) sarà di riprendere questi fogli di stile della distribuzione, cominciando con il ricopiarli nella cartella squelettes/. La rubrica «Modifier l’habillage graphique» propone un’iniziazione ai fogli di stile e al loro utilizzo con SPIP,
-  altri fogli di stile che avrete creato o prelevato altrove: nei vostri modelli, basterà semplicemente chiamare i file .css con il segnaposto #CHEMIN (come in quelli della distribuzione): #CHEMIN{mes_styles.css},
-  d’altri effetti e aspetti grafici: allo stesso modo, con il segnaposto #CHEMIN, potete utilizzare nei propri modelli delle immagini, del javascript, ecc.
-  il file mes_fonctions.php che è possibile (e consigliato) mettere in questa cartella, dalla versione SPIP 1.8, SPIP 1.8.1.
-  dei modelli di form,
-  dei file lingua: al fine di costruire una navigazione multilingue personalizzata dei propri modelli, metterete (preferibilmente in una sotto-cartella lang/) i vostri file lingua, che sia un file personale local_cz.php, public_fr.php dei modelli di default, o anche dei file spip_oc.php e ecrire_ar.php, le cui stringhe di lingua avranno la priorità su quelle della distribuzione,
-  ecc...

Per personalizzare la cartella dei modelli

Un’altra possibilità offerta da SPIP è quella di dichiarare una variabile personalizzata $dossier_squelettes nel file ecrire/mes_options.php come spiegato nella documentazione corrispondente, che definisce uno o più cartelle in cui SPIP cercherà come prima cosa i modelli di layout:

In aggiunta all’aspetto estetico, se il nome della cartella squelettes/ non è di vostro gradimento questa funzionalità permette di avere diverse possibilità quali ad esempio:
-  provare un nuovo set di modelli senza cancellare il vecchio,
-  organizzare i propri modelli in un albero di sotto-cartelle: mes_skel:mes_skel/rss:mes_skel/formulaires:mes_skel/mailing,
-  gestire in maniera dinamica più set di modelli grazie a dei plug-in come lo switcher,
-  ecc.

Scendiamo in dettaglio e riassumiamo quanto detto. Quando SPIP ha identificato un file di modello .html esso lo cercherà in diverse cartelle seguendo l’ordine sotto riportato:

-  in primo luogo nell’[elenco delle] cartelle indicate dal contenuto della variabile personalizzata $dossier_squelettes, se essa è stata precedentemente definita,
-  poi nella cartella squelettes/,
-  poi alla radice del sito,
-  e come ultimo posto nella cartella dist/.

Un po’ di storia: Il fatto che SPIP cerchi i modelli alla radice del sito risale ai primordi, poiché era il primo posto dove questi venivano messi [2]. Inoltre, fino alla versione [SPIP 1.8.3], SPIP cercava i modelli alla radice del sito prima di cercare nella cartella squelettes/.

Per approfondire

Le varianti dei modelli

Un’altra funzionalità di SPIP che permette di indicargli il file di modello da applicare a una pagina è la gestione delle varianti di modello, che viene discussa in un articolo della documentazione. Essa permette di scegliere non una cartella per l’intero set di modelli ma un file specifico in base al luogo in cui si trova e/o in base alla lingua della pagina.

[SPIP 1.9] L’override del codice e i plugin

In effetti, il meccanismo sopra descritto per scegliere la localizzazione di un file non si applica solamente ai modelli ma manche a tutto il codice di SPIP. Nel gergo degli sviluppatori si parla di «override del codice», in quanto l’ordine di scelta delle cartelle è nello «SPIP_PATH». Ciò mette in atto il quadro e le norme per lo sviluppo dei «plug-in», estensioni di funzionalità di SPIP che chiunque fra la comunità può realizzare.

Grosso modo, quando deve utilizzare un file SPIP lo cercherà:
-  come prima cosa, nell’ordine, nell’elenco di cartelle definite dalla variabile $dossier_squelettes,
-  poi nella cartella squelettes/ situata alla radice del sito,
-  in seguito nell’elenco delle cartelle della variabile $plugins,
-  alla radice dei sito,
-  nella cartella dist/,
-  e, infine, nella cartella ecrire/.

«Grosso modo», poiché a quest’elenco si aggiungono numerose varianti [3] che vanno al di là degli scopi di questo articolo introduttivo e che saranno oggetto di documentazioni più precise nella Guide des fonctions avancées.

Quindi, è possibile modificare come si desidera qualsiasi caratteristica del comportamento di SPIP senza per questo privarsi in futuro degli aggiornamenti della distribuzione e dell’assistenza della comunità. SPIP è diventato modulare!

E i file .php3 (o .php) cosa c’entrano in tutto questo?

Ricordiamo innanzitutto che a partire dalla versione SPIP 1.9, non esistono più i file .php3 (o .php) per i modelli: SPIP genera tutte le pagine mediante un unico script spip.php. Tutto quel che segue fa quindi parte della storia.

Nelle versioni [SPIP 1.8.2] e [SPIP 1.8.3], è presente un file page.php3 che preannuncia lo spip.php e il modo di inclusione di SPIP 1.9. In effetti, page.php3 permette, unicamente a lui, di chiamare qualsiasi modello passando come parametro la variabile di fondo, ovvero il file modello .html da utilizzare:

Quindi la cosa più semplice era utilizzare una chiamata di questo tipo [4] per qualsiasi modello ad esclusione di quelli degli oggetti di base (article, breve, rubrique, sommaire,... per i quali esiste un file .php3 alla radice del sito).

Nondimeno, nel caso che si preferisca creare un file .php3, che sia il gemello del vostro file .html nella vecchia struttura dei modelli di SPIP, esso deve essere posto alla radice del sito [5].

Note

[1E’ anche un metodo vivamente consigliato, poiché questo set di modelli è stato pensato per essere il più possibile modulare.

[2Ciò aveva il vantaggio di rendere i modelli «visibles» in un browser poiché i link ai .css e agli altri aspetti grafici erano obbligatoriamente codificati in maniera “statica” dalla radice.

[3Come una nomenclatura dei file in base al loro ruolo che permette, per esempio, a SPIP di andare a cercare i file lingua in una sotto-cartella lang/, come abbiamo già visto in precedenza.

[4Va notato che questo metodo funziona anche per le chiamate con il tag <INCLURE(page.php3){fond=inc-entete}>.

[5Salvo, eventualmente, quelli che si utilizzano solo in una chiamata <INCLURE(squel.php3)> e non direttamente tramite un URL. In questo caso il file squel.php3 potrebbe anche êssere nella cartella dei modelli.

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

Traductions : عربي, català, corsu, English, Español, français, italiano, Nederlands, Türkçe, українська