La sintaxi de las balisas SPIP

Cada mena de bloca permet de seleccionar d’elements de la basa de donadas d’SPIP: d’articles, de rubricas, de brèvas, etc. Aqueles quites elements se compausan cadun de mai d’un element: un títol, una data, un tèxt, etc. Al dintre d’una bloca, nos caldrà doncas indicar a quin endrech dins lo còde HTML se bota los unes o los autres d’aqueles elements precises.

Per aquò far, anam utilizar de balisas SPIP.

Foncionar simplificat

Una balisa SPIP se plaça al dintre d’una bloca (solid, puèi que nos cal saber se volèm agantar un element d’un article, d’una rubrica, etc.). Lo nom d’aquelas balisas es generalement simple, e balharem, per cada mena de bloca, la tièra completa de las balisas que se pòdon utilizar.

Una balisa comença cada còp per un signe dièsa (#).

Per exemple, afichem una tièra de noms d’articles :

<BOUCLE_articles(ARTICLES){id_rubrique}>
<li> #TITRE
</BOUCLE_articles>

Quora s’executarà la bloca, la balisa SPIP #TITRE se remplaçarà cada còp pel títol de l’article en question:

<li> Títol de l'article 1
<li> Títol de l'article 2
...
<li> Títol del darrièr article

Fins ara, pas res de complicat: basta d’indicar al dintre del còde HTML lo nom de l’element desirat e aqueste se remplaça pel contengut correspondent eissut de la basa de donadas.

Còdes opcionals

Dins la practica, un element de contengut s’acompanha plan de còps de còde HTML que se deu pas afichar sonque s’aqueste element existís, senon, destorbarà la mesa en pagina.

Per exemple: i a una balisa SPIP per indicar lo subretítol d’un article. Se trapa qu’un fum d’articles an pas cap subretítol.

Completem l’exemple precedent:

<BOUCLE_articles(ARTICLES){id_rubrique}>
<li> #SURTITRE<br>
     #TITRE
</BOUCLE_articles>

aquela bloca, classicament, nos baila una tièra d’articles, amb per cada article l’indicacion de son títol e de son subretítol. Mas que se passa en cas que l’article aja pas de subretítol? Obtenèm alara lo còde: «<LI><BR>», valent a dire un tac seguit d’una linha vuèja.

Çò que nos cal far : afichar lo còde «<BR>» pas que s’un subretítol existís per l’article.

La sintaxi de la balisa SPIP ven alavètz:

[ tèxt opcional abans (#BALISA) tèxt opcional aprèp ]

La balisa que determina l’opcion se bota entre parentèsis, e l’ensems del tèxt condicional entre croquets. Lo tèxt opcional abans e lo tèxte opcional aprèp s’afichan pas que s’existís, dins la basa de donadas, un element correspondent a aquela balisa.

Nòstre exemple ven alara:

<BOUCLE_articles(ARTICLES){id_rubrique}>
<li> [(#SURTITRE)<br>]
     #TITRE
</BOUCLE_articles>

Obtenèm lo resultat que voliam: l’article aja un subretítol, s’aficha seguit de <BR>; n’aja pas cap, aficharà pas quitament <BR>.

Usatges avançats

A partir de [SPIP 1.8] se pòdon peut imbricar de balisas ampliadas las unas dins las autras. Aital, si dins nòstre exemple volguèssem afichar lo lògo de l’article sonque quora lo sustítol es definit poiriam escriure:

<BOUCLE_articles(ARTICLES){id_rubrique}>
[<li> [(#LOGO_ARTICLE)<br>]
     (#SURTITRE)]
</BOUCLE_articles>
De notar: Se pòt pas jamai metre une bloca dins lo còde opcional d’una balisa. Ça que la volguèssem afichar un bloca pas qu’en foncion d’una cèrta balisa, poiriam emplegar <INCLURE()> al dintre d’un còde opcional.

Balisas non ambigüas

Quora s’imbrica de blocas las unas dins las autras, se pòt que doas blocas ajan de balisas omonimas.

Per exemple, dins lo còde seguent:

<BOUCLE_rubriques(RUBRIQUES){id_rubrique}>
     <BOUCLE_articles(ARTICLES){id_rubrique}>
         #TITRE
     </BOUCLE_articles>
</BOUCLE_rubriques>

la balisa #TITRE designa lo títol d’un article. Aital, volguèssem afichar lo títol de la rubrica al dintre de la bloca _articles, se poiriá pas emplegar #TITRE.

Dempuèi [SPIP 1.8], se pòt cridar una balisa omonima d’una bloca englobanta en explicitar lo nom de la bloca a qual la balisa aperten. Per aquò cal precisar lo nom de la bloca entre lo # e la balisa.

S’escriura alara la balisa #BALISE de la bloca boucle < code>_bloca [1]del biais seguent: #_bloca:BALISA. Per exemple:

<BOUCLE_rubriques(RUBRIQUES){id_rubrique}>
     <BOUCLE_articles(ARTICLES){id_rubrique}>
         #_rubriques:TITRE > #TITRE
     </BOUCLE_articles>
</BOUCLE_rubriques>

aficharà lo títol de la rubrica, puèi lo títol de l’article: la balisa #TITRE per la bloca _rubriques ven #_rubriques:TITRE per fins que se confonda pas amb la balisa #TITRE de la bloca _articles

Filtrar los resultats

Arriba sovent qu’òm vòlga modificar un element tirat de la basa de donadas, siá per obténer un afichatge diferent (per exemple, afichar lo títol entièrament en majusculas), o per emplegar una valor eissuda d’aquel element (per exemple, afichar lo jorn de la setmana correspondent a una data).

Dins SPIP, de filtres se pòdon aplicar dirèctament als elements recuperat dins la basa de donadas, en los indicar dins la sintaxi de las balisas SPIP, que ven:

[ opcion abans (#BALISA|filtre1|filtre2|...|filtren) opcion aprèp ]

La sintaxi es doncas de far seguir lo nom de la balisa, entre las parentèsis, pels filtres succesius, separats per una barra verticala (nommada tradicionalament pipe).

Remarca. En realitat, los filtres son de foncions PHP. Podètz doncas utilizar dirèctament las foncions de PHP (a condicion qu’aquelas foncions foncionen amb una sola variabla), en mai de las foncions porgidas amb SPIP.

Vaquí qualques filtres porgits per SPIP:

-  majusculas, passa lo tèxt en majusculas (mai potent que la foncion de PHP correspondenta, que ne fonctiona pas corrèctament amb los caractèrs accentuats); per exemple:

[(#TITRE|majuscules)]

-  justifier, afficha lo tèxt en justificacion totala (es a dire <P align=justify>); per exemple:

[(#TEXTE|justifier)]

La presenta documentacion consacra un article als differents filtres porgits amb SPIP.

Cortcircuitar lo tractament per SPIP

SPIP aplica un tractament tipografic als tèxtes tirats de la basa de donadas. En particular, plaça d’espacis insecables abans d’unes simbèls (ponch-virgula, ponch d’interrogacion, etc.), e analisa d’acorchas de mesa en pagina.

De còps, pòt arribar que vos faga mestièr de cortcircuitar aquel tractament, per quèrre dirèctament lo tèxt nus, tal coma se tròba dins la basa donadas. Per aquò far, basta d’apondre una asterisca (*) a la seguida de la balisa SPIP.

Aquò balha :

[ opcion abans(#BALISE*|filtre1|filtre2|...|filtren) opcion aprèp ]

Los paramètres de las balisas

Dempuèi [SPIP 1.8], d’unas balisas [2] acceptan de paramètres. Se plaçarà una tièra de paramètres entre acoladas «{» e «}» amb de virgulas «,» per separar cada paramètre. Per exemple: #ENV{lang,fr}.

Un paramètre pòt èsser una constanta o una autra balisa. Solas las balisas de forma simpla se pòdon plaçar coma paramètres (valent a dire sens de còde opcional ni mai filtres). se pòdon metre los paramètres entre verguetas simplas «'...'» s’òm vòl qu’SPIP los interprete pas.

Nòtas

[1Precision: doblidètz pas lo signe underscore “_” inicial al nom de la bloca, s’aquel comença pas per un numèro.

[2#ENV e #EXPOSER

Autor : Mòni Publié le : Mis à jour : 21/03/23

Traductions : عربي, català, Deutsch, English, Español, français, italiano, Nederlands, òc lengadocian, русский, українська