@ Olivier Aubert <oaubert@bat710.univ-lyon1.fr> :
J'ai voulu, dans un texte tronqué renvoyé par #INTRODUCTION, créer un
lien des trois points de continuation -- (...) -- vers l'article
entier (soit #URL_ARTICLE). Je n'ai pas trouvé de moyen simple de
faire ça en standard, mais j'ai trouvé un moyen un peu tordu, qui m'a
donné l'occasion d'implémenter une fonctionnalité mentionnée dans le
TODO.txt : le passage de paramètres à un filtre.
Merci pour le patch, je l'installe (une modif tout de même pour utiliser
ereg, car on n'est pas sûr d'avoir la librairie preg_)
Pour ce qui est de ton problème, un filtre standard aurait fonctionné, pour
supprimer les (...), avec
[(#INTRODUCTION|supprimer_points_suspension)] <a href='#URL_ARTICLE'>(...la suite)</A>
J'ai adopté la syntaxe proposée dans le TODO, soit
[(#EXPRESSION||filtre{p1,p2})]
Remarque : un seul | fonctionne pour la plupart des balises spip (le || sert
à contourner la question des "faux filtres" servant à mettre un URL sur un
#LOGO_ARTICLE par exemple)
Les arguments sont donc passés entre accolades, avec les limitations
évidentes (pas de |, pas de { ou }, ...).
OK. Le filtre doit être défini de la manière suivante :
function filtre($texte, $arg1='valeur par defaut1', $arg2='valeur par défaut 2')
{
....calculs....
return (une chaine de caractères);
}
[(#INTRODUCTION||liensuite($contexte))]
avec
function liensuite($in, $contexte)
{
return ereg_replace ('\(\.\.\.\)$', '(<a href="' . generer_url_article($contexte['id_article']) . '">...la suite</a>)', $in);
}
Crado, mais astucieux
-- Fil