X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fprepare_recherche.php;fp=www%2Fecrire%2Finc%2Fprepare_recherche.php;h=320062d081fe75c039e86be1c51fe5b29ba8433d;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/inc/prepare_recherche.php b/www/ecrire/inc/prepare_recherche.php new file mode 100644 index 0000000..320062d --- /dev/null +++ b/www/ecrire/inc/prepare_recherche.php @@ -0,0 +1,104 @@ +$delai_fraicheur)){ + $rechercher = true; + } + $cache[$recherche][$table] = array("resultats.points AS points","recherche='$hash'"); + } + + // si on n'a pas encore traite les donnees dans une boucle precedente + if ($rechercher) { + //$tables = liste_des_champs(); + $x = preg_replace(',s$,', '', $table); // eurk + if ($x == 'syndic') $x = 'site'; + $points = recherche_en_base($recherche, + $x, + array( + 'score' => true, + 'toutvoir' => true, + 'jointures' => true + ), + $serveur); + $points = $points[$x]; + + # Pour les forums, unifier par id_thread et forcer statut='publie', sauf si le crière {plat} ou {tout} est présent + if ($x == 'forum' AND $points AND $plat != "true") { + $p2 = array(); + $s = sql_select("id_thread, id_forum, statut", "spip_forum", sql_in('id_forum', array_keys($points)), '','','','', $serveur); + while ($t = sql_fetch($s, $serveur)){ + $id_thread = intval($t['id_thread']); + $id_forum = intval($t['id_forum']); + if ($id_thread){ + if ($t['statut'] == 'publie') + $p2[$id_thread]['score'] + += $points[$id_forum]['score']; + } + else{ + $p2[$id_forum]['score'] = $points[$id_forum]['score']; + } + } + $points = $p2; + } + + // supprimer les anciens resultats de cette recherche + // et les resultats trop vieux avec une marge + sql_delete('spip_resultats','(maj $p){ + $tab_couples[] = array( + 'recherche' => $hash, + 'id' => $id, + 'points' => $p['score'] + ); + } + sql_insertq_multi('spip_resultats',$tab_couples,array(),$serveur); + } + } + + return $cache[$recherche][$table]; +} + + + +?>