id){
$opac_view_class->set_parameters();
$opac_view_filter_class=$opac_view_class->opac_filters;
$_SESSION["opac_view"]=$opac_view_class->id;
}else
$_SESSION["opac_view"]=0;
$css=$_SESSION["css"]=$opac_default_style;
}
}
?>
notice_id,$cart_);
if (($as===null)||($as===false)) {
$cart_[]=$r->notice_id;
$n++;
} else $na++;
}
}
$message=sprintf($msg["cart_add_notices"],$n,$nbtotal);
if ($na) $message.=", ".sprintf($msg["cart_already_in"],$na);
if (count($cart_)==$opac_max_cart_items) $message.=", ".$msg["cart_full"];
return $message;
}
function add_notices_to_cart($notices){
global $cart_;
global $opac_max_cart_items;
global $msg;
$n=0; $na=0;
$tab_notices = explode(",",$notices);
$nbtotal=count($tab_notices);
for($i=0 ; $i
";
$cart_=$_SESSION["cart"];
if (!count($cart_)) $cart_=array();
$id=stripslashes($id);// attention id peut etre du type es123 (recherche externe)
$location+=0;
if (($id)&&(!$lvl)) {
if (count($cart_)<$opac_max_cart_items) {
$as=array_search($id,$cart_);
$notice_header=htmlentities(substr(strip_tags(stripslashes(html_entity_decode($header,ENT_QUOTES))),0,45),ENT_QUOTES,$charset);
if ($notice_header!=$header) $notice_header.="...";
if (($as!==null)&&($as!==false)) {
$message=sprintf($msg["cart_notice_exists"],$notice_header);
} else {
$cart_[]=$id;
$message=sprintf($msg["cart_notice_add"],$notice_header);
}
} else {
$message=$msg["cart_full"];
}
} else if ($lvl) {
switch ($lvl) {
case "more_results":
//changement de plan !
switch ($mode) {
case "tous" :
$searcher = new searcher_all_fields(stripslashes($user_query));
$notices = $searcher->get_result();
add_notices_to_cart($notices);
break;
case "title":
case "titre":
$searcher = new searcher_title(stripslashes($user_query));
$notices = $searcher->get_result();
add_notices_to_cart($notices);
break;
case "keyword":
$searcher = new searcher_keywords(stripslashes($user_query));
$notices = $searcher->get_result();
add_notices_to_cart($notices);
break;
case "abstract":
$searcher = new searcher_abstract(stripslashes($user_query));
$notices = $searcher->get_result();
add_notices_to_cart($notices);
break;
case "extended":
$es=new search();
$table=$es->make_search();
$notices = '';
$q="select distinct notice_id from $table ";
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notice_id;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "external":
if ($_SESSION["external_type"]=="multi") $es=new search("search_fields_unimarc"); else $es=new search("search_simple_fields_unimarc");
$table=$es->make_search();
$requete="select concat('es', notice_id) as notice_id from $table where 1;";
$message=add_query($requete);
break;
case 'docnum' :
$notices = '';
//droits d'acces emprunteur/notice
$acces_j='';
if ($gestion_acces_active==1 && $gestion_acces_empr_notice==1) {
require_once("$class_path/acces.class.php");
$ac= new acces();
$dom_2= $ac->setDomain(2);
$acces_j= $dom_2->getJoin($_SESSION['id_empr_session'],4,'notice_id');
}
if ($acces_j) {
$statut_j='';
} else {
$statut_j=',notice_statut';
}
$q_noti = "select notice_id from explnum, notices $statut_j $acces_j ".stripslashes($clause).' ';
$q_bull = "select notice_id from bulletins, explnum, notices $statut_j $acces_j ".stripslashes($clause_bull).' ';
$q_bull_num_notice = "select notice_id from bulletins, explnum, notices $statut_j $acces_j ".stripslashes($clause_bull_num_notice).' ';
$q = "select uni.notice_id from ($q_noti UNION $q_bull UNION $q_bull_num_notice) as uni";
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notice_id;
}
}
add_notices_to_cart($notices);
break;
}
break;
case "author_see":
$notices = '';
$rqt_auteurs = "select author_id as aut from authors where author_see='$id' and author_id!=0 union select author_see as aut from authors where author_id='$id' and author_see!=0 " ;
$res_auteurs = mysql_query($rqt_auteurs, $dbh);
$clause_auteurs = "responsability_author in ('$id'";
while($id_aut=mysql_fetch_object($res_auteurs)) {
$clause_auteurs .= ",'".$id_aut->aut."'";
}
$clause_auteurs .= ")" ;
$q = "select distinct responsability_notice as notice_id from responsability where $clause_auteurs ";
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)) {
$tab_notices=array();
while($row=mysql_fetch_object($res)) {
$tab_notices[] = $row->notice_id;
}
$notices = implode(',',$tab_notices);
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "categ_see":
$notices = '';
$q = "select notcateg_notice from notices_categories where num_noeud='$id' ";
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notcateg_notice;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "indexint_see":
$notices = '';
$q = "select notice_id from notices where indexint='$id' " ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notice_id;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "coll_see":
$notices = '';
$q = "select notice_id from notices where coll_id='$id' " ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notice_id;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "publisher_see":
$notices = '';
$q = "select distinct notice_id from notices where (ed1_id='$id' or ed2_id='$id')" ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)) {
$tab_notices=array();
while ($row= mysql_fetch_object($res)) {
$tab_notices[]=$row->notice_id;
}
$notices = implode(',',$tab_notices);
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "serie_see":
$notices = '';
$q = "select distinct notice_id from notices where tparent_id='$id' " ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notice_id;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "subcoll_see":
$notices = '';
$q = "select distinct notice_id from notices where subcoll_id='$id' " ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notice_id;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "etagere_see":
$notices = '';
$q = "select distinct object_id from caddie_content join etagere_caddie on caddie_content.caddie_id=etagere_caddie.caddie_id where etagere_id='$id'";
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->object_id;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "dsi":
$notices = '';
$q = "select distinct num_notice from bannette_contenu where num_bannette='$id' " ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->num_notice;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "analysis":
$notices='';
$q = "select distinct analysis_notice from analysis where analysis_bulletin='$id' " ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->analysis_notice;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
case "listlecture":
$notices='';
$q = "select notices_associees from opac_liste_lecture where id_liste=$id" ;
$res = mysql_query($q,$dbh);
if(mysql_num_rows($res)){
while ($row = mysql_fetch_object($res)){
if ($notices != "") $notices.= ",";
$notices.= $row->notices_associees;
}
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
if($sub == "consult")
print "";
else
print "";
break;
case "section_see":
//On regarde dans quelle type de navigation on se trouve
$requete="SELECT num_pclass FROM docsloc_section WHERE num_location='".$location."' AND num_section='".$id."' ";
$res=mysql_query($requete);
$type_aff_navigopac=0;
if(mysql_num_rows($res)){
$type_aff_navigopac=mysql_result($res,0,0);
}
if($type_aff_navigopac == 0 or ($type_aff_navigopac == -1 && !$plettreaut)or ($type_aff_navigopac != -1 && $type_aff_navigopac != 0 && !isset($dcote) && !isset($nc))){
//Pas de navigation ou navigation par les auteurs mais sans choix effectué
$requete="create temporary table temp_n_id ENGINE=MyISAM ( select distinct expl_notice as notice_id from exemplaires where expl_section='".$id."' and expl_location='".$location."' )";
mysql_query($requete);
//On récupère les notices de périodique avec au moins un exemplaire d'un bulletin dans la localisation et la section
$requete="INSERT INTO temp_n_id (select distinct bulletin_notice as notice_id from bulletins join exemplaires on bulletin_id=expl_bulletin where expl_section='".$id."' and expl_location='".$location."' )";
mysql_query($requete);
@mysql_query("alter table temp_n_id add index(notice_id)");
$requete = "SELECT notice_id FROM temp_n_id ";
}elseif($type_aff_navigopac == -1 ){
$requete="create temporary table temp_n_id ENGINE=MyISAM ( SELECT distinct expl_notice as notice_id from exemplaires where expl_section='".$id."' and expl_location='".$location."' )";
mysql_query($requete);
//On récupère les notices de périodique avec au moins un exemplaire d'un bulletin dans la localisation et la section
$requete="INSERT INTO temp_n_id (select distinct bulletin_notice as notice_id from bulletins join exemplaires on bulletin_id=expl_bulletin where expl_section='".$id."' and expl_location='".$location."' )";
mysql_query($requete);
if($plettreaut == "num"){
$requete = "SELECT temp_n_id.notice_id FROM temp_n_id JOIN responsability ON responsability_notice=temp_n_id.notice_id JOIN authors ON author_id=responsability_author and trim(index_author) REGEXP '^[0-9]' GROUP BY temp_n_id.notice_id";
}elseif($plettreaut == "vide"){
$requete = "SELECT temp_n_id.notice_id FROM temp_n_id LEFT JOIN responsability ON responsability_notice=temp_n_id.notice_id WHERE responsability_author IS NULL GROUP BY temp_n_id.notice_id";
}else{
$requete = "SELECT temp_n_id.notice_id FROM temp_n_id JOIN responsability ON responsability_notice=temp_n_id.notice_id JOIN authors ON author_id=responsability_author and trim(index_author) REGEXP '^[".$plettreaut."]' GROUP BY temp_n_id.notice_id";
}
}else{
//Navigation par plan de classement
//Table temporaire de tous les id
if ($ssub) {
$t_dcote=explode(",",$dcote);
$t_expl_cote_cond=array();
for ($i=0; $iexpl_cote,$c)) {
$found=false;
$lcote=(strlen($c[0])>=3) ? 3 : strlen($c[0]);
$level=$level_ref;
while ((!$found)&&($level<=$lcote)) {
$cote=substr($c[0],0,$level);
$compl=str_repeat("0",$lcote-$level);
$rq_index="select indexint_name,indexint_comment from indexint where indexint_name='".$cote.$compl."' and length(indexint_name)>=$lcote and num_pclass='".$type_aff_navigopac."' order by indexint_name limit 1";
$res_index_1=mysql_query($rq_index);
if (mysql_num_rows($res_index_1)) {
$rq_del="select distinct notice_id from notices, exemplaires where expl_cote='".$ct->expl_cote."' and expl_notice=notice_id ";
$rq_del.=" union select distinct notice_id from notices, exemplaires, bulletins where expl_cote='".$ct->expl_cote."' and expl_bulletin=bulletin_id and bulletin_notice=notice_id ";
$res_del=mysql_query($rq_del) ;
while (list($n_id)=mysql_fetch_row($res_del)) {
mysql_query("delete from temp_n_id where notice_id=".$n_id);
}
$found=true;
} else $level++;
}
}
}
$requete = "SELECT notice_id FROM temp_n_id " ;
}
$notices='';
$r =mysql_query($requete,$dbh);
if (mysql_num_rows($r)) {
$tab_notices=array();
while($row=mysql_fetch_object($r)) {
$tab_notices[]=$row->notice_id;
}
$notices=implode(',',$tab_notices);
$fr = new filter_results($notices);
$notices = $fr->get_results();
}
add_notices_to_cart($notices);
break;
}
} else $message="";
if(!count($cart_)) echo $msg["cart_empty"]; else echo $message." ".sprintf($msg["cart_contents"],count($cart_))."";
$_SESSION["cart"]=$cart_;
?>