Skip to content
Extraits de code Groupes Projets
Valider 8ee3c23b rédigé par Fil's avatar Fil
Parcourir les fichiers

débogage surligne + carfte d'indentité des caches inclus

parent e00a52d3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -90,9 +90,9 @@ function surligner_mots($page, $mots) {
if (!$mots_surligne) return $page;
$regexp = '/((^|>)([^<]*[^[:alnum:]_<])?)((' .
join('|', $mots_surligne).
')[[:alnum:]_]*?)/Uis';
$regexp = '/((^|>)([^<]*[^[:alnum:]_<])?)(('
. join('|', $mots_surligne)
. ')[[:alnum:]_]*?)/Uis';
// en cas de surlignement limite' (champs #SURLIGNE),
// le compilateur a inse're' les balises de surlignement
......@@ -100,41 +100,39 @@ function surligner_mots($page, $mots) {
// On boucle pour le cas ou` il y a plusieurs zones
$p = strpos($page, MARQUEUR_SURLIGNE);
if ($p)
{
$debut = '';
while ($p) {
$debut .= substr($page, 0, $p-1);
$page = substr($page, $p+strlen(MARQUEUR_SURLIGNE));
$q = strpos($page,MARQUEUR_FSURLIGNE);
$debut .= trouve_surligne(substr($page, 0, $q-1), $regexp);
$page = substr($page, $q+strlen(MARQUEUR_SURLIGNE)+1);
$p = strpos($page,MARQUEUR_SURLIGNE);
}
return $debut . $page;
} else {
// pour toute la page: ignorer ce qui est avant </head> ou <body>
$re = '/<\/head>|<body[^>]*>/i';
if (preg_match($re, $page, $exp)) {
$debut = substr($page, 0, strpos($page, $exp[0])+strlen($exp[0]));
$page = substr($page, strlen($debut));
} else
$debut = '';
return $debut . trouve_surligne($page, $regexp);
}
if ($p) {
$debut = '';
while ($p) {
$debut .= substr($page, 0, $p-1);
$page = substr($page, $p+strlen(MARQUEUR_SURLIGNE));
$q = strpos($page,MARQUEUR_FSURLIGNE);
$debut .= trouve_surligne(substr($page, 0, $q-1), $regexp);
$page = substr($page, $q+strlen(MARQUEUR_SURLIGNE)+1);
$p = strpos($page,MARQUEUR_SURLIGNE);
}
return $debut . $page;
} else {
// pour toute la page: ignorer ce qui est avant </head> ou <body>
$re = '/<\/head>|<body[^>]*>/i';
if (preg_match($re, $page, $exp)) {
$debut = substr($page, 0, strpos($page, $exp[0])+strlen($exp[0]));
$page = substr($page, strlen($debut));
} else
$debut = '';
return $debut . trouve_surligne($page, $regexp);
}
}
function trouve_surligne($page, $regexp) {
// Remplacer une occurrence de mot maxi par espace inter-tag
// (max 1 par paragraphe, sauf italiques etc.)
// se limiter a 4 remplacements pour ne pas bouffer le CPU ;
// traiter <textarea...>....</textarea> comme un tag.
global $nombre_surligne;
$page = preg_replace('/(<textarea[^>]*>)([^<>]*)(<\/textarea>)/Uis', '\1<<SPIP\2>>\3', $page);
$page = preg_replace($regexp, '\1<span class="spip_surligne">\4</span>', $page, $nombre_surligne);
$page = preg_replace('/(<textarea[^>]*>)<<SPIP([^<>]*)>>(<\/textarea>)/Uis', '\1\2\3', $page);
return $page ;
// Remplacer une occurrence de mot maxi par espace inter-tag
// (max 1 par paragraphe, sauf italiques etc.)
// se limiter a 4 remplacements pour ne pas bouffer le CPU ;
// traiter <textarea...>....</textarea> comme un tag.
global $nombre_surligne;
$page = preg_replace('/(<textarea[^>]*>)([^<>]*)(<\/textarea>)/Uis', '\1<<SPIP\2>>\3', $page);
$page = preg_replace($regexp, '\1<span class="spip_surligne">\4</span>', $page, $nombre_surligne);
$page = preg_replace('/(<textarea[^>]*>)<<SPIP([^<>]*)>>(<\/textarea>)/Uis', '\1\2\3', $page);
return $page ;
}
?>
......@@ -196,7 +196,7 @@ function calculer_contexte() {
return $contexte;
}
function calculer_page_globale($cache, $contexte_local, $fond, $var_recherche) {
function calculer_page_globale($cache, $contexte_local, $fond) {
global $spip_lang;
// Gestion des URLs personnalises - sale mais historique
......@@ -229,12 +229,6 @@ function calculer_page_globale($cache, $contexte_local, $fond, $var_recherche) {
// Go to work !
$page = cherche_page($cache, $contexte_local, $fond, $id_rubrique_fond, $spip_lang);
// Surligne
if ($var_recherche) {
include_ecrire("inc_surligne.php3");
$page['texte'] = surligner_mots($page['texte'], $var_recherche);
}
$signal = array();
foreach(array('id_parent', 'id_rubrique', 'id_article', 'id_auteur',
'id_breve', 'id_forum', 'id_secteur', 'id_syndic', 'id_syndic_article',
......@@ -242,14 +236,11 @@ function calculer_page_globale($cache, $contexte_local, $fond, $var_recherche) {
if ($contexte_local[$val])
$signal['contexte'][$val] = intval($contexte_local[$val]);
}
$signal['process_ins'] = $page['process_ins'];
# ne marchera qu'avec les inclusions 'html' (versus 'php')
# $signal['fraicheur'] = $page['fraicheur'];
$signal = "<!-- ".str_replace("\n", " ", serialize($signal))." -->\n";
$page['texte'] = $signal.$page['texte'];
$page['signal'] = $signal;
return $page;
}
......@@ -264,7 +255,7 @@ function calculer_page($chemin_cache, $elements, $delais, $inclusion=false) {
$contexte_inclus = $elements['contexte'];
$page = cherche_page($chemin_cache,
$contexte_inclus,
$elements['fond'],
$elements['fond'],
$contexte_inclus['id_rubrique']
);
}
......@@ -291,13 +282,16 @@ function calculer_page($chemin_cache, $elements, $delais, $inclusion=false) {
}
$page = calculer_page_globale($chemin_cache,
$elements['contexte'],
$elements['fond'],
$elements['var_recherche']);
$elements['fond']);
}
$page['signal']['process_ins'] = $page['process_ins'];
$signal = "<!-- ".str_replace("\n", " ",
serialize($page['signal']))." -->\n";
// Enregistrer le fichier cache
if ($delais>0)
ecrire_fichier($chemin_cache, $page['texte']);
ecrire_fichier($chemin_cache, $signal.$page['texte']);
return $page;
}
......
......@@ -21,8 +21,7 @@ function obtenir_page ($contexte, $chemin_cache, $delais, $use_cache, $fond, $in
spip_timer();
$page = calculer_page($chemin_cache,
array('fond' => $fond,
'contexte' => $contexte,
'var_recherche' => $HTTP_GET_VARS['var_recherche']),
'contexte' => $contexte),
$delais,
$inclusion);
if ($chemin_cache)
......@@ -127,6 +126,12 @@ function afficher_page_globale ($fond, $delais, &$use_cache) {
$page['texte'] = $page_boutons_admin;
$page['process_ins'] = 'php';
}
// Surligne
if ($GLOBALS['var_recherche']) {
include_ecrire("inc_surligne.php3");
$page['texte'] = surligner_mots($page['texte'], $GLOBALS['var_recherche']);
}
}
if ($chemin_cache) $page['cache'] = $chemin_cache;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter