Your IP : 216.73.216.249


Current Path : /home/etiennec/www/oldsite/ecrire/inc/
Upload File :
Current File : /home/etiennec/www/oldsite/ecrire/inc/surligne.php

<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2011                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  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

define('MARQUEUR_SURLIGNE',  'debut_surligneconditionnel');
define('MARQUEUR_FSURLIGNE', 'finde_surligneconditionnel');


// http://doc.spip.org/@surligner_mots
function surligner_mots($page) {
  $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
      array(",^http://(www\.)?search\.msn\.,i", ",q=([^&]+),i"),                       // MSN
      array(",^http://(www\.)?search\.live\.,i", ",query=([^&]+),i"),                  // MSN Live
      array(",^http://(www\.)?search\.aol\.,i", ",userQuery=([^&]+),i"),               // AOL
      array(",^http://(www\.)?ask\.com,i", ",q=([^&]+),i"),                            // Ask.com
      array(",^http://(www\.)?altavista\.,i", ",q=([^&]+),i"),                         // AltaVista
      array(",^http://(www\.)?feedster\.,i", ",q=([^&]+),i"),                          // Feedster
      array(",^http://(www\.)?search\.lycos\.,i", ",q=([^&]+),i"),                     // Lycos
      array(",^http://(www\.)?alltheweb\.,i", ",q=([^&]+),i"),                         // AllTheWeb
      array(",^http://(www\.)?technorati\.com,i", ",([^\?\/]+)(?:\?.*)$,i"),           // Technorati  
  );

    
  $ref = $_SERVER['HTTP_REFERER'];
  //avoid a js injection
  if($surcharge_surligne=_request("var_recherche")) {
    $surcharge_surligne = preg_replace(",(?<!\\\\)((?:(?>\\\\){2})*)('),","$1\\\\$2",$surcharge_surligne);
    $surcharge_surligne = str_replace("\\","\\\\",$surcharge_surligne);
    if($GLOBALS['meta']['charset']=='utf-8') {
      include_spip('inc/charsets');
      if(!is_utf8($surcharge_surligne)) $surcharge_surligne = utf8_encode($surcharge_surligne);
    }  
  }
  foreach($surlignejs_engines as $engine) 
    if($surcharge_surligne || (preg_match($engine[0],$ref) && preg_match($engine[1],$ref))) { 
      
      //good referrer found or var_recherche is not null
      include_spip('inc/filtres');
      $script = "
      <script type='text/javascript' src='".url_absolue(find_in_path('javascript/SearchHighlight.js'))."'></script>
      <script type='text/javascript'>/*<![CDATA[*/
      if (window.jQuery)
        (function(\$){\$(function(){
          \$(document).SearchHighlight({
            style_name:'spip_surligne',
            exact:'whole',
            style_name_suffix:false,
            engines:[/^".str_replace(array("/","."),array("\/","\."),$GLOBALS['meta']['adresse_site'])."/i,/recherche=([^&]+)/i],
            highlight:'.surlignable',
            nohighlight:'.pas_surlignable'".
            ($surcharge_surligne?",
            keys:'$surcharge_surligne'":"").",
            min_length: 3
          })
        });
      })(jQuery);
      /*]]>*/</script>
      ";
      // on l'insere juste avant </head>, sinon tout en bas
       if (is_null($l = strpos($page,'</head>')))
       	$l = strlen($page);
       $page = substr_replace($page, $script, $l,0);
      break;
    }
  return $page;
}
?>