generationcyb.net pointcyb lien vers les points cyb
Inscription à la lettre d'information | Fil infos rss 

 

Accueil > Spip > Personnaliser les squelettes graphiques

Outils SPIP : histoires de boucles (suite)


Version imprimable Version imprimable


On l’a déjà vu, SPIP a inventé un langage simplifié basé sur des « boucles », afin de vous éviter la programmation en php et MySql pure et dure. Pour créer vos propres squelettes (c’est-à-dire pour créer votre propre mise en page), il est inévitable de savoir comment créer des boucles. Et rien de tel pour apprendre à concevoir ses boucles que de partir d’exemples.

D’abord, vous l’aurez peut-être remarqué, n’importe quel squelette d’article, de brève ou de rubrique commence toujours (avant même le début du code html) par une ouverture de boucle allant puiser respectivement dans la base des articles, des brèves ou des rubriques. Par exemple, pour un squelette de rubrique, cela donne :

qui indique à la page dynamique le numéro de la rubrique appelée (appelée par exemple depuis la page d’accueil du site [1]).

Pour les pages article et brève, l’ouverture de cette boucle est respectivement :

Remarque : vous le savez maintenant, le nom de ces trois boucles (ici, « rubrique_principal », « article_principal » et « breve_principal ») n’a aucune importance. Ce qui est important, c’est qu’il soit explicite, unique dans la page et qu’on le retrouve à l’identique dans la fermeture de la boucle.


En effet, chaque squelette d’article, de brève ou de rubrique se termine, après la fermeture du code html, par la fermeture de la boucle ouverte en début de squelette. Cela donne respectivement :

pour article (avec l’option « Pas d’article à cette adresse » si l’article a été mis à la poubelle par l’administrateur),

pour brève, et une des deux options suivantes :

pour rubrique.


Créer un "chemin depuis la racine"

Lorsque l’on se trouve sur une page de rubrique ou d’article, il est souvent pratique de pouvoir se situer par rapport à la racine du site, c’est-à-dire par rapport à la page d’accueil. Par exemple, le "chemin depuis la racine" du présent article apparaît ainsi (vous pouvez le vérifier en haut de page !) :

Dans le code-source de la page squelette, cela correspond à une boucle suivante (respectivement pour un squelette rubrique et pour un squelette article) :

La base de données HIERARCHIE livre l’élément demandé, qui est en fait la liste des rubriques depuis la racine jusqu’à la rubrique en cours (ou jusqu’à la rubrique de l’article en cours).


La boucle suivante sélectionne et affiche, avec un lien vers chacune d’elles, par ordre alphabétique et séparées par une barre verticale, les sous-rubriques dépendant de la rubrique dans laquelle on se trouve (ou à laquelle est rattaché l’article dans lequel on se trouve) :


La boucle suivante sélectionne et affiche les rubriques "tantes" de la sous-rubrique en cours (les rubriques tantes sont les rubriques de même niveau que la rubrique "mère" de la rubrique en cours, exceptée la rubrique "mère") :


Les deux boucles imbriquées qui suivent servent à faire apparaître les mots-clés liés à l’article en cours.
La première boucle va puiser dans la base de données MOTS les mots-clés liés à l’article en cours.
La boucle "articles_mots", imbriquée dans la première, va chercher dans la base ARTICLES, pour chaque mot-clé trouvé, les 6 articles au plus liés à ce mot, choisis au hasard.


Les articles dans la même rubrique

La boucle suivante affiche des articles appartenant à la rubrique de l’article en cours : 8 au maximum, choisis au hasard, en excluant l’article en cours :


Cette boucle va chercher dans la base des messages de forums ceux qui sont liés à l’article en cours, pour en afficher le titre de façon chronologique inverse (les plus récents d’abord).


Cette boucle affiche l’article le plus récent associé au mot clé n°32 (qui se trouve, par hasard, s’appeler « interview »). Cela peut permettre par exemple d’afficher sur votre page d’accueil l’annonce de "l’interview du mois" :

La boucle suivante permet d’obtenir le même résultat (vous pouvez vérifier ;-)) :

Dans le cas où vous souhaitez que votre page d’accueil n’affiche pas seulement les présentations des derniers articles publiés, mais aussi un genre d’édito permanent que vous allez renouveler périodiquement (et donc ne pas inscrire "en dur" dans le code html de votre squelette), ce système vous permet aussi de créer un espace éditorial. Votre édito de page d’accueil sera l’article le plus récent associé au mot clé n°xxx ou dont le nom est "edito".
Prenez alors la précaution de ne pas faire s’afficher la rubrique des éditos dans le menu de navigation, en précisant par exemple dans votre boucle rubrique :

si la rubrique des éditos est la rubrique n°28.


Enfin, un exemple de boucle présentant les résultats d’une recherche par secteurs (les "secteurs" dans SPIP sont les rubriques principales, celles de premier niveau) :

Le fonctionnement est le suivant : chaque secteur du site est balayé. A chaque fois que sont trouvés des articles correspondant à la recherche demandée (critère "recherche"), la page affiche au plus cinq article par ordre décroissant de pertinence (critère "par points"), et, au-dessus, le titre du secteur. Si aucun article correspondant à la recherche n’est trouvé dans le secteur, rien ne s’affiche (et pas de titre du secteur).


[1] Dès lors, les balises de titre, date, texte, etc. placées dans votre page rubrique appelleront des éléments de la rubrique en question - sauf si elles se trouvent dans une autre boucle imbriquée dans la boucle principale.

Mis en ligne le vendredi 30 janvier 2004



Répondre à cet article

Forum

Contact | Plan du site | Espace privé
Dernier ajout : mercredi 22 juin 2011 | 816 articles sur ce site.

Generationcyb.net est motoris´ par Spip 1.9.2e associ´ a un squelette spip Rizom
Sauf indication, les articles sont mis a disposition sous un contrat Creative Commons
Ministere en charge de la jeunesse Institut national de la jeunesse et de l'education populaire Information jeunesse Centre d'information et de documentation jeunesse