/** * Gestion des droits d'accès emprunteur/notice */ private function fetch_visibilite() { global $dbh; global $hide_explnum; global $gestion_acces_active, $gestion_acces_empr_notice, $gestion_acces_empr_docnum; if ($gestion_acces_active == 1 && ($gestion_acces_empr_notice == 1 || $gestion_acces_empr_docnum == 1)) { $ac = new acces(); } if ($gestion_acces_active == 1 && $gestion_acces_empr_notice == 1) { $this->dom_2 = $ac->setDomain(2); if ($hide_explnum) { $this->rights = $this->dom_2->getRights($_SESSION['id_empr_session'], $this->id, 4); } else { $this->rights = $this->dom_2->getRights($_SESSION['id_empr_session'], $this->id); } } else { $query = "SELECT opac_libelle, notice_visible_opac, expl_visible_opac, notice_visible_opac_abon, expl_visible_opac_abon, explnum_visible_opac, explnum_visible_opac_abon FROM notice_statut WHERE id_notice_statut='" . $this->notice->statut . "' "; $result = pmb_mysql_query($query, $dbh); if (pmb_mysql_num_rows($result)) { $statut_temp = pmb_mysql_fetch_object($result); $this->statut_notice = $statut_temp->opac_libelle; $this->visu_notice = $statut_temp->notice_visible_opac; $this->visu_notice_abon = $statut_temp->notice_visible_opac_abon; $this->visu_expl = $statut_temp->expl_visible_opac; $this->visu_expl_abon = $statut_temp->expl_visible_opac_abon; $this->visu_explnum = $statut_temp->explnum_visible_opac; $this->visu_explnum_abon = $statut_temp->explnum_visible_opac_abon; if ($hide_explnum) { $this->visu_explnum = 0; $this->visu_explnum_abon = 0; } } } if ($gestion_acces_active == 1 && $gestion_acces_empr_docnum == 1) { $this->dom_3 = $ac->setDomain(3); } }
/** * Retourne les infos de documents numériques associés à la notice * @return array */ public function get_explnums_datas() { if (!isset($this->explnums_datas)) { global $dbh; global $charset; global $opac_url_base; global $opac_visionneuse_allow; global $opac_photo_filtre_mimetype; global $opac_explnum_order; global $opac_show_links_invisible_docnums; global $gestion_acces_active, $gestion_acces_empr_notice, $gestion_acces_empr_docnum; $this->explnums_datas = array('nb_explnums' => 0, 'explnums' => array(), 'visionneuse_script' => ' <script type="text/javascript"> if(typeof(sendToVisionneuse) == "undefined"){ var sendToVisionneuse = function (explnum_id){ document.getElementById("visionneuseIframe").src = "visionneuse.php?"+(typeof(explnum_id) != "undefined" ? "explnum_id="+explnum_id : ""); } } </script>'); global $_mimetypes_bymimetype_, $_mimetypes_byext_; if (!count($_mimetypes_bymimetype_)) { create_tableau_mimetype(); } $this->get_bul_info(); // récupération du nombre d'exemplaires $query = "SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_vignette, explnum_nomfichier, explnum_extfichier, explnum_docnum_statut FROM explnum WHERE "; if ($this->get_niveau_biblio() != 'b') { $query .= "explnum_notice='" . $this->id . "' "; } else { $query .= "explnum_bulletin='" . $this->parent['bulletin_id'] . "' or explnum_notice='" . $this->id . "' "; } $query .= "union SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_vignette, explnum_nomfichier, explnum_extfichier, explnum_docnum_statut\n\t\t\tFROM explnum, bulletins\n\t\t\tWHERE bulletin_id = explnum_bulletin\n\t\t\tAND bulletins.num_notice='" . $this->id . "'"; if ($opac_explnum_order) { $query .= " order by " . $opac_explnum_order; } else { $query .= " order by explnum_mimetype, explnum_nom, explnum_id "; } $res = pmb_mysql_query($query, $dbh); $nb_explnums = pmb_mysql_num_rows($res); $docnum_visible = true; if ($gestion_acces_active == 1 && $gestion_acces_empr_notice == 1) { $docnum_visible = $this->dom_2->getRights($_SESSION['id_empr_session'], $this->id, 16); } else { $query = "SELECT explnum_visible_opac, explnum_visible_opac_abon FROM notices, notice_statut WHERE notice_id ='" . $this->id . "' and id_notice_statut=statut "; $result = pmb_mysql_query($query, $dbh); if ($result && pmb_mysql_num_rows($result)) { $statut_temp = pmb_mysql_fetch_object($result); if (!$statut_temp->explnum_visible_opac) { $docnum_visible = false; } if ($statut_temp->explnum_visible_opac_abon && !$_SESSION['id_empr_session']) { $docnum_visible = false; } } else { $docnum_visible = false; } } if ($nb_explnums && ($docnum_visible || $opac_show_links_invisible_docnums)) { // on récupère les données des exemplaires global $search_terms; while ($expl = pmb_mysql_fetch_object($res)) { // couleur de l'img en fonction du statut if ($expl->explnum_docnum_statut) { $rqt_st = "SELECT * FROM explnum_statut WHERE id_explnum_statut='" . $expl->explnum_docnum_statut . "' "; $Query_statut = pmb_mysql_query($rqt_st, $dbh) or die($rqt_st . " " . pmb_mysql_error()); $r_statut = pmb_mysql_fetch_object($Query_statut); $explnum_class = 'docnum_' . $r_statut->class_html; if ($expl->explnum_docnum_statut > 1) { $explnum_opac_label = $r_statut->opac_libelle; } else { $explnum_opac_label = ''; } } else { $explnum_class = 'docnum_statutnot1'; $explnum_opac_label = ''; } $explnum_docnum_visible = true; $explnum_docnum_consult = true; if ($gestion_acces_active == 1 && $gestion_acces_empr_docnum == 1) { $explnum_docnum_visible = $this->dom_3->getRights($_SESSION['id_empr_session'], $expl->explnum_id, 16); $explnum_docnum_consult = $this->dom_3->getRights($_SESSION['id_empr_session'], $expl->explnum_id, 4); } else { $requete = "SELECT explnum_visible_opac, explnum_visible_opac_abon, explnum_consult_opac, explnum_consult_opac_abon FROM explnum, explnum_statut WHERE explnum_id ='" . $expl->explnum_id . "' and id_explnum_statut=explnum_docnum_statut "; $myQuery = pmb_mysql_query($requete, $dbh); if (pmb_mysql_num_rows($myQuery)) { $statut_temp = pmb_mysql_fetch_object($myQuery); if (!$statut_temp->explnum_visible_opac) { $explnum_docnum_visible = false; } if (!$statut_temp->explnum_consult_opac) { $explnum_docnum_consult = false; } if ($statut_temp->explnum_visible_opac_abon && !$_SESSION['id_empr_session']) { $explnum_docnum_visible = false; } if ($statut_temp->explnum_consult_opac_abon && !$_SESSION['id_empr_session']) { $explnum_docnum_consult = false; } } else { $explnum_docnum_visible = false; } } if ($explnum_docnum_visible || $opac_show_links_invisible_docnums) { $this->explnums_datas['nb_explnums']++; $explnum_datas = array('id' => $expl->explnum_id, 'name' => $expl->explnum_nom, 'mimetype' => $expl->explnum_mimetype, 'url' => $expl->explnum_url, 'filename' => $expl->explnum_nomfichier, 'extension' => $expl->explnum_extfichier, 'statut' => $expl->explnum_docnum_statut, 'consultation' => $explnum_docnum_consult); if ($expl->explnum_vignette) { $explnum_datas['thumbnail_url'] = $opac_url_base . 'vig_num.php?explnum_id=' . $expl->explnum_id; } else { // trouver l'icone correspondant au mime_type $explnum_datas['thumbnail_url'] = get_url_icon('mimetype/' . icone_mimetype($expl->explnum_mimetype, $expl->explnum_extfichier), 1); } $words_to_find = ""; if ($expl->explnum_mimetype == 'application/pdf' || $expl->explnum_mimetype == 'URL' && strpos($expl->explnum_nom, '.pdf') !== false) { if (is_array($search_terms)) { $words_to_find = "#search=\"" . trim(str_replace('*', '', implode(' ', $search_terms))) . "\""; } } $explnum_datas['access_datas'] = array('script' => '', 'href' => '#', 'onclick' => ''); //si l'affichage du lien vers les documents numériques est forcé et qu'on est pas connecté, on propose l'invite de connexion! if (!$explnum_docnum_visible && $opac_show_links_invisible_docnums && !$_SESSION['id_empr_session']) { if ($opac_visionneuse_allow) { $allowed_mimetype = explode(",", str_replace("'", "", $opac_photo_filtre_mimetype)); } if ($allowed_mimetype && in_array($expl->explnum_mimetype, $allowed_mimetype)) { $explnum_datas['access_datas']['script'] = "\n\t\t\t\t\t\t\t\t<script type='text/javascript'>\n\t\t\t\t\t\t\t\t\tfunction sendToVisionneuse_" . $expl->explnum_id . "(){\n\t\t\t\t\t\t\t\t\t\topen_visionneuse(sendToVisionneuse," . $expl->explnum_id . ");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>"; $explnum_datas['access_datas']['onclick'] = "auth_popup('./ajax.php?module=ajax&categ=auth&callback_func=sendToVisionneuse_" . $expl->explnum_id . "');"; } else { $explnum_datas['access_datas']['onclick'] = "auth_popup('./ajax.php?module=ajax&categ=auth&new_tab=1&callback_url=" . rawurlencode($opac_url_base . "doc_num.php?explnum_id=" . $expl->explnum_id) . "')"; } } else { if ($opac_visionneuse_allow) { $allowed_mimetype = explode(",", str_replace("'", "", $opac_photo_filtre_mimetype)); } if ($allowed_mimetype && in_array($expl->explnum_mimetype, $allowed_mimetype)) { $explnum_datas['access_datas']['onclick'] = "open_visionneuse(sendToVisionneuse," . $expl->explnum_id . ");return false;"; } else { $explnum_datas['access_datas']['href'] = $opac_url_base . 'doc_num.php?explnum_id=' . $expl->explnum_id; } } if ($_mimetypes_byext_[$expl->explnum_extfichier]["label"]) { $explnum_datas['mimetype_label'] = $_mimetypes_byext_[$expl->explnum_extfichier]["label"]; } elseif ($_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"]) { $explnum_datas['mimetype_label'] = $_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"]; } else { $explnum_datas['mimetype_label'] = $expl->explnum_mimetype; } $this->explnums_datas['explnums'][] = $explnum_datas; } } } } return $this->explnums_datas; }