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