table; } // définition de la classe d'affichage des notices class notice_affichage { public $notice_id = 0; // id de la notice à afficher public $notice_header = "" ; // titre + auteur principaux public $notice_header_without_html = "" ; // titre + auteur principaux sans public $notice_header_with_link="" ; // titre + auteur principaux avec un lien sur la notice public $notice_header_globe_link = "" ; // le globe du lien // le terme affichage correspond au code HTML qui peut être envoyé avec un print public $notice_isbd = "" ; // Affichage ISBD de la notice public $notice_public = "" ; // Affichage public PMB de la notice public $notice_indexations = "" ; // Affichage des indexations catégories et mots clés, peut être ajouté à $notice_isbd ou à $notice_public afin d'avoir l'affichage complet PMB public $notice_exemplaires = "" ; // Affichage des exemplaires, peut être ajouté à $notice_isbd ou à $notice_public afin d'avoir l'affichage complet PMB public $notice_explnum = "" ; // Affichage des exemplaires numériques, peut être ajouté à $notice_isbd ou à $notice_public afin d'avoir l'affichage complet PMB public $notice_notes = "" ; // Affichage des notes de contenu et résumé, peut être ajouté à $notice_isbd ou à $notice_public afin d'avoir l'affichage complet PMB public $notice; // objet notice tel que fetché dans la table notices, // augmenté de $this->notice->serie_name si série il y a // augmenté de n_gen, n_contenu, n_resume si on est allé les chercher car non ISBD standard public $responsabilites = array("responsabilites" => array(),"auteurs" => array()); // les auteurs avec tout ce qu'il faut public $categories = array(); // les id des categories public $auteurs_principaux = "" ; // ce qui apparait après le titre pour le header public $auteurs_tous = "" ; // Tous les auteurs avec leur fonction public $categories_toutes = "" ; // Toutes les catégories dans lesquelles est rangée la notice public $lien_rech_notice ; public $lien_rech_auteur ; public $lien_rech_editeur ; public $lien_rech_serie ; public $lien_rech_collection ; public $lien_rech_subcollection ; public $lien_rech_indexint ; public $lien_rech_motcle ; public $lien_rech_categ ; public $lien_rech_perio ; public $lien_rech_bulletin ; public $liens = array(); public $langues = array(); public $languesorg = array(); public $action = ''; // URL à associer au header public $header = ''; // chaine accueillant le chapeau de notice (peut-être cliquable) public $tit_serie = ''; // titre de série si applicable public $tit1 = ''; // valeur du titre 1 public $result = ''; // affichage final public $isbd = ''; // isbd de la notice en fonction du level défini public $expl = 0; // flag indiquant si on affiche les infos d'exemplaire public $link_expl = ''; // lien associé à un exemplaire public $show_resa = 0; // flag indiquant si on affiche les infos de resa public $p_perso; public $cart_allowed = 0; public $avis_allowed = 0; public $tag_allowed = 0; public $sugg_allowed = 0; public $liste_lecture_allowed = 0; public $to_print = 0; public $affichage_resa_expl = "" ; // lien réservation, exemplaires et exemplaires numériques, en tableau comme il faut public $affichage_expl = "" ; // la même chose mais sans le lien réservation public $affichage_avis_detail=""; // affichage des avis de lecteurs public $statut = 1 ; // Statut (id) de la notice public $statut_notice = "" ; // Statut (libellé) de la notice public $visu_notice = 1 ; // Visibilité de la notice à tout le monde public $visu_notice_abon = 0 ; // Visibilité de la notice aux abonnés uniquement public $visu_expl = 1 ; // Visibilité des exemplaires de la notice à tout le monde public $visu_expl_abon = 0 ; // Visibilité des exemplaires de la notice aux abonnés uniquement public $visu_explnum = 1 ; // Visibilité des exemplaires numériques de la notice à tout le monde public $visu_explnum_abon = 0 ;// Visibilité des exemplaires numériques de la notice aux abonnés uniquement public $visu_scan_request = 1; // Visibilité du lien de demande de numérisation public $visu_scan_request_abon = 0; // Visibilité du lien de demande de numérisation aux abonnés uniquement public $childs = array() ; // filles de la notice public $notice_childs = "" ; // l'équivalent à afficher public $anti_loop=""; public $seule = 0 ; public $premier = "PUBLIC" ; public $double_ou_simple = 2 ; public $avis = null; public $antiloop=array(); public $bulletin_id=0; // id du bulletin s'il s'agit d'une notice de bulletin public $dom_2 = NULL; // objet domain public $rights = 0; // droits d'acces emprunteur/notice public $header_only = 0; // pour ne prendre que le nécessaire pour composer le titre public $parents = ""; // la chaine des parents, utilisée pour do_parents en isbd et en public public $no_header = 0 ; // ne pas afficher de header, permet de masquer l'icône public $notice_header_without_doclink=""; // notice_header sans les icones de lien url et d'indication de documents numériques public $notice_header_doclink=""; // les icones de lien url et d'indication de documents numériques public $notice_affichage_cmd; public $notice_affichage_enrichment=""; public $authperso_info=array(); public $datetime = ""; public $hash = ""; public $show_map = 1; protected $affichage_demand = ""; // Bouton de création de demande à partir d'une notice protected $affichage_scan_requests = ""; // Bouton de création de demande de numérisation à partir d'une notice private $parents_header_without_html = false; protected $notice_relations; protected $record_datas; protected $display_childs = true; //affichage ou non des notices filles (dérivable en classe d'aff perso) protected $notice_reduit_format; protected $onglet_perso; // constructeur------------------------------------------------------------ public function __construct($id, $liens="", $cart=0, $to_print=0,$header_only=0,$no_header=0, $show_map=1, $parents_header_without_html = false) { // $id = id de la notice à afficher // $liens = tableau de liens tel que ci-dessous // $cart : afficher ou pas le lien caddie // $to_print = affichage mode impression ou pas global $opac_avis_allow; global $opac_allow_add_tag; global $opac_show_suggest_notice; global $opac_shared_lists; global $gestion_acces_active,$gestion_acces_empr_notice,$gestion_acces_empr_docnum; global $memo_expl; $this->show_map = $show_map; $memo_expl = array(); if (!$id) return; $id = intval($id); //droits d'acces emprunteur/notice $this->dom_2=null; $this->dom_3=null; if ($gestion_acces_active==1 && ($gestion_acces_empr_notice || $gestion_acces_empr_docnum)) { $ac= new acces(); if ($gestion_acces_empr_notice == 1) { $this->dom_2= $ac->setDomain(2); $this->rights= $this->dom_2->getRights($_SESSION['id_empr_session'], $id); } if ($gestion_acces_empr_docnum == 1) { $this->dom_3= $ac->setDomain(3); } } if (!$liens) $liens=array(); $this->set_liens_rech($liens); $this->liens = $liens; $this->cart_allowed = $cart; $this->no_header = $no_header ; if ($to_print) { $this->avis_allowed = 0; $this->tag_allowed = 0; $this->sugg_allowed = 0; $this->liste_lecture_allowed = 0; } else { $this->avis_allowed = $opac_avis_allow; $this->tag_allowed = $opac_allow_add_tag; $this->sugg_allowed = $opac_show_suggest_notice; $this->liste_lecture_allowed = $opac_shared_lists; } $this->to_print = $to_print; $this->header_only = $header_only; // $seule : si 1 la notice est affichée seule et dans ce cas les notices childs sont en mode dépliable global $seule ; $this->seule = $seule ; $this->docnum_allowed = 1; $this->parents_header_without_html = $parents_header_without_html; if(!$id) return; else { $this->notice_id = $id; $this->record_datas = record_display::get_record_datas($this->notice_id); if(!$this->fetch_data()) return; } global $memo_p_perso_notices; if(!$memo_p_perso_notices) $memo_p_perso_notices=$this->p_perso=new parametres_perso("notices"); else $this->p_perso=$memo_p_perso_notices; $date = new DateTime(); $this->datetime = $date->getTimestamp(); $this->hash = $this->generate_hash(); } // récupération des valeurs en table--------------------------------------- public function fetch_data() { global $dbh; global $opac_map_activate; if(is_null($this->dom_2)) { $requete = "SELECT notice_id, typdoc, tit1, tit2, tit3, tit4, tparent_id, tnvol, ed1_id, ed2_id, coll_id, subcoll_id, year, nocoll, mention_edition,code, npages, ill, size, accomp, lien, eformat, index_l, indexint, niveau_biblio, niveau_hierar, origine_catalogage, prix, n_gen, n_contenu, n_resume, statut, thumbnail_url, (opac_visible_bulletinage&0x1) as opac_visible_bulletinage, opac_serialcirc_demande, notice_is_new "; $requete.= "FROM notices WHERE notice_id='".$this->notice_id."' "; } else { $requete = "SELECT notice_id, typdoc, tit1, tit2, tit3, tit4, tparent_id, tnvol, ed1_id, ed2_id, coll_id, subcoll_id, year, nocoll, mention_edition,code, npages, ill, size, accomp, lien, eformat, index_l, indexint, niveau_biblio, niveau_hierar, origine_catalogage, prix, n_gen, n_contenu, n_resume, thumbnail_url, (opac_visible_bulletinage&0x1) as opac_visible_bulletinage, opac_serialcirc_demande, notice_is_new "; $requete.= "FROM notices "; $requete.= "WHERE notice_id='".$this->notice_id."'"; } $myQuery = pmb_mysql_query($requete, $dbh); if(pmb_mysql_num_rows($myQuery)) { $this->notice = pmb_mysql_fetch_object($myQuery); } else { $this->statut_notice = "" ; $this->statut = 0 ; $this->visu_notice = 0 ; $this->visu_notice_abon = 0 ; $this->visu_expl = 0 ; $this->visu_expl_abon = 0 ; $this->visu_explnum = 0 ; $this->visu_explnum_abon = 0 ; $this->visu_scan_request = 0 ; $this->visu_scan_request_abon = 0 ; $this->notice_id=0; $this->opac_visible_bulletinage=0; return 0 ; } if (!$this->notice->typdoc) $this->notice->typdoc='a'; $this->notice->serie_name = ''; if ($this->notice->tparent_id) { $requete_serie = "SELECT serie_name FROM series WHERE serie_id='".$this->notice->tparent_id."' "; $myQuery_serie = pmb_mysql_query($requete_serie, $dbh); if (pmb_mysql_num_rows($myQuery_serie)) { $serie = pmb_mysql_fetch_object($myQuery_serie); $this->notice->serie_name = $serie->serie_name ; } } // serials : si article if ($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar == 2) $this->get_bul_info(); if ($this->notice->niveau_biblio == 'b' && $this->notice->niveau_hierar == 2) $this->get_bul_info(); if(!$this->header_only)$this->fetch_categories(); $this->fetch_auteurs(); $this->fetch_titres_uniformes(); $this->fetch_visibilite(); if(!$this->header_only) $this->fetch_langues(0); if(!$this->header_only) $this->fetch_langues(1); if(!$this->header_only) $this->avis = new avis($this->notice_id); if(!$this->header_only){ $this->authperso_info=array(); $authperso = new authperso_notice($this->notice_id); $this->authperso_info =$authperso->get_info(); } $this->map=new stdClass(); $this->map_info=new stdClass(); if($opac_map_activate==1 || $opac_map_activate==2){ $ids[]=$this->notice_id; $this->map=new map_objects_controler(TYPE_RECORD,$ids); $this->map_info=new map_info($this->notice_id); } // $this->childs=array(); if(!$this->header_only) { $this->notice_relations = notice_relations_collection::get_object_instance($this->notice_id); // if ($this->notice->niveau_biblio =='b') { // if (is_null($this->dom_2)) { // $acces_j=''; // $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)":"").")"; // } else { // $acces_j = $this->dom_2->getJoin($_SESSION['id_empr_session'],4,'notice_id'); // $statut_j = ""; // $statut_r = ""; // } // // notice de bulletins, les relations sont dans la table analysis // $requete = "select analysis_notice as notice_id, 'd' as relation_type from analysis JOIN bulletins ON bulletin_id = analysis_bulletin, notices $acces_j $statut_j "; // $requete.= "where num_notice=$this->notice_id AND notice_id = analysis_notice $statut_r "; // $requete.= "order by analysis_notice ASC"; // $resultat=pmb_mysql_query($requete); // il y a des enfants ? // if (pmb_mysql_num_rows($resultat)) { // while (($r=pmb_mysql_fetch_object($resultat))) $this->childs[$r->relation_type][]=$r->notice_id; // } // } else { // // autres notices // $this->childs = $this->notice_relations->get_childs(); // } $this->do_parents(); } // On traite les connecteurs pour les notices externes $this->do_connectors(); return pmb_mysql_num_rows($myQuery); } // fin fetch_data public function fetch_visibilite() { global $dbh; global $hide_explnum; global $gestion_acces_active,$gestion_acces_empr_notice; if ($gestion_acces_active==1 && $gestion_acces_empr_notice==1) { $ac = new acces(); $this->dom_2= $ac->setDomain(2); if ($hide_explnum) { $this->rights = $this->dom_2->getRights($_SESSION['id_empr_session'],$this->notice_id,4); } else { $this->rights = $this->dom_2->getRights($_SESSION['id_empr_session'],$this->notice_id); } } else { $requete = "SELECT opac_libelle, notice_visible_opac, expl_visible_opac, notice_visible_opac_abon, expl_visible_opac_abon, explnum_visible_opac, explnum_visible_opac_abon, notice_scan_request_opac, notice_scan_request_opac_abon FROM notice_statut WHERE id_notice_statut='".$this->notice->statut."' "; $myQuery = pmb_mysql_query($requete, $dbh); if(pmb_mysql_num_rows($myQuery)) { $statut_temp = pmb_mysql_fetch_object($myQuery); $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; $this->visu_scan_request = $statut_temp->notice_scan_request_opac; $this->visu_scan_request_abon = $statut_temp->notice_scan_request_opac_abon; if ($hide_explnum) { $this->visu_explnum=0; $this->visu_explnum_abon=0; } } } } // fin fetch_visibilite() public function get_display_author_name($author_name='', $author_rejete='') { if ($author_rejete) $display = $author_rejete." ".$author_name; else $display = $author_name; return $display; } protected function displayed_responsability_fonction() { return true; } public function get_responsabilites() { global $fonction_auteur; global $dbh, $pmb_authors_qualification; $this->responsabilites = array( 'responsabilites' => array(), 'auteurs' => array() ); $rqt = "SELECT author_id, responsability_fonction, responsability_type, id_responsability, author_type,author_name, author_rejete, author_type, author_date, author_see, author_web, author_isni "; $rqt.= "FROM responsability, authors "; $rqt.= "WHERE responsability_notice='".$this->notice_id."' AND responsability_author=author_id "; $rqt.= "ORDER BY responsability_type, responsability_ordre " ; $res_sql = pmb_mysql_query($rqt, $dbh); while (($notice=pmb_mysql_fetch_object($res_sql))) { $this->responsabilites['responsabilites'][] = $notice->responsability_type ; $info_bulle=""; if($notice->author_type==72 || $notice->author_type==71) { $congres=new auteur($notice->author_id); $auteur_isbd=$congres->get_isbd(); $auteur_titre=$congres->display; $info_bulle=" title='".$congres->info_bulle."' "; } else { $auteur_isbd = $this->get_display_author_name($notice->author_name, $notice->author_rejete); // on s'arrête là pour auteur_titre = "Prénom NOM" uniquement $auteur_titre = $auteur_isbd ; // on complète auteur_isbd pour l'affichage complet if ($notice->author_date) $auteur_isbd .= " (".$notice->author_date.")" ; } $qualification = ''; if ($pmb_authors_qualification) { if ($notice->responsability_type == 0) { $vedette_type = TYPE_NOTICE_RESPONSABILITY_PRINCIPAL; } elseif ($notice->responsability_type == 1) { $vedette_type = TYPE_NOTICE_RESPONSABILITY_AUTRE; } else { $vedette_type = TYPE_NOTICE_RESPONSABILITY_SECONDAIRE; } $qualif_id = vedette_composee::get_vedette_id_from_object($notice->id_responsability, $vedette_type); if($qualif_id){ $qualif = new vedette_composee($qualif_id); $qualification = $qualif->get_label(); } } // URL de l'auteur if ($notice->author_web) $auteur_web_link = " "; else $auteur_web_link = "" ; if (!$this->to_print) $auteur_isbd .= $auteur_web_link ; $auteur_isbd = inslink($auteur_isbd, str_replace("!!id!!", $notice->author_id, $this->lien_rech_auteur),$info_bulle) ; if ($notice->responsability_fonction && $this->displayed_responsability_fonction()) $auteur_isbd .= ", ".$fonction_auteur[$notice->responsability_fonction] ; $this->responsabilites['auteurs'][] = array( 'id' => $notice->author_id, 'fonction' => $notice->responsability_fonction, 'responsability' => $notice->responsability_type, 'name' => $notice->author_name, 'rejete' => $notice->author_rejete, 'date' => $notice->author_date, 'type' => $notice->author_type, 'fonction_aff' => ($notice->responsability_fonction ? $fonction_auteur[$notice->responsability_fonction] : ''), 'qualification' => $qualification, 'auteur_isbd' => $auteur_isbd, 'auteur_titre' => $auteur_titre, 'isni' => $notice->author_isni ) ; } return $this->responsabilites; } // récupération des auteurs --------------------------------------------------------------------- // retourne $this->auteurs_principaux = ce qu'on va afficher en titre du résultat // retourne $this->auteurs_tous = ce qu'on va afficher dans l'isbd // NOTE: now we have two functions: // fetch_auteurs() the pmb-standard one public function fetch_auteurs() { global $fonction_auteur; $this->get_responsabilites(); // $this->auteurs_principaux // on ne prend que le auteur_titre = "Prénom NOM" $this->auteurs_principaux = $this->record_datas->get_auteurs_principaux(); // $this->auteurs_tous $mention_resp = array() ; $congres_resp = array() ; $as = array_search ("0", $this->responsabilites["responsabilites"]) ; if ($as!== FALSE && $as!== NULL) { $auteur_0 = $this->responsabilites["auteurs"][$as] ; $mention_resp_lib = $auteur_0["auteur_isbd"]; if($this->responsabilites["auteurs"][$as]["type"]==72) { $congres_resp[] = $mention_resp_lib ; } else { $mention_resp[] = $mention_resp_lib ; } } $as = array_keys ($this->responsabilites["responsabilites"], "1" ) ; for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_1 = $this->responsabilites["auteurs"][$indice] ; $mention_resp_lib = $auteur_1["auteur_isbd"]; if($this->responsabilites["auteurs"][$indice]["type"]==72) { $congres_resp[] = $mention_resp_lib ; } else { $mention_resp[] = $mention_resp_lib ; } } $as = array_keys ($this->responsabilites["responsabilites"], "2" ) ; for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_2 = $this->responsabilites["auteurs"][$indice] ; $mention_resp_lib = $auteur_2["auteur_isbd"]; if($this->responsabilites["auteurs"][$indice]["type"]==72) { $congres_resp[] = $mention_resp_lib ; } else { $mention_resp[] = $mention_resp_lib ; } } $libelle_mention_resp = implode (" ; ",$mention_resp) ; if ($libelle_mention_resp) $this->auteurs_tous = $libelle_mention_resp ; else $this->auteurs_tous ="" ; $libelle_congres_resp = implode (" ; ",$congres_resp) ; if ($libelle_congres_resp) $this->congres_tous = $libelle_congres_resp ; else $this->congres_tous ="" ; } // fin fetch_auteurs // requête de récupération des categories ------------------------------------------------------------------ public function get_query_categories() { global $lang; global $opac_thesaurus, $opac_thesaurus_defaut; global $opac_categories_affichage_ordre; $query = "select * from ( select libelle_thesaurus, if (catlg.num_noeud is null, catdef.libelle_categorie, catlg.libelle_categorie ) as categ_libelle, if (catlg.num_noeud is null, catdef.comment_public, catlg.comment_public ) as comment_public, noeuds.id_noeud , noeuds.num_parent, langue_defaut,id_thesaurus, if(catdef.langue = '".$lang."',2, if(catdef.langue= thesaurus.langue_defaut ,1,0)) as p, ordre_vedette, ordre_categorie FROM ((noeuds join thesaurus ON thesaurus.id_thesaurus = noeuds.num_thesaurus left join categories as catdef on noeuds.id_noeud=catdef.num_noeud and catdef.langue = thesaurus.langue_defaut left join categories as catlg on catdef.num_noeud = catlg.num_noeud and catlg.langue = '".$lang."')) ,notices_categories where "; if(!$opac_thesaurus && $opac_thesaurus_defaut)$query .=" thesaurus.id_thesaurus='".$opac_thesaurus_defaut."' AND "; $query .=" notices_categories.num_noeud=noeuds.id_noeud and notices_categories.notcateg_notice=".$this->notice_id." order by id_thesaurus, noeuds.id_noeud, p desc ) as list_categ group by id_noeud"; if ($opac_categories_affichage_ordre==1) $query .= " order by ordre_vedette, ordre_categorie"; return $query; } protected function get_display_categories($categ_repetables) { global $opac_categories_affichage_ordre; global $opac_thesaurus, $opac_categories_categ_in_line; global $pmb_keyword_sep; $tmpcateg_aff = ''; foreach ($categ_repetables as $nom_thesaurus => $val_lib) { //c'est un tri par libellé qui est demandé if ($opac_categories_affichage_ordre==0){ $tmp=array(); foreach ( $val_lib as $key => $value ) { $tmp[$key]=strip_tags($value); } $tmp=array_map("convert_diacrit",$tmp);//On enlève les accents $tmp=array_map("strtoupper",$tmp);//On met en majuscule asort($tmp);//Tri sur les valeurs en majuscule sans accent foreach ( $tmp as $key => $value ) { $tmp[$key]=$val_lib[$key];//On reprend les bons couples clé / libellé } $val_lib=$tmp; } if ($opac_thesaurus) { if (!$opac_categories_categ_in_line) { $categ_repetables_aff = "[".$nom_thesaurus."] ".implode("
[".$nom_thesaurus."] ",$val_lib) ; }else { $categ_repetables_aff = "".$nom_thesaurus."
".implode(" $pmb_keyword_sep ",$val_lib) ; } } elseif (!$opac_categories_categ_in_line) { $categ_repetables_aff = implode("
",$val_lib) ; } else { $categ_repetables_aff = implode(" $pmb_keyword_sep ",$val_lib) ; } if($categ_repetables_aff) $tmpcateg_aff .= "$categ_repetables_aff
"; } return $tmpcateg_aff; } // récupération des categories ------------------------------------------------------------------ public function fetch_categories() { global $opac_thesaurus, $opac_categories_categ_in_line, $opac_categories_affichage_ordre; global $lang,$opac_categories_show_only_last; global $categories_memo,$libelle_thesaurus_memo; global $categories_top; $categ_repetables = array() ; if(!isset($categories_top) || !is_array($categories_top) || !count($categories_top)) { $q = "select id_noeud from noeuds where autorite='TOP' "; $r = pmb_mysql_query($q); while(($res = pmb_mysql_fetch_object($r))) { $categories_top[]=$res->id_noeud; } } $requete = $this->get_query_categories(); $result_categ=@pmb_mysql_query($requete); if (pmb_mysql_num_rows($result_categ)) { while(($res_categ = pmb_mysql_fetch_object($result_categ))) { $libelle_thesaurus=$res_categ->libelle_thesaurus; $categ_id=$res_categ->id_noeud ; $libelle_categ=$res_categ->categ_libelle ; $comment_public=$res_categ->comment_public ; $num_parent=$res_categ->num_parent ; $langue_defaut=$res_categ->langue_defaut ; $categ_head=0; if(in_array($num_parent,$categories_top))$categ_head=1; if ($opac_categories_show_only_last || $categ_head) { if ($opac_thesaurus) $catalog_form="[".$libelle_thesaurus."] ".$libelle_categ; // Si il y a présence d'un commentaire affichage du layer $result_com = categorie::zoom_categ($categ_id, $comment_public); $libelle_aff_complet = inslink($libelle_categ, str_replace("!!id!!", $categ_id, $this->lien_rech_categ), $result_com['java_com']); $libelle_aff_complet .= $result_com['zoom']; if ($opac_thesaurus) $categ_repetables[$libelle_thesaurus][] =$libelle_aff_complet; else $categ_repetables['MONOTHESAURUS'][] =$libelle_aff_complet ; } else { if(!isset($categories_memo[$categ_id]) || !$categories_memo[$categ_id]) { $anti_recurse[$categ_id]=1; $path_table = array(); $requete = " select id_noeud as categ_id, num_noeud, num_parent as categ_parent, libelle_categorie as categ_libelle, num_renvoi_voir as categ_see, note_application as categ_comment, if(langue = '".$lang."',2, if(langue= '".$langue_defaut."' ,1,0)) as p FROM noeuds, categories where id_noeud ='".$num_parent."' AND noeuds.id_noeud = categories.num_noeud order by p desc limit 1"; $result=@pmb_mysql_query($requete); if (pmb_mysql_num_rows($result)) { $parent = pmb_mysql_fetch_object($result); $anti_recurse[$parent->categ_id]=1; $path_table[] = array( 'id' => $parent->categ_id, 'libelle' => $parent->categ_libelle); // on remonte les ascendants if(!isset($anti_recurse[$parent->categ_parent])) $anti_recurse[$parent->categ_parent] = 0; while (($parent->categ_parent)&&(!$anti_recurse[$parent->categ_parent])) { $requete = "select id_noeud as categ_id, num_noeud, num_parent as categ_parent, libelle_categorie as categ_libelle, num_renvoi_voir as categ_see, note_application as categ_comment, if(langue = '".$lang."',2, if(langue= '".$langue_defaut."' ,1,0)) as p FROM noeuds, categories where id_noeud ='".$parent->categ_parent."' AND noeuds.id_noeud = categories.num_noeud order by p desc limit 1"; $result=@pmb_mysql_query($requete); if (pmb_mysql_num_rows($result)) { $parent = pmb_mysql_fetch_object($result); $anti_recurse[$parent->categ_id]=1; $path_table[] = array( 'id' => $parent->categ_id, 'libelle' => $parent->categ_libelle); if(!isset($anti_recurse[$parent->categ_parent])) $anti_recurse[$parent->categ_parent] = 0; } else { break; } } $anti_recurse=array(); } else $path_table=array(); // ceci remet le tableau dans l'ordre général->particulier $path_table = array_reverse($path_table); if(sizeof($path_table)) { $temp_table = array(); foreach ($path_table as $xi => $l) { $temp_table[] = $l['libelle']; } $parent_libelle = join(':', $temp_table); $catalog_form = $parent_libelle.':'.$libelle_categ; } else { $catalog_form = $libelle_categ; } // pour libellé complet mais sans le nom du thésaurus $libelle_aff_complet = $catalog_form ; if ($opac_thesaurus) $catalog_form="[".$libelle_thesaurus."] ".$catalog_form; //$categ = new category($categ_id); // Si il y a présence d'un commentaire affichage du layer $result_com = categorie::zoom_categ($categ_id, $comment_public); $libelle_aff_complet = inslink($libelle_aff_complet, str_replace("!!id!!", $categ_id, $this->lien_rech_categ), $result_com['java_com']); $libelle_aff_complet .= $result_com['zoom']; if ($opac_thesaurus) $categ_repetables[$libelle_thesaurus][] =$libelle_aff_complet; else $categ_repetables['MONOTHESAURUS'][] =$libelle_aff_complet ; $categories_memo[$categ_id]=$libelle_aff_complet; $libelle_thesaurus_memo[$categ_id]=$libelle_thesaurus; } else { if ($opac_thesaurus) $categ_repetables[$libelle_thesaurus_memo[$categ_id]][] =$categories_memo[$categ_id]; else $categ_repetables['MONOTHESAURUS'][] =$categories_memo[$categ_id] ; } } } } $this->categories_toutes = $this->get_display_categories($categ_repetables); } // fin fetch_categories() //Titres uniformes public function fetch_titres_uniformes() { global $opac_url_base; $this->notice->tu= new tu_notice($this->notice_id); $this->notice->tu_print_type_2=$this->notice->tu->get_print_type($opac_url_base."index.php?lvl=titre_uniforme_see&id=" ); } // fin fetch_titres_uniformes() public function fetch_langues($quelle_langues=0) { $langues = $this->record_datas->get_langues(); if (!$quelle_langues) $this->langues = $langues['langues']; else $this->languesorg = $langues['languesorg']; } // fin fetch_langues($quelle_langues=0) public function affichage_etat_collections() { $affichage = record_display::get_display_collstate($this->notice_id); return $affichage; } // fin affichage_etat_collections() public function get_display_collstates_bulletin_notice() { global $msg; global $pmb_etat_collections_localise; $display = ''; $query = "select bulletin_id from bulletins where num_notice=".$this->notice->notice_id; $result = pmb_mysql_query($query); if (pmb_mysql_num_rows($result)) { $row = pmb_mysql_fetch_object($result); $collstate = new collstate(0,0,$row->bulletin_id); if($pmb_etat_collections_localise) { $collstate->get_display_list("",0,0,0,1); } else { $collstate->get_display_list("",0,0,0,0); } if($collstate->nbr) { $display .= "

".$msg["perio_etat_coll"]."

"; $display .= $collstate->liste; } } return $display; } // fin get_display_collstates_bulletin_notice() public function get_display_analysis_bulletin_notice() { $affichage = record_display::get_display_analysis_list($this->notice_id); return $affichage; } // fin get_display_analysis_bulletin_notice() public function construit_liste_langues($tableau) { return record_display::get_lang_list($tableau); } // fin construit_liste_langues($tableau) public function get_avis() { if(!is_object($this->avis)) { $this->avis = new avis($this->notice_id); } return $this->avis; } // Fonction d'affichage des avis public function affichage_avis() { return $this->get_avis()->get_display(); } // fin affichage_avis public function avis_detail() { return $this->get_avis()->get_display_detail(); } //Fonction d'affichage des suggestions public function affichage_suggestion(){ return record_display::get_display_suggestion($this->notice_id); } // fin affichage_suggestion() //Affichage de l'icône permettant d'ajouter la notice à une liste de lecture public function affichage_liste_lecture() { global $msg; return " \"".$msg['notice_title_liste_lecture']."\"
notice_id."', position:['below']\">
".$msg['notice_title_liste_lecture']."
".liste_lecture::gen_selector_my_list($this->notice_id)."
"; } public function get_img_plus_css_class() { return 'img_plus'; } // génération du de l'affichage double avec onglets --------------------------------------------- // si $depliable=1 alors inclusion du parent / child public function genere_double($depliable=1, $premier='ISBD') { global $msg,$charset; global $cart_aff_case_traitement; global $opac_url_base ; global $opac_notice_enrichment; global $opac_show_social_network; global $allow_tag; // l'utilisateur a-t-il le droit d'ajouter un tag global $allow_avis;// l'utilisateur a-t-il le droit d'ajouter un avis global $allow_sugg;// l'utilisateur a-t-il le droit de faire une suggestion global $allow_liste_lecture;// l'utilisateur a-t-il le droit de faire une liste de lecture global $lvl; // pour savoir qui demande l'affichage global $opac_avis_display_mode; global $flag_no_get_bulletin; global $opac_allow_simili_search; global $opac_draggable; global $opac_visionneuse_allow, $opac_photo_filtre_mimetype; if($opac_draggable){ $draggable='yes'; }else{ $draggable='no'; } $this->result =""; if(!$this->notice_id) return; $this->premier = $premier ; $this->double_ou_simple = 2 ; if ($this->cart_allowed){ if(isset($_SESSION["cart"]) && in_array($this->notice_id, $_SESSION["cart"])) { $basket="\"".$msg['notice_title_basket_exist']."\""; } else { $title=$this->notice_header; if(!$title)$title=$this->notice->tit1; $basket="notice_id."&header=".rawurlencode(strip_tags($title))."\" target=\"cart_info\" class=\"img_basket\" title=\"".$msg['notice_title_basket']."\">\"".$msg['notice_title_basket']."\""; } }else $basket=""; //add tags if ( ($this->tag_allowed==1) || ( ($this->tag_allowed==2)&&($_SESSION["user_code"])&&($allow_tag) ) ) $img_tag="notice_id','ajouter_un_tag'); return false;\">\"".$msg['notice_title_tag']."\""; else $img_tag=""; //Avis if (($opac_avis_display_mode==0) && (($this->avis_allowed && $this->avis_allowed !=2) || ($_SESSION["user_code"] && $this->avis_allowed ==2 && $allow_avis))) $img_avis= $this->affichage_avis(); else $img_avis=""; //Suggestions if (($this->sugg_allowed ==2)|| ($_SESSION["user_code"] && ($this->sugg_allowed ==1) && $allow_sugg)) $img_sugg= $this->affichage_suggestion(); else $img_sugg=""; //Listes de lecture if ($this->liste_lecture_allowed == 1 && $_SESSION["user_code"] && $allow_liste_lecture) { $img_liste_lecture = $this->affichage_liste_lecture(); } else $img_liste_lecture = ""; // préparation de la case à cocher pour traitement panier if ($cart_aff_case_traitement) $case_a_cocher = " "; else $case_a_cocher = "" ; $source_enrichment = ''; if($opac_notice_enrichment){ $enrichment = new enrichment(); if(!isset($enrichment->active[$this->notice->niveau_biblio.$this->notice->typdoc])) { $enrichment->active[$this->notice->niveau_biblio.$this->notice->typdoc] = ''; } if(!isset($enrichment->active[$this->notice->niveau_biblio])) { $enrichment->active[$this->notice->niveau_biblio] = ''; } if($enrichment->active[$this->notice->niveau_biblio.$this->notice->typdoc]){ $source_enrichment = implode(",",$enrichment->active[$this->notice->niveau_biblio.$this->notice->typdoc]); }else if ($enrichment->active[$this->notice->niveau_biblio]){ $source_enrichment = implode(",",$enrichment->active[$this->notice->niveau_biblio]); } } if($opac_allow_simili_search){ $simili_search_script_all=" "; } else { $simili_search_script_all=""; } $script_simili_search = $this->get_simili_script(); if ($depliable == 1) { $template="$simili_search_script_all
$case_a_cocher \"".$msg['expandable_notice']."\""; if (!$this->no_header) { $template.=$this->get_icon_html($this->notice->niveau_biblio, $this->notice->typdoc); } $template.=" !!heada!!".$this->notice_header_doclink."