Skip to content
Extraits de code Groupes Projets
Valider 644fea73 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

report ameliore et plus generique de http://core.spip.org/trac/spip/changeset/aa0a47b

Il subsiste un defaut : seuls les criteres present avant le {recherche} sont pris en compte dans la recherche. A ameliorer si possible.
parent b2840b1a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -16,10 +16,24 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/rechercher');
if (!defined('_DELAI_CACHE_resultats')) define('_DELAI_CACHE_resultats', 600);
// Preparer les listes id_article IN (...) pour les parties WHERE
// et points = des requetes du moteur de recherche
// http://doc.spip.org/@inc_prepare_recherche_dist
function inc_prepare_recherche_dist($recherche, $table='articles', $cond=false, $serveur='') {
/**
* Preparer les listes id_article IN (...) pour les parties WHERE
* et points = des requetes du moteur de recherche
* http://doc.spip.org/@inc_prepare_recherche_dist
*
* @param string $recherche
* chaine recherchee
* @param string $table
* table dans laquelle porte la recherche
* @param bool $cond
* critere conditionnel sur {recherche?}
* @param string $serveur
* serveur de base de donnees
* @param array $modificateurs
* modificateurs de boucle, ie liste des criteres presents
* @return array
*/
function inc_prepare_recherche_dist($recherche, $table='articles', $cond=false, $serveur='', $modificateurs = array()) {
static $cache = array();
$delai_fraicheur = min(_DELAI_CACHE_resultats,time()-$GLOBALS['meta']['derniere_modif']);
......@@ -60,7 +74,7 @@ function inc_prepare_recherche_dist($recherche, $table='articles', $cond=false,
// permettre aux plugins de modifier le resultat
$points = pipeline('prepare_recherche',array(
'args'=>array('type'=>$x,'recherche'=>$recherche,'serveur'=>$serveur),
'args'=>array('type'=>$x,'recherche'=>$recherche,'serveur'=>$serveur,'modificateurs'=>$modificateurs),
'data'=>$points
));
......
......@@ -187,10 +187,11 @@ function critere_recherche_dist($idb, &$boucles, $crit) {
else
$quoi = '@$Pile[0]["recherche"]';
$_modificateur = var_export($boucle->modificateur,true);
$boucle->hash .= '
// RECHERCHE
$prepare_recherche = charger_fonction(\'prepare_recherche\', \'inc\');
list($rech_select, $rech_where) = $prepare_recherche('.$quoi.', "'.$boucle->id_table.'", "'.$crit->cond.'","' . $boucle->sql_serveur . '");
list($rech_select, $rech_where) = $prepare_recherche('.$quoi.', "'.$boucle->id_table.'", "'.$crit->cond.'","' . $boucle->sql_serveur . '",'.$_modificateur.');
';
$t = $boucle->id_table . '.' . $boucle->primary;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter