SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [sv] [tr] [vi] [zh] Espace de traduction

Baixar

<INCLURE> altres esquelets (plantilles)

13 de gener

Totes les versions d'aquest article:


Quan hi ha elements de text i bucles comuns a diversos fitxers, podem voler extreure aquests elements de les pàgines on es troben, instal·lar-los en un fitxer separat, i cridar-los a partir de les altres plantilles. D’aquesta manera, s’agrupa el codi comú en un fitxer únic, facilitant notablement les modificacions que afecten a diferents plantilles d’un sol cop.

Sintaxi d’inclusió

Les persones habituades al PHP coneixen la funció include, el principi de la qual és similar a la que es presenta aquí.

A partir d’SPIP 1.4, es pot cridar una plantilla des d’una altra plantilla gràcies a l’etiqueta <INCLURE> (també es pot fer servir <INCLUDE>, que és idèntica). La seva sintaxi general és:

<INCLURE{nom_du_fichier_a_inclure}{paramètre}...>

El nom_del_fitxer_a_incloure és el nom del fitxer (sense l’extensió .html) que es vol integrar a la pàgina. Imaginem, per exemple, que totes les pàgines del lloc mostren les mateixes informacions al peu de pàgina. S’agrupa el codi SPIP i HTML d’aquest «peu de pàgina» en un fitxer «pied.html». En tenim prou afegint aquesta línia, a l’indret que desitgem, a cadascuna de les plantilles que vol mostrar el peu de pàgina:

Tinguem en compte que podem arribar fins a l’esquelet que es trobi a dins d’un subdirectori:

<INCLURE{formulaire/essai/fichier}...> [1]

Inclusions que depenen del context

Algunes inclusions poden dependre del context. Per exemple, imaginem una plantilla «hierarchie», que mostri el camí que porta a una secció a partir de l’arrel del lloc; cridaríem a aquesta pàgina per una URL del tipus: «spip.php?page=hierarchie&id_rubrique=xxx».

En les plantilles que volen mostrar la jerarquia a partir de la secció on estem, fa falta indicar que el paràmetre corresponent és {id_rubrique}; si fos necessari, haurem creat un bucle que permeti recuperar el número de la secció corresponent, i col·locarem el següent codi a l’interior d’aquest bucle:

Nota: en aquest cas, la plantilla hierarchie.html començarà certament per un bucle seccions amb el criteri {id_rubrique}...

Podem imaginar que, en algunes plantilles, el que voldrem serà recuperar la jerarquia no en funció d’una secció «variable» (a caprici del context, per exemple el paràmetre passat a la URL), sinó en funció d’una secció de la que coneixem el número prèviament. Per fer això, hem de fixar el valor del paràmetre d’aquesta manera:

N.B. És possible indicar diversos paràmetres a dins de l’etiqueta <INCLURE>; no obstant, a la pràctica, aquest cas és poc freqüent. Eviteu afegir paràmetres inútils, que la única cosa que aconsegueixen és alentir i fer menys eficaç el vostre lloc. De tota manera, igual com existeix la parella #SET/#GET (que només funciona a dins de l’esquelet en el que estem), podem utilitzar la sintaxi següent:

<INCLURE{squelette}{votre_variable=une_valeur}>

El contingut de "votre_variable" es podrà continuar tot seguit a la plantilla enfant per #ENV{votre_variable}

N.B. Com que el fitxer inclòs és ell mateix una plantilla, tindrà el seu propi valor de #ENV{delais} [2]. Això pot ser pràctic per separar els elements més pesats del lloc, que s’actualitzen menys sovint, i aquells elements que són més dinàmics i que necessiten una actualització més freqüent (per exemple, la sindicació).

En un context multilingüe

Si el multilingüisme d’SPIP està activat a partir de SPIP 1.7, SPIP 1.7.2 es pot definir la llengua de l’entorn d’un esquelet inclòs utilitzant el paràmetre {lang}.

-  Si no es fa servir cap paràmetre de llengua, és a dir en forma <INCLURE{squelette}>, l’esquelet inclòs es cridat utilitzant la llengua per defecte del lloc Web;

-   crida l’esquelet en francès. Evidentment, podeu substituir «fr» pel codi ISO de la llengua desitjada: en per l’anglès, ca pel català, es per l’espanyol, vi pel vietnamita, etc. (veure: «Internacionalitzar els esquelets (plantilles)»);

-  <INCLURE{squelette}{lang}> crida l’esquelet en la llengua actual del context d’inclusió.

Fixem-nos que això fa possible que utilitzem codis de fitxers de llengua als esquelets inclosos (veure «Internacionalitzar els esquelets (plantilles)»).

Els esquelets inclosos suporten els mateixos mecanismes de selecció per llengua que els esquelets de «primer nivell». En altres paraules, els esquelets inclosos (en aquest cas pied.html) poden ser definits d’acord a una llengua determinada (pied.fr.html, per exemple) igual que qualsevol altre esquelet. Un cop més, veure «Internacionalitzar els esquelets (plantilles)» si en volem conèixer més detalls.

Notes

[1] Històricament, s’han succeït les següents sintaxis:
-  <INCLURE(squelette.php3}> abans d’SPIP 1.8.2 (amb un "fichier.html" per cada fichier.php3 inclòs)
-  <INCLURE(page.php3){fond=pied}> des de la versió 1.8.2 a la 1.9 (no inclosa)

[2] Recordem que la variable #ENV{delais} defineix la periodicitat d’actualització de la cache. Veure la secció «Gestionar la cache» a «Gestionar la memòria cau (caché)».


Descarregar l'esquelet d'aquesta pàgina Lloc Web fet amb l'SPIP | Espai de traducció | Espai privat