Présenter le même article dans différentes rubriques sans mot-clé

Comment gérer la présentation d’un même article dans différentes hiérarchies de rubriques sans mot-clé

Le problème posé

Comment placer un même article dans plusieurs rubriques en concervant la hierarchie de chaque rubrique, pour permettre d’afficher le « bon » chemin de navigation jusqu’à l’article ?

Le cas des hierarchies simples

Avec SPIP il est possible de gérer la présence d’un article dans plusieurs catégories en utilisant des mots-clés pour créer les catégories. C’est la technique utilisée sur les blogs.

En placant différents mot-clés sur l’article, on peut le faire apparaitre dans plusieurs catégories. Mais une telle solution n’est indiquée que pour des hierarchies simples, en effet, il n’est pas possible de faire des sous-catégories imbriquées avec les mot-clés.

Le cas des hierarchies complexes

Diego Weisz, un spipeur italien, propose de créer à la main les différentes structures hiérarchiques du site avec des rubriques et d’inserer le même article dans la plupart d’entre elles en utilisant la redirection d’article.

Les limites

Ce type de gestion à assurément quelques limites :
-  L’impossibilité de voir dans quelles rubriques un article est présent, et tous les articles qui font une redirection vers l’article original dans une même page.
-  L’impossibilité d’utiliser la hiérarchie des articles virtuels tant que SPIP prendra pour référence l’article réel. En d’autres termes : il n’est pas possible d’utiliser la boucle HIERARCHIE pour montrer le chemin de navigation de l’article virtuel dans la page montrant l’article lui-même.

Pour le premier point, il n’y a pas grand chose à espérer, nous demandons sommetoute à SPIP de faire ce qu’il n’est pas supposé faire.

Un dernier effort

S’agissant du second point, il est possible d’utiliser une bidouille assez simple consistant à adapter l’url de redirection.

Toutes les fois qu’un utilisateur demande la page d’un article pour laquelle une redirection existe, SPIP redirige le navigateur vers l’URL spécifiée. Cependant, cette dernière ne posséde aucune référence sur la hierarchie de l’article virtuel.

S’il était possible de rediriger le navigateur vers une URL contenant une indication sur l’ID de l’article source, alors il devrait être possible de montrer les éléments de l’article original et, en même temps, d’utiliser la hierarchie de l’article virtuel.

Supposons que nous ayons 2 articles avec respectivement les ID 1 et 2, ce dernier étant un article virtuel devant être redrigé vers l’article 1. Il suffira d’écrire cette url dans la boite de redirection :

http://monsite.net/article.php3?id_article=1&id_virt=2

La variable id_virt a été introduite et sa valeur est celle de l’id de l’article virtuel.

Il ne reste plus qu’a utiliser cette information à l’interieur du squelette de votre page pour montrer le chemin de navigation adequat, en tenant compte du fait que pour l’article dans la hierarchie originale, id_virt n’est pas présent.

Nous pouvons remercier la boucle suivante :

<!-- If id_virt exists - it selects the article with id=id_virt-->
<BOUCLE_art(ARTICLES) {id_article=#ENV{id_virt}}>
        <BOUCLE_hier(HIERARCHIE) {id_article}>
        </BOUCLE_hier>
</BOUCLE_art>
        <!-- id_virt does not exist - it selects the article with id=id_article-->
        <BOUCLE_art2(ARTICLES) {id_article}>
                <BOUCLE_hier2(HIERARCHIE) {id_article}>
                </BOUCLE_hier2>
        </BOUCLE_art2>
<//B_art>

Discussion

Une discussion

  • 1

    C’est une bonne idée. Mais comment faire avec les rubriques ? Il est impossible de rediriger une rubrique vers une autre. On peut éventuellement créer un article et le rediriger vers une rubrique. Mais il faudrait savoir si le numéro de redirection est celui d’une rubrique ou d’un article (un query de plus dans l’url ?)

    Contrairement à ce que tu dis, avec les mots-clés il est possible de faire des hiérarchies imbriquées. Une rubrique contient physiquement des sous-rubriques ou des articles. Il suffit d’afficher les sous-rubriques et/ou articles physiquement inclus dans la rubrique, plus ceux qui disposent du même mot-clé que cette rubrique.

    • Hi,
      i did not mean to redirect sections (as rubrique and not as secteur). On the contrary, my target was not to rewrite over and over the same content, that are the articles and not the sections.

      About hierarchical keywords, I now understand that my statement should be changed. What I want to say is that you cannot put hierarchical information in keywords. You have to put the information directly in the templates. So you should tag every section with a keyword and link the various hierrarchical keyword relationships in the template. Correct me if I am wrong.

      This solution is intended as the easiest and the most flexible I have found, not needing to embed relationships in the template and writing simpler loops.

      Do you have an alternate solution (very welcome) ?

    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