$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]; } ?>