Afficher un squelette article selon un mot-clé.

Cette boucle permet de choisir le squelette « article » selon un mot-clé.

J’avais besoin, pour rendre un site plus attrayant et interactif, d’afficher des articles à contenu variable. Par exemple, lorsque l’article contient un quiz avoir une présentation spécifique ou lorsque l’article contient un diaporama en avoir une autre.

Dans mon cas, on va donc avoir 3 squelettes article différents :

-  le squelette du quiz
-  le squelette du diaporama
-  le squelette pour les articles par défaut

1 - Création des mots-clés
Dans un groupe de mots-clés dédié à la mise en page (exemple) on crée :

-  qcm
-  diaporama

On relève le numéro de ces mots-clés.

2 - Création des squelettes
On crée les couples .html et php des squelettes du qcm et du diaporama. On crée également le couple .html et php du squelette par défaut :

-  qcm.html, qcm.php
-  diaporama.html, diaporama.php
-  article-defaut.html, article-defaut.php

Les versions php contiennent le script d’affiche du modèle concerné et les versions html contiennent la mise en page du squelette ainsi que les boucles.

3 - Création du contrôleur
Le contrôleur est le couple article.html et article.php qui routera l’article sur le bon modèle selon la mise en page souhaitée.

Voici la boucle à insérer dans article.html :

<BOUCLE_principale(ARTICLES) {id_article}> 

<BOUCLE_qcm(MOTS){id_article}{id_mot = 1}> 
<INCLURE(qcm.php3){id_article}> 
</BOUCLE_qcm> 

<BOUCLE_diaporama(MOTS){id_article}{id_mot = 2}> 
<INCLURE(diaporama.php3){id_article}> 
</BOUCLE_diaporama> 

<INCLURE(article-normal.php3){id_article}> 

<//B_diaporama> 

<//B_qcm> 

</BOUCLE_principale> 

<//B_principale>

Cette méthode de sélection de squelette par mot clé est la plus simple qui existe, elle est inspiré du fonctionnement du squelette EVA. D’autre méthode, plus complexes mais basées sur le même principe, existent pour les utilisateurs expérimentés et exigeants : par exemple sur spip-contrib ou encore sur le Bloog

Discussion

3 discussions

  • Bonjour et merci pour cette contrib qui fonctionne aussi très bien chez moi.

    Juste une remarque car j’ai rencontré un petit problème dans ce cas de figure :

    -  j’ai une rubrique numéro 1 à laquelle j’ai déjà aplliqué un squelette spécifique nommé « article-1.html »

    -  je voudrais aplliquer un autre squelette spécifique à un des articles de cette rubrique grâce à la méthode décrite dans cette contrib, mais mon squelette « article-1.html » est aplliqué en « priorité » à mon article

    J’ai lu dans la doc de spip (http://www.spip.net/fr_article1591.html) qu’il y a un ordre de priorité que l’on peut donc compléter comme ceci :

    Voici l’ordre (par priorité décroissante) dans lequel sont utilisés les fichiers de squelettes selon leur nom :

    -  rubrique=10.html : si ce fichier existe, il ne s’applique qu’à la rubrique numéro 10 ;

    -  si ce fichier n’existe pas, SPIP regarde si il n’y a pas un fichier rubrique-10.html, si ce fichier existe, la rubrique 10 ainsi que ses sous-rubriques l’utilisent, c’est donc « récursif » ;

    -  et pour finir le squelette qui a été définit à l’aide d’un mot-clé est appliqué à la rubrique (ou l’article).

    Répondre à ce message

  • ...oui je suis un réel newbie en spip. J’ai commencé il y a deux semaines sérieusement avec 2-3 connaissances d’il y a trois ans sur les squelettes....

    Et bien cet article est terrible, car easy à réaliser !!!

    je me souhaite bonne continuation et surtout bcp de courage pour la suite car j’en vois pas trop la fin.... je vous tiendrais informé !!

    quand à vous merci encore et bravo pour ce site.

    nicleg.com

    Répondre à ce message

  • L’œuf de Christophe Colomb ?

    Je dis bravo !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom