=sysdate()) or validite=1 ) order by $opac_etagere_order "; $result = mysql_query($query, $dbh); if (mysql_num_rows($result)) { while ($etagere=mysql_fetch_object($result)) { $tableau_etagere[] = array ( 'id' => $etagere->idetagere, 'name' => utf8_normalize($etagere->name), 'comment' => utf8_normalize($etagere->comment) ); } } return $tableau_etagere; } function retrieve_shelf_content($shelf_id, $OPACUserId) { global $dbh; $shelf_id+=0; if (!$shelf_id) return array(); //droits d'acces emprunteur/notice $acces_j=''; global $gestion_acces_active, $gestion_acces_empr_notice; if ($OPACUserId != -1 && $gestion_acces_active==1 && $gestion_acces_empr_notice==1) { $ac= new acces(); $dom_2= $ac->setDomain(2); $acces_j = $dom_2->getJoin($empr_id,4,'notice_id'); } if($acces_j) { $statut_j=''; $statut_r=''; } else { $statut_j=',notice_statut'; $statut_r="and statut=id_notice_statut and ((notice_visible_opac=1 and notice_visible_opac_abon=0) or (notice_visible_opac_abon=1 and notice_visible_opac=1)) "; } $sql = "SELECT object_id FROM etagere LEFT JOIN etagere_caddie ON (etagere_id = idetagere) LEFT JOIN caddie_content ON (caddie_content.caddie_id = etagere_caddie.caddie_id) LEFT JOIN notices ON (object_id = notice_id) $acces_j $statut_j WHERE etagere_id = ".$shelf_id." AND object_id $statut_r GROUP BY object_id"; $res = mysql_query($sql, $dbh); $results = array(); while($row = mysql_fetch_row($res)) { $results[] = $row[0]; } return $results; } function list_locations() { global $dbh; $results = array(); $sql = "SELECT idlocation, location_libelle FROM docs_location WHERE location_visible_opac = 1"; $res = mysql_query($sql, $dbh); while($row = mysql_fetch_assoc($res)) { $results[] = array( "location_id" => $row["idlocation"], "location_caption" => utf8_normalize($row["location_libelle"]) ); } return $results; } function list_sections($location) { global $dbh; $results = array(); $location+=0; $requete="select idsection, section_libelle, section_pic from docs_section, exemplaires where expl_location=$location and section_visible_opac=1 and expl_section=idsection group by idsection order by section_libelle "; $resultat=mysql_query($requete); $n=0; while ($r=mysql_fetch_object($resultat)) { $aresult = array(); $aresult["section_id"] = $r->idsection; $aresult["section_location"] = $location; $aresult["section_caption"] = utf8_normalize($r->section_libelle); $aresult["section_image"] = $r->section_pic ? utf8_normalize($r->section_pic) : "images/rayonnage-small.png"; $results[] = $aresult; } return $results; } function is_also_borrowed_enabled() { global $opac_autres_lectures_tri; return $opac_autres_lectures_tri ? true : false; } function also_borrowed ($notice_id=0,$bulletin_id=0) { global $dbh, $msg; global $opac_autres_lectures_tri; global $opac_autres_lectures_nb_mini_emprunts; global $opac_autres_lectures_nb_maxi; global $opac_autres_lectures_nb_jours_maxi; global $opac_autres_lectures; global $gestion_acces_active,$gestion_acces_empr_notice; $results = array(); if (!$opac_autres_lectures || (!$notice_id && !$bulletin_id)) return $results; if (!$opac_autres_lectures_nb_maxi) $opac_autres_lectures_nb_maxi = 999999 ; if ($opac_autres_lectures_nb_jours_maxi) $restrict_date=" date_add(oal.arc_fin, INTERVAL $opac_autres_lectures_nb_jours_maxi day)>=sysdate() AND "; if ($notice_id) $pas_notice = " oal.arc_expl_notice!=$notice_id AND "; if ($bulletin_id) $pas_bulletin = " oal.arc_expl_bulletin!=$bulletin_id AND "; // Ajout ici de la liste des notices lues par les lecteurs de cette notice $rqt_autres_lectures = "SELECT oal.arc_expl_notice, oal.arc_expl_bulletin, count(*) AS total_prets, trim(concat(ifnull(notices_m.tit1,''),ifnull(notices_s.tit1,''),' ',ifnull(bulletin_numero,''), if(mention_date, concat(' (',mention_date,')') ,if (date_date, concat(' (',date_format(date_date, '%d/%m/%Y'),')') ,'')))) as tit, if(notices_m.notice_id, notices_m.notice_id, notices_s.notice_id) as not_id FROM ((((pret_archive AS oal JOIN (SELECT distinct arc_id_empr FROM pret_archive nbec where (nbec.arc_expl_notice='".$notice_id."' AND nbec.arc_expl_bulletin='".$bulletin_id."') AND nbec.arc_id_empr !=0) as nbec ON (oal.arc_id_empr=nbec.arc_id_empr and oal.arc_id_empr!=0 and nbec.arc_id_empr!=0)) LEFT JOIN notices AS notices_m ON arc_expl_notice = notices_m.notice_id ) LEFT JOIN bulletins ON arc_expl_bulletin = bulletins.bulletin_id) LEFT JOIN notices AS notices_s ON bulletin_notice = notices_s.notice_id) WHERE $restrict_date $pas_notice $pas_bulletin oal.arc_id_empr !=0 GROUP BY oal.arc_expl_notice, oal.arc_expl_bulletin HAVING total_prets>=$opac_autres_lectures_nb_mini_emprunts ORDER BY $opac_autres_lectures_tri "; $res_autres_lectures = mysql_query($rqt_autres_lectures); if (!$res_autres_lectures) return $results; if (mysql_num_rows($res_autres_lectures)) { $odd_even=1; $inotvisible=0; $aresult = array(); //droits d'acces emprunteur/notice $acces_j=''; if ($gestion_acces_active==1 && $gestion_acces_empr_notice==1) { $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=''; $statut_r=''; } else { $statut_j=',notice_statut'; $statut_r="and statut=id_notice_statut and ((notice_visible_opac=1 and notice_visible_opac_abon=0)".($_SESSION["user_code"]?" or (notice_visible_opac_abon=1 and notice_visible_opac=1)":"").")"; } while (($data=mysql_fetch_array($res_autres_lectures))) { // $inotvisible<=$opac_autres_lectures_nb_maxi $requete = "SELECT 1 "; $requete .= " FROM notices $acces_j $statut_j WHERE notice_id='".$data[not_id]."' $statut_r "; $myQuery = mysql_query($requete, $dbh); if (mysql_num_rows($myQuery) && $inotvisible<=$opac_autres_lectures_nb_maxi) { // mysql_num_rows($myQuery) $inotvisible++; $titre = $data['tit']; // ********** $responsab = array("responsabilites" => array(),"auteurs" => array()); // les auteurs $responsab = get_notice_authors($data['not_id']) ; $as = array_search ("0", $responsab["responsabilites"]) ; if ($as!== FALSE && $as!== NULL) { $auteur_0 = $responsab["auteurs"][$as] ; $auteur = new auteur($auteur_0["id"]); $mention_resp = $auteur->isbd_entry; } else { $as = array_keys ($responsab["responsabilites"], "1" ) ; for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_1 = $responsab["auteurs"][$indice] ; $auteur = new auteur($auteur_1["id"]); $aut1_libelle[]= $auteur->isbd_entry; } $mention_resp = implode (", ",$aut1_libelle) ; } $mention_resp ? $auteur = $mention_resp : $auteur=""; // on affiche les résultats if ($odd_even==0) { $pair_impair="odd"; $odd_even=1; } else if ($odd_even==1) { $pair_impair="even"; $odd_even=0; } $aresult["notice_id"] = $data['not_id']; $aresult["notice_title"] = $titre; $aresult["notice_author"] = $auteur; $results[] = $aresult; } } }; return $results; } function get_location_information($location_id) { global $dbh; $result = array(); $location_id += 0; if (!$location_id) throw new Exception("Missing parameter: location_id"); $sql = "SELECT idlocation, location_libelle FROM docs_location WHERE location_visible_opac = 1 AND idlocation = ".$location_id; $res = mysql_query($sql, $dbh); if ($row = mysql_fetch_assoc($res)) $result = array( "location_id" => $row["idlocation"], "location_caption" => utf8_normalize($row["location_libelle"]) ); return $result; } function get_location_information_and_sections($location_id) { return array( "location" => $this->get_location_information($location_id), "sections" => $this->list_sections($location_id) ); } function get_section_information($section_id) { global $dbh; $result = array(); $section_id+=0; if (!$section_id) throw new Exception("Missing parameter: section_id"); $requete="select idsection, section_libelle, section_pic, expl_location from docs_section, exemplaires where idsection = ".$section_id." and section_visible_opac=1 and expl_section=idsection group by idsection order by section_libelle "; $resultat=mysql_query($requete); if ($r=mysql_fetch_object($resultat)) { $result["section_id"] = $r->idsection; $result["section_location"] = $r->expl_location; $result["section_caption"] = utf8_normalize($r->section_libelle); $result["section_image"] = $r->section_pic ? utf8_normalize($r->section_pic) : "images/rayonnage-small.png"; } return $result; } function get_all_locations_and_sections() { global $dbh; $results = array(); $sql = "SELECT idlocation, location_libelle FROM docs_location WHERE location_visible_opac = 1"; $res = mysql_query($sql, $dbh); while($row = mysql_fetch_assoc($res)) { $aresult = array( 'location' => array( "location_id" => $row["idlocation"], "location_caption" => utf8_normalize($row["location_libelle"]) ), 'sections' => array(), ); $sql2="select idsection, section_libelle, section_pic from docs_section, exemplaires where expl_location=".($row["idlocation"])." and section_visible_opac=1 and expl_section=idsection group by idsection order by section_libelle "; $res2=mysql_query($sql2); $n=0; while ($r=mysql_fetch_object($res2)) { $asection = array(); $asection["section_id"] = $r->idsection; $asection["section_location"] = $row["idlocation"]; $asection["section_caption"] = utf8_normalize($r->section_libelle); $asection["section_image"] = $r->section_pic ? utf8_normalize($r->section_pic) : "images/rayonnage-small.png"; $aresult['sections'][] = $asection; } $results[] = $aresult; } return $results; } function get_infopage($infopage_id,$js_subst="",$encoding){ global $dbh,$charset,$opac_url_base; $requete = "SELECT content_infopage FROM infopages WHERE id_infopage = $infopage_id"; $result = mysql_query($requete,$dbh); if (mysql_num_rows($result)){ $infopage = mysql_result($result,0,0); if($js_subst){ $infopage = str_replace($opac_url_base."index.php?lvl=infopages&pagesid=","!!INFOPAGE_URL!!",$infopage); preg_match_all("/!!INFOPAGE_URL!!([0-9]+)/",$infopage,$tab); for ($i = 0; $itable as $key => $value){ $marc_list->table[$key] = utf8_encode($value); } } return $marc_list->table; } } ?>