Nota SPIP-Contrib
Cette contribution, bien qu’en chantier, dont l’approche peut faire débat, et présentant le défaut de modifier le coeur de SPIP (ce qui rend toujours problématique le suivi des mises à jour) est quand même publiée comme sujet d’étude et doit être appréhendée comme tel. Vous aurez été prévenu.
Avertissement
Attention cette contribution demande la modification de fichiers du core de SPIP... Ce peut-être assez dangereux pour votre site. Testez cette contrib d’abord sur un site qui n’est pas en production et qui est en version 1.9.1. Je ne l’ai pas testé sur du 1.9.2 ( la dernière actuellement.
Bon accrochez vous et lisez surtout après l’installation pour mieux comprendre.(n’oubliez pas les commentaires :) ) . y a pas mal d’opérations a faire et il serait bon de porter cette contrib en plugin ... avis aux amateurs :)
Principe
Cette contribution permet, grâce à quelque codes a rajouter et aux boucles, d’avoir lors de la navigation, et pour certaines conditions, un accès direct aux articles sans passer par leur rubrique. La rubrique existe toujours en tant que telle, mais son affichage dépend du contexte :
si la rubrique a un seul article ( exemple : voir le cas d’un seul article par contrib sur ce même site ), alors on affiche le lien de l’article « unique » ;
si la rubrique a plusieurs articles, alors on affiche le lien de la rubrique ;
il est aussi possible de définir un article par défaut, affiché lors de l’accès à la rubrique, qui peut ainsi servir de page d’accueil pour celle-ci.
La définition de l’article par défaut se fait dans la page d’édition de la rubrique. L’intérêt est de ne pas afficher une page habituelle de rubrique ( par exemple la liste des derniers articles) mais directement un article choisis dans les sous-rubriques.
Chaque lien du menu crée par la boucle ci-dessous donnera un lien vers un article.
À propos de la méthode utilisée
À noter qu’il est aussi possible de traiter cette problématique avec des boucles, voir par exemple des contribs en variation sur ce thème :
Menus contextuels
le menu de rubriques de SPIP-Contrib fonctionne aussi comme ça (avec des conditions en plus), cf. le code de cette noisette sur la Zone
Cependant elles ne traitent pas tout à fait ce que je voulais faire. Mon but est simple : associer un article à une rubrique, chaque lien vers cette rubrique sera le lien vers cet article par défaut.
Certes il serait aussi possible de traiter tout cela avec des mots clefs. Mais cette contribution découle de mes travaux pour un gros site (qui devrait avoir au minimum dans les 2000 articles en 3 mois, le temps de la saisie, et avec une arborescence assez complexe, jusqu’à une dizaine de niveau de profondeur. Je gère déjà pas mal de chose avec les mots clefs et j’ai fait cela pour le rédacteur ( ce ne sera pas moi ). Il y a déjà trop de choses réglées avec les mots clefs dans mon site. Pour mes rédacteurs/utilisateurs, presque non initiés a l’informatique, il me parait plus compréhensible de comprendre cette gestion plutôt que de conceptualiser à chaque fois le fonctionnement du site via des mots clefs.
Installation
Cette contrib est basée sur :
le Plugin Champs homonymes dont l’installation est nécessaire.
la contrib Afficher directement l’article si la rubrique n’en a qu’un
Elle a été développé sur SPIP 1.9.1. et n’a jamais été testé sur aucune autre version ... mais si le plugin « Champ homonyme » fonctionne sur 1.9.2 alors à priori cela devrait aussi fonctionner.
Modifications dans la base de données :
Il faut rajouter un champ ( faites le avec phpMyAdmin ) « article_defaut » dans la table "spip_rubriques" , ce champ est de type "TEXT"
Code PHP et Fichiers a modifier
Fichier : ecrire/inc/rubriques.php
Aprés :
Ajoutez :
Fichier : ecrire/mes_fonctions.php (créer le s’il n’existe pas )
Ajoutez :
Fichier : plugins/champs_homonymes/inc/extra.php
Aprés :
Ajoutez :
Fichier : ecrire/inc/filtres.php
À la fin du fichier ( avant la fermeture de la balise php quand même ... )
Ajoutez :
Bon c’est presque fini maintenant :)
La gestion de l’article par défaut devrait fonctionné déjà dans la partie privée , et vous pouvez le tester avant de continuer
Squelette a utiliser
Voici un exemple de boucle que j’ai utilisé pour afficher toutes les rubriques a partir de la racine :
Les boucles montrent bien le fonctionnement décrit dans les principes de la contrib. On pourrait lire de cette façon les boucles en français :
Pour chaque rubriques a partir de la racine
si on a un article par défaut alors on affiche le titre de la rubrique avec le lien de l’article par défaut
sinon si on a plusieurs articles alors on met le lien de la rubrique avec le titre de la rubrique
sinon si on a un seul article dans cette rubrique, cet article est considéré comme l’article par défaut ( lien de l’article avec titre de la rubrique )
sinon on met le lien de la rubrique avec le titre de la rubrique
et voilà :)
Voila ce que ca donne dans la partie privée :

y a pas un problème là ?

