diff --git a/article-dist.html b/article-dist.html index 30608a36befdf409810d44805f3c70a5f998e701..d0211dc73540f9e6452f9ff0f474a52a7ea7b0e9 100644 --- a/article-dist.html +++ b/article-dist.html @@ -134,7 +134,7 @@ [<div class="surtitre">(#SURTITRE)</div>] <h1 class="titre-texte">#TITRE</h1> [<div class="surtitre">(#SOUSTITRE)</div>] -[Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee).] +[(#DATE|nom_jour)] [(#DATE|affdate).] </div> <div class="encart"> diff --git a/breve-dist.html b/breve-dist.html index bec85d3448c4e5fa788c32379cdc22f9ad2f4257..5caca0a7c893e75a572981ed2e4929deab4083cf 100644 --- a/breve-dist.html +++ b/breve-dist.html @@ -125,7 +125,7 @@ <div id="cartouche"> [(#LOGO_BREVE|left)] <h1 class="titre-texte">#TITRE</h1> -[Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee).] +[(#DATE|nom_jour)] [(#DATE|affdate).] </div> <div class="encart"> diff --git a/ecrire/inc_charsets.php3 b/ecrire/inc_charsets.php3 index e93907e34a3e0f260c700aa820eb56623ecf766a..d785d6d4c83d7a90f4fea951f49074057628c82f 100644 --- a/ecrire/inc_charsets.php3 +++ b/ecrire/inc_charsets.php3 @@ -383,7 +383,7 @@ function translitteration ($texte, $charset='AUTO') { } else if ($charset == 'windows-1251') { $texte = translit_windows_1251($texte); } else if ($GLOBALS['flag_iconv']) { - if ($iconv = @iconv(strtoupper($charset), 'ASCII//TRANSLIT', $texte) && !ereg("^?+$",$iconv)) { + if ($iconv = @iconv(strtoupper($charset), 'ASCII//TRANSLIT', $texte) && !ereg('^\?+$',$iconv)) { $texte = $iconv; } } @@ -412,16 +412,16 @@ function translit_iso8859_1($texte) { function translit_windows_1251($texte) { $code = array ( - 128=>'D%',129=>'G%',136=>'EUR',138=>'LJ',140=>'NJ',141=>'KJ',142=>'Ts',143=>'DZ',144=>'d%',149=>'o', - 154=>'lj',156=>'nj',157=>'kj',158=>'ts',159=>'dz',161=>'V%',162=>'v%',163=>'J%',165=>'G3',168=>'IO', - 170=>'IE',175=>'YI',178=>'II',179=>'ii',180=>'g3',181=>'mu',184=>'io',186=>'ie',188=>'j%',189=>'DS', + 128=>'D',129=>'G',136=>'euro',138=>'LJ',140=>'NJ',141=>'KJ',142=>'Ts',143=>'DZ',144=>'d',149=>'o', + 154=>'lj',156=>'nj',157=>'kj',158=>'ts',159=>'dz',161=>'V',162=>'v',163=>'J',165=>'G',168=>'IO', + 170=>'IE',175=>'YI',178=>'II',179=>'ii',180=>'g',181=>'mu',184=>'io',186=>'ie',188=>'j',189=>'DS', 190=>'ds',191=>'yi',192=>'A',193=>'B',194=>'V',195=>'G',196=>'D',197=>'E',198=>'ZH',199=>'Z', 200=>'I',201=>'J',202=>'K',203=>'L',204=>'M',205=>'N',206=>'O',207=>'P',208=>'R',209=>'S',210=>'T', - 211=>'U',212=>'F',213=>'H',214=>'C',215=>'CH',216=>'SH',217=>'SCH',218=>'"',219=>'Y',220=>'\'', - 221=>'`e',222=>'YU',223=>'YA',224=>'a',225=>'b',226=>'v',227=>'g',228=>'d',229=>'e',230=>'zh', + 211=>'U',212=>'F',213=>'H',214=>'C',215=>'CH',216=>'SH',217=>'SCH',218=>'"',219=>'Y',220=>'_', + 221=>'e',222=>'YU',223=>'YA',224=>'a',225=>'b',226=>'v',227=>'g',228=>'d',229=>'e',230=>'zh', 231=>'z',232=>'i',233=>'j',234=>'k',235=>'l',236=>'m',237=>'n',238=>'o',239=>'p',240=>'r',241=>'s', - 242=>'t',243=>'u',244=>'f',245=>'h',246=>'c',247=>'ch',248=>'sh',249=>'sch',250=>'"',251=>'y', - 252=>'\'',253=>'`E',254=>'yu',255=>'ya'); + 242=>'t',243=>'u',244=>'f',245=>'h',246=>'c',247=>'ch',248=>'sh',249=>'sch',250=>' ',251=>'y', + 252=>'_',253=>'E',254=>'yu',255=>'ya'); for ($i=0; $i<strlen($texte);$i++) { $d = substr($texte,$i,1); diff --git a/ecrire/inc_index.php3 b/ecrire/inc_index.php3 index bb7c6862c4164aced271d86bf4b8eacea09d2f91..e75367213ad681982b045b8422e86580eb3ef2a8 100644 --- a/ecrire/inc_index.php3 +++ b/ecrire/inc_index.php3 @@ -7,8 +7,7 @@ define("_ECRIRE_INC_INDEX", "1"); function nettoyer_chaine_indexation($texte) { include_ecrire("inc_charsets.php3"); - $texte = strtolower(translitteration($texte)); - return $texte; + return strtolower(translitteration($texte)); } // Merci a Herve Lefebvre pour son apport sur cette fonction @@ -27,16 +26,23 @@ function spip_split($reg, $texte) { function indexer_chaine($texte, $val = 1, $min_long = 3) { global $index, $mots; + global $indexer_ogm; - $texte = supprimer_tags($texte); + $texte = ' '.ereg_replace("<[^>]*>"," ",$texte).' '; // supprimer_tags() $regs = separateurs_indexation(); $texte = strtr($texte, $regs, " "); - $table = spip_split(" +([^ ]{0,$min_long} +)*", ' '.$texte); + + $table = spip_split(" +", $texte); while (list(, $mot) = each($table)) { - $mot = nettoyer_chaine_indexation($mot); - $h = substr(md5($mot), 0, 16); - $index[$h] += $val; - $mots .= ",(0x$h,'$mot')"; + if ($mot2 = nettoyer_chaine_indexation($mot)) { + if ((strlen($mot2) > $min_long) + || ($indexer_ogm && ereg("[A-Z][A-Z][A-Z]",$mot) && $mot2=strtolower($mot).'_')) + { + $h = substr(md5($mot2), 0, 16); + $index[$h] += $val; + $mots .= ",(0x$h,'$mot2')"; + } + } } } @@ -273,12 +279,16 @@ function requete_txt_integral($objet, $hash_recherche) { // decode la chaine recherchee et la traduit en hash function requete_hash ($rech) { + $min_long = 3; $s = nettoyer_chaine_indexation(urldecode($rech)); $regs = separateurs_indexation()." "; $s = split("[$regs]+", $s); while (list(, $val) = each($s)) - if (strlen($val) > 3) - $dico[] = "dico LIKE \"$val%\""; + if (strlen($val) > $min_long) + $dico[] = "dico LIKE '$val%'"; + else if (strlen($val) == $min_long) { + $dico[] = "dico = '".$val."_'"; + } if ($dico) { $query2 = "SELECT HEX(hash) AS hx FROM spip_index_dico WHERE ".join(" OR ", $dico); $result2 = spip_query($query2); diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index 23222e00351d39e4635eb5156cec9f1104a6d7eb..544b3e25c45ac389d09cf48324bf29221a5931aa 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -102,9 +102,12 @@ $table_prefix = "spip"; $cookie_prefix = "spip"; // faut-il autoriser SPIP a compresser les pages a la volee quand le -// navigateur l'accepte ? +// navigateur l'accepte (valable pour apache 1.3 seulement) ? $auto_compress = true; +// faut-il indexer les mots de 3 lettres en capitales ('OGM') ? +$indexer_ogm = true; + // faut-il loger les infos de debug dans data/spip.log ? (peu utilise) $debug = false; diff --git a/forum-dist.html b/forum-dist.html index 91cc293fe3469d01953603fec9b0d4317fa39bc4..6856163fc2954660a601a8eb791d6e66c845d52e 100644 --- a/forum-dist.html +++ b/forum-dist.html @@ -61,7 +61,7 @@ <h2 class="titre-extrait"><a href="#URL_ARTICLE">#TITRE</a></h2> [<div class="surtitre">(#SOUSTITRE)</div>] <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs_un>par <BOUCLE_auteurs_un(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_un> </div> [<div class="texte"><div class="extrait">(#INTRODUCTION)</div></div>] @@ -73,7 +73,7 @@ [(#LOGO_BREVE|right)] <h2 class="titre-extrait"><a href="#URL_BREVE">#TITRE</a></h2> <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [Le (#DATE|nom_jour)] [(#DATE|affdate)] </div> [<div class="texte"><div class="extrait">(#INTRODUCTION)</div></div>] <br> @@ -83,7 +83,7 @@ En réponse au message : <h2 class="titre-extrait"><a href="#URL_BREVE">#TITRE</a></h2> <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [Le (#DATE|nom_jour)] [(#DATE|affdate)] </div> [<div class="texte"><div class="extrait">(#TEXTE)</div></div>] <br> diff --git a/inc-calcul-squel.php3 b/inc-calcul-squel.php3 index 931c50d9cb4caebd624d0868599237bcf8ba0b97..35642c882eacad888e4976782446446d5e30b5b0 100644 --- a/inc-calcul-squel.php3 +++ b/inc-calcul-squel.php3 @@ -1723,7 +1723,7 @@ function calculer_boucle($id_boucle, $prefix_boucle) $texte .= ' global $recherche, $hash_recherche; if (!$hash_recherche) { - $s = nettoyer_chaine_indexation(urldecode($recherche)); + $s = nettoyer_chaine_indexation(supprimer_tags(urldecode($recherche))); $regs = separateurs_indexation()." "; $s = split("[$regs]+", $s); @@ -1732,6 +1732,8 @@ function calculer_boucle($id_boucle, $prefix_boucle) while (list(, $val) = each($s)) { if (strlen($val) > 3) { $dico[] = "dico LIKE \"$val%\""; + } else if (strlen($val) == 3) { + $dico[] = "dico = \"".$val."_\""; } } if ($dico) { diff --git a/mot-dist.html b/mot-dist.html index bdf5d8447b1102fabc4ea9aa35020124d293b2a6..a17b81455337be09f93d312941e1a6b68bacc0eb 100644 --- a/mot-dist.html +++ b/mot-dist.html @@ -172,7 +172,7 @@ <BOUCLE_articles(ARTICLES) {id_mot} {par titre}> <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs>par <BOUCLE_auteurs(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs> </div> <br> diff --git a/recherche-dist.html b/recherche-dist.html index 30015585ff596b59ec2b9a668427dc51668f29c6..26ef44b97e084ee2bdb868a47bc9ac8a89f0c460 100644 --- a/recherche-dist.html +++ b/recherche-dist.html @@ -157,7 +157,7 @@ <BOUCLE_articles(ARTICLES) {recherche} {par points} {inverse} {0,10}> <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs_articles>par <BOUCLE_auteurs_articles(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_articles> </div> <br> diff --git a/resume-dist.html b/resume-dist.html index e4743c5d5ac9df8a1a307d76ecc089b7a5ef8781..449a90980352e3257b0e960894802b0a7856996d 100644 --- a/resume-dist.html +++ b/resume-dist.html @@ -90,7 +90,7 @@ <h2 class="titre-extrait"><a href="#URL_ARTICLE">#TITRE</a></h2> [<div class="surtitre">(#SOUSTITRE)</div>] <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs_un>par <BOUCLE_auteurs_un(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_un> [<br>Popularité : <span class="important">(#POPULARITE)</span> %] </div> @@ -133,7 +133,7 @@ <BOUCLE_articles_populaires(ARTICLES) {par popularite} {inverse} {2,8}> <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs_recents>par <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents><br> Popularité : <span class="important">#POPULARITE</span> % </div> diff --git a/rubrique-dist.html b/rubrique-dist.html index 9cdd84099feba54ecab8aad19de5fafe98b40220..0db3df210ed77117451a34b01ec55688a552d41a 100644 --- a/rubrique-dist.html +++ b/rubrique-dist.html @@ -124,7 +124,7 @@ <div class="cartouche"> [(#LOGO_RUBRIQUE|left)] <h1 class="titre-texte">#TITRE</h1> -[Dernier ajout le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee).] +[Dernier ajout le (#DATE|nom_jour)] [(#DATE|affdate).] </div> <div class="encart"> @@ -194,7 +194,7 @@ <BOUCLE_articles_recents(ARTICLES) {id_rubrique} {par titre}> <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs_recents>par <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents> </div> <br> diff --git a/sommaire-dist.html b/sommaire-dist.html index 4618dfe2f764a52c7fbd2773ff7227c60dd56bef..65481fce7da4ad012dc00ab3c259ead5d01bd6cb 100644 --- a/sommaire-dist.html +++ b/sommaire-dist.html @@ -95,7 +95,7 @@ <h2 class="titre-extrait"><a href="#URL_ARTICLE">#TITRE</a></h2> [<div class="surtitre">(#SOUSTITRE)</div>] <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs_un>par <BOUCLE_auteurs_un(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_un> </div> [<div class="texte"><div class="extrait">(#INTRODUCTION)</div></div>] @@ -165,7 +165,7 @@ <BOUCLE_articles_recents(ARTICLES) {par date} {inverse} {2,8}> <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2> <div class="detail"> - [Le (#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee)] + [(#DATE|nom_jour)] [(#DATE|affdate)] <B_auteurs_recents>par <BOUCLE_auteurs_recents(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_recents> </div> <br> diff --git a/spip_image.php3 b/spip_image.php3 index 2c8baf5a5104507be27223c9dc69fb33d0376620..60e2ddf1aaba74c0fb413b8eaf9dcf1c0a7b455c 100644 --- a/spip_image.php3 +++ b/spip_image.php3 @@ -281,8 +281,7 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document, $doc_vignette='', if (creer_repertoire('IMG', $ext)) $dest .= $ext.'/'; $dest .= ereg_replace("[^.a-zA-Z0-9_=-]+", "_", - nettoyer_chaine_indexation(ereg_replace("\.([^.]+)$", "", - basename($orig)))); + nettoyer_chaine_indexation(ereg_replace("\.([^.]+)$", "", supprimer_tags(basename($orig))))); $n = 0; while (file_exists($newFile = $dest.($n++ ? '-'.$n : '').'.'.$ext)); $dest_path = $newFile;