El bucle ARTICLES

Un bucle d’articles es codifica posant entre parèntesi ARTICLES (amb una «s»):

<BOUCLEn(ARTICLES){critères...}>

Els elements continguts en un bucle com aquest són articles.

Els criteris de selecció

Utilitzarem un o altre dels següents criteris per indicar com seleccionar els elements.

-  {branche} (a partir d’SPIP 1.4) selecciona el conjunt d’articles de la secció I de les seves subseccions. (És una mena d’extensió del criteri {id_secteur}. No obstant, a l’inrevés de {id_secteur=2}, no és possible cridar directament una branca fent, per exemple, {branche=2}: tècnicament parlant, és necessari que la secció en qüestió figura a dins del context actual. Aquest criteri l’usarem amb parsimònia: si el vostre lloc està ben estructurat, no l’hauríeu de necessitat, excepte en casos molt particulars.)

-  Els criteris {date} (o {date=...} o {date==...}) permeten seleccionar un article en funció de la data passada a l’URL (a partir d’SP<font color="yellow">IP 1.7.2).

-  {id_article} selecciona l’article que té com identificador id_article. Com que l’identificador de cada article és únic, aquest criteri retorna una o cap resposta.

-  {id_auteur} selecciona els articles que corresponen a l’identificador d’autor (útil per indicar la llista dels articles escrits per un autor).

-  {id_groupe=zzzz} (a partir d’SPIP 1.4) permet seleccionar els articles lligats a un grup de paraules clau; principi idèntic al {type_mot} anterior, però ja que es treballa amb un identificador (número del grup), la sintaxi serà més «neta». [Nota: Aquest criteri no es pot acumular (en l’actual estat de desenvolupament d’SPIP) amb l’anterior {type_mot=yyyy}]

-  {id_mot} selecciona els articles que corresponen a l’identificador paraula clau (útil per indicar la llista d’articles que tracten sobre un tema determinat).

-  {id_rubrique} selecciona els articles que hi ha a dins de la secció que té com identificador id_rubrique.

-  {id_secteur} selecciona els articles en aquest sector (un sector és una secció que no depèn de cap altre secció, o sigui que es troba a l’arrel del lloc).

{lang} selecciona els articles de la llengua demanada a l’adreça de la pàgina.

-  {origine_traduction} selecciona l’article de referència del que l’article en curs és una traducció.

-  {pagination} Lorsqu’une boucle renvoie plusieurs dizaines d’articles (ou, pour une pétition, plusieurs milliers de signatures), il n’est pas souhaitable, voire impossible, de tout afficher sur une seule page.

|?{

-  {pagination} Lorsqu’une boucle renvoie plusieurs dizaines d’articles (ou, pour une pétition, plusieurs milliers de signatures), il n’est pas souhaitable, voire impossible, de tout afficher sur une seule page.

,

Pour mettre en place le système de pagination, il faut ajouter à votre boucle le critère {pagination} comme ici, par exemple :

<B_page>
    <nav role="navigation" class="pagination">#PAGINATION</nav>
    <ul>
<BOUCLE_page(ARTICLES) {par date} {pagination}>
    <li>#TITRE</li>
</BOUCLE_page>
    </ul>
</B_page>

Vous pouvez voir l’utilisation de la balise #PAGINATION nécessaire dans le mécanisme de pagination. Si le site comporte 90 articles publiés, cette boucle affichera la liste des dix plus anciens articles, surplombée de liens conduisant vers la page qui affiche les dix suivants, les dix d’après, etc. Ces liens sont numérotés comme suit :

Le numéro à partir duquel les résultats sont affichés est passé dans l’url via un paramètre {debut_page=x} portant le même nom (ici, « page ») que la boucle concernée. (Ce paramètre est exploitable dans une autre boucle via le critère classique {debut_page,10}.)

A noter : le nombre total de liens affichés est limité ; des points de suspension permettent, le cas échéant, d’aller directement à la toute fin de la liste, ou de revenir au tout-début.

Changer le pas de la {pagination}

Le nombre standard de 10 éléments par page peut être modifié par un paramètre supplémentaire dans le critère.

Ainsi

<BOUCLE_page (ARTICLES) {pagination 5}>
#TITRE <br />
</BOUCLE_page>

retournera les titres de cinq articles à partir de debut_page.

Le paramètre en question peut lui-même être composé comme on le souhaite à partir d’autres balises, notamment #ENV{xx}, ce qui permet de faire un affichage à la demande très complet.

Changer le nom de l’argument d’url

Un 3eme argument permet de changer le nom de l’argument d’url figurant dans les liens de pagination et qui sert à indiquer quelle page de quelle pagination est affichée.

Le nom de cette variable d’url est constituée par ’debut’ suivi du la valeur du 3eme argument s’il est présent, ou du nom de la boucle sinon :
-  debut_page dans l’exemple précédent ;
-  mais avec {pagination 5, _des_exemples} ce serait debut_des_exemples.

})

-  {recherche} selecciona els articles que corresponen a les paraules indicades a la interfície de cerca (motor de cerca incorporat a SPIP).

Le critère {si ...} permet de conditionner l’exécution d’une boucle à la condition exprimée en argument dans le critère.

|?{

Le critère {si ...} permet de conditionner l’exécution d’une boucle à la condition exprimée en argument dans le critère.

,

Sommaire

Exemple :

<BOUCLE_art(ARTICLES) {si #ID_RUBRIQUE|=={8}} {par date}>
  <a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_art>

La boucle s’exécutera uniquement si, dans l’environnement d’exécution de la boucle, #ID_RUBRIQUE est égal à "8".

La partie conditionnelle de la boucle, celle inscrite entre </B_art> et <//B_art>, sera quant à elle exécutée dans les deux cas où :

  • soit #ID_RUBRIQUE n’existe pas dans l’environnement ou n’est pas égal à 8 (prise en compte du critère {si ...} ;
  • soit #ID_RUBRIQUE est bien égal à 8 mais la boucle ne retourne aucun résultat.

Ce nouveau critère {si ...}, disponible depuis SPIP 3.0, permet de s’affranchir enfin de l’impossibilité d’utiliser une boucle dans la partie conditionnelle d’une balise.
Par exemple, là où il était nécessaire d’écrire

  [(#SESSION{statut}|=={1comite}|oui) <INCLURE{fond=mapage, ...}> ... ]

parce que mapage.html contenait une boucle, il est désormais possible d’écrire directement dans le squelette appelant (sans INCLURE donc) :

  <BOUCLE_xy(AUTEURS) {si #SESSION{statut}|=={1comite}}> ...

Bien sûr, le critère {si ...} peut porter sur tout type de variables (#ENV, #GET,...)
Par exemple, une boucle dont l’exécution sera conditionnée par le résultat d’un calcul faisant intervenir une variable de l’environnement #ENV{var} (récupérée depuis l’url) et une variable #GET{val} (préalablement définie dans le squelette) :

#SET{val, 2}
<BOUCLE_a(ARTICLES) {si #ENV{var}|plus{#GET{val}}|=={5}}>
...

Voir aussi

La boucle CONDITION

})

-  {titre_mot=xxxx}, o {type_mot=yyyy} selecciona respectivament els articles lligats a la paraula clau el nom de la qual és «xxxx», o lligats a paraules clau del grup de paraules clau «yyyy». Si ens donen diversos criteris {titre_mot=xxxx} (o diversos {type_mot=yyyy}), es seleccionaran aquells que tinguin totes aquestes paraules a la vegada (novetat d’SPIP 1.9).

El criteri {tout} permet seleccionar les dades d’una taula com si cap altre criteri restrictiu no s’apliqués.
D’aquesta manera el seu ús serveix a més a més resum pel Webmestre ja que s’obté el mateix resultat que sense indicar cap criteri.

-  {traduction} selecciona les traduccions de l’article en curs en diferents llengües.

L’estat de l’article

Com tots els bucles d’SPIP, un bucle ARTICLES només ens torna articles publicats; quan el lloc Web està estructurat per a no publicar els articles «amb data posterior», s’efectua un altre test amb la data de l’article. Fins a SPIP 1.8.2 no hi havia cap mitjà d’alliberar-se d’aquest sistema i mostrar els articles que es troben «en curs de redacció», «proposats per a ser publicats» o «refusats». A partir d’ara és possible gràcies al criteri {statut}:

  • {statut IN prop,prepa,publie,refuse,poubelle} (a partir d’’SPIP 1.8.2) selecciona els articles en funció del seu estat de publicació:
  • {statut=prepa} selecciona els articles en procés de redacció a l’espai privat;
  • {statut=prop} selecciona els articles proposats per publicar;
  • {statut=publie} selecciona els articles publicats al lloc Web, fins i tot els articles «amb data posterior»;
  • {statut=refuse} selecciona els articles que han estat refusats per a ser publicats;
  • {statut=poubelle} selecciona els articles que s’han posat a la paperera.

Els criteris de visualització

Una vegada fixat un dels criteris anteriors, podrem afegir els criteris següents per restringir el número d’elements a mostrar.

S’apliquen, evidentment, els criteris comuns a tots els bucles.

Les etiquetes d’aquest bucle

Les etiquetes recuperades de la base de dades

Les etiquetes següents corresponen als elements recuperats directament de la base de dades. Podeu utilitzar-les igualment com a criteri de classificació (per exemple : {par date} o {par titre}).

-  #CHAPO mostra el text d’introducció (capçalera).

-  Les etiquetes de dates: #DATE, #DATE_REDAC, #DATE_MODIF es troben explicitades a la documentació sobre « La gestió de les dates ».

-  #DESCRIPTIF mostra la descripció.

-  #ID_ARTICLE mostra l’identificador únic de l’article. Útil per fer enllaços hipertext no previstos (per exemple cap a una pàgina «Mostrar en format impressió»).

-  #ID_RUBRIQUE mostra l’identificador de la secció de la que depèn l’article.

-  #ID_SECTEUR mostra l’identificador del sector del que depèn l’article (essent el sector la secció situada a l’arrel del lloc).

-  #LANG mostra la llengua d’aquest article.

-  #POPULARITE mostra el percentatge de popularitat d’aquest article; veure la documentació« La «popularitat» dels articles».

-  #PS mostra el post-scriptum.

-  #SOUSTITRE mostra el subtítol.

-  #SURTITRE mostra el sobretítol.

-  #TEXTE mostra el text principal de l’article.

-  #TITRE mostra el títol de l’article.

-  #NOM_SITE i #URL_SITE mostren el nom i l’Url de «l’enllaç hipertext» de l’article (si teniu activada aquesta opció).

-  #VISITES mostra el número total de visites que ha tingut aquest article.

Les etiquetes calculades per l’SPIP

Els elements següents són calculats per SPIP. (No poden ser utilitzats com criteri de classificació).

-  #URL_ARTICLE mostra l’URL de la pàgina de l’article.

-  #NOTES mostra les notes de peu de pàgina (calculades a partir de l’anàlisi del text).

-  #INTRODUCTION (a partir d’SPIP 1.4) mostra la descripció de l’article, sinó mostra els 600 primers caràcters del començament de l’article (capçalera i després el text). En versions anteriors a SPIP 1.3, són, sistemàticament, els primers caràcters de l’article (capçalera i després el text) els que es tenen en compte (la descripció no s’utilitza).

-  #LESAUTEURS visualitza els autors d’aquest article, amb enllaç cap a la seva pròpia pàgina publicada (per tal de poder-lo escriure directament o consultar la llista d’articles que han publicat). Això evita la creació d’un bucle AUTEURS per obtenir el mateix resultat. En versions anteriors a SPIP 1.9, aquesta etiqueta mostra els autors de l’article amb l’enllaç cap a la seva adreça de correu electrònic.

-  #PETITION mostra el text de la petició si existeix. Si existeix però està buida, retorna un espai (una cadena no buida sense incidència en una pàgina html).

-  #FORMULAIRE_SIGNATURE fabrica i mostra el formulari que permet signar una petició associada a aquest article.

-  #FORMULAIRE_FORUM construeix i mostra el formulari que permet enviar un missatge responent a aquest article. Per saber-ne mes, vegeu també «Les formulaires».

-  #PARAMETRES_FORUM construeix i mostra la llista de variables aprofitades pel formulari que permeten respondre a aquest article. Per exemple:

[<a href="spip.php?page=forum&(#PARAMETRES_FORUM)">Respondre a aquest article</a>]

A partir d’SPIP 1.8.2 li podem passar un paràmetre especificant l’adreça de retorn després d’haver enviat el missatge. Per exemple: <a href="spip.php?page=forum&(#PARAMETRES_FORUM{#SELF})">Respondre a aquest article</a> tornarà a enviar al visitant a la pàgina actual un cop el missatge s’hagi validat.

Històric: En versions anteriors a SPIP 1.9 hauríem d’haver escrit forum.php3? i no spip.php?page=forum&

De manera general, fins a SPIP 1.9, els urls de les pàgines generades per SPIP eren del tipus http://monsite.net/xxx.php3 i no http://monsite.net/spip.php?page=xxx.

Els logotips

-  #LOGO_ARTICLE mostra el logotip de l’article, eventualment amb la gestió d’imatge canviant.

-  #LOGO_RUBRIQUE mostra el logotip de la secció de l’article.

-  #LOGO_ARTICLE_RUBRIQUE mostra el logotip de l’article, eventualment substituït pel logotip de la secció si no existeix cap logotip específic de l’article.

Els logotips s’instal·len de la següent manera: [(#LOGO_ARTICLE|alignement|adresse)]

L’alineació pot ser left o right. L’adreça és l’URL de destí de l’enllaç d’aquest logotip (per exemple #URL_ARTICLE). Si no se li indica cap adreça, el botó no es podrà clicar.

Si es vol recuperar directament el nom del fitxer del logotip (quan les etiquetes anteriors confeccionen el codi HTML complet per inserir la imatge a la pàgina), per exemple per mostrar una imatge com a fons d’una taula, utilitzarem el filtre |fichier tal i com segueix: [(#LOGO_ARTICLE|fichier)]

Per altra banda dues etiquetes permeten recuperar només un dels dos logotips:
-  #LOGO_ARTICLE_NORMAL mostra el logotip sense imatge canviant;
-  #LOGO_ARTICLE_SURVOL mostra el logotip d’imatge canviant.

Carpeta

Autor merce Publié le : Mis à jour : 21/03/23

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