[spip-dev] deux filtres

coucou

j'ajoute dans inc_filtres (version cvs) deux filtres très pratiques:

1) extraire_date
   ainsi [(#TITRE|extraire_date|affdate)] affichera "1er mars 1970" si le
   titre contient "1970/03" ; comme vous voyez ce n'est pas parfait,
   améliorations plus que bienvenues

2) chainephp, pour passer des champs à des évaluations php en toute
   sécurité. En effet je proposais jusqu'à présent d'utiliser un truc du
   genre <? $x = stripslashes("[(#TEXTE|addslashes)]"); ?>, mais c'est un
   peu compliqué, certains caractères passent mal (les " ou les ' ou les \',
   je n sais plus exactement), et il y a un petit risque de sécurité si
   on valide quelque chose du genre "$puce" (il affiche la puce, et pas le
   symbole dollar suivi des lettres p u c e...

   Maintenant il suffit de faire <?php $x=[(#TEXTE|chainephp)]; ?>
   ou encore <?php echo substr([(#TITRE|chainephp)],0,10); ?>

PS : inc_filtres est l'endroit le plus facile pour entrer dans le code ; si
   l'un de vous se sent en confiance pou tenir à jour ce fichier,
   l'améliorer et le documenter, qu'il soit le bienvenu !

-- Fil

Yo,

2) chainephp, pour passer des champs à des évaluations php en toute
  sécurité. En effet je proposais jusqu'à présent d'utiliser un truc du
  genre <? $x = stripslashes("[(#TEXTE|addslashes)]"); ?>, mais c'est
  un peu compliqué, certains caractères passent mal (les " ou les ' ou
  les \', je n sais plus exactement), et il y a un petit risque de
  sécurité si on valide quelque chose du genre "$puce" (il affiche la
  puce, et pas le symbole dollar suivi des lettres p u c e...

heu, en fait, ce serait plus simple d'utiliser les apostrophes :
$x = stripslashes('[(#TEXTE|addslashes)]');

Vu que les échappements sont moins nombreux.... Bon, heu, je vous
laisse là, je suis un peu au Muscat là.....

a+

@ Antoine Pitrou <antoine@rezo.net> :

heu, en fait, ce serait plus simple d'utiliser les apostrophes :
$x = stripslashes('[(#TEXTE|addslashes)]');

Si ton texte comporte la séquence \' ça peut merder, et l'utilisation du
stripslashes() devant le truc fait de toutes façons désordre. Mais c'est
compliqué (cf. bug de mon 1er commit) car on ne pense pas toujours à tout.

-- Fil