diff --git a/ecrire/inc/indexation.php b/ecrire/inc/indexation.php index ca28f38bf997b9a83d43f473bba4330881564256..c6c6188e2429b25818d78c441dc014c0b2221ba5 100644 --- a/ecrire/inc/indexation.php +++ b/ecrire/inc/indexation.php @@ -148,10 +148,14 @@ function nettoie_nom_fichier($fichier){ // http://doc.spip.org/@mots_indexation function mots_indexation($texte, $min_long = 3) { include_spip('inc/charsets'); + include_spip('inc/texte'); // Point d'entree pour traiter le texte avant indexation $texte = pipeline('pre_indexation', $texte); + // Recuperer les parametres des modeles + $texte = traiter_modeles($texte, true); + // Supprimer les tags HTML $texte = preg_replace(',<.*>,Ums',' ',$texte); @@ -544,7 +548,6 @@ function indexer_objet($table, $id_objet, $forcer_reset = true) { // 6. Changer l'id_objet en id_forum de la racine du thread $id_objet = $id_forum; } else { - indexer_les_champs($row,$INDEX_elements_objet[$table]); if (isset($INDEX_objet_associes[$table])) foreach($INDEX_objet_associes[$table] as $quoi=>$poids) @@ -565,11 +568,11 @@ function indexer_objet($table, $id_objet, $forcer_reset = true) { indexer_contenu_document($row); } } - } + } else + spip_log("je ne sais pas indexer '$table'"); $result = spip_query("DELETE FROM $table_index WHERE id_objet=$id_objet AND id_table=$id_table"); - if ($index) { if ($mots) { // supprimer la virgule du debut diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index dea96eccb41381e57c3e542ae4c64e4a2af02c52..8cca8b9ff01287445d9c7e1427572b179bedd08d 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -938,6 +938,7 @@ function supprime_img($letexte) { // partir du squelette modeles/modele.html // Le nom du modele doit faire au moins trois caracteres (evite <h2>) // Si $doublons==true, on repere les documents sans calculer les modeles +// mais on renvoie les params (pour l'indexation par le moteur de recherche) // http://doc.spip.org/@traiter_modeles function traiter_modeles($texte, $doublons=false) { // detecter les modeles (rapide) @@ -972,15 +973,20 @@ function traiter_modeles($texte, $doublons=false) { } // calculer le modele - if ($doublons) $modele = ''; else # hack articles_edit, breves_edit - $modele = inclure_modele($regs[2], $regs[3], $regs[4], $lien); - - // le remplacer dans le texte - if ($modele !== false) { - $rempl = code_echappement($modele); - $texte = substr($texte, 0, $a) - . $rempl - . substr($texte, $a+strlen($cherche)); + # hack articles_edit, breves_edit, indexation + if ($doublons) + $texte .= preg_replace(',[|][^|=]*,s',' ',$regs[4]); + # version normale + else { + $modele = inclure_modele($regs[2], $regs[3], $regs[4], $lien); + + // le remplacer dans le texte + if ($modele !== false) { + $rempl = code_echappement($modele); + $texte = substr($texte, 0, $a) + . $rempl + . substr($texte, $a+strlen($cherche)); + } } // hack pour tout l'espace prive