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.
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 :
/*
* +----------------------------------+
* 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 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#\">$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++;
}
return $texte;
}
//Fin filtre sommaire de l'article
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.
Discussions par date d’activité
19 discussions
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
A tu d’autre filtres d’installés ?
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.
Bah comme sa je vois pas le probleme, chez moi sa marche avec la derniere version de SPIP.
Répondre à ce message
dans l’interface d’admin les accolades sont bien interprétées selon le cas par du gras, des intertitres..., mais une fois affichées sur mon site je vois les accolades ?
que se passe-t-il d’après vous ?
je dois ajouter un filtre pour prendre en compte l’interprétation des accolades ?
merci
Bonjour.
Je peux me tromper, mais essaye de rajouter le filtre |typo aux différentes balises, et ça devrait marcher.
A plus !
PS : dis-moi si ça marche..
Répondre à ce message
script très utile mais quand la page est un peu longue, on souhaiterait avoir un symbole haut de page à coté du titre pour remonter au sommaire.
ne connaissant pas PHP, une aide serait la bienvenue
merci d’avance
bah c’est du HTML pur, il faut mettre une ancre au niveau du sommaire
Répondre à ce message
J’ai proposé un article où J’ai couplé les scripts « sommaire » et « découper un article en plusieurs pages ».
Il est en attente de validation
Répondre à ce message
Ce filtre est super mais je n’arrive pas à le rendre compatible avec le filtre qui permet de couper en page un article. Les deux compatibles rendraient les pages très dynamiques. Comment peut-on faire ?
effectivement cela pourrait être intérressant
donc je te donne une piste de réflexion.
Seul la fonction sommaire article est à garder et à modfier (pour utiliser une url au lieu d’une ancre)
après faut utiliser le filtre pour découper en plusieurs pages afin de donner un id à chaque page
(aie je suis pas très clair)
tu n’es pas clair !
Répondre à ce message
Salut,
J’ai vu qu’il existe une fonction SOMMAIRE affichant le sommaire d’un article.
Celle-ci combinée à ta fonction de découpage d’article permettrait de présenter dans une liste les différents points de l’article qui seraient aussi les différentes pages.
Comment peut-on modifier le filtre pour qu’à chaque titre affiché dans le sommaire corresponde à 1 page de l’article ?
Ainsi cela comblerait un manque de SPIP qui est justement le type de document « dossier ».
Quelqu’un a déjà bossé ou bosse dessus ?
Et d’ailleurs est-ce que le rattachement d’articles est prévu dans les prochaines versions de SPIP ?
Le rattachement consisterait ainsi à regrouper des articles distincts afin de les présenter comme un dossier.
Merci pour vos réponses :)
Répondre à ce message
Peut-on m’indiquer des liens de pages qui utilisent ’sommaire de l’article".Merci.
Répondre à ce message
Super ce filtre. Je l’ai adapté à mes besoins : je n’utilise pas les raccourcis syntaxique de spip. J’écris mes pages html à part, et je les place dans spip par copier - coller. Donc dans mon cas, ce qui marque les paragraphes, c’est des tags <H2>
J’ai donc modifié sommaire_article et sommaire_ancre pour faire un « filtre à plusieurs variables », les variables étant ce qui encadre un titre de paragraphe.
&bra;
L’utilisation se fait alors comme ça :
[(#TEXTE*|sommaire_article« <H2> »,« </H2> »|propre)]
[(#TEXTE*|sommaire_ancre« <H2> »,« </H2> »|propre)]
(il manque des accolades, mangées par le système de messagerie).
En mettant les accolades comme valeurs par défaut aux fonctions, l’utilisation reste la même pour qui se sert des raccourcis syntaxiques de spip.
J’aurais bien collé le code des fonctions ici, mais ce foutu système de messagerie génère du texte inexploitable. Je peux l’envoyer par mail à qui le veut.
tu dis : J’aurais bien collé le code des fonctions ici, mais ce foutu système de messagerie génère du texte inexploitable.
Quand tu ecrit du code il suffit de l’entourer des balises CODE et /CODE .
Par exemple :
<code>{{{blabla}}}
ou alors aussi les balises cadre :
C’était donc ça...
Merci pour l’info.
Dans le squelette, ça donne :
Et le code à mettre dans mes_fonctions.php3 :
Répondre à ce message
[(#TEXTE*|sommaire_article|propre)]
[(#TEXTE*|sommaire_ancre|propre)]
Je n’est pas compris comment on l’installe dans le squelette. Doit-on mettre les deux ? et doit-on écraser #TEXTE par #TEXTE* dans la boucle article ?
oui oui il te faut les deux car l’un affiche le sommaire et l’autre affiche le texte en lui même.
et il faut effectivement dégager #TEXTE
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 :
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.
Suivre les commentaires : |