function get_last_history() { global $search_type; global $opac_search_other_function; global $facette_test; global $reinit_facette; if ($reinit_facette == 1) { unset($_SESSION["lq_facette"]); unset($_SESSION["lq_facette_search"]); unset($_SESSION["lq_facette_test"]); } $search_type = $_SESSION["search_type" . $_SESSION["last_query"]]; $facette_test = $_SESSION["lq_facette_test"]; if ($search_type == "module" && count($_SESSION['facette'] == 0)) { //Cas spécial pour section_see $ajout_section = ''; if ($_SESSION['last_module_search']['search_mod'] == 'section_see') { $ajout_section = '&location=' . $_SESSION['last_module_search']['search_location']; if ($_SESSION['last_module_search']['search_plettreaut']) { $ajout_section .= '&plettreaut=' . $_SESSION["last_module_search"]["search_plettreaut"]; } elseif ($_SESSION["last_module_search"]["search_dcote"] || $_SESSION["last_module_search"]["search_lcote"] || $_SESSION["last_module_search"]["search_nc"] || $_SESSION["last_module_search"]["search_ssub"]) { $ajout_section .= '&dcote=' . $_SESSION["last_module_search"]["search_dcote"]; $ajout_section .= '&lcote=' . $_SESSION["last_module_search"]["search_lcote"]; $ajout_section .= '&nc=' . $_SESSION["last_module_search"]["search_nc"]; $ajout_section .= '&ssub=' . $_SESSION["last_module_search"]["search_ssub"]; } } elseif ($_SESSION['last_module_search']['search_mod'] == 'categ_see') { if ($_SESSION['last_module_search']['search_nb_level_enfants']) { $ajout_section .= '&nb_level_enfants=' . $_SESSION["last_module_search"]["search_nb_level_enfants"]; } if ($_SESSION['last_module_search']['search_nb_level_parents']) { $ajout_section .= '&nb_level_parents=' . $_SESSION["last_module_search"]["search_nb_level_parents"]; } } header("Location: ./index.php?lvl=" . $_SESSION['last_module_search']['search_mod'] . $ajout_section . "&id=" . $_SESSION['last_module_search']['search_id']); } switch ($search_type) { case "simple_search": if (!$facette_test) { global $user_query, $mode, $count, $typdoc, $clause, $clause_bull, $clause_bull_num_notice, $tri, $pert, $page, $l_typdoc, $join, $id_thes; $user_query = $_SESSION["lq_user_query"]; $mode = $_SESSION["lq_mode"]; $count = $_SESSION["lq_count"]; $typdoc = $_SESSION["lq_typdoc"]; $clause = $_SESSION["lq_clause"]; $clause_bull = $_SESSION["lq_clause_bull"]; $clause_bull_num_notice = $_SESSION["lq_clause_bull_num_notice"]; $tri = $_SESSION["lq_tri"]; $pert = $_SESSION["lq_pert"]; $page = $_SESSION["lq_page"]; $affiliate_page = $_SESSION["lq_affiliate_page"]; $catalog_page = $_SESSION["lq_catalog_page"]; $l_typdoc = $_SESSION["lq_l_typdoc"]; $join = $_SESSION["lq_join"]; $id_thes = $_SESSION["lq_id_thes"]; $_SESSION["facette"] = $_SESSION["lq_facette"]; $_SESSION["level1"] = $_SESSION["lq_level1"]; if ($opac_search_other_function) { search_other_function_get_history($_SESSION["last_query"]); } } break; case "module": global $mode; $mode = "extended"; global $search; $search[0] = "s_1"; $op_ = "EQ"; //operateur $op = "op_0_" . $search[0]; global ${$op}; ${$op} = $op_; //contenu de la recherche $field = "field_0_" . $search[0]; $field_ = array(); $field_[0] = $_SESSION['last_query']; 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_}; break; case "extended_search": global $page, $mode, $catalog_page, $affiliate_page; get_history($_SESSION["last_query"]); $page = $_SESSION["lq_page"]; $affiliate_page = $_SESSION["lq_affiliate_page"]; $catalog_page = $_SESSION["lq_catalog_page"]; $mode = $_SESSION["lq_mode"]; break; } if ($facette_test) { global $page, $mode, $catalog_page, $affiliate_page; $_SESSION["facette"] = $_SESSION["lq_facette"]; $page = $_SESSION["lq_facette_search"]["lq_page"]; $affiliate_page = $_SESSION["lq_facette_search"]["lq_affiliate_page"]; $catalog_page = $_SESSION["lq_facette_search"]["lq_catalog_page"]; $mode = $_SESSION["lq_facette_search"]["lq_mode"]; search::unserialize_search($_SESSION["lq_facette_search"]["lq_search"]); $_SESSION["notice_view" . $_SESSION["last_query"]] = $_SESSION["lq_facette_search"]["lq_notice_view"]; } }
function get_last_history() { global $search_type; global $opac_search_other_function; global $facette_test; global $reinit_facette; if ($reinit_facette == 1) { unset($_SESSION["lq_facette"]); unset($_SESSION["lq_facette_search"]); unset($_SESSION["lq_facette_test"]); } $search_type = $_SESSION["search_type" . $_SESSION["last_query"]]; $facette_test = $_SESSION["lq_facette_test"]; switch ($search_type) { case "simple_search": if (!$facette_test) { global $user_query, $mode, $count, $typdoc, $clause, $clause_bull, $clause_bull_num_notice, $tri, $pert, $page, $l_typdoc, $join, $id_thes; $user_query = $_SESSION["lq_user_query"]; $mode = $_SESSION["lq_mode"]; $count = $_SESSION["lq_count"]; $typdoc = $_SESSION["lq_typdoc"]; $clause = $_SESSION["lq_clause"]; $clause_bull = $_SESSION["lq_clause_bull"]; $clause_bull_num_notice = $_SESSION["lq_clause_bull_num_notice"]; $tri = $_SESSION["lq_tri"]; $pert = $_SESSION["lq_pert"]; $page = $_SESSION["lq_page"]; $affiliate_page = $_SESSION["lq_affiliate_page"]; $catalog_page = $_SESSION["lq_catalog_page"]; $l_typdoc = $_SESSION["lq_l_typdoc"]; $join = $_SESSION["lq_join"]; $id_thes = $_SESSION["lq_id_thes"]; $_SESSION["facette"] = $_SESSION["lq_facette"]; $_SESSION["level1"] = $_SESSION["lq_level1"]; if ($opac_search_other_function) { search_other_function_get_history($_SESSION["last_query"]); } } break; case "extended_search": global $page, $mode, $catalog_page, $affiliate_page; get_history($_SESSION["last_query"]); $page = $_SESSION["lq_page"]; $affiliate_page = $_SESSION["lq_affiliate_page"]; $catalog_page = $_SESSION["lq_catalog_page"]; $mode = $_SESSION["lq_mode"]; break; } if ($facette_test) { global $page, $mode, $catalog_page, $affiliate_page; $_SESSION["facette"] = $_SESSION["lq_facette"]; $page = $_SESSION["lq_facette_search"]["lq_page"]; $affiliate_page = $_SESSION["lq_facette_search"]["lq_affiliate_page"]; $catalog_page = $_SESSION["lq_facette_search"]["lq_catalog_page"]; $mode = $_SESSION["lq_facette_search"]["lq_mode"]; search::unserialize_search($_SESSION["lq_facette_search"]["lq_search"]); $_SESSION["notice_view" . $_SESSION["last_query"]] = $_SESSION["lq_facette_search"]["lq_notice_view"]; } }
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; }
/** * Transforme une recherche simple en recherche multicritère * @param int $index_history index de la recherche dans l'historique * @return array Tableau ( * 'serialized_search' => Recherche sérialisée, 'search_type' => type de recherche, 'search_instance' => instance de search ) */ static function simple2mc($index_history) { global $opac_indexation_docnum_allfields; global $opac_search_other_function; $table_tempo = ""; $xml_file = "search_simple_fields"; //on instancie la classe search avec le nom de la nouvelle table temporaire switch ($_SESSION["search_type" . $index_history]) { case 'simple_search': global $search; if ($opac_search_other_function) { search_other_function_get_history($index_history); } switch ($_SESSION["notice_view" . $index_history]["search_mod"]) { case 'title': $search[0] = "f_6"; $op_ = "BOOLEAN"; $valeur_champ = $_SESSION["user_query" . $index_history]; break; case 'all': $search[0] = "f_7"; $op_ = "BOOLEAN"; $valeur_champ = $_SESSION["user_query" . $index_history]; $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" . $index_history]; break; case 'keyword': $search[0] = "f_12"; $op_ = "BOOLEAN"; $valeur_champ = $_SESSION["user_query" . $index_history]; break; case 'author_see': $search[0] = "f_8"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'categ_see': $search[0] = "s_6"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'indexint_see': $search[0] = "f_2"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'coll_see': $search[0] = "f_4"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'publisher_see': $search[0] = "f_3"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'subcoll_see': $search[0] = "f_5"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'titre_uniforme_see': $search[0] = "f_27"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'serie_see': $search[0] = "f_28"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'concept_see': $search[0] = "f_29"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'docnum': $search[0] = "f_16"; $op_ = "BOOLEAN"; $valeur_champ = $_SESSION["user_query" . $index_history]["search_id"]; break; case 'docnum': $search[0] = "f_16"; $op_ = "BOOLEAN"; $valeur_champ = $_SESSION["user_query" . $index_history]["search_id"]; break; case 'authperso_see': $search[0] = "f_30"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'etagere_see': $search[0] = "f_14"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["search_id"]; break; case 'section_see': $xml_file = ''; $search[0] = "s_5"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["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" . $index_history]) { $search[1] = "f_9"; $op_ = "EQ"; $valeur_champ = $_SESSION["typdoc" . $index_history]; //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($xml_file); $serialized = $es->serialize_search(); break; case 'extended_search': get_history($index_history); $es = new search("search_fields"); $serialized = $es->serialize_search(); $search_type = "search_fields"; break; case 'term_search': global $search; $search[0] = "f_1"; $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["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"); $serialized = $es->serialize_search(); break; case 'module': global $search; switch ($_SESSION["notice_view" . $index_history]["search_mod"]) { case 'authperso_see': $search[0] = "f_30"; break; case 'concept_see': $search[0] = "f_29"; break; case 'serie_see': $search[0] = "f_28"; break; case 'publisher_see': $search[0] = "f_3"; break; case "titre_uniforme_see": $search[0] = "f_27"; break; case "subcoll_see": $search[0] = "f_5"; break; case "coll_see": $search[0] = "f_4"; break; case 'author_see': $search[0] = "f_8"; break; case 'categ_see': $xml_file = ''; $search[0] = "s_6"; break; case 'indexint_see': $search[0] = "f_2"; break; case 'etagere_see': $search[0] = "f_14"; break; case 'section_see': $xml_file = ''; $search[0] = "s_5"; global $search_localisation; $search_localisation = $_SESSION["notice_view" . $index_history]["search_location"]; break; } $op_ = "EQ"; $valeur_champ = $_SESSION["notice_view" . $index_history]["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($xml_file); $serialized = $es->serialize_search(); break; } return array('serialized_search' => $serialized, 'search_type' => $search_type ? $search_type : "search_simple_fields", 'search_instance' => $es); }