SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 143 visiteurs en ce moment

Accueil du site > Rédaction > Archives Rédaction > Filtres Mise en page pour avant SPIP 1.9 > Sommaire de l’article

Sommaire de l’article

12 mars 2003 – par Noplay – 41 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

2 votes

Cette modification permet d’afficher le sommaire de son article généré dynamiquement à partir du texte de l’article.

Ce filtre permet d’afficher le sommaire de son article généré dynamiquement à partir du texte de l’article. Vous pouvez naviguer dans l’article en cliquant sur les titres du sommaire.

Démo

Tous ce qui se trouve entre {{{ et }}} est considéré comme un titre à ajouter au sommaire de l’article.

Installation

dans mes_fonctions.php3 ajoutez :

et dans votre squelette vous ajoutez :
-  [(#TEXTE*|sommaire_article|propre)] pour afficher le sommaire de l’article
-  [(#TEXTE*|sommaire_ancre|propre)] pour afficher l’article.

P.-S.

Attention : ce filtre utilise la fonction preg_match_all qui necessite une version de PHP3 superieure a PHP 3.0.9

Retour en haut de la page

Vos commentaires

  • Le 16 janvier à 15:00, par fwedboot En réponse à : Sommaire de l’article

    Bonjour,

    Au cas où, pour ceux qui utilise ce script avec Enluminures typographiques V3 , en configuration par défaut qui met des

    **

    pour les intertitres de niveau 2, j’ai changé l’expression régulière pour qu’elle
    ne considère pas les titres avec 2 * au début :

    |\\\([^\*\*].*)\\\

    au lieu de

    |\\\(.*)\\\
    En espérant que ça en dépanne 2/3 :)

    Répondre à ce message

  • Le 21 avril 2010 à 16:58, par Spigushe En réponse à : Sommaire de l’article

    Il me semble bien que je sois arrivé trop tard, mais bon.

    Quel est le fichier « article.htm » à modifier ?
    Est-ce celui de /squelettes-dist ? celui de /prive/contenu ? celui de prive/info ? celui de /priver/editer ?

    En fin bref, je suis paumé.

    Répondre à ce message

  • Le 12 juin 2006 à 13:19, par B.POIRAUD En réponse à : Sommaire de l’article

    Excusez-moi d’arriver longtemps après la fin d ela bagarre !

    Vous écrivez ceci :
    et dans votre squelette vous ajoutez :

    * [(#TEXTE*|sommaire_article|propre)] pour afficher le sommaire de l’article
    * [(#TEXTE*|sommaire_ancre|propre)] pour afficher l’article.

    mais moi je ne sais pas : dans quel fichier du squelette il faut mettre ça ?
    Peut-on le mettre n’importe où ?
    Est-ce que ça remplace quelque chose existant ?

    Merci d’avance !

    b_poiraud

    • Le 12 juin 2006 à 22:39, par B.POIRAUD En réponse à : Sommaire de l’article

      >>>>>>>>>>>>>>>>>>>>>>>>>>>>

      B.Poiraud répond ........... Youpi !!

      Merci, j’ai trouvé
      après de multiples manipulations.
      Voici, pour d’autres,novices comme moi, ce que ça donne :

      Dans article.html j'avais ceci :
      [<div class="chapo">#DEBUT_SURLIGNE(#CHAPO)#FIN_SURLIGNE</div>]
      [<div class="texte">#DEBUT_SURLIGNE(#TEXTE|couleur)#FIN_SURLIGNE</div>]
      [<div class="ps">#DEBUT_SURLIGNE(#PS)#FIN_SURLIGNE</div>]
      [<div class="notes">#DEBUT_SURLIGNE(#NOTES)#FIN_SURLIGNE</div>]

      J'ai remplacé la deuxième ligne par ceci :
      [<div class="texte">(#TEXTE*|sommaire_article|propre)</div>]
      [<div class="texte">(#TEXTE*|sommaire_ancre|propre)</div>]

      Cela me fait donc ceci :
      [<div class="chapo">#DEBUT_SURLIGNE(#CHAPO)#FIN_SURLIGNE</div>]
      [<div class="texte">(#TEXTE*|sommaire_article|propre)</div>]
      [<div class="texte">(#TEXTE*|sommaire_ancre|propre)</div>]
      [<div class="ps">#DEBUT_SURLIGNE(#PS)#FIN_SURLIGNE</div>]
      [<div class="notes">#DEBUT_SURLIGNE(#NOTES)#FIN_SURLIGNE</div>]

      et, compte-tenu de ce que j’ai mis dans mes_fonctions .... CA MARCHE !
      Et c’est bien commode ce sommaire automatique : !

      Mais, encore deux questions

      1) j’aurais voulu que les lignes du sommaire soient bleues. J’ai essayé plein de choses, ça ne va pas.

      2) j’avais fixé une couleur violette à h3 . Et, depuis que j’ai mis le sommaire automatique ... ya plus de violet.

      Une idée ? deux zidées ?

      Merci à Jacques J et à tous

    Répondre à ce message

  • Le 1er janvier 2005 à 16:54, par fulvio En réponse à : > Appel conditionnel du sommaire

    Super contrib ! Merci noplay. Toutefois il implique que tous les articles qui ont du texte entre les 3 accolades {{{ ajoute automatiquement le menu.
    J’avais donc besoin d’afficher le sommaire que sur certains articles.

    J’ai donc créé une boucle qui me permette d’afficher le sommaire uniquement lorsque le mot clé « ancres-texte » est attaché à l’article :

    <BOUCLE_ancres(MOTS){id_article}{titre = ancres-texte}>
    [(#TEXTE*|sommaire_article|propre)]
    <hr>
    <br><br>
    </BOUCLE_ancres>

    [(#TEXTE*|sommaire_ancre|propre)]
    ...

    Malheureusement, et ne sais pas pourquoi, ca ne marche pas ! :-(
    J’ai tout essayé mais impossible de faire apparaitre/disparaitre le menu avec l’utilisation de mots clés.

    Je propose donc une solution plus ou moins sympas.
    La solution et bien en effet c’est sebold qui l’a donnée ci-dessous et que je remercie infiniment, avec la possibilité d’utiliser ses propres tags et ne pas lier le sommaire aux 3 accolades.

    Cela m’a permis de créer des tags personnalisés. Tant qu’ils ne sont pas utilisés le menu n’apparait pas ! J’ai donc créé des tags personnalisés <anc></anc>.

    J’ai utilisé ma boucle « Mots » avec le mot clé « ancres-texte » pour afficher la décoration du sommaire.

    Résultat dans le squelette de l’article :

    <!-- affichage du sommaire si tag "anc" utilisé -->
    [(#TEXTE*|sommaire_article{"<anc>","</anc>"}|propre)]

    <!-- boucle affichant la décoration et espace pour le sommaire -->
    <BOUCLE_ancres(MOTS){id_article}{titre = ancres-texte}>
    <hr>
    <br><br>
    </BOUCLE_ancres>

    <!-- texte de l'article -->
    [(#TEXTE*|liens_ouvrants{"<anc>","</anc>"}|sommaire_ancre|propre)]

    Ainsi, le tag anc active le sommaire et le mot clé « ancres-texte » rattaché à l’article me permet de « décorer » l’article. Si l’article n’utilise pas les tag « anc » et n’a pas le mot clé attaché, il se présentera comme un article normal.

    J’ai également profité de la contribution de ovto pour faire des liens de retour au sommaire sur les titres en adaptant le script pour mes_fonctions en conséquence :

    /*
    *   +----------------------------------+
    *    Nom du Filtre : Sommaire de l'article                                              
    *   +----------------------------------+
    *    Date : dimanche 9 février 2003
    *    Auteur :  Noplay (noplay@altern.org)                                      
    *   +-------------------------------------+
    *    Fonctions de ce filtre :
    *      Cette modification permet d'afficher le sommaire de son article
    *      généré dynamiquement à partir du texte de l'article. Vous pouvez naviguer
    *      dans l'article en cliquant sur les titres du sommaire.
    *
    *      Tous ce qui ce trouve entre {{{ et }}} est considéré comme un titre à ajouter au sommaire de l'article.
    *   +-------------------------------------+
    *  
    * Pour toute suggestion, remarque, proposition d'ajout
    * reportez-vous au forum de l'article :
    * http://www.uzine.net/spip_contrib/article.php3?id_article=76
    */
    function sommaire_article($texte, $beginPattern="\{\{\{", $endPattern="\}\}\}"){
    $pattern = "|" . $beginPattern . "(.*)" . $endPattern . "|U";
           preg_match_all($pattern, $texte, $regs);
           $texte="";
           $nb=1;
           for($j=0;$j<count($regs[1]);$j++){
              $texte=$texte."<BR>&nbsp;&nbsp;&nbsp;<li><a name=\"so_".$nb."\" a href=\"#sommaire_".$nb."\">".$regs[1][$j]."</a></li>";
                   $nb++;
      }
           return $texte;
    }

    function sommaire_ancre($texte, $beginPattern="\{\{\{", $endPattern="\}\}\}"){
    $pattern = "|" . $beginPattern . "(.*)" . $endPattern . "|U";
           $texte = preg_replace($pattern, "<a href=\"#so_#NB_TITRE_DE_MON_ARTICLE_renvoi#\" name=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\">$0</a>", $texte);
         
           $array = explode("#NB_TITRE_DE_MON_ARTICLE#" , $texte);
           $res =count($array);
           $i =1;
           $texte=$array[0];
           while($i<$res){
                   $texte=$texte.$i.$array[$i];
                   $i++;
           }
           $array = explode("#NB_TITRE_DE_MON_ARTICLE_renvoi#" , $texte);
           $res =count($array);
           $i =1;
           $texte=$array[0];
           while($i<$res)
           {
                   $texte=$texte.$i.$array[$i];
                   $i++;
           }
           
           return $texte;
    }

    //Fin filtre sommaire de l'article
    ?>
    • Le 22 janvier 2005 à 12:49, par paps En réponse à : > Appel conditionnel du sommaire

      Je sais pas pourquoi ta fonction ne marche pas chez moi mais j’ai mis ca à la place et tout fonctionne, le sommaire et les liens pour retourner au sommaire.

      /*
      *   +----------------------------------+
      *    Nom du Filtre : Sommaire de l'article                                              
      *   +----------------------------------+
      *    Date : dimanche 9 février 2003
      *    Auteur :  Noplay (noplay@altern.org)                                      
      *   +-------------------------------------+
      *    Fonctions de ce filtre :
      *      Cette modification permet d'afficher le sommaire de son article
      *      généré dynamiquement à partir du texte de l'article. Vous pouvez naviguer
      *      dans l'article en cliquant sur les titres du sommaire.
      *
      *      Tous ce qui ce trouve entre {{{ et }}} est considéré comme un titre à ajouter au sommaire de l'article.
      *   +-------------------------------------+
      *  
      * Pour toute suggestion, remarque, proposition d'ajout
      * reportez-vous au forum de l'article :
      * http://www.uzine.net/spip_contrib/article.php3?id_article=76
      */
      function sommaire_article($texte)
      {
             
              preg_match_all("|\{\{\{(.*)\}\}\}|U", $texte, $regs);
             
              $texte="";
             
              $nb=1;
             
              for($j=0;$j<count($regs[1]);$j++)
              {
                 $texte=$texte."<a name=\"so_".$nb."\" href=\"#sommaire_".$nb."\">".$regs[1][$j]."</a><br>";
                      $nb++;
         }
              return $texte;
      }

      function sommaire_ancre($texte)
      {
              $texte = preg_replace("|\{\{\{(.*)\}\}\}|U","<a name=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\" href=\"#so_#NB_TITRE_DE_MON_ARTICLE_renvoi#\">$0</a>", $texte);
             
              $array = explode("#NB_TITRE_DE_MON_ARTICLE#" , $texte);
              $res =count($array);
              $i =1;
              $texte=$array[0];
              while($i<$res)
              {
                      $texte=$texte.$i.$array[$i];
                      $i++;
              }

              $array = explode("#NB_TITRE_DE_MON_ARTICLE_renvoi#" , $texte);
              $res =count($array);
              $i =1;
              $texte=$array[0];
              while($i<$res)
              {
                      $texte=$texte.$i.$array[$i];
                      $i++;
              }
             
              return $texte;
      }
      //Fin filtre sommaire de l'article
    • Le 22 janvier 2005 à 13:33, par paps En réponse à : > Appel conditionnel du sommaire

      Pour compléter et faire réellement fonctionner le mot clé conditionnel ancres-texte tout en se débarassant de ces affreuses balises <anc></anc> voici la comment est rédigé mon corps d’article :

      <B_ancres>
              <!-- affichage du sommaire si tag "anc" utilisé -->
              [(#TEXTE*|sommaire_article|propre)]

              <!-- boucle affichant la décoration et espace pour le sommaire -->
              <BOUCLE_ancres(MOTS){id_article}{titre = ancres-texte}>
              <hr>
              <br><br>
              </BOUCLE_ancres>

              <!-- texte de l'article -->
              [(#TEXTE*|liens_ouvrants|sommaire_ancre|propre|justifier)]
      </B_ancres>
              [(#TEXTE|liens_ouvrants|justifier)]
      <//B_ancres>

      -  un article avec le mot clé : http://legoux.org/article139.html
      -  un article sans : http://legoux.org/article139.html

      no problemo

      Patrice.

    • Le 22 janvier 2005 à 13:36, par paps En réponse à : > Appel conditionnel du sommaire

      oups... l’article avec c’est celui là : http://legoux.org/article118.html

    • Le 18 juillet 2005 à 16:17, par Pierre MULLER En réponse à : > Appel conditionnel du sommaire

      Avec une boucle ARTICLES au lieu de MOTS, cela marche.

    Répondre à ce message

  • Le 24 juin 2005 à 01:36, par fulvio En réponse à : > Sommaire de l’article

    Ca semblera tout bête mais le lien qui se crèe est http://www.monsite.com/#sommaire_1 mais il manque devant l’article ! (ca devrait être http://www.monsite.com/article.php3?id_article=76#sommaire_1)

    Ainsi ca me mène au sommaire....

    Une idée où j’ai fait faux ?
    Sinon faudrait que devant p>

    merci pour votre aide

    Répondre à ce message

  • Le 21 mars 2003 à 11:12, par ? En réponse à : > Sommaire de l’article

    Comment je fais pour imprimer un article sur le site contrib.
    ou est l’icon imprimer ?

    Répondre à ce message

  • Le 21 avril 2005 à 09:33, par Bruno Mathieu En réponse à : > Sommaire de l’article et HTML Valide

    Bonjour, j’ai remplacé

    $texte = preg_replace("|\{\{\{(.*)\}\}\}|U","<a name=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\">$0</a>", $texte);

    par

    $texte = preg_replace("|\{\{\{(.*)\}\}\}|U","{{{<a name=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\">$1</a>}}}", $texte);

    sinon, le validateur html du w3c pour un doctype
    HTML 4.01 Transitional me répond que la page est invalide car si j’ai bien compris, on ne peut pas mettre un H3 dans un A.

    Autrement, c’est vraiment bien utile comme filtre. Merci.

    PS : j’utilise la version de SPIP 1.7.2.

    Répondre à ce message

  • Le 14 juillet 2004 à 19:43, par m. En réponse à : > [modification] titres dans l’article qui renvoient au sommaire

    j’ai un peu modifié les filtres et on revient au sommaire en cliquant les titres :

    function sommaire_article($texte)
    {
           
            preg_match_all("|\{\{\{(.*)\}\}\}|U", $texte, $regs);
           
            $texte="";
           
            $nb=1;
           
            for($j=0;$j<count($regs[1]);$j++)
            {
               $texte=$texte."<a name=\"so_".$nb."\" href=\"#sommaire_".$nb."\">".$regs[1][$j]."</a><br>";
                    $nb++;
       }
            return $texte;
    }

    function sommaire_ancre($texte)
    {
            $texte = preg_replace("|\{\{\{(.*)\}\}\}|U","<a href=\"#so_#NB_TITRE_DE_MON_ARTICLE_renvoi#\" name=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\">$0</a>", $texte);
           
            $array = explode("#NB_TITRE_DE_MON_ARTICLE#" , $texte);
            $res =count($array);
            $i =1;
            $texte=$array[0];
            while($i<$res)
            {
                    $texte=$texte.$i.$array[$i];
                    $i++;
            }

            $array = explode("#NB_TITRE_DE_MON_ARTICLE_renvoi#" , $texte);
            $res =count($array);
            $i =1;
            $texte=$array[0];
            while($i<$res)
            {
                    $texte=$texte.$i.$array[$i];
                    $i++;
            }
           
            return $texte;
    }

    Répondre à ce message

  • Le 5 juin 2004 à 21:35, par DM En réponse à : > prob avec spip 1.7.2, sommaire s’affiche pas

    Le filtre sommaire ne fonctionne pas en ligne (alors que ça marche en local avec easy php). Bizarre...

    Mon hébergeur est Ouvaton, et d’après ce que j’ai vu ils ont une version de php suffisante.

    Répondre à ce message

  • Le 6 mai 2004 à 10:54, par ben En réponse à : > Sommaire de l’article

    Bonjour,

    J’ai cherché un peu sur le site de SPIP ainsi que sur le net mais je n’ai pas trouvé réponse à ma question :

    J’ai voulu utiliser ce filtre mais il ne marchait pas. Au bout d’un moment je me suis demandé à quel texte s’appliquait ce filtre et j’ai essayé la chose suivante :
    remplacer l’expression régulière "|\{\{\{(.*)\}\}\}|U" par "|<h3 class=\"spip\">(.*)</h3>|U". Et ça marche !!

    Il semble donc que mon filtre soit appliqué après la transofrmation en html du texte de l’article. Ca m’embête un peu car ça crée un dépendance sur le fait qu’on utilise une balise h3 pour les titres.

    Ma question est la suivante : Est-ce un nouveau comportement de SPIP ou y a-t-il un endroit où on peut spécifier à quel moment le filtre s’applique ?

    Merci,

    ben

    • Le 6 mai 2004 à 14:44, par Noplay En réponse à : > Sommaire de l’article

      A tu d’autre filtres d’installés ?

    • Le 7 mai 2004 à 00:34, par ? En réponse à : > Sommaire de l’article

      Je ne comprends pas bien ta question. Je n’applique que ce filtre au TEXTE.

      Je ne pense pas que nous ayons changé beaucoup de choses à l’installation par défaut de SPIP, car nous débutons avec SPIP et commençons juste la construction de notre nouveau site avec.

    • Le 7 mai 2004 à 10:07, par Noplay En réponse à : > Sommaire de l’article

      Bah comme sa je vois pas le probleme, chez moi sa marche avec la derniere version de SPIP.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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

  • Associaspip

    12 septembre 2011 – 67 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Plugin permettant la gestion d’une association incluant les fonctionnalités suivantes : Profil de votre association Gestion des membres (en association optionnelle avec le Plugin Coordonnées et le plugin Champs Extras 2) Gestion des cotisations (...)

  • Albums

    8 novembre 2011 – 26 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin permet d’afficher une ou plusieurs galeries d’images au fil du texte, dans les articles et ailleurs. Qui rédige un récit de voyage, par exemple, aimerait pouvoir illustrer son article de plusieurs petites séries de photos, une par jour. Or (...)

  • Maparaan (Squelette)

    21 mars 2011 – 150 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un squelette principalement pour les sites de type blog. Présentation : Adaptation pour Zpip du thème Wordpress Maparaan conçu par Padd Solutions. Voir une démo du thème et du squelette Maparaan. Ce squelette a été conçu pour le thème du même nom. Pour (...)

  • MediaBox

    10 mai 2010 – 180 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Aperçu La MediaBox est une Boîte multimédia polyvalente et personnalisable. Le plugin est basé sur la librairie moderne ColorBox, qui a été enrichie et adaptée pour SPIP. Par défaut, mediabox propose 5 habillages. Il est assez facile d’en créer de (...)

  • Formulaire de contact libre

    27 avril 2011 – 34 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)