[spip-dev] Patch pour %s dans url_glossaire_externe (inc_texte.php3)

Salut,

Voici un patch à soumettre qui permet de passer le mot du glossaire en paramètre dans l'URL 'url_glossaire_externe'.
Exemple si on veut faire des popup avec une fonction JavaScript (je sais c'est pô bien !!) on peut taper l'URL suivante :

$GLOBALS['url_glossaire_externe']='javascript:window.open(\'glossaire.php3?var_mot=%s\')';

Le %s sera alors remplacé par le mot du glossaire passé dans l'URL. Si il n'y a pas de %s dans l'URL le traitement se fait comme avant.

ex : [?mon_mot] pointera sur :
    javascript:window.open(\'glossaire.php3?var_mot=mon_mot\' ...)
et non pas :
   javascript:window.open(\'glossaire.php3?var_mot=%s\' ...)mon_mot

Mathieu

inc_texte-glossaire.patch (692 Bytes)

Appliqué dans le CVS. Je compte sur toi pour le documenter :wink:

@ Mathieu GIANNECCHINI <mathieu@refer.sn> :

Salut,

Voici un patch à soumettre qui permet de passer le mot du glossaire en
paramètre dans l'URL 'url_glossaire_externe'.
Exemple si on veut faire des popup avec une fonction JavaScript (je sais
c'est pô bien !!) on peut taper l'URL suivante :

$GLOBALS['url_glossaire_externe']='javascript:window.open(\'glossaire.php3?var_mot=%s\')';

Le %s sera alors remplacé par le mot du glossaire passé dans l'URL. Si
il n'y a pas de %s dans l'URL le traitement se fait comme avant.

ex : [?mon_mot] pointera sur :
   javascript:window.open(\'glossaire.php3?var_mot=mon_mot\' ...)
et non pas :
  javascript:window.open(\'glossaire.php3?var_mot=%s\' ...)mon_mot

Mathieu

--- inc_texte.php3.orig 2003-06-26 16:39:24.000000000 +0000
+++ inc_texte.php3 2003-06-26 16:51:06.000000000 +0000
@@ -613,7 +613,12 @@
     $regexp = "\[\?+([^][<>]+)\]";
     while (ereg($regexp, $letexte, $regs)) {
       $terme = trim($regs[1]);
- $url = $url_glossaire_externe.urlencode(ereg_replace('[[:space:]]+', '_', $terme));
+ $terme_underscore = urlencode(ereg_replace('[[:space:]]+', '_', $terme));
+ if (strstr($url_glossaire_externe,"%s")) {
+ $url = str_replace("%s",$terme_underscore,$url_glossaire_externe);
+ } else {
+ $url = $url_glossaire_externe.$terme_underscore;
+ }
       $code = "[$terme->?$url]";
       $letexte = str_replace($regs[0], $code, $letexte);
     }

_______________________________________________
liste: http://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.uzine.net/spip
cvs: http://rezo.net/spip-dev/devel/

-- Fil