public function get_datas()
 {
     //on commence par récupérer l'identifiant retourné par le sélecteur...
     if ($this->parameters['selector'] != "") {
         for ($i = 0; $i < count($this->selectors); $i++) {
             if ($this->selectors[$i]['name'] == $this->parameters['selector']) {
                 $selector = new $this->parameters['selector']($this->selectors[$i]['id']);
                 break;
             }
         }
         $values = $selector->get_value();
         $searcher = new search(false);
         $current_search = $searcher->serialize_search();
         $searcher->destroy_global_env();
         global $search;
         $search = array();
         $search[] = "d_" . $values['cp'];
         $op = "op_0_d_" . $values['cp'];
         $field = "field_0_d_" . $values['cp'];
         global ${$op}, ${$field};
         ${$op} = "EQ";
         ${$field} = $values['cp_val'];
         $table = $searcher->make_search();
         $query = "select notice_id from " . $table;
         $result = pmb_mysql_query($query);
         $records = array();
         if (pmb_mysql_num_rows($result)) {
             while ($row = pmb_mysql_fetch_object($result)) {
                 $records[] = $row->notice_id;
             }
         }
         $searcher->unserialize_search($current_search);
         $records = $this->filter_datas("notices", $records);
         if ($this->parameters['nb_max_elements'] > 0) {
             $records = array_slice($records, 0, $this->parameters['nb_max_elements']);
         }
         $return = array('title' => 'Liste de Notices', 'records' => $records);
         return $return;
     }
     return false;
 }
Ejemplo n.º 2
0
}
require_once $class_path . "/search.class.php";
require_once $class_path . "/bannette.class.php";
require_once $base_path . "/includes/bannette_func.inc.php";
// afin de résoudre un pb d'effacement de la variable $id_empr par empr_included, bug à trouver
if (!$id_empr) {
    $id_empr = $_SESSION["id_empr_session"];
}
print "<div id='aut_details'>\n";
print "<h3><span>" . $msg['dsi_bt_bannette_priv'] . "</span></h3>\n";
if ($enregistrer == 1 && !$nom_bannette) {
    $enregistrer = 2;
}
if (!$enregistrer) {
    search::strip_slashes();
    $equation = search::serialize_search();
} else {
    $equation = stripslashes($equation);
}
if ($equation) {
    // on arrive de la rech multi-critères
    $s = new search();
    $equ_human = $s->make_serialized_human_query($equation);
    if ($enregistrer == '1') {
        $qui = addslashes($empr_nom . " " . $empr_prenom);
        $rqt_equation = "insert into equations (id_equation, num_classement, nom_equation, comment_equation, requete, proprio_equation) ";
        $rqt_equation .= "VALUES (0,0,'" . addslashes($equ_human) . "','{$qui} -> {$nom_bannette}','" . addslashes($equation) . "', {$id_empr})";
        mysql_query($rqt_equation);
        $id_equation = mysql_insert_id();
        // paramétrage OPAC: choix du nom de la bibliothèque comme expéditeur
        $requete = "select location_libelle, email, adr1, cp, town from empr, docs_location where empr_location=idlocation and id_empr='{$id_empr}' ";
Ejemplo n.º 3
0
         $affich_tris_result_liste = str_replace("!!page_en_cours1!!", $para1, $affich_tris_result_liste);
         $sr_form .= $affich_tris_result_liste;
         if ($_SESSION["last_sortnotices"] != "") {
             $sort = new sort('notices', 'session');
             $sr_form .= " " . $msg['tri_par'] . " " . $sort->descriptionTriParId($_SESSION["last_sortnotices"]) . "<span class=\"espaceResultSearch\">&nbsp;</span>";
         } elseif ($opac_default_sort_display) {
             $sort = new sort('notices', 'session');
             $sr_form .= " " . $msg['tri_par'] . " " . $sort->descriptionTriParId("default") . "<span class=\"espaceResultSearch\">&nbsp;</span>";
         }
     } else {
         $sr_form .= "<span class=\"espaceResultSearch\">&nbsp;</span>";
     }
     //fin gestion du tri
     $sr_form .= $add_cart_link;
     if ($opac_visionneuse_allow && $nbexplnum_to_photo) {
         $search_to_post = $es->serialize_search();
         $sr_form .= "<span class=\"espaceResultSearch\">&nbsp;&nbsp;&nbsp;</span>" . $link_to_visionneuse;
         $sr_form .= "\n\t\t<script type='text/javascript'>\n\t\t\tfunction sendToVisionneuse(explnum_id){\n\t\t\t\tif (typeof(explnum_id)!= 'undefined') {\n\t\t\t\t\tvar explnum =document.createElement('input');\n\t\t\t\t\texplnum.setAttribute('type','hidden');\n\t\t\t\t\texplnum.setAttribute('name','explnum_id');\n\t\t\t\t\texplnum.setAttribute('value',explnum_id);\n\t\t\t\t\tdocument.form_values.appendChild(explnum);\n\t\t\t\t}\n\t\t\t\tvar mode = document.createElement('input');\n\t\t\t\tmode.setAttribute('type','hidden');\n\t\t\t\tmode.setAttribute('name','mode');\n\t\t\t\tmode.setAttribute('value','extended');\n\t\t\t\tvar input = document.createElement('input');\n\t\t\t\tinput.setAttribute('id','serialized_search');\n\t\t\t\tinput.setAttribute('name','serialized_search');\n\t\t\t\tinput.setAttribute('type','hidden');\n\t\t\t\tinput.setAttribute('value',\"" . addslashes($search_to_post) . "\");\n\t\t\t\toldAction=document.form_values.action;\n\t\t\t\tdocument.form_values.appendChild(input);\n\t\t\t\tdocument.form_values.appendChild(mode);\n\t\t\t\n\t\t\n\t\t\t\tdocument.form_values.action='visionneuse.php';\n\t\t\t\tdocument.form_values.target='visionneuse';\n\t\t\t\tdocument.form_values.submit();\n\t\t\t}\n\t\t</script>";
     }
 }
 //affinage
 //enregistrement de l'endroit actuel dans la session
 if ($_SESSION["last_query"]) {
     $n = $_SESSION["last_query"];
 } else {
     $n = $_SESSION["nb_queries"];
 }
 if (count($_SESSION['facette']) == 0) {
     $_SESSION["notice_view" . $n]["search_mod"] = "extended";
     $_SESSION["notice_view" . $n]["search_page"] = $page;
 }
Ejemplo n.º 4
0
 function get_link()
 {
     global $dbh, $onglet_persopac, $launch_search;
     global $opac_view_filter_class;
     //$myQuery = pmb_mysql_query("SELECT * FROM search_persopac order by search_name ", $dbh);
     $myQuery = pmb_mysql_query("SELECT search_persopac.*, group_concat(id_categ_empr) as categ_restrict FROM search_persopac left join search_persopac_empr_categ on id_search_persopac = search_id group by search_id order by search_name ", $dbh);
     $this->search_persopac_list = array();
     $link = "";
     if (pmb_mysql_num_rows($myQuery)) {
         $i = 0;
         //on récupère la catégorie du lecteur...
         if ($_SESSION['id_empr_session']) {
             $req = "select empr_categ from empr where id_empr = " . $_SESSION['id_empr_session'];
             $res = pmb_mysql_query($req);
             if (pmb_mysql_num_rows($res)) {
                 $empr_categ = pmb_mysql_result($res, 0, 0);
             } else {
                 $empr_categ = 0;
             }
         } else {
             $empr_categ = 0;
         }
         while ($r = pmb_mysql_fetch_object($myQuery)) {
             if ($opac_view_filter_class) {
                 if (!$opac_view_filter_class->is_selected("search_perso", $r->search_id)) {
                     continue;
                 }
             }
             $empr_categ_restrict = $r->categ_restrict != '' ? explode(",", $r->categ_restrict) : array();
             if (count($empr_categ_restrict) == 0 || in_array($empr_categ, $empr_categ_restrict)) {
                 $name = translation::get_text($r->search_id, "search_persopac", "search_name", $r->search_name);
                 $shortname = translation::get_text($r->search_id, "search_persopac", "search_shortname", $r->search_shortname);
                 if ($r->search_directlink) {
                     if ($shortname) {
                         $libelle = $shortname;
                     } else {
                         $libelle = $name;
                     }
                     $my_search = new search();
                     $backup_search = $my_search->serialize_search();
                     $my_search->unserialize_search($r->search_query);
                     $forms_search .= "\n" . $my_search->make_hidden_search_form("./index.php?search_type_asked=extended_search&onglet_persopac=" . $r->search_id . "&limitsearch=" . $r->search_limitsearch, "search_form" . $r->search_id) . "\n";
                     $my_search->destroy_global_env();
                     $my_search->unserialize_search($backup_search);
                     if ($onglet_persopac == $r->search_id) {
                         $li_id = " id='current' ";
                         if (!$r->search_limitsearch || !$launch_search) {
                             $lien = $libelle;
                         } else {
                             $lien = "<a href=\"javascript:document.forms['search_form" . $r->search_id . "'].submit();\">" . $libelle . "</a>";
                         }
                     } else {
                         $li_id = "";
                         $lien = "<a href=\"javascript:document.forms['search_form" . $r->search_id . "'].submit();\">" . $libelle . "</a>";
                     }
                     $link .= "\n\t\t\t\t\t\t<li {$li_id} >\n\t\t\t\t\t\t\t{$lien}\t\n\t\t\t\t\t\t</li>";
                 }
                 $this->search_persopac_list[$i] = new stdClass();
                 $this->search_persopac_list[$i]->id = $r->search_id;
                 $this->search_persopac_list[$i]->name = $name;
                 $this->search_persopac_list[$i]->shortname = $shortname;
                 $this->search_persopac_list[$i]->query = $r->search_query;
                 $this->search_persopac_list[$i]->human = $r->search_human;
                 $this->search_persopac_list[$i]->directlink = $r->search_directlink;
                 $this->search_persopac_list[$i]->limitsearch = $r->search_limitsearch;
                 $i++;
             }
         }
     }
     $this->directlink_user = $link;
     $this->directlink_user_form = $forms_search;
     return true;
 }
Ejemplo n.º 5
0
        } else {
            if ($tab == "affiliate") {
                switch ($search_type) {
                    case "simple_search":
                        $search_file = "search_fields_unimarc";
                        break;
                    default:
                        $search_file = "search_simple_fields_unimarc";
                        break;
                }
            } else {
                $search_file = "";
            }
        }
        $search_stat = new search($search_file);
        $log->add_log('multi_search', $search_stat->serialize_search());
        $log->add_log('multi_human_query', $search_stat->make_human_query());
    }
    //Enregistrement vue
    if ($opac_opac_view_activate) {
        $log->add_log('opac_view', $_SESSION["opac_view"]);
    }
    $log->save();
}
//insertions des liens du bas dans le $footer si $opac_show_liensbas
if ($opac_show_liensbas == 1) {
    $footer = str_replace("!!div_liens_bas!!", $liens_bas, $footer);
} else {
    $footer = str_replace("!!div_liens_bas!!", "", $footer);
}
//affichage du bandeau_2 si $opac_show_bandeau_2 = 1
Ejemplo n.º 6
0
function rec_last_history()
{
    global $page;
    global $msg;
    global $opac_search_other_function;
    global $facette_test;
    if ($page == "") {
        $page_ = 1;
    } else {
        $page_ = $page;
    }
    if ($facette_test) {
        $search_type = $_SESSION["search_type" . $_SESSION["last_query"]];
    } else {
        $search_type = $_SESSION["search_type"];
    }
    $_SESSION["lq_facette_test"] = $facette_test ? 2 : 0;
    switch ($search_type) {
        case "simple_search":
            global $user_query, $mode, $count, $typdoc, $clause, $clause_bull, $clause_bull_num_notice, $tri, $pert, $page, $l_typdoc, $join, $id_thes;
            global $affiliate_page, $catalog_page;
            if (!$facette_test) {
                $_SESSION["lq_user_query"] = $user_query;
                $_SESSION["lq_mode"] = $mode;
                $_SESSION["lq_count"] = $count;
                $_SESSION["lq_typdoc"] = $typdoc;
                $_SESSION["lq_clause"] = $clause;
                $_SESSION["lq_clause_bull"] = $clause_bull;
                $_SESSION["lq_clause_bull_num_notice"] = $clause_bull_num_notice;
                $_SESSION["lq_tri"] = $tri;
                $_SESSION["lq_pert"] = $pert;
                $_SESSION["lq_page"] = $page_;
                $_SESSION["lq_affiliate_page"] = $affiliate_page;
                $_SESSION["lq_catalog_page"] = $catalog_page;
                $_SESSION["lq_l_typdoc"] = $l_typdoc;
                $_SESSION["lq_join"] = $join;
                $_SESSION["lq_id_thes"] = $id_thes;
                $_SESSION["lq_level1"] = $_SESSION["level1"];
                unset($_SESSION["lq_facette"]);
                if ($opac_search_other_function) {
                    search_other_function_rec_history($_SESSION["last_query"]);
                }
                switch ($mode) {
                    case "tous":
                        $_SESSION["list_name"] = $msg["list_tous"];
                        $_SESSION["list_name_msg"] = "list_tous";
                        break;
                    case "auteur":
                        $_SESSION["list_name"] = $msg["list_authors"];
                        $_SESSION["list_name_msg"] = "list_authors";
                        break;
                    case "titre":
                        $_SESSION["list_name"] = $msg["list_titles"];
                        $_SESSION["list_name_msg"] = "list_titles";
                        break;
                    case "editeur":
                        $_SESSION["list_name"] = $msg["list_publishers"];
                        $_SESSION["list_name_msg"] = "list_publishers";
                        break;
                    case "titre_uniforme":
                        $_SESSION["list_name"] = $msg["list_titres_uniformes"];
                        $_SESSION["list_name_msg"] = "list_titres_uniformes";
                        break;
                    case "collection":
                        $_SESSION["list_name"] = $msg["list_collections"];
                        $_SESSION["list_name_msg"] = "list_collections";
                        break;
                    case "souscollection":
                        $_SESSION["list_name"] = $msg["list_subcollections"];
                        $_SESSION["list_name_msg"] = "list_subcollections";
                        break;
                    case "categorie":
                        $_SESSION["list_name"] = $msg["list_categories"];
                        $_SESSION["list_name_msg"] = "list_categories";
                        break;
                    case "indexint":
                        $_SESSION["list_name"] = $msg["list_indexint"];
                        $_SESSION["list_name_msg"] = "list_indexint";
                        break;
                    case "keyword":
                        $_SESSION["list_name"] = $msg["list_keywords"];
                        $_SESSION["list_name_msg"] = "list_keywords";
                        break;
                    case "docnum":
                        $_SESSION["list_name"] = $msg["docnum_list"];
                        $_SESSION["list_name_msg"] = "docnum_list";
                        break;
                }
            }
            break;
        case "extended_search":
            if (!$facette_test || strpos($_SERVER['HTTP_REFERER'], $_SESSION['last_authority']['lvl']) !== false && $_SESSION['last_authority']['need_new_search']) {
                $_SESSION["lq_page"] = $page_;
                $_SESSION["lq_affiliate_page"] = $affiliate_page;
                $_SESSION["lq_catalog_page"] = $catalog_page;
                $_SESSION["lq_mode"] = "extended";
                $_SESSION["list_name"] = $msg["list_titles"];
                $_SESSION["list_name_msg"] = "list_titles";
            }
            break;
    }
    //Si on est en navigation par facette
    if ($facette_test) {
        $_SESSION["lq_facette"] = $_SESSION["facette"];
        //La recherche étendue pour les facettes
        $_SESSION["lq_facette_search"]["lq_page"] = $page_;
        $_SESSION["lq_facette_search"]["lq_affiliate_page"] = $affiliate_page;
        $_SESSION["lq_facette_search"]["lq_catalog_page"] = $catalog_page;
        $_SESSION["lq_facette_search"]["lq_mode"] = "extended";
        $_SESSION["lq_facette_search"]["lq_search"] = search::serialize_search();
        $_SESSION["lq_facette_search"]["lq_notice_view"] = $_SESSION["notice_view" . $_SESSION["last_query"]];
    }
}
 function generateEntitySearch($entity_search)
 {
     global $search;
     $search = $ent_search = array();
     foreach ($entity_search->descriptors as $desc) {
         if (count($desc->search_infos) > 1) {
             array_unshift($ent_search, $desc->search_infos);
         } else {
             array_push($ent_search, $desc->search_infos);
         }
     }
     if (count($ent_search) > 0) {
         $n = 0;
         for ($i = 0; $i < count($ent_search); $i++) {
             for ($j = 0; $j < count($ent_search[$i]); $j++) {
                 $search[$n] = "f_" . $ent_search[$i][$j]['id'];
                 $op = "op_" . $n . "_" . $search[$n];
                 global ${$op};
                 ${$op} = $ent_search[$i][$j]['op'];
                 $field = "field_" . $n . "_" . $search[$n];
                 global ${$field};
                 ${$field}[0] = $ent_search[$i][$j]['value'];
                 if (count($ent_search[$i][$j]['var']) > 0) {
                     $fieldvar = "fieldvar_" . $n . "_" . $search[$n];
                     global ${$fieldvar};
                     for ($k = 0; $k < count($ent_search[$i][$j]['var']); $k++) {
                         ${$fieldvar}[$ent_search[$i][$j]['var'][$k]['name']][0] = $ent_search[$i][$j]['var'][$k]['value'];
                     }
                 }
                 $inter = "inter_" . $n . "_" . $search[$n];
                 global ${$inter};
                 if ($n > 0) {
                     ${$inter} = $i > 0 ? "or" : "and";
                 }
                 $n++;
             }
         }
         $entity_search = search::serialize_search();
         search::destroy_global_env();
     } else {
         $entity_search = "";
     }
     return $entity_search;
 }
Ejemplo n.º 8
0
 function do_form()
 {
     global $msg, $tpl_search_perso_form, $charset;
     // titre formulaire
     if ($this->id) {
         $libelle = $msg["search_perso_form_edit"];
         $link_delete = "<input type='button' class='bouton' value='" . $msg[63] . "' onClick=\"confirm_delete();\" />";
     } else {
         $libelle = $msg["search_perso_form_add"];
         $link_delete = "";
         /*
         		foreach($_POST as $key =>$val) {
         			if($val) {
         				if(is_array($val)) {
         					foreach($val as $val_array) {
         						$memo_search.= "<input type='hidden' name='".$key."[]' value='$val_array'/>";
         					}
         				}
         				else $memo_search.="<input type='hidden' name='$key' value='$val'/>";
         			}		
         		}		
         		$this->query=$memo_search;
         		
         		global $search;  	
             	for ($i=0; $i<count($search); $i++) {
             		$op="op_".$i."_".$search[$i];
             		global $$op;
              		$field_="field_".$i."_".$search[$i];
             		global $$field_;
              	}	*/
         $my_search = new search();
         $this->query = $my_search->serialize_search();
         $this->human = $my_search->make_human_query();
     }
     // Champ éditable
     $tpl_search_perso_form = str_replace('!!id!!', htmlentities($this->id, ENT_QUOTES, $charset), $tpl_search_perso_form);
     $tpl_search_perso_form = str_replace('!!name!!', htmlentities($this->name, ENT_QUOTES, $charset), $tpl_search_perso_form);
     $tpl_search_perso_form = str_replace('!!shortname!!', htmlentities($this->shortname, ENT_QUOTES, $charset), $tpl_search_perso_form);
     if ($this->directlink) {
         $checked = " checked='checked' ";
     }
     $tpl_search_perso_form = str_replace('!!directlink!!', $checked, $tpl_search_perso_form);
     if ($this->id) {
         $tpl_search_perso_form = str_replace('!!autorisations_users!!', $this->aff_form_autorisations($this->autorisations, 0), $tpl_search_perso_form);
     } else {
         $tpl_search_perso_form = str_replace('!!autorisations_users!!', $this->aff_form_autorisations("", 1), $tpl_search_perso_form);
     }
     $tpl_search_perso_form = str_replace('!!query!!', htmlentities($this->query, ENT_QUOTES, $charset), $tpl_search_perso_form);
     $tpl_search_perso_form = str_replace('!!human!!', htmlentities($this->human, ENT_QUOTES, $charset), $tpl_search_perso_form);
     $action = "./catalog.php?categ=serials&sub=collstate_update&serial_id=" . $this->serial_id . "&id=" . $this->id;
     $tpl_search_perso_form = str_replace('!!action!!', $action, $tpl_search_perso_form);
     $tpl_search_perso_form = str_replace('!!delete!!', $link_delete, $tpl_search_perso_form);
     $tpl_search_perso_form = str_replace('!!libelle!!', htmlentities($libelle, ENT_QUOTES, $charset), $tpl_search_perso_form);
     $link_annul = "onClick=\"unload_off();history.go(-1);\"";
     $tpl_search_perso_form = str_replace('!!annul!!', $link_annul, $tpl_search_perso_form);
     return $tpl_search_perso_form;
 }
 function do_form()
 {
     global $msg, $tpl_search_persopac_form, $charset, $base_path;
     global $thesaurus_liste_trad;
     global $id_search_persopac;
     $this->load_xml();
     // titre formulaire
     $my_search = new search(false, "search_fields_opac", "{$base_path}/temp/");
     if ($this->id) {
         $libelle = $msg["search_persopac_form_edit"];
         $link_delete = "<input type='button' class='bouton' value='" . $msg[63] . "' onClick=\"confirm_delete();\" />";
         $button_modif_requete = "<input type='button' class='bouton' value=\"" . $msg["search_perso_modif_requete"] . "\" onClick=\"document.modif_requete_form_" . $this->id . ".submit();\">";
         //Mémorisation de recherche prédéfinie en édition
         if ($id_search_persopac) {
             $this->query = $my_search->serialize_search();
             $this->human = $my_search->make_human_query();
             $my_search->unserialize_search($this->query);
         } else {
             $my_search->unserialize_search($this->query);
             $this->query = $my_search->serialize_search();
             $this->human = $my_search->make_human_query();
         }
         $form_modif_requete = $this->make_hidden_search_form();
     } else {
         $libelle = $msg["search_persopac_form_add"];
         $link_delete = "";
         $button_modif_requete = "";
         $form_modif_requete = "";
         $this->query = $my_search->serialize_search();
         $this->human = $my_search->make_human_query();
     }
     // Champ éditable
     $tpl_search_persopac_form = str_replace('!!id!!', htmlentities($this->id, ENT_QUOTES, $charset), $tpl_search_persopac_form);
     $trans = new translation($this->id, "search_persopac", "search_name", $thesaurus_liste_trad);
     $field_name = $trans->get_form($msg["search_persopac_form_name"], "form_nom", "name", $this->name, "saisie-80em");
     $tpl_search_persopac_form = str_replace('!!name!!', $field_name, $tpl_search_persopac_form);
     $trans = new translation($this->id, "search_persopac", "search_shortname", $thesaurus_liste_trad);
     $field_name = $trans->get_form($msg["search_persopac_form_shortname"], "shortname", "shortname", $this->shortname, "saisie-80em");
     $tpl_search_persopac_form = str_replace('!!shortname!!', $field_name, $tpl_search_persopac_form);
     $checked = '';
     if ($this->directlink) {
         $checked = " checked='checked' ";
     }
     $tpl_search_persopac_form = str_replace('!!directlink!!', $checked, $tpl_search_persopac_form);
     $checked = '';
     if ($this->limitsearch) {
         $checked = " checked='checked' ";
     }
     $tpl_search_persopac_form = str_replace('!!limitsearch!!', $checked, $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!query!!', htmlentities($this->query, ENT_QUOTES, $charset), $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!human!!', htmlentities($this->human, ENT_QUOTES, $charset), $tpl_search_persopac_form);
     $action = "./admin.php?categ=opac&sub=search_persopac&section=liste&action=collstate_update&serial_id=" . $this->serial_id . "&id=" . $this->id;
     $tpl_search_persopac_form = str_replace('!!action!!', $action, $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!delete!!', $link_delete, $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!libelle!!', htmlentities($libelle, ENT_QUOTES, $charset), $tpl_search_persopac_form);
     $link_annul = "onClick=\"unload_off();history.go(-1);\"";
     $tpl_search_persopac_form = str_replace('!!annul!!', $link_annul, $tpl_search_persopac_form);
     //restriction aux catégories de lecteur
     $requete = "SELECT id_categ_empr, libelle FROM empr_categ ORDER BY libelle ";
     $res = pmb_mysql_query($requete);
     if (pmb_mysql_num_rows($res) > 0) {
         $categ = "\n\t\t\t<label for='empr_restrict'>" . $msg['search_perso_form_user_restrict'] . "</label><br />\n\t\t\t<select id='empr_restrict' name='empr_restrict[]' multiple>";
         while ($obj = pmb_mysql_fetch_object($res)) {
             $categ .= "\n\t\t\t\t<option value='" . $obj->id_categ_empr . "' " . (in_array($obj->id_categ_empr, $this->empr_categ_restrict) ? "selected=selected" : "") . ">" . $obj->libelle . "</option>";
         }
         $categ .= "\n\t\t\t</select>";
     } else {
         $categ = "";
     }
     $tpl_search_persopac_form = str_replace('!!categorie!!', $categ, $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!requete!!', htmlentities($this->query, ENT_QUOTES, $charset), $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!requete_human!!', $this->human, $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!bouton_modif_requete!!', $button_modif_requete, $tpl_search_persopac_form);
     $tpl_search_persopac_form = str_replace('!!form_modif_requete!!', $form_modif_requete, $tpl_search_persopac_form);
     return $tpl_search_persopac_form;
 }
Ejemplo n.º 10
0
 function make_human_query()
 {
     //Récupération de la valeur de saisie
     $valeur_ = "field_" . $this->n_ligne . "_s_" . $this->id;
     global ${$valeur_};
     $valeur = ${$valeur_};
     $litteral = array();
     //on stocke l'environnement courant
     $current_search = search::serialize_search();
     //on le détruit
     search::destroy_global_env();
     //et on se met dans le contexte de la requete OpenURL
     $this->s = new search("search_openurl");
     $this->s->unserialize_search($valeur[0]);
     global $search;
     //on génère une human_query
     $litteral[0] = $this->s->make_human_query();
     //et on détruit le contexte d'OpenURL pour revenir en mode normal
     search::destroy_global_env();
     search::unserialize_search($current_search);
     return $litteral;
 }
Ejemplo n.º 11
0
 /**
 * 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);
 }
 public function save_manage_form()
 {
     global $tagcloud;
     global $tagcloud_delete;
     global $type;
     global $name;
     global $list_facette;
     global $rmc;
     global $rmc_delete;
     global $include_path, $pmb_opac_url;
     global $lang, $msg, $base_path;
     //Template du formulaire de recherches avancées
     $query = "select managed_module_box from cms_managed_modules where managed_module_name='cms_module_tagcloud' ";
     $result = pmb_mysql_query($query);
     if (pmb_mysql_num_rows($result)) {
         $box = pmb_mysql_result($result, 0, 0);
         $infos = unserialize($box);
         $params = $infos['datasources']['cms_module_tagcloud_datasource_tagcloud_records'];
     }
     if ($type == 'facette') {
         if ($tagcloud_delete) {
             unset($params['tagclouds'][$tagcloud_delete]);
         } else {
             $infos = array('name' => $name, 'type' => "facette");
             $i = 0;
             if (count($list_facette)) {
                 foreach ($list_facette as $facette) {
                     $criteres = explode('_', $facette);
                     $critere = $criteres[0];
                     $ss_critere = $criteres[1];
                     $search_type_field = "search_type_" . $critere . "_" . $ss_critere;
                     global ${$search_type_field};
                     $search_type = ${$search_type_field};
                     $infos['criteres'][$i]['critere'] = $critere;
                     $infos['criteres'][$i]['ss_critere'] = $ss_critere;
                     $infos['criteres'][$i]['search_type'] = $search_type;
                     $i++;
                 }
             }
             //ajout
             if ($tagcloud == "new") {
                 $tagcloud = cms_module_tagcloud_datasource_tagcloud_records::get_new_id('tagcloud', $params['tagclouds']);
             }
             $params['tagclouds'][$tagcloud] = $infos;
         }
     } elseif ($type = 'rmc') {
         if ($rmc_delete) {
             unset($params['rmcs'][$rmc_delete]);
         } else {
             $infos = array('name' => $name, 'type' => "rmc");
             $save_msg = $msg;
             // Recherche du fichier lang de l'opac
             $url = $pmb_opac_url . "includes/messages/{$lang}.xml";
             $fichier_xml = $base_path . "/temp/opac_lang.xml";
             cms_module_tagcloud_datasource_tagcloud_records::curl_load_file($url, $fichier_xml);
             $messages = new XMLlist("{$base_path}/temp/opac_lang.xml", 0);
             $messages->analyser();
             $msg = $messages->table;
             $url = $pmb_opac_url . "includes/search_queries/search_fields.xml";
             $fichier_xml = "{$base_path}/temp/search_fields_opac.xml";
             cms_module_tagcloud_datasource_tagcloud_records::curl_load_file($url, $fichier_xml);
             $my_search = new search(false, "search_fields_opac", "{$base_path}/temp/");
             $infos['rmc'] = $my_search->serialize_search();
             $msg = $save_msg;
             //ajout
             if ($rmc == "new") {
                 $rmc = cms_module_tagcloud_datasource_tagcloud_records::get_new_id('rmc', $params['rmcs']);
             }
             $params['rmcs'][$rmc] = $infos;
         }
     }
     return $params;
 }
Ejemplo n.º 13
0
 protected function _get_user_query()
 {
     return search::serialize_search();
 }
Ejemplo n.º 14
0
function import_noticesearch_into_multicritere_set()
{
    global $dbh, $toset_search, $set_id;
    $set_id += 0;
    //Pas de set spécifié?
    if (!$set_id) {
        return;
    }
    //Vérifions que le set spécifié est bien un bon set multicritère
    $the_set = new connector_out_set($set_id, true);
    if ($the_set->type != 2) {
        return;
    }
    $serialized_search = stripslashes($toset_search);
    //Un petit tour dans la classe search histoire de filtrer la recherche
    $sc = new search(false);
    $sc->unserialize_search($serialized_search);
    $serialized_search = $sc->serialize_search();
    //Mettons à jour le set
    $the_set_m = new connector_out_set_noticemulticritere($set_id, true);
    $the_set_m->config["search"] = $serialized_search;
    $the_set_m->commit_to_db();
    $the_set_m->clear_cache(true);
}