diff --git a/ecrire/inc/surligne.php b/ecrire/inc/surligne.php index f57770fb7d602863b086624aa00c267259532615..350e59ab973a5afa12ef0b44cf2114fd9de7053e 100644 --- a/ecrire/inc/surligne.php +++ b/ecrire/inc/surligne.php @@ -10,20 +10,18 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ - -// if (!defined("_ECRIRE_INC_VERSION")) return; // Ces commentaires vont etre substitue's en mode recherche -// voir les champs SURLIGNE dans inc-index-squel +// voir balise_DEBUT_SURLIGNE et balise_FIN_SURLIGNE define("MARQUEUR_SURLIGNE", 'debut_surligneconditionnel'); define("MARQUEUR_FSURLIGNE", 'finde_surligneconditionnel'); // http://doc.spip.org/@surligner_mots -function surligner_mots($page) { - $surlignejs_engines = array( +function surligner_mots($page, $surcharge_surligne='') { + $surlignejs_engines = array( array(",".str_replace(array("/","."),array("\/","\."),$GLOBALS['meta']['adresse_site']).",i", ",recherche=([^&]+),i"), //SPIP array(",^http://(www\.)?google\.,i", ",q=([^&]+),i"), // Google array(",^http://(www\.)?search\.yahoo\.,i", ",p=([^&]+),i"), // Yahoo @@ -41,7 +39,7 @@ function surligner_mots($page) { $ref = $_SERVER['HTTP_REFERER']; //avoid a js injection - if($surcharge_surligne=_request("var_recherche")) { + if($surcharge_surligne) { $surcharge_surligne = preg_replace(",(?<!\\\\)((?:(?>\\\\){2})*)('),","$1\\\\$2",$surcharge_surligne); $surcharge_surligne = str_replace("\\","\\\\",$surcharge_surligne); if($GLOBALS['meta']['charset']=='utf-8') { diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php index f62e53cd7a3a3942c1937b47c5a3c79a2902b0d7..c821d91f1bcfadb4b52f4c151f4f923b65b664ea 100644 --- a/ecrire/public/assembler.php +++ b/ecrire/public/assembler.php @@ -268,12 +268,11 @@ function inclure_balise_dynamique($texte, $echo=true, $ligne=0) { // Traiter var_recherche ou le referrer pour surligner les mots // http://doc.spip.org/@f_surligne function f_surligne ($texte) { - if ($GLOBALS['html'] - AND (isset($_SERVER['HTTP_REFERER']) OR isset($_GET['var_recherche']))) { - include_spip('inc/surligne'); - $texte = surligner_mots($texte); - } - return $texte; + if (!$GLOBALS['html']) return $texte; + $rech = _request('var_recherche'); + if (!$rech AND !isset($_SERVER['HTTP_REFERER'])) return $texte; + include_spip('inc/surligne'); + return surligner_mots($texte, $rech); } // Valider/indenter a la demande.