" ;
elseif ($opac_recherches_pliables==3)
// les options de recherches sont invisibles, pas dépliables.
$ou_chercher="\n".do_ou_chercher_hidden()."\n" ;
$result = str_replace("", $ou_chercher, $result);
// on se place dans le bon champ
// $result .= form_focus("search_input", "query");
$others="";
if ($opac_allow_personal_search) $others.="
";
$result=str_replace("!!others!!",$others,$result);
$result.=$onglets_search_perso_form;
break;
//Recherche avancee
case "extended_search":
global $mode_aff;
if ($mode_aff) {
if ($mode_aff=="aff_module") {
//ajout de la recherche dans l'historique
$_SESSION["nb_queries"]=$_SESSION["nb_queries"]+1;
$n=$_SESSION["nb_queries"];
$_SESSION["notice_view".$n]=$_SESSION["last_module_search"];
switch ($_SESSION["last_module_search"]["search_mod"]) {
case 'etagere_see':
//appel de la fonction tableau_etagere du fichier etagere_func.inc.php
$r1 = $msg["etagere_query"];
$t=array();
$t=tableau_etagere($_SESSION["last_module_search"]["search_id"]);
$r=$r1." '".$t[0]["nometagere"]."'";
break;
case 'categ_see':
// instanciation de la categorie
$ourCateg = new categorie($_SESSION["last_module_search"]["search_id"]);
$r1 = $msg["category"];
$r=$r1." '".$ourCateg->libelle."'";
break;
case 'indexint_see':
// instanciation de la classe indexation
$r1= $msg["indexint_search"];
$ourIndexint = new indexint($_SESSION["last_module_search"]["search_id"]);
$r=$r1." '".$ourIndexint->name." ".$ourIndexint->comment."'";
break;
case 'section_see':
$resultat=mysql_query("select location_libelle from docs_location where idlocation='".addslashes($_SESSION["last_module_search"]["search_location"])."'");
$j=mysql_fetch_array($resultat);
$localisation_=$j["location_libelle"];
mysql_free_result($resultat);
$resultat=mysql_query("select section_libelle from docs_section where idsection='".addslashes($_SESSION["last_module_search"]["search_id"])."'");
$j=mysql_fetch_array($resultat);
$section_=$j["section_libelle"];
mysql_free_result($resultat);
$r1 = $localisation_." => ".$msg["section"];
$r=$r1." '".$section_."'";
break;
}
$_SESSION["human_query".$n]=$r;
$_SESSION["search_type".$n]="module";
} else {
if ($_SESSION["last_query"]) {
$n=$_SESSION["last_query"];
if ($_SESSION["lq_facette"]) $facette=true;
} else {
$n=$_SESSION["nb_queries"];
}
}
//générer les critères de la multi_critères
//Attention ! si on est déjà dans une facette !
if ($facette)
search::unserialize_search($_SESSION["lq_facette_search"]["lq_search"]);
else {
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]=$n;
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_;
}
}
if($search_in_perio){
global $search;
$search[0]="f_34";
//opérateur
$op="op_0_".$search[0];
global $$op;
$op_ ="EQ";
$$op=$op_;
//contenu de la recherche
$field="field_0_".$search[0];
$field_=array();
$field_[0]=$search_in_perio;
global $$field;
$$field=$field_;
$search[1]="f_42";
//opérateur
$op="op_1_".$search[0];
global $$op;
$op_ ="BOOLEAN";
$$op=$op_;
} else {
if ($get_query) {
if (($_SESSION["last_query"]==$get_query)&&($_SESSION["lq_facette_test"])) {
search::unserialize_search($_SESSION["lq_facette_search"]["lq_search"]);
} else get_history($get_query);
}
}
$es=new search();
if($onglet_persopac){
$search_form=$search_form_perso;
global $search;
if (!$search) {
$search_p_direct= new search_persopac($onglet_persopac);
$es->unserialize_search($search_p_direct->query);
}
}
if($limitsearch){
$search_form=$search_form_perso_limitsearch;
}
if (($onglet_persopac)&&($lvl=="search_result")) $es->reduct_search();
$result=$es->show_form("./index.php?lvl=$lvl&search_type_asked=extended_search","./index.php?lvl=search_result&search_type_asked=extended_search");
$others="
";
$result.=$onglets_search_perso_form;
break;
//Recherche avancee
case "external_search":
//Si c'est une multi-critere, on l'affiche telle quelle
global $external_type;
if ($external_type) $_SESSION["ext_type"]=$external_type;
global $mode_aff;
//Affinage
if ($mode_aff) {
if ($mode_aff=="aff_module") {
//ajout de la recherche dans l'historique
$_SESSION["nb_queries"]=$_SESSION["nb_queries"]+1;
$n=$_SESSION["nb_queries"];
$_SESSION["notice_view".$n]=$_SESSION["last_module_search"];
switch ($_SESSION["last_module_search"]["search_mod"]) {
case 'etagere_see':
//appel de la fonction tableau_etagere du fichier etagere_func.inc.php
$r1 = $msg["etagere_query"];
$t=array();
$t=tableau_etagere($_SESSION["last_module_search"]["search_id"]);
$r=$r1." '".$t[0]["nometagere"]."'";
break;
case 'categ_see':
// instanciation de la catégorie
$ourCateg = new categorie($_SESSION["last_module_search"]["search_id"]);
$r1 = $msg["category"];
$r=$r1." '".$ourCateg->libelle."'";
break;
case 'indexint_see':
// instanciation de la classe indexation
$r1= $msg["indexint_search"];
$ourIndexint = new indexint($_SESSION["last_module_search"]["search_id"]);
$r=$r1." '".$ourIndexint->name." ".$ourIndexint->comment."'";
break;
case 'section_see':
$resultat=mysql_query("select location_libelle from docs_location where idlocation='".addslashes($_SESSION["last_module_search"]["search_location"])."'");
$j=mysql_fetch_array($resultat);
$localisation_=$j["location_libelle"];
mysql_free_result($resultat);
$resultat=mysql_query("select section_libelle from docs_section where idsection='".addslashes($_SESSION["last_module_search"]["search_id"])."'");
$j=mysql_fetch_array($resultat);
$section_=$j["section_libelle"];
mysql_free_result($resultat);
$r1 = $localisation_." => ".$msg["section"];
$r=$r1." '".$section_."'";
break;
}
$_SESSION["human_query".$n]=$r;
$_SESSION["search_type".$n]="module";
} else {
if ($_SESSION["last_query"]) {
$n=$_SESSION["last_query"];
} else {
$n=$_SESSION["nb_queries"];
}
}
}
if ($_SESSION["ext_type"]=="multi") {
global $search;
if (!$search) {
$search[0]="s_2";
$op_0_s_2="EQ";
$field_0_s_2=array();
} else {
//Recherche du champp source, s'il n'est pas present, on decale tout et on l'ajoute
$flag_found=false;
for ($i=0; $i=0; $i--) {
$search[$i+1]=$search[$i];
decale("field_".$i."_".$search[$i],"field_".($i+1)."_".$search[$i]);
decale("op_".$i."_".$search[$i],"op_".($i+1)."_".$search[$i]);
decale("inter_".$i."_".$search[$i],"inter_".($i+1)."_".$search[$i]);
decale("fieldvar_".$i."_".$search[$i],"fieldvar_".($i+1)."_".$search[$i]);
}
$search[0]="s_2";
$op_0_s_2="EQ";
$field_0_s_2=array();
}
}
if ($mode_aff) {
//générer les critères de la multi_critères
$search[1]="s_1";
$op_="EQ";
//opérateur
$op="op_1_".$search[1];
global $$op;
$$op=$op_;
//contenu de la recherche
$field="field_1_".$search[1];
$field_=array();
$field_[0]=$n;
global $$field;
$$field=$field_;
//opérateur inter-champ
$inter="inter_1_".$search[1];
global $$inter;
$$inter="and";
//variables auxiliaires
$fieldvar_="fieldvar_1_".$search[1];
global $$fieldvar_;
$$fieldvar_="";
$fieldvar=$$fieldvar_;
}
$es=new search("search_fields_unimarc");
$result=$es->show_form("./index.php?lvl=$lvl&search_type_asked=external_search","./index.php?lvl=search_result&search_type_asked=external_search");
} else {
global $mode_aff;
//Si il y a une mode d'affichage demandé, on construit l'écran correspondant
if ($mode_aff) {
$f=get_field_text($n);
$user_query=$f[0];
$look=$f[1];
global $$look;
$$look=1;
global $look_FIRSTACCESS;
$look_FIRSTACCESS=1;
} else {
if ($external_env) {
$external_env=unserialize(stripslashes($external_env));
foreach ($external_env as $varname=>$varvalue) {
global $$varname;
$$varname=$varvalue;
}
}
}
$result=$search_input;
$result=str_replace("!!user_query!!",htmlentities(stripslashes($user_query),ENT_QUOTES,$charset),$result);
$result = str_replace("", do_ou_chercher(), $result);
$result = str_replace("", do_sources(), $result);
}
$others="
";
$result.=$onglets_search_perso_form;
break;
//Recherche par termes
case "term_search":
global $search_term;
global $term_click;
global $page_search;
global $opac_term_search_height;
global $opac_show_help;
if (!$opac_term_search_height) $height=300;
else $height=$opac_term_search_height;
$search_form_term = "
";
//recuperation du thesaurus session
if(!$id_thes) $id_thes = thesaurus::getSessionThesaurusId();
else thesaurus::setSessionThesaurusId($id_thes);
//affichage du selectionneur de thesaurus et du lien vers les thesaurus
$liste_thesaurus = thesaurus::getThesaurusList();
$sel_thesaurus = '';
$lien_thesaurus = '';
if ($opac_thesaurus != 0) { //la liste des thesaurus n'est pas affichée en mode monothesaurus
$sel_thesaurus = " ";
$lien_thesaurus = "".$msg[thes_lien]."";
}
$search_form_term=str_replace("",$sel_thesaurus,$search_form_term);
$search_form_term=str_replace("",$lien_thesaurus,$search_form_term);
$result=$search_form_term;
$others="";
$others.="
";
$result.=$onglets_search_perso_form;
break;
case "tags_search":
// les tests de formulaire
$result = $script_test_form;
$tests = test_field("search_input", "query", "recherche");
$result = str_replace("!!tests!!", $tests, $result);
if ($opac_search_other_function) $toprint_typdocfield.=search_other_function_filters();
// le contenu
$result .= $search_input;
// on met la valeur a jour
$result = str_replace("!!user_query!!", htmlentities($value,ENT_QUOTES,$charset), $result);
$result = str_replace("", "", $result);
$result = str_replace("","" , $result);
// on se place dans le bon champ
// $result .= form_focus("search_input", "query");
$others="";
$others="
";
$tag = new tags();
$result.= $tag->listeAlphabetique();
}
$result.=$onglets_search_perso_form;
break;
// *****************
// Pour affichage compte emprunteur en onglet
case "connect_empr":
// les tests de formulaire
$result = $search_input;
$others="";
$others="
";
$search_p= new search_persopac();
$result=str_replace("!!contenu!!",$search_p->do_list(),$result);
$result=str_replace("!!others!!",$others,$result);
break;
case "perio_a2z":
global $opac_perio_a2z_abc_search;
global $opac_perio_a2z_max_per_onglet;
$result=$search_input;
$others.="
";
$result=str_replace("!!others!!",$others,$result);
// affichage des _perio_a2z
$a2z=new perio_a2z(0,$opac_perio_a2z_abc_search,$opac_perio_a2z_max_per_onglet);
$a2z_form=$a2z->get_form();
$a2z_form.=$onglets_search_perso_form;
$result=str_replace("!!contenu!!",$a2z_form,$result);
break;
}
return $result;
}
function do_ou_chercher () {
global $look_TITLE,
$look_AUTHOR,
$look_PUBLISHER,
$look_TITRE_UNIFORME,
$look_COLLECTION,
$look_SUBCOLLECTION,
$look_CATEGORY,
$look_INDEXINT,
$look_KEYWORDS,
$look_ABSTRACT,
$look_ALL,
$look_DOCNUM,
$look_CONTENT;
global $look_FIRSTACCESS ; // si 0 alors premier Acces : la rech par defaut est cochee
// pour mise en service de cette precision de recherche : commenter cette partie
/*
$look_TITLE = "1" ;
$look_AUTHOR = "1" ;
$look_PUBLISHER = "1" ;
$look_COLLECTION = "1" ;
$look_SUBCOLLECTION = "1" ;
$look_CATEGORY = "1" ;
$look_INDEXINT = "1" ;
$look_KEYWORDS = "1" ;
$look_ABSTRACT = "1" ;
$look_CONTENT = "1" ;
return "";
*/
// pour mise en service de cette precision de recherche : commenter jusque la
// on recupere les globales de ce qui est autorise en recherche dans le parametrage de l'OPAC
global $opac_modules_search_title,
$opac_modules_search_author,
$opac_modules_search_publisher,
$opac_modules_search_titre_uniforme,
$opac_modules_search_collection,
$opac_modules_search_subcollection,
$opac_modules_search_category,
$opac_modules_search_indexint,
$opac_modules_search_keywords,
$opac_modules_search_abstract,
$opac_modules_search_all,
$opac_modules_search_docnum,
$pmb_indexation_docnum,
$opac_allow_tags_search;
// $opac_modules_search_content; inutilise pour l'instant, le search_abstract cherche aussi dans les notes de contenu
global $msg,$get_query;
if (!$look_FIRSTACCESS && !$get_query ) {
// premier acces :
if ($opac_modules_search_title==2) $look_TITLE=1;
if ($opac_modules_search_author==2) $look_AUTHOR=1 ;
if ($opac_modules_search_publisher==2) $look_PUBLISHER = 1 ;
if ($opac_modules_search_titre_uniforme==2) $look_TITRE_UNIFORME = 1 ;
if ($opac_modules_search_collection==2) $look_COLLECTION = 1 ;
if ($opac_modules_search_subcollection==2) $look_SUBCOLLECTION = 1 ;
if ($opac_modules_search_category==2) $look_CATEGORY = 1 ;
if ($opac_modules_search_indexint==2) $look_INDEXINT = 1 ;
if ($opac_modules_search_keywords==2) $look_KEYWORDS = 1 ;
if ($opac_modules_search_abstract==2) $look_ABSTRACT = 1 ;
if ($opac_modules_search_all==2) $look_ALL = 1 ;
if ($opac_modules_search_docnum==2) $look_DOCNUM = 1;
}
if ($look_TITLE) $checked_TITLE = "checked" ;
if ($look_AUTHOR) $checked_AUTHOR = "checked" ;
if ($look_PUBLISHER) $checked_PUBLISHER = "checked" ;
if ($look_TITRE_UNIFORME) $checked_TITRE_UNIFORME = "checked" ;
if ($look_COLLECTION) $checked_COLLECTION = "checked" ;
if ($look_SUBCOLLECTION) $checked_SUBCOLLECTION = "checked" ;
if ($look_CATEGORY) $checked_CATEGORY = "checked" ;
if ($look_INDEXINT) $checked_INDEXINT = "checked" ;
if ($look_KEYWORDS) $checked_KEYWORDS = "checked" ;
if ($look_ABSTRACT) $checked_ABSTRACT = "checked" ;
if ($look_ALL) $checked_ALL = "checked" ;
if ($look_DOCNUM) $checked_DOCNUM = "checked";
if (!($look_TITLE || $look_AUTHOR || $look_PUBLISHER || $look_TITRE_UNIFORME || $look_COLLECTION || $look_SUBCOLLECTION || $look_CATEGORY || $look_INDEXINT || $look_KEYWORDS || $look_ABSTRACT || $look_ALL || $look_DOCNUM)) {
$checked_TITLE = "checked" ;
$look_TITLE = "1" ;
$checked_AUTHOR = "checked" ;
$look_AUTHOR = "1" ;
}
$ou_chercher_tab=array();
if ($opac_modules_search_title>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_author>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_publisher>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_titre_uniforme>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_collection>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_subcollection>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_category>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_indexint>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_keywords>0) {
$ou_chercher_skey = "\n";
$ou_chercher_tab[] = $ou_chercher_skey ;
}
if ($opac_modules_search_abstract>0) $ou_chercher_tab[] = "\n";
if ($opac_modules_search_all>0) $ou_chercher_tab[] = "\n";
if (($pmb_indexation_docnum && $opac_modules_search_docnum)>0) $ou_chercher_tab[] = "\n";
$ou_chercher = "
" ;
for ($nbopac_smodules=0;$nbopac_smodules
", "", $ou_chercher ) ;
return $ou_chercher;
}
function do_ou_chercher_hidden () {
// on récupère les globales de ce qui est autorisé en recherche dans le paramétrage de l'OPAC
global $opac_modules_search_title,
$opac_modules_search_author,
$opac_modules_search_publisher,
$opac_modules_search_titre_uniforme,
$opac_modules_search_collection,
$opac_modules_search_subcollection,
$opac_modules_search_category,
$opac_modules_search_indexint,
$opac_modules_search_keywords,
$opac_modules_search_abstract,
$opac_modules_search_docnum,
$opac_modules_search_all ;
$ou_chercher_hidden = '' ;
if ($opac_modules_search_title>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_author>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_publisher>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_titre_uniforme>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_collection>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_subcollection>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_category>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_indexint>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_keywords>1) $ou_chercher_hidden .= " ";
if ($opac_modules_search_abstract>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_all>1) $ou_chercher_hidden .= "";
if ($opac_modules_search_docnum>1) $ou_chercher_hidden .= "";
return $ou_chercher_hidden;
}
function get_field_text($n) {
$typ_search=$_SESSION["notice_view".$n]["search_mod"];
switch($_SESSION["notice_view".$n]["search_mod"]) {
case 'title':
$valeur_champ=$_SESSION["user_query".$n];
$typ_search="look_TITLE";
break;
case 'all':
$valeur_champ=$_SESSION["user_query".$n];
$typ_search="look_ALL";
break;
case 'abstract':
$valeur_champ=$_SESSION["user_query".$n];
$typ_search="look_ABSTRACT";
break;
case 'keyword':
$valeur_champ=$_SESSION["user_query".$n];
$typ_search="look_KEYWORDS";
break;
case 'author_see':
//Recherche de l'auteur
$author_id=$_SESSION["notice_view".$n]["search_id"];
$requete="select concat(author_name,', ',author_rejete) from authors where author_id='".addslashes($author_id)."'";
$r_author=mysql_query($requete);
if (@mysql_num_rows($r_author)) {
$valeur_champ=mysql_result($r_author,0,0);
}
$typ_search="look_AUTHOR";
break;
case 'categ_see':
//Recherche de la categorie
$categ_id=$_SESSION["notice_view".$n]["search_id"];
$requete="select libelle_categorie from categories where num_noeud='".addslashes($categ_id)."'";
$r_cat=mysql_query($requete);
if (@mysql_num_rows($r_cat)) {
$valeur_champ=mysql_result($r_cat,0,0);
}
$typ_search="look_CATEGORY";
break;
case 'indexint_see':
//Recherche de l'indexation
$indexint_id=$_SESSION["notice_view".$n]["search_id"];
$requete="select indexint_name from indexint where indexint_id='".addslashes($indexint_id)."'";
$r_indexint=mysql_query($requete);
if (@mysql_num_rows($r_indexint)) {
$valeur_champ=mysql_result($r_indexint,0,0);
}
$typ_search="look_INDEXINT";
break;
case 'coll_see':
//Recherche de l'indexation
$coll_id=$_SESSION["notice_view".$n]["search_id"];
$requete="select collection_name from collections where collection_id='".addslashes($coll_id)."'";
$r_coll=mysql_query($requete);
if (@mysql_num_rows($r_coll)) {
$valeur_champ=mysql_result($r_coll,0,0);
}
$typ_search="look_COLLECTION";
break;
case 'publisher_see':
//Recherche de l'editeur
$publisher_id=$_SESSION["notice_view".$n]["search_id"];
$requete="select ed_name from publishers where ed_id='".addslashes($publisher_id)."'";
$r_pub=mysql_query($requete);
if (@mysql_num_rows($r_pub)) {
$valeur_champ=mysql_result($r_pub,0,0);
}
$typ_search="look_PUBLISHER";
break;
case 'titre_uniforme_see':
//Recherche de titre uniforme
$tu_id=$_SESSION["notice_view".$n]["search_id"];
$requete="select tu_name from titres_uniformes where ed_id='".addslashes($tu_id)."'";
$r_tu=mysql_query($requete);
if (@mysql_num_rows($r_tu)) {
$valeur_champ=mysql_result($r_tu,0,0);
}
$typ_search="look_TITRE_UNIFORME";
break;
case 'subcoll_see':
//Recherche de l'editeur
$subcoll_id=$_SESSION["notice_view".$n]["search_id"];
$requete="select sub_coll_name from sub_collections where sub_coll_id='".addslashes($subcoll_id)."'";
$r_subcoll=mysql_query($requete);
if (@mysql_num_rows($r_subcoll)) {
$valeur_champ=mysql_result($r_subcoll,0,0);
}
$typ_search="look_SUBCOLLECTION";
break;
}
return array($valeur_champ,$typ_search);
}
function do_sources() {
global $charset,$source, $dbh, $msg;
$r="";
if (!$source) $source=array();
//Recherche des sources
$requete="SELECT connectors_categ_sources.num_categ, connectors_sources.source_id, connectors_categ.connectors_categ_name as categ_name, connectors_categ.opac_expanded, connectors_sources.name, connectors_sources.comment, connectors_sources.repository, connectors_sources.opac_allowed,connectors_sources.opac_selected, source_sync.cancel FROM connectors_sources LEFT JOIN connectors_categ_sources ON (connectors_categ_sources.num_source = connectors_sources.source_id) LEFT JOIN connectors_categ ON (connectors_categ.connectors_categ_id = connectors_categ_sources.num_categ) LEFT JOIN source_sync ON (connectors_sources.source_id = source_sync.source_id AND connectors_sources.repository=2) WHERE connectors_sources.opac_allowed=1 ORDER BY connectors_categ_sources.num_categ DESC, connectors_sources.name";
$resultat=mysql_query($requete, $dbh);
if ($source) $_SESSION["checked_sources"]=$source;
if ($_SESSION["checked_sources"]&&(!$source)) $source=$_SESSION["checked_sources"];
//gen_plus_form("zsources",$msg["connecteurs_source_label"],"",true)
$old_categ = 0;
$count = 0;
$paquets_de_sources = array();
$paquets_de_source = array();
while (($srce=mysql_fetch_object($resultat))) {
if ($old_categ !== $srce->num_categ) {
//$msg["connecteurs_source_label"]
if ($paquets_de_source) $paquets_de_sources[] = $paquets_de_source;
$paquets_de_source = array();
$paquets_de_source["id"] = $srce->num_categ;
$paquets_de_source["name"] = $srce->categ_name ? $srce->categ_name : $msg["source_no_category"];
$paquets_de_source["opac_expanded"] = $srce->opac_expanded ? true : false;
// gen_plus_form("zsources".$count, $srce->categ_name ,"sdfsdfsdfsdf",true);
$count++;
$old_categ = $srce->num_categ;
}
$paquets_de_source["content"] .="