SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 229 visiteurs en ce moment

Accueil > Navigation > Menus contextuels > Lien direct sur article > Rubriques remplacées par les articles ou Article par défaut

Rubriques remplacées par les articles ou Article par défaut

12 avril 2007 – par zerax – 14 commentaires

1 vote

Attention, cette contribution est EN CHANTIER : elle n’est peut-être pas fonctionnelle.

Attention ! Cette contribution modifie des fichiers du noyau de SPIP !

Même si elle a été testée par plusieurs utilisateurs nous ne pouvons garantir qu’il n’y aura pas d’effets secondaires dommageables sur votre SPIP. Conservez toujours les fichiers d’origine pour pouvoir revenir au noyau originel.

De plus, elle n’est compatible qu’avec une version précise de SPIP et sera perdue à la prochaine mise à jour : vous devrez donc recommencer.

Permet d’afficher directement des articles sans passer par la rubrique, et d’avoir par défaut un article d’accueil par rubrique. On conserve quand même l’organisation des rubriques.

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_options.php (créer le s’il n’existe pas )
Ajoutez :

vraiment pas térrible comme façon de faire

Fichier : squelettes/mes_fonctions.php (créer le s’il n’existe pas )
ce filtre

Fichier : plugins/champs_homonymes/inc/extra.php

Aprés :

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é r 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 :

P.-S.

TODO :
-  un portage sous forme de plugin, qui évitera de forker les fichiers du core. Ceci permettra de pouvoir faire des mises à jour de son SPIP.

-  l’internationalisation, je n’ai pas travaillé dessus et je l’ai même occulté car cette contrib est destiné a un public francophone.

Dernière modification de cette page le 4 octobre 2011

Retour en haut de la page

Vos commentaires

  • Le 5 octobre 2009 à 09:26, par ? En réponse à : Rubriques remplacées par les articles ou Article par défaut

    Rah désolée zerax mais j’ai pas compris un traitre mot de ce que tu as dit...

    Je suis débutante sous SPIP....

    D’autres ont trouvé un moyen « simple » d’adapter pour spip 2.0 ???

    Merci,

    Cordialement, Estelle.

    Répondre à ce message

  • Le 22 septembre 2009 à 09:50, par ? En réponse à : Compatibilité spip 2.0

    Bonjour,

    J’utilise une version de spip 2.0 et j’aimerai savoir comment rendre cette contrib compatible ? J’ai vraiment besoin de ce système pour mon site, et c’est plutôt urgent.

    Si quelqu’un qui s’y connait ca serait cool de m’aider.

    Merci,

    Cordialement, Estelle.

    • Le 22 septembre 2009 à 10:16, par zerax En réponse à : Compatibilité spip 2.0

      Salut, pour ma part j’ai un peu abandonner cette idée du tout article et que les rubriques ne servent que de contenant. Pour la bonne raison que je pense (maintenant) que d’avoir cela est anti-ergonomique (dans les cas que je gère). Maintenant il se peut que ce soit utile pour certains...

      Concernant la mise en place sur SPIP2 : il faut installer le plugin champ extra / interface champ extra pour ne pas avoir a surcharger le core et pour avoir l’interface.

      Dans le cas de cette contrib, j’avais surchargé le fichier inc/rubriques.php et du coup j’avais une liste des articles ... Mais ce n’est pas forcement utile (ca facilite c’est tout).

      Ensuite le squelette (a quelques choses près) doit être fonctionnel. Il suffit d’adapter le filtre id_article_defaut en fonction de la méthode de stockage de l’identifiant de l’article référent de la rubrique.

      Enfin c’est comme ca que je ferai

    Répondre à ce message

  • Le 27 février 2008 à 13:26, par ? En réponse à : Rubriques remplacées par les articles ou Article par défaut

    Effectivement cette idée de contribution est géniale, un plugin serait parfait car avec la version 1.9.2c cette methode ne marche pas. Domage .... ça m’aurrais sauvé la vie pour le site que je suis en train de faire...
    Ou le projet en est il ??? quelqu’un bosse dessus pour le passer en plugin ou c’est mort ?

    En tout ca merci encore à tous ceux qui donne de leur temps pour faire avancer le devellopement des outils spip

    • Le 27 février 2008 à 13:43, par zerax En réponse à : Rubriques remplacées par les articles ou Article par défaut

      Salut,
      alors concernant cette contrib, j’ai abandonné ce principe que je n’ai utilisé que sur un seul site...

      Ceci dit elle fonctionne quand même sur 192d, mais il faut installer le plugin champ homonymes.

      tu as bien suivi le process de modification des fichiers ?

      je pourrais éventuellement le porter en plugin, c’est pas pour le temps que ca prend, mais le principe de modifier le core ( le surcharger en l’occurence, j’aime pas ca ( j’ai fait cette contrib a mes débuts ) ) donc faudrait vraiment arranger tout ca pour le rendre fonctionnel ...

      ca pourrait le faire mais c’est pas dans mes priorités et je doute le faire avant un bon petit moment...

    • Le 27 février 2008 à 14:02, par omegalem En réponse à : Rubriques remplacées par les articles ou Article par défaut

      Yes super la réponse rapide !

      eh bien j’ai suivi ta méthode à la lettre « pas à pas » et ça me créé des erreurs dans tous les sens.
      J’ai bien intallé et modifier le plug in champs homonyme et j’ai bien créé le champs supplementaire dans la base de données.

      Déjà par exemple j’ai remarqué une erreur dans le code du fichier « mes_fonctions.php »

      include (’ecrire/base/serial.php’) ;
      global $tables_principales ;
      $tables_principales[’spip_rubriques’][’field’][’article_defaut’]= TEXT" ;

      A priori il manque un " a la fin devant TEXT ??

      sinon après il me met un message d’erreur pour le fichier « Rubrique.php » a la ligne 19 quand j’essaye de creer une nouvelle rubrique...

      Je ne suis malheureusement pas développeur et mes connaissance en php sont trés maigres . Donc pour moi et bcp d’autres sans doute la création d’un plugin est une délivrance, lol :-p

      J’aurrais très souvent besoin de mettre un article par défault dans un rubrique, et j’ai 2/3 amis qui sont à la recherche de la même chose.
      Y’aurrait t’il un moyen d’avoir les fichiers déjà modifiés pour etre sur que ce ne soit pas moi qui est fait des bétises lors de mes copier/coller ?

      En tout cas merci encore de porter un interet à ma demande zerax, c’est sympa :)

    Répondre à ce message

  • Le 19 avril 2007 à 11:00, par Tonton BP En réponse à : Suite à un fil sur spip news

    Suite à une discussion sur le serveur de news, j’ai proposé la solution que j’utilise.
    J’ai reçu ce message :


    salut Bernard
    je suggère que tu reporte ton message dans le forum de cette contrib
    qui est maintenant publiée ici :

    « http://www.spip-contrib.net/Rubriques-remplacees-par-les »

    cela enrichira le débat et facilitera le suivi pour qui s’intéresse au
    probleme

    @+ NicolasR


    Dont acte


    Cette contrib est intéressante mais un peu compliquée à mon goût. Il pourrait être envisageable de profiter d’un plugin.
    Mais personnellement s’il existe une alternative à un plugin je préfère.

    Voici les boucles que j’utilise, le tout est adapté d’une contribution assez ancienne qui utilisait des bouts de codes PHP qui sont désormais inutiles grâce à la notion de balise non ambiguë.

    J’utilise ce code dans le cadre de formations que j’anime, car il permet de cumuler :

    • Notion de boucle conditionnelle
    • Compréhension de la notion de contexte SPIP
    • Utilisation des balises non ambiguës.
      A noter la balise #EDIT que tu peut retirer si tu n’a pas l’intention d’utiliser le plugin crayon. Cela dit je te conseille de la laisser - tu en aura probablement besoin pour SPIP 2.0
    <!--  Affichage du titre de la rubrique en cours -->
    <BOUCLE_rubrique1(RUBRIQUES) {id_rubrique}>
           <h1 class="#EDIT{titre} titre">[(#TITRE|supprimer_numero)]</h1>
    </BOUCLE_rubrique1>
    <!-- **************************************************** -->
    <!-- Affichage des sous-rubriques de la rubrique -->
    <!-- si dans une rubrique, il n'y a qu'un seul article -->
    <!-- on va directement à ce dernier en cliquant sur le titre de la rubrique -->
    <BOUCLE_sous_rubriques1(RUBRIQUES) {id_parent} {par num titre}>
    <!-- on teste s'il existe un deuxième article dans la rubrique -->
        <BOUCLE_articles_plusdun(ARTICLES) {id_rubrique} {1,1}>
    <!-- si oui on affiche le titre de la rubrique qui pointe vers la rubrique (comme normal) -->
    <!-- Utilisation de la notion de balise non ambiguë pour afficher le titre de la rubrique qui pointe vers la rubrique -->
           <a href="[(#URL_RUBRIQUE)]" title="[(#_sous_rubriques1:DESCRIPTIF|textebrut|entites_html)]"> [(#_sous_rubriques1:TITRE|supprimer_numero)]</a>
    <!-- On est dans le contexte de l'article, pour afficher le descriptif de la rubrique-->
    <!-- Il faut remonter au contexte de la rubrique -->
               <BOUCLE_rubart1(RUBRIQUES) {id_rubrique}>
               <ul class="#EDIT{descriptif} descriptif"> [(#DESCRIPTIF)]</ul>
               </BOUCLE_rubart1>
       </BOUCLE_articles_plusdun>
    <!-- **************************************************** -->
    <!-- si non on teste s'il y a au moins un article -->  
          <BOUCLE_articles_unseul(ARTICLES) {id_rubrique} {0,1}>
    <!-- Utilisation de la notion de balise non ambiguë pour afficher le titre de la rubrique qui pointe vers l'article -->
              <a href="[(#URL_ARTICLE)]" title="[(#_sous_rubriques1:DESCRIPTIF|textebrut|entites_html)]"> [(#_sous_rubriques1:TITRE|supprimer_numero)]</a> |
               [(#TITRE|supprimer_numero)]
               <ul> [(#DESCRIPTIF)] </ul>
       </BOUCLE_articles_unseul>  
    <!-- s'il n'y a aucun article on affiche le titre de la rubrique qui pointe vers la rubrique (comme normal) -->
    <!-- Utilisation de la notion de balise non ambiguë pour afficher le titre de la rubrique qui pointe vers la rubrique -->
           <a href="[(#URL_RUBRIQUE)]" title="[(#_sous_rubriques1:DESCRIPTIF|textebrut|entites_html)]"> [(#_sous_rubriques1:TITRE|supprimer_numero)]</a>
           <ul class="#EDIT{descriptif} descriptif"> [(#DESCRIPTIF)]</ul>
       <//B_articles_unseul>
    <//B_articles_plusdun>

    </BOUCLE_sous_rubriques1>  
    <!-- ******************************************** -->

    <!--  Affichage des articles de la rubrique en cours s'il y en a -->
    <BOUCLE_articles(ARTICLES) {id_rubrique} {par num titre}>
    <a href="#URL_ARTICLE" title="[(#DESCRIPTIF|textebrut|entites_html)]">
               [(#TITRE|supprimer_numero)]</a>
               <ul class="#EDIT{descriptif} descriptif">[(#DESCRIPTIF)] </ul>
    </BOUCLE_articles>
    • Le 19 avril 2007 à 11:45, par ? En réponse à : Suite à un fil sur spip news

      Salut,
      effectivement ce code convient dans la pluspart des cas. Mais a aucun moment tu te donne le choix de l’article qui sera affiché par défaut. A mon sens (d’aprés ce que je viens de lire, et si j’ai bien compris), cela ne rajoute pas grand chose a la contrib

      Je ne pense pas utile le fait d’avoir cette fonctionnalité dans le core. Ceci dit le fait de l’avoir en plugin serait a mon avis interessant.

      Par contre il faudrait que je refasse le squelette rubrique.html,dans le cas d’une mise a jour avec ce plugin, pour ne pas perdre le référencement sur ces rubriques, car dans mon cas je n’ai jamais de lien vers les rubriques. Dans mon cas ce n’est pas génant vu que le site n’est pas encore en production, donc pas encore indéxé.

    Répondre à ce message

  • Le 13 avril 2007 à 09:45, par Michel En réponse à : Rubriques remplacées par les articles ou Article par défaut

    Le plus souvent l’utilisation du descriptif de la rubrique devrait suffire pour donner un contenu au contenant. Non ?

    • Le 13 avril 2007 à 10:15, par zerax En réponse à : Rubriques remplacées par les articles ou Article par défaut

      effectivement l’utilisation du descritif , ou éventuellement la liste des articles de la rubrique ( ou des sous rubriques ) permet d’avoir du contenu ...
      Mais mon but n’était pas d’avoir un contenu de type descriptif mais de type article.

      Voila tout :)
      c’est simplement une question d’organisation, j’avais besoin de l’avoir comme ca.

    • Le 13 avril 2007 à 11:40, par ? En réponse à : Rubriques remplacées par les articles ou Article par défaut

      Et dieu sait qu’on est beaucoup à en avoir besoin...

    • Le 13 avril 2007 à 11:46, par zerax En réponse à : Rubriques remplacées par les articles ou Article par défaut

      et bien c’est le but de cette contrib ... par contre j’insiste sur le point qu’il faudrait le porter en plugin donc les bonnes volontés sont les bienvenues pour faire cela.

      En ce qui me concerne ce ne pourra pas se faire de suite, mais je veux bien aider :)

      le but c’est aussi et surtout que ca fonctionne sur une 1.9.2 et plus si possible ...

      autre chose j’attends aussi vos retours d’expériences, pour voir si ca marche pour vous, si vous avez eu des soucis a l’installation, bref essayez le et dites moi ce que vous en pensez

    • Le 16 avril 2007 à 14:27, par Pieropaolo En réponse à : Rubriques remplacées par les articles ou Article par défaut

      Il est possible aussi d’utiliser les mots clés et un squelette approprié pour avoir un article qui est assigné au contenu de la page rubrique.
      J’ai expérimenté cela. C’est assez facile et ne nécessite aucun « code ».

      Si ça n’est pas posté ailleurs, je peux faire un post sur cette technique.

    • Le 16 avril 2007 à 14:34, par zerax En réponse à : Rubriques remplacées par les articles ou Article par défaut

      comme c’est indiqué dans la contrib, il est effectivement possible de gérer cela avec les mots clefs, ca fait partie des remarques faites avant la publication de cet article.

      Mais un des « inconvénients » de spip est que les mots clefs servent a faire un peu tout... du coup pour le rédacteur, c’est un peu confu.

      Donc gérer cela de la sorte lui facilite la vie.
      C’est quand même plus simple a appréhender comme ca qu’avec des mots clefs...

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là