SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

85 visiteurs en ce moment

fontsizeup fontsizedown
[38 commentaires]

Sommaire de l’article

mercredi 12 mars 2003, par Noplay

0 vote

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

38 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4

  • Répondre à ce message

    12 juin 2006 22:39 , par B.POIRAUD

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

    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

    12 juin 2006 13:19 , par B.POIRAUD

    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

  • Répondre à ce message

    18 juillet 2005 16:17 , par Pierre MULLER

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

  • Répondre à ce message

    24 juin 2005 01:36 , par fulvio

    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...)

    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

    18 juin 2005 17:53 , par EGuest

    fichier>imprimer ?

    ctrl+p ?

     :)

  • Répondre à ce message

    6 juin 2005 12:50 , par atchoum

    Ah merci de la contrib et de sa correction pour les éléments "h3" et "a href" !!

  • Répondre à ce message

    21 avril 2005 09:33 , par bruno

    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

    22 janvier 2005 13:36 , par paps

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

  • Répondre à ce message

    22 janvier 2005 13:33 , par paps

    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.

  • Répondre à ce message

    22 janvier 2005 12:49 , par paps

    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

    Voir en ligne : Page fonctionnant avec ce sommaire

Pages 1 | 2 | 3 | 4

Répondre à cet article

Retour en haut de la page

Ça discute par ici