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
Ce script me serait bien utile, mais je ne parviens pas à reprendre deux fois la variable #NB_TITRE_DE_MON_ARTICLE# il passe à la suivante dans l’array et me retourne donc :
<div id="sommaire_1"><a name="sommaire_2">
$i++
<div id="sommaire_3"><a name="sommaire_4">
hors j’aimerais qu’il me retourne
<div id="sommaire_1"><a name="sommaire_1">
$i++
<div id="sommaire_2"><a name="sommaire_2">
auriez-vous une solution ?
d’avance merci
Réglé, en adaptant le script donné par PAPS ci-dessous, ca fonctionne
http://contrib.spip.net/Sommaire-de-l-article#forum343065
Répondre à ce message
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
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é.
Pour commencer par le début tu devrais découvrir les bases de la personnalisation d’un squelette spip. cf par exemple http://www.spip.net/fr_article3347.html
Répondre à ce message
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
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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 :
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
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 :
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 :
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 :
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.
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 :- un article avec le mot clé : http://legoux.org/article139.html
- un article sans : http://legoux.org/article139.html
no problemo
Patrice.
oups... l’article avec c’est celui là : http://legoux.org/article118.html
Avec une boucle ARTICLES au lieu de MOTS, cela marche.
Répondre à ce message
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
merci pour votre aide
Répondre à ce message
Comment je fais pour imprimer un article sur le site contrib.
ou est l’icon imprimer ?
c’est pas possible... faudrait contacter le webmaster
fichier>imprimer ?
ctrl+p ?
:)
Répondre à ce message
Bonjour, j’ai remplacé
par
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.
Ah merci de la contrib et de sa correction pour les éléments « h3 » et « a href » !!
Répondre à ce message
j’ai un peu modifié les filtres et on revient au sommaire en cliquant les titres :
Répondre à ce message
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.
Il t’affiche aucun message d’erreur ?
Non, y a aucun messages d’erreur. Le texte s’affiche en mode normal, comme si y avait pas le filtre.
Pourtant, le ficbier mes_options est bien en ligne.
C’est bizarre surtout que sa marche en local.
Ca y est, le sommaire avec ancres s’affiche et fonctionne à présent... Allez savoir pourquoi, pourtant je n’ai rien changé...
En revanche, le moteur de recherche en ligne toujours pas, mais ça c’est une autre histoire...
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 : |