SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Navigation > Navigation transversale

Un tableau d’articles à entrées multiples en fonction des mots-clés associés

jeudi 3 mars 2005, par Olivier GENDRIN. Dernier ajout mercredi 6 décembre 2006



problématique

comment faire figurer les articles dans un tableau à entrées multiples, fonction des mots clés qui leurs sont attribués ?

Imaginons par exemple que j’aie un site consacré à la cuisine internationale. A chaque rubrique correspond un pays. Et pour chaque plat, j’associe un mot clé précisant si c’est une entrée, un plat, un dessert, et un autre mot-clé précisant quel type de vin accompagne idéalement le plat.

Je peux vouloir créer une page sur laquelle les plats sont triés en fonction du type de plat (entrée, plat, dessert) et en fonction du vin qui l’accompagne le mieux. Je veux donc faire un tableau à double entrée.

Boucles

La boucle qui permet de faire cela est la suivante :

<BOUCLE_groupe_un (MOTS) {id_groupe=1} {par titre}>
<BOUCLE_groupe_deux (MOTS) {id_groupe=2} {par titre}>
<BOUCLE_articles_lies_un (ARTICLES) {id_mot=#_groupe_un:ID_MOT}>
<BOUCLE_articles_lies_deux (ARTICLES) {id_article} {id_mot=#_groupe_deux:ID_MOT}>
</BOUCLE_articles_lies_deux>
</BOUCLE_articles_lies_un>
</BOUCLE_groupe_deux>
</BOUCLE_groupe_un>

Remarques : Dans cet exemple de code, j’ai utilisé le critère {id_groupe=XX}, dans un soucis de simplicité. Je vous recommande cependant de lui préférer un critère de type {type=XXX}, ce qui vous permet de vous affranchir de la numérotation de la base de données au profit des noms de vos groupes de mots-clés. Ainsi, en cas de fausse manipulation qui aurait pour conséquence de changer le numéro de vos groupes (suite à un effacement accidentel par exemple), vous n’avez pas à modifier les squelettes, mais simplement à conserver un nom de groupe identique.

ATTENTION !!! Vous ne pouvez avoir qu’un seul mot clé de chaque groupe attaché à chaque article !!! Autrement dit, vous devez avoir un article par élément du tableau.

Explications

Quel est le principe de tout cela ?

La boucle _groupe_un parcourt un à un tous les mots clés du groupe un. Puis, pour chaque mot clé du groupe un, la boucle _groupe_deux parcourt tous les mots clés du groupe deux. Nous avons donc construit à ce stade chaque couple de mots clés, triés par titres.

La boucle articles_lies_un parcourt ensuite chaque article et ne retiens que ceux qui sont liés à un mot du groupe un. La boucle articles_lies_deux vérifie ensuite pour chaque article qui possède un mot clé du groupe un s’il possède aussi un mot clé du groupe deux (grâce au critère id_article).

(Pour l’explication de la signification de la balise #_groupe_deux_inc:ID_MOT, on se référera à la documentation sur les nouvelles balises).

Introduction du HTML

Pour afficher le tableau proprement dit, on pourra par exemple utiliser le code suivant :

Ce qui nous donne le résultat suivant (par exemple) :

On trouvera toutes les informations qui traitent des tableaux en HTML 4.01 dans la recommandation W3C.

Pour aller plus loin

On peut réaliser ainsi des tableaux à entrées multiples en ajoutant des boucles (MOTS) et (ARTICLES).

On peut aussi procéder ainsi pour toutes les boucles qui acceptent des mots clés : RUBRIQUES, BREVES, SYNDICATION et FORUM, ainsi que celles qui s’y ajouteront.

Autre méthode

Il est possible d’obtenir la même chose en utilisant les doublons nommés.


Répondre à cet article



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net