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] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Descarregar

El bucle ARTICLES

Novembre de 2003 — mis à jour le : Abril de 2010

Totes les versions d’aquest article:

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.

-  {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_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).

-  {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.)

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

-  {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).

-  {titre_mot=xxxx}, o {type_mot=yyyy} (a partir d’SPIP 1.3) 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).

-  {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}]

-  {lang} (a partir d’SP<font color="yellow">IP 1.7.1) selecciona els articles de la llengua demanada a l’adreça de la pàgina.

-  {traduction} (a partir d’SP<font color="yellow">IP 1.7.1) selecciona les traduccions de l’article en curs en diferents llengües.

-  {origine_traduction} (a partir d’SP<font color="yellow">IP 1.7.1) selecciona l’article de referència del que l’article en curs és una traducció.

-  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).

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

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.

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.

|?{

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 :

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 :

0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | ...

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.

})

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.

,

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

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ésormait 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}}>
...
 
 
})

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}).

-  #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ó»).

-  #SURTITRE mostra el sobretítol.

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

-  #SOUSTITRE mostra el subtítol.

-  #DESCRIPTIF mostra la descripció.

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

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

-  #PS mostra el post-scriptum.

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

-  #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).

-  #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.

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

-  #LANG mostra la llengua d’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 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.


Descarregar l’esquelet d’aquesta pàgina Lloc Web fet amb l’SPIP | Espace de traduction | Espai privat