foreach ($check_facette as $k => $v) {
             $check_facette[$k] = stripslashes($v);
         }
     }
     facettes::checked_facette_search($check_facette);
     $_SESSION["lq_facette"] = $_SESSION["facette"];
     $_SESSION["lq_facette_search"]["lq_search"] = search::serialize_search();
 } else {
     if ($from_see == 1 && $filtre_compare == "compare") {
         //from_see est un élément posté dans un formulaire d'une page d'autorité
         //il flage l'origine qui nécessite une reconstruction de l'environnement de la multi-critère pour faire les filtres multiples ou le comparateur
         facettes::make_facette_search_env();
     }
 }
 $lib_recherche = $es->make_human_query();
 $searcher = new searcher_extended();
 if ($opac_visionneuse_allow) {
     $nbexplnum_to_photo = $searcher->get_nb_explnums();
 }
 $count = $searcher->get_nb_results();
 $l_typdoc = implode(",", $searcher->get_typdocs());
 // La variable global $l_typdoc est utilisée pour la photothèque
 //Enregistrement des stats
 if ($pmb_logs_activate) {
     global $nb_results_tab;
     $nb_results_tab['extended'] = $count;
 }
 if ($count) {
     if (isset($_SESSION["last_sortnotices"]) && $_SESSION["last_sortnotices"] !== "") {
         $notices = $searcher->get_sorted_result($_SESSION["last_sortnotices"], $debut, $opac_search_results_per_page);
     } else {
        if ($s[0] == "f") {
            $champ = $es->fixedfields[$s[1]]["TITLE"];
        } elseif ($s[0] == "s") {
            $champ = $es->specialfields[$s[1]]["TITLE"];
        } else {
            $champ = $es->pp->t_fields[$s[1]]["TITRE"];
        }
        if ((string) $field[0] == "" && !$es->op_empty[${$op}]) {
            $search_error_message = sprintf($msg["extended_empty_field"], $champ);
            $flag = true;
            break;
        }
    }
}
if (!$flag) {
    $searcher_extended = new searcher_extended();
    $searcher_extended->get_result();
    $nb_result_extended = $searcher_extended->get_nb_results();
    //	Enregistrement des stats
    if ($pmb_logs_activate) {
        global $nb_results_tab;
        $nb_results_tab['extended'] = $nb_result_extended;
    }
    if ($opac_allow_affiliate_search && $allow_search_affiliate_and_external) {
        $search_result_affiliate_extented = str_replace("!!mode!!", "extended", $search_extented_result_affiliate_lvl1);
        $search_result_affiliate_extented = str_replace("!!search_type!!", "notices", $search_result_affiliate_extented);
        $search_result_affiliate_extented = str_replace("!!label!!", $es->make_human_query(), $search_result_affiliate_extented);
        $search_result_affiliate_extented = str_replace("!!nb_result!!", $nb_result_extended, $search_result_affiliate_extented);
        if ($nb_result_extended) {
            $link = "<a href='#' onclick=\"document.search_form.action = './index.php?lvl=more_results&mode=extended&tab=catalog'; document.search_form.submit();return false;\">" . $msg['suite'] . "&nbsp;<img src='./images/search.gif' border='0' align='absmiddle'/></a>";
        } else {
Exemple #3
0
     break;
 case "abstract":
     $searcher = new searcher_abstract(stripslashes($user_query));
     if (!empty($_SESSION["last_sortnotices"])) {
         $cart_sort = $_SESSION["last_sortnotices"];
     } else {
         $cart_sort = "default";
     }
     $notices = $searcher->get_sorted_cart_result($cart_sort, 0, $opac_max_cart_items);
     if (count($notices)) {
         $notices = implode(",", $notices);
     }
     add_notices_to_cart($notices);
     break;
 case "extended":
     $searcher = new searcher_extended(stripslashes($user_query));
     if (!empty($_SESSION["last_sortnotices"])) {
         $cart_sort = $_SESSION["last_sortnotices"];
     } else {
         $cart_sort = "default";
     }
     $notices = $searcher->get_sorted_cart_result($cart_sort, 0, $opac_max_cart_items);
     if (count($notices)) {
         $notices = implode(",", $notices);
     }
     add_notices_to_cart($notices);
     break;
 case "external":
     if ($_SESSION["external_type"] == "multi") {
         $es = new search("search_fields_unimarc");
     } else {
Exemple #4
0
 function make_search()
 {
     global $opac_indexation_docnum_allfields;
     global $opac_search_other_function;
     //Récupération de la valeur de saisie
     $valeur_ = "field_" . $this->n_ligne . "_s_" . $this->id;
     global ${$valeur_};
     $valeur = ${$valeur_};
     if (!$this->is_empty($valeur)) {
         $table_tempo = "";
         //enregistrement de l'environnement courant
         $this->search->push();
         //on instancie la classe search avec le nom de la nouvelle table temporaire
         switch ($_SESSION["search_type" . $valeur[0]]) {
             case 'simple_search':
                 global $search;
                 if ($opac_search_other_function) {
                     search_other_function_get_history($valeur[0]);
                 }
                 switch ($_SESSION["notice_view" . $valeur[0]]["search_mod"]) {
                     case 'title':
                         $search[0] = "f_6";
                         $op_ = "BOOLEAN";
                         $valeur_champ = $_SESSION["user_query" . $valeur[0]];
                         break;
                     case 'all':
                         $search[0] = "f_7";
                         $op_ = "BOOLEAN";
                         $valeur_champ = $_SESSION["user_query" . $valeur[0]];
                         $t["is_num"][0] = $opac_indexation_docnum_allfields;
                         $t["ck_affiche"][0] = $opac_indexation_docnum_allfields;
                         break;
                     case 'abstract':
                         $search[0] = "f_13";
                         $op_ = "BOOLEAN";
                         $valeur_champ = $_SESSION["user_query" . $valeur[0]];
                         break;
                     case 'keyword':
                         $search[0] = "f_12";
                         $op_ = "BOOLEAN";
                         $valeur_champ = $_SESSION["user_query" . $valeur[0]];
                         break;
                     case 'author_see':
                         $search[0] = "f_8";
                         $op_ = "EQ";
                         $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                         break;
                     case 'categ_see':
                         $search[0] = "f_1";
                         $op_ = "EQ";
                         $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                         break;
                     case 'indexint_see':
                         $search[0] = "f_2";
                         $op_ = "EQ";
                         $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                         break;
                     case 'coll_see':
                         $search[0] = "f_4";
                         $op_ = "EQ";
                         $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                         break;
                     case 'publisher_see':
                         $search[0] = "f_3";
                         $op_ = "EQ";
                         $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                         break;
                     case 'subcoll_see':
                         $search[0] = "f_5";
                         $op_ = "EQ";
                         $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                         break;
                     case 'titre_uniforme_see':
                         $search[0] = "f_6";
                         $op_ = "EQ";
                         $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                         break;
                     case 'docnum':
                         $search[0] = "f_16";
                         $op_ = "BOOLEAN";
                         $valeur_champ = $_SESSION["user_query" . $valeur[0]]["search_id"];
                         break;
                 }
                 //opérateur
                 $op = "op_0_" . $search[0];
                 global ${$op};
                 ${$op} = $op_;
                 //contenu de la recherche
                 $field = "field_0_" . $search[0];
                 $field_ = array();
                 $field_[0] = $valeur_champ;
                 global ${$field};
                 ${$field} = $field_;
                 //opérateur inter-champ
                 $inter = "inter_0_" . $search[0];
                 global ${$inter};
                 ${$inter} = "";
                 //variables auxiliaires
                 $fieldvar_ = "fieldvar_0_" . $search[0];
                 global ${$fieldvar_};
                 if ($t) {
                     ${$fieldvar_} = $t;
                 } else {
                     ${$fieldvar_} = "";
                 }
                 $fieldvar = ${$fieldvar_};
                 if ($_SESSION["typdoc" . $valeur[0]]) {
                     $search[1] = "f_9";
                     $op_ = "EQ";
                     $valeur_champ = $_SESSION["typdoc" . $valeur[0]];
                     //opérateur
                     $op = "op_1_" . $search[1];
                     global ${$op};
                     ${$op} = $op_;
                     //contenu de la recherche
                     $field = "field_1_" . $search[1];
                     $field_ = array();
                     $field_[0] = $valeur_champ;
                     global ${$field};
                     ${$field} = $field_;
                     //opérateur inter-champ
                     $inter = "inter_1_" . $search[1];
                     global ${$inter};
                     ${$inter} = "and";
                 }
                 $es = new search("search_simple_fields");
                 break;
             case 'extended_search':
                 get_history($valeur[0]);
                 $searcher = new searcher_extended();
                 $searcher->get_result();
                 $table_tempo = $searcher->table;
                 break;
             case 'term_search':
                 global $search;
                 $search[0] = "f_1";
                 $op_ = "EQ";
                 $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                 //opérateur
                 $op = "op_0_" . $search[0];
                 global ${$op};
                 ${$op} = $op_;
                 //contenu de la recherche
                 $field = "field_0_" . $search[0];
                 $field_ = array();
                 $field_[0] = $valeur_champ;
                 global ${$field};
                 ${$field} = $field_;
                 //opérateur inter-champ
                 $inter = "inter_0_" . $search[0];
                 global ${$inter};
                 ${$inter} = "";
                 //variables auxiliaires
                 $fieldvar_ = "fieldvar_0_" . $search[0];
                 global ${$fieldvar_};
                 ${$fieldvar_} = "";
                 $fieldvar = ${$fieldvar_};
                 $es = new search("search_simple_fields");
                 break;
             case 'module':
                 global $search;
                 switch ($_SESSION["notice_view" . $valeur[0]]["search_mod"]) {
                     case 'categ_see':
                         $search[0] = "f_1";
                         break;
                     case 'indexint_see':
                         $search[0] = "f_2";
                         break;
                     case 'etagere_see':
                         $search[0] = "f_14";
                         break;
                     case 'section_see':
                         $search[0] = "f_15";
                         global $search_localisation;
                         $search_localisation = $_SESSION["notice_view" . $valeur[0]]["search_location"];
                         break;
                 }
                 $op_ = "EQ";
                 $valeur_champ = $_SESSION["notice_view" . $valeur[0]]["search_id"];
                 //opérateur
                 $op = "op_0_" . $search[0];
                 global ${$op};
                 ${$op} = $op_;
                 //contenu de la recherche
                 $field = "field_0_" . $search[0];
                 $field_ = array();
                 $field_[0] = $valeur_champ;
                 global ${$field};
                 ${$field} = $field_;
                 //opérateur inter-champ
                 $inter = "inter_0_" . $search[0];
                 global ${$inter};
                 ${$inter} = "";
                 //variables auxiliaires
                 $fieldvar_ = "fieldvar_0_" . $search[0];
                 global ${$fieldvar_};
                 //fieldvar attention pour la section
                 ${$fieldvar_} = "";
                 $fieldvar = ${$fieldvar_};
                 $es = new search("search_simple_fields");
                 break;
         }
         if (!$table_tempo) {
             $table_tempo = $es->make_search("tempo_" . $valeur[0]);
         }
         //restauration de l'environnement courant
         $this->search->pull();
     }
     return $table_tempo;
 }
 /**
  * Fonction de création de la requête (retourne une table temporaire)
  * @return string Nom de la table temporaire
  */
 function make_search()
 {
     //Récupération de la valeur de saisie
     $valeur_ = "field_" . $this->n_ligne . "_s_" . $this->id;
     global ${$valeur_};
     $valeur = ${$valeur_};
     if (!$this->is_empty($valeur)) {
         //enregistrement de l'environnement courant
         $this->search->push();
         $mc = self::simple2mc($valeur[0]);
         $es = $mc['search_instance'];
         if ($mc["search_type"] == "search_simple_fields") {
             $table_tempo = $es->make_search("tempo_" . $valeur[0]);
         } else {
             $searcher = new searcher_extended();
             $searcher->get_result();
             $table_tempo = $searcher->table;
         }
         //restauration de l'environnement courant
         $this->search->pull();
     }
     return $table_tempo;
 }