table; } if (!count($langue_doc)) { $langue_doc = new marc_list('lang'); $langue_doc = $langue_doc->table; } // propriétés pour le selecteur de panier $selector_prop = "toolbar=no, dependent=yes, resizable=yes, scrollbars=yes"; $cart_click = "onClick=\"openPopUp('./cart.php?object_type=NOTI&item=!!id!!&unq=!!unique!!', 'cart', 600, 700, -2, -2, '$selector_prop')\""; function cmpexpl($a, $b) { $c1 = isset($a["priority"]) ? $a["priority"] : ""; $c2 = isset($b["priority"]) ? $b["priority"] : ""; if ($c1 == $c2) { $c1 = isset($a["content"]["v"]) ? $a["content"]["v"] : ""; $c2 = isset($b["content"]["v"]) ? $b["content"]["v"] : ""; return strcmp($c1, $c2); } return $c2-$c1; } // définition de la classe d'affichage des monographies en liste class mono_display_unimarc { var $notice_id = 0; // id de la notice à afficher var $isbn = 0; // isbn ou code EAN de la notice à afficher var $notice; // objet notice (tel que fetch� dans la table 'notices' var $langues = array(); var $languesorg = array(); var $action = ''; // URL à associer au header var $header = ''; // chaine accueillant le chapeau de notice (peut-être cliquable) var $tit_serie = ''; // titre de série si applicable var $tit1 = ''; // valeur du titre 1 var $result = ''; // affichage final var $level = 1; // niveau d'affichage var $isbd = ''; // isbd de la notice en fonction du level défini var $expl = 0; // flag indiquant si on affiche les infos d'exemplaire var $nb_expl = 0; //nombre d'exemplaires var $link_expl = ''; // lien associé à un exemplaire var $responsabilites = array("responsabilites" => array(),"auteurs" => array()); // les auteurs var $auteurs_principaux; var $auteurs_tous; var $categories_toutes; var $collections; var $publishers; var $print_mode=0; var $show_explnum=1; var $no_link; var $entrepots_localisations=array(); var $docnums; // constructeur------------------------------------------------------------ function mono_display_unimarc($id, $level=1, $expl=1, $print=0, $show_explnum=1, $no_link=false, $entrepots_localisations=array()) { // $id = id de la notice à afficher // $action = URL associée au header // $level : // 0 : juste le header (titre / auteur principal avec le lien si applicable) // suppression des niveaux entre 1 et 6, seul reste level // 1 : ISBD seul, pas de note, bouton modif, expl, explnum et r�sas // 6 : cas général détaillé avec notes, categ, langues, indexation... + boutons // $expl -> affiche ou non les exemplaires associés $this->notice_id = $id; $this->mono_display_fetch_data(); $this->fetch_auteurs(); $this->fetch_categories(); $this->level=$level; $this->expl = $expl; $this->entrepots_localisations = $entrepots_localisations; // mise à jour des catégories $this->categories = get_notice_categories($this->notice_id) ; $this->do_header(); switch($level) { case 0: // là, c'est le niveau 0 : juste le header $this->result = $this->header; break; default: // niveau 1 et plus : header + isbd à générer $this->init_javascript(); $this->do_isbd(); $this->finalize(); break; } return; } function fetch_auteurs() { global $fonction_auteur; global $dbh ; $this->responsabilites = array() ; $auteurs = array() ; $res["responsabilites"] = array() ; $res["auteurs"] = array() ; $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = mysql_query($requete); $source_id = mysql_result($myQuery, 0, 0); $rqt = "select recid,ufield,field_order,usubfield,subfield_order,value from entrepot_source_$source_id where recid='".addslashes($this->notice_id)."' and ufield like '7%' group by ufield,usubfield,field_order,subfield_order,value order by recid,field_order,subfield_order"; $res_sql=mysql_query($rqt); $id_aut=""; $n_aut=-1; while ($l=mysql_fetch_object($res_sql)) { if ($l->field_order!=$id_aut) { $n_aut++; switch ($l->ufield) { case "700": case "710": $responsabilites[$n_aut]=0; break; case "701": case "711": $responsabilites[$n_aut]=1; break; case "702": case "712": $responsabilites[$n_aut]=2; break; } switch (substr($l->ufield,0,2)) { case "70": $auteurs[$n_aut]["type"]=1; break; case "71": $auteurs[$n_aut]["type"]=2; break; } $auteurs[$n_aut]["id"]=$l->recid.$l->field_order; $id_aut=$l->field_order; } switch ($l->usubfield) { case '4': $auteurs[$n_aut]['fonction']=$l->value; $auteurs[$n_aut]['fonction_aff']=$fonction_auteur[$l->value]; break; case 'a': $auteurs[$n_aut]['name']=$l->value; break; case 'b': if ($auteurs[$n_aut]['type']==2) { $auteurs[$n_aut]['subdivision']=$l->value; } else { $auteurs[$n_aut]['rejete']=$l->value; } break; case 'd': if ($auteurs[$n_aut]['type']==2) { $auteurs[$n_aut]['numero']=$l->value; } break; case 'e': if ($auteurs[$n_aut]['type']==2) { $auteurs[$n_aut]['lieu'].=(($auteurs[$n_aut]['lieu'])?'; ':'').$l->value; } break; case 'f': $auteurs[$n_aut]['date']=$l->value; break; case 'g': if ($auteurs[$n_aut]['type']==2) { $auteurs[$n_aut]['rejete']=$l->value; } break; } } foreach($auteurs as $n_aut=>$auteur) { $auteurs[$n_aut]['auteur_titre']=$auteurs[$n_aut]['rejete'].($auteurs[$n_aut]['rejete']?' ':'').$auteurs[$n_aut]['name']; if ($auteur['type']==2 && ($auteurs[$n_aut]['subdivision'] || $auteurs[$n_aut]['numero'] || $auteurs[$n_aut]['date'] || $auteurs[$n_aut]['lieu'])) { $c=''; $c.=$auteurs[$n_aut]['subdivision']; $c.=($c && $auteurs[$n_aut]['numero'])?(', '.$auteurs[$n_aut]['numero']):($auteurs[$n_aut]['numero']); $c.=($c && $auteurs[$n_aut]['date'])?(', '.$auteurs[$n_aut]['date']):($auteurs[$n_aut]['date']); $c.=($c && $auteurs[$n_aut]['lieu'])?(', '.$auteurs[$n_aut]['lieu']):($auteurs[$n_aut]['lieu']); $auteurs[$n_aut]['auteur_titre'].=' ('.$c.')'; } $auteurs[$n_aut]['auteur_isbd']=$auteurs[$n_aut]['auteur_titre'].($auteurs[$n_aut]['fonction_aff']?' ,':'').$auteurs[$n_aut]['fonction_aff']; } if (!$responsabilites) $responsabilites = array(); if (!$auteurs) $auteurs = array(); $res["responsabilites"] = $responsabilites ; $res["auteurs"] = $auteurs ; $this->responsabilites = $res; // $this->auteurs_principaux // on ne prend que le auteur_titre = "Prenom NOM" $as = array_search ("0", $this->responsabilites["responsabilites"]) ; if ($as!== FALSE && $as!== NULL) { $auteur_0 = $this->responsabilites["auteurs"][$as] ; $this->auteurs_principaux = $auteur_0["auteur_titre"]; } else { $as = array_keys ($this->responsabilites["responsabilites"], "1" ) ; $aut1_libelle = array(); for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_1 = $this->responsabilites["auteurs"][$indice] ; $aut1_libelle[]= $auteur_1["auteur_titre"]; } $auteurs_liste = implode ("; ",$aut1_libelle) ; if ($auteurs_liste) $this->auteurs_principaux = $auteurs_liste ; } // $this->auteurs_tous $mention_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"]; $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"]; $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"]; $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 ="" ; } // fin fetch_auteurs // récupération des categories ------------------------------------------------------------------ function fetch_categories() { global $pmb_keyword_sep; $this->categories_toutes=""; $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = mysql_query($requete); $source_id = mysql_result($myQuery, 0, 0); $rqt = "select ufield,field_order,usubfield,subfield_order,value from entrepot_source_$source_id where recid='".addslashes($this->notice_id)."' and ufield like '60%' group by ufield,usubfield,field_order,subfield_order,value order by recid,field_order,subfield_order"; $res_sql=mysql_query($rqt); $id_categ=""; $n_categ=-1; $categ_l=array(); while ($l=mysql_fetch_object($res_sql)) { if ($l->field_order!=$id_categ) { if ($n_categ!=-1) { $categ_libelle=$categ_l["a"].($categ_l["x"]?" - ".implode(" - ",$categ_l["x"]):"").($categ_l["y"]?" - ".implode(" - ",$categ_l["y"]):"").($categ_l["z"]?" - ".implode(" - ",$categ_l["z"]):""); $this->categories_toutes.=($this->categories_toutes?"
":"").$categ_libelle; } $categ_l=array(); $n_categ++; $id_categ=$l->field_order; } $categ_l[$l->usubfield]=$l->value; } if ($n_categ>=0) { $categ_libelle=$categ_l["a"].($categ_l["x"]?" - ".implode(" - ",$categ_l["x"]):"").($categ_l["y"]?" - ".implode(" - ",$categ_l["y"]):"").($categ_l["z"]?" - ".implode(" - ",$categ_l["z"]):""); $this->categories_toutes.=($this->categories_toutes?"
":"").$categ_libelle; } } function fetch_langues($quelle_langues=0) { global $dbh; global $marc_liste_langues ; if (!$marc_liste_langues) $marc_liste_langues=new marc_list('lang'); $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = mysql_query($requete); $source_id = mysql_result($myQuery, 0, 0); $rqt = "select ufield,field_order,usubfield,subfield_order,value from entrepot_source_$source_id where recid='".addslashes($this->notice_id)."' and ufield like '101' group by ufield,usubfield,field_order,subfield_order,value order by recid,field_order,subfield_order"; $res_sql=mysql_query($rqt); $langues = array() ; $subfield=array("0"=>"a","1"=>"c"); while ($l=mysql_fetch_object($res_sql)) { if ($l->usubfield==$subfield[$quelle_langues]) { if ($marc_liste_langues->table[$l->value]) { $langues[] = array( 'lang_code' => $l->value, 'langue' => $marc_liste_langues->table[$l->value] ) ; } } } if (!$quelle_langues) $this->langues = $langues; else $this->languesorg = $langues; } // finalisation du résultat (écriture de l'isbd) function finalize() { $this->result = str_replace('!!ISBD!!', $this->isbd, $this->result); } // génération du template javascript--------------------------------------- function init_javascript() { global $msg, $notice_id; if (isset($notice_id)) $notice_id_info = "¬ice_id=".$notice_id; else $notice_id_info = ""; // propriétés pour le selecteur de panier //$selector_prop = "toolbar=no, dependent=yes, width=500, height=400, resizable=yes, scrollbars=yes"; $cart_click = "onClick=\"document.search_form.action='catalog.php?categ=search&mode=7&sub=integre".$notice_id_info."&item=!!id!!'; document.search_form.submit()\""; $suppr_click = "onClick=\"if(confirm('".$msg['confirm_suppr_notice']."')){;document.search_form.action='catalog.php?categ=search&mode=7&sub=suppr".$notice_id_info."&item=!!id!!'; document.search_form.submit()}\""; $javascript_template ="
!!heada!!
"; $this->result = str_replace('!!id!!', $this->notice_id.($this->anti_loop?"_p".$this->anti_loop[count($this->anti_loop)-1]:""), $javascript_template); $this->result = str_replace('!!heada!!', $this->lien_suppr_cart.$this->header, $this->result); } // génération de l'isbd---------------------------------------------------- function do_isbd() { global $dbh; global $langue_doc; global $msg; global $tdoc; global $fonction_auteur; global $charset; global $thesaurus_mode_pmb, $thesaurus_categories_categ_in_line, $pmb_keyword_sep, $thesaurus_categories_affichage_ordre; global $pmb_show_notice_id,$pmb_opac_url,$pmb_show_permalink; // constitution de la mention de titre if($this->tit_serie) { $this->isbd = $this->tit_serie; if($this->notice->tnvol) $this->isbd .= ', '.$this->notice->tnvol; } $this->isbd ? $this->isbd .= '. '.$this->tit1 : $this->isbd = $this->tit1; $this->isbd .= ' ['.$tdoc->table[$this->notice->typdoc].']'; $tit2 = $this->notice->tit2; $tit3 = $this->notice->tit3; $tit4 = $this->notice->tit4; if($tit3) $this->isbd .= " = $tit3"; if($tit4) $this->isbd .= " : $tit4"; if($tit2) $this->isbd .= " ; $tit2"; $mention_resp = array() ; // constitution de la mention de responsabilité //$this->responsabilites $as = array_search ("0", $this->responsabilites["responsabilites"]) ; if ($as!== FALSE && $as!== NULL) { $auteur_0 = $this->responsabilites["auteurs"][$as] ; $mention_resp_lib=$auteur_0["auteur_titre"]; if ($auteur_0["fonction"]) $mention_resp_lib .= ", ".$fonction_auteur[$auteur_0["fonction"]]; $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_titre"]; if ($auteur_1["fonction"]) $mention_resp_lib .= ", ".$fonction_auteur[$auteur_1["fonction"]]; $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_titre"]; if ($auteur_2["fonction"]) $mention_resp_lib .= ", ".$fonction_auteur[$auteur_2["fonction"]]; $mention_resp[] = $mention_resp_lib ; } $libelle_mention_resp = implode ("; ",$mention_resp) ; if($libelle_mention_resp) $this->isbd .= " / $libelle_mention_resp" ; // mention d'édition if($this->notice->mention_edition) $this->isbd .= ". - ".$this->notice->mention_edition; // zone de l'adresse // on récupère la collection au passage, si besoin est if ($this->collections) { $collections = $this->collections[0]["name"]; } $editeurs=array(); for ($i=0; $ipublishers); $i++) { $editeurs[]=$this->publishers[$i]["name"].($this->publishers[$i]["city"]?" (".$this->publishers[$i]["city"].")":""); } $editeurs=implode(" ; ",$editeurs); if($this->notice->year) $editeurs ? $editeurs .= ', '.$this->notice->year : $editeurs = $this->notice->year; else $editeurs ? $editeurs .= ', [s.d.]' : $editeurs = "[s.d.]"; $this->isbd .= ". - $editeurs"; // zone de la collation (ne concerne que a2) if($this->notice->npages) $collation = $this->notice->npages; if($this->notice->ill) $collation .= ': '.$this->notice->ill; if($this->notice->size) $collation .= '; '.$this->notice->size; if($this->notice->accomp) $collation .= '+ '.$this->notice->accomp; if($collation) $this->isbd .= ". - $collation"; if($collections) { if($this->notice->nocoll) $collections .= '; '.$this->notice->nocoll; $this->isbd .= ". - ($collections)".' '; } $this->isbd .= '.'; // note générale if($this->notice->n_gen) $zoneNote = nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset)).' '; // ISBN ou NO. commercial if($this->notice->code) { if(isISBN($this->notice->code)) { if ($zoneNote) { $zoneNote .= '. - ISBN '; } else { $zoneNote = 'ISBN ';} } else { if($zoneNote) $zoneNote .= '. - '; } $zoneNote .= $this->notice->code; } if($this->notice->prix) { if($this->notice->code) {$zoneNote .= ' : '.$this->notice->prix;} else { if ($zoneNote) { $zoneNote .= '  '.$this->notice->prix;} else { $zoneNote = $this->notice->prix;} } } if($zoneNote) $this->isbd .= "

$zoneNote."; if($pmb_show_notice_id || $pmb_show_permalink) $this->isbd .= "
"; if($pmb_show_notice_id){ $prefixe = explode(",",$pmb_show_notice_id); $this->isbd .= "".$msg['notice_id_libelle']." ".($prefixe[1] ? $prefixe[1] : '').$this->notice_id."
"; } // Permalink OPAC if ($pmb_show_permalink) { $this->isbd .= "".$msg["notice_permalink_opac"]." ".$pmb_opac_url."index.php?lvl=notice_display&id=".$this->notice_id."
"; } // niveau 1 if($this->level == 1) { $this->isbd .= ""; if ($this->expl) { $this->isbd .= "
${msg[285]}"; $this->isbd .= $this->show_expl_per_notice($this->notice->notice_id, $this->link_expl); //if ($this->show_explnum) { // $explnum_assoc = show_explnum_per_notice($this->notice->notice_id, 0,$this->link_explnum); // if ($explnum_assoc) $this->isbd .= "$msg[explnum_docs_associes]".$explnum_assoc; // } } $this->do_image($this->isbd) ; return; } // résumé if($this->notice->n_resume) // $this->isbd .= "
${msg[267]} : ".nl2br(htmlentities($this->notice->n_resume,ENT_QUOTES, $charset)); $this->isbd .= "
${msg[267]} : ".nl2br($this->notice->n_resume); // note de contenu if($this->notice->n_contenu) // $this->isbd .= "
${msg[266]} : ".nl2br(htmlentities($this->notice->n_contenu,ENT_QUOTES, $charset)); $this->isbd .= "
${msg[266]} : ".nl2br($this->notice->n_contenu); // catégories if ($this->categories_toutes) $this->isbd .= "
${msg[23]} : ".$this->categories_toutes; // langues if(count($this->langues)) { $langues = "${msg[537]} : ".construit_liste_langues($this->langues); } if(count($this->languesorg)) { $langues .= " ${msg[711]} : ".construit_liste_langues($this->languesorg); } if($langues) $this->isbd .= "
$langues"; // indexation libre if($this->notice->index_l) $this->isbd .= "
${msg[324]} : ".$this->notice->index_l; // indexation interne if($this->notice->indexint_name) { $this->isbd .= "
${msg[indexint_catal_title]} : ".$this->notice->indexint_name; } //lien vers la notice déjà existante dans le catalogue if($this->permalink){ $this->isbd.="
".$msg['catalog_link']." : ".$this->permalink.""; } if ($this->docnums) { $this->isbd .= "

"; $this->isbd .= "".$msg["entrepot_notice_docnum"].""; $nb_doc = 0; $display .= ""; $i=0; foreach($this->docnums as $docnum) { if (!$docnum["a"]) continue; $i++; $nb_doc++; if($nb_doc == 1) $display .= ""; //$alt = htmlentities($docnum_tab[$i]['explnum_doc_nomfichier'],ENT_QUOTES,$charset).' - '.htmlentities($docnum_tab[$i]['explnum_doc_mimetype'],ENT_QUOTES,$charset); $display .= ""; } if($nb_doc == 4) { $display .= ""; $nb_doc=0; } } $display .= "
$alt
"; if($docnum["b"]){ $display .= "".htmlentities($docnum["b"],ENT_QUOTES,$charset)."
"; $this->isbd .=$display; } $this->do_image($this->isbd) ; if($this->expl) { $expl_aff = $this->show_expl_per_notice(); if ($expl_aff) { $this->isbd .= "

${msg[285]}"; $this->isbd .= $expl_aff; } } $this->isbd .= ""; //if ($this->show_explnum) { // $explnum_assoc = show_explnum_per_notice($this->notice->notice_id, 0, $this->link_explnum); // if ($explnum_assoc) $this->isbd .= "$msg[explnum_docs_associes]".$explnum_assoc; //} return; } // génération du header---------------------------------------------------- function do_header() { global $dbh; global $charset; global $pmb_notice_reduit_format; global $base_path; global $msg; $aut1_libelle = array() ; // récupération du titre de série if($this->notice->is_article){ $this->header = $this->notice->serie_name; if($this->notice->bull_num && $this->notice->bull_periode){ $this->header.= " (".$this->notice->bull_num." - ".$this->notice->bull_periode.")"; }elseif($this->notice->bull_num){ $this->header.= " (".$this->notice->bull_num.")"; }elseif($this->notice->bull_periode){ $this->header.= " (".$this->notice->bull_periode.")"; } }elseif($this->notice->serie_name) { $this->tit_serie = $this->notice->serie_name; $this->header = $this->tit_serie; if($this->notice->tnvol) $this->header .= ', '.$this->notice->tnvol; } $this->tit1 = $this->notice->tit1; $this->header ? $this->header .= '. '.$this->tit1 : $this->header = $this->tit1; if ($this->source_name) { $this->header=$this->source_name." : ".$this->header; } //on ajoute la checkbox pour l'intégration en lot... //calcul de la checkbox $checkbox = "notice_id; $result = mysql_query($query); if(mysql_num_rows($result)){ $checkbox.=" checked='checked' disabled='disabled'"; } $checkbox.= "/>"; //ajout dans le header; $this->header = $checkbox." ".$this->header; //$this->responsabilites $as = array_search ("0", $this->responsabilites["responsabilites"]) ; if ($as!== FALSE && $as!== NULL) { $auteur_0 = $this->responsabilites["auteurs"][$as] ; //$auteur = new auteur($auteur_0["id"]); if ($auteur_0["auteur_isbd"]) $this->header .= ' / '. $auteur_0["auteur_titre"]; } else { $as = array_keys ($this->responsabilites["responsabilites"], "1" ) ; for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_1 = $this->responsabilites["auteurs"][$indice] ; $aut1_libelle[]= $auteur_1["auteur_titre"]; } $auteurs_liste = implode ("; ",$aut1_libelle) ; if ($auteurs_liste) $this->header .= ' / '. $auteurs_liste ; } switch ($pmb_notice_reduit_format) { case "1": if ($this->notice->year != '') $this->header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')'; break; case "2": if ($this->notice->year != '') $this->header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')'; if ($this->notice->code != '') $this->header.=' / '.htmlentities($this->notice->code, ENT_QUOTES, $charset); break; default : break; } if ($this->drag) $drag="notice_id.($this->anti_loop?"_p".$this->anti_loop[count($this->anti_loop)-1]:"")."\" dragicon=\"$base_path/images/icone_drag_notice.png\" dragtext=\"".$this->header."\" draggable=\"yes\" dragtype=\"notice\" callback_before=\"show_carts\" callback_after=\"\" style=\"padding-left:7px\">"; if($this->action) { $this->header = "action."\">".$this->header.''; } if ($this->notice->niveau_biblio=='b') { $rqt="select tit1 from bulletins,notices where bulletins.num_notice='".$this->notice_id."' and notices.notice_id=bulletins.bulletin_notice"; $execute_query=mysql_query($rqt); $row=mysql_fetch_object($execute_query); $this->header.=" ".str_replace("%s",$row->tit1,$msg["bul_titre_perio"]).""; mysql_free_result($execute_query); } if($this->notice->lien) { // ajout du lien pour les ressourcenotice_parent_useds électroniques $this->header .= "notice->lien."\" target=\"__LINK__\">"; global $use_opac_url_base, $opac_url_base ; if (!$use_opac_url_base) $this->header .= "header .= "header .= " alt=\""; $this->header .= $this->notice->eformat; $this->header .= "\" title=\""; $this->header .= $this->notice->eformat; $this->header .= "\">"; $this->header .=''; } } // récupération des valeurs en table--------------------------------------- function mono_display_fetch_data() { global $dbh; global $pmb_url_base; $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = mysql_query($requete, $dbh); $source_id = mysql_result($myQuery, 0, 0); $requete="select * from entrepot_source_".$source_id." where recid='".addslashes($this->notice_id)."' order by ufield,field_order,usubfield,subfield_order,value"; $myQuery = mysql_query($requete, $dbh); $notice=""; $lpfo=""; $n_ed=-1; $n_coll=-1; $exemplaires = array(); $doc_nums = array(); if(mysql_num_rows($myQuery)) { $notice = new stdClass(); $notice->notice_id=$this->notice_id; while ($l=mysql_fetch_object($myQuery)) { if (!$this->source_id) { $this->source_id=$l->source_id; $requete="select name from connectors_sources where source_id=".$l->source_id; $rsname=mysql_query($requete); if (mysql_num_rows($rsname)) $this->source_name=mysql_result($rsname,0,0); } $this->unimarc[$l->ufield][$l->field_order][$l->usubfield][$l->subfield_order]; switch ($l->ufield) { //dt case "dt": $notice->typdoc=$l->value; break; case "bl": // $notice->niveau_biblio=$l->value; $notice->niveau_biblio='m'; //On force le document au type monographie break; case "hl": $notice->niveau_hierar=0; //On force le niveau à zéro. // $notice->niveau_hierar=$l->value; break; //ISBN case "010": if ($l->usubfield=="a") $notice->code=$l->value; break; //Titres case "200": switch ($l->usubfield) { case "a": $notice->tit1.=($notice->tit1?" ":"").$l->value; break; case "c": $notice->tit2.=($notice->tit2?" ":"").$l->value; break; case "d": $notice->tit3.=($notice->tit3?" ":"").$l->value; break; case "e": $notice->tit4.=($notice->tit4?" ":"").$l->value; break; } break; //Editeur case "210": if($l->field_order!=$lpfo) { $lpfo=$l->field_order; $n_ed++; } switch ($l->usubfield) { case "a": $this->publishers[$n_ed]["city"]=$l->value; break; case "c": $this->publishers[$n_ed]["name"]=$l->value; break; case "d": $this->publishers[$n_ed]["year"]=$l->value; $this->year=$l->value; $notice->year=$l->value; break; } break; //Collation case "215": switch ($l->usubfield) { case "a": $notice->npages=$l->value; break; case "c": $notice->ill=$l->value; break; case "d": $notice->size=$l->value; break; case "e": $notice->accomp=$l->value; break; } break; case "225": if($l->field_order!=$lpfo) { $lpfo=$l->field_order; $n_coll++; } switch ($l->usubfield) { case "a": $this->collections[$n_coll]["name"]=$l->value; break; case "x": $this->collections[$n_coll]["ISSN"]=$l->value; break; case "i": $this->collections[$n_coll]["subcoll_name"]=$l->value; break; case "v": $this->collections[$n_coll]["volume"]=$l->value; $notice->nocoll=$l->value; break; } //Note générale case "300": $notice->n_gen=$l->value; break; //Note de contenu case "327": $notice->n_contenu=$l->value; break; //Note de résumé case "330": $notice->n_resume=$l->value; break; //Série case "461": if ($l->usubfield=="t") $notice->serie_name=$l->value; if ($l->usubfield=="v") $notice->tnvol=$l->value; break; //bulletin case "463": if ($l->usubfield=="9" && $l->value == "lnk:bull") $notice->is_article=true; if ($l->usubfield=="v") $notice->bull_num=$l->value; if ($l->usubfield=="e") $notice->bull_periode=$l->value; if ($l->usubfield=="d") $notice->bull_date=$l->value; if ($l->usubfield=="t") $notice->bull_titre=$l->value; break; //Mots clés case "610": switch ($l->usubfield) { case "a": $notice->index_l.=($notice->index_l?" / ":"").$l->value; break; } break; case "676": switch ($l->usubfield) { case "a": $notice->indexint_name=$l->value; break; } //URL case "856": switch ($l->usubfield) { case "u": $notice->lien=$l->value; break; case "q": $notice->eformat=$l->value; break; case "t": $notice->lien_texte=$l->value; break; } break; case "996": $exemplaires[$l->field_order][$l->usubfield] = $l->value; break; //Thumbnail case "896": switch ($l->usubfield) { case "a": $notice->thumbnail_url=$l->value; } break; //Documents numériques case "897": $doc_nums[$l->field_order][$l->usubfield] = $l->value; break; } } } $this->exemplaires = $exemplaires; $this->docnums = $doc_nums; $this->notice=$notice; if (!$this->notice->typdoc) $this->notice->typdoc='a'; /* $requete = "SELECT * FROM notices WHERE notice_id='".$this->notice_id."' "; $myQuery = mysql_query($requete, $dbh); if(mysql_num_rows($myQuery)) { $this->notice = mysql_fetch_object($myQuery); } $this->langues = get_notice_langues($this->notice_id, 0) ; // langues de la publication $this->languesorg = get_notice_langues($this->notice_id, 1) ; // langues originales*/ //on regarde si cette notice externe a déjà été intégrée dans le catalogue $req = "select num_notice, niveau_biblio from external_count join notices_externes on external_count.recid = notices_externes.recid join notices on num_notice = notice_id where rid='".addslashes($this->notice_id)."'"; $result = mysql_query($req); if(mysql_num_rows($result)>0){ $row = mysql_fetch_object($result); $this->permalink = ""; switch($row->niveau_biblio){ case "m": $this->permalink = $pmb_url_base."catalog.php?categ=isbd&id=".$row->num_notice; break; case "s" : $this->permalink = $pmb_url_base."catalog.php?categ=serials&sub=view=serial_id=".$row->num_notice; break; case "b" : //on va chercher le numéro de bulletin... $query = "select bulletin_id from bulletins where num_notice = ".$row->num_notice; $res = mysql_query($query); if(mysql_num_rows($res)){ $bull_row = mysql_fetch_object($res); $this->permalink = $pmb_url_base."catalog.php?categ=serials&sub=view&bul_id=".$bull_row->bulletin_id; } break; case "a" : $query = "select analysis_bulletin from analysis where analysis_notice = ".$row->num_notice; $res = mysql_query($query); if(mysql_num_rows($res)){ $analysis_row = mysql_fetch_object($res); $this->permalink = $pmb_url_base."catalog.php?categ=serials&sub=bulletinage&action=view&bul_id=".$analysis_row->analysis_bulletin."&art_to_show=".$row->num_notice; } break; } } $this->isbn = $this->notice->code ; return mysql_num_rows($myQuery); } // fonction retournant les infos d'exemplaires pour une notice donnée function show_expl_per_notice() { global $msg; global $dbh; if (!$this->exemplaires) return; $expl_output = ""; $count = 1; $expl996 = array( "f" => $msg["extexpl_codebar"], "k" => $msg["extexpl_cote"], "v" => $msg["extexpl_location"], "x" => $msg["extexpl_section"], "1" => $msg["extexpl_statut"], "a" => $msg["extexpl_emprunteur"], "e" => $msg["extexpl_doctype"], "u" => $msg["extexpl_note"] ); $final_location = array(); foreach ($this->exemplaires as $expl) { $alocation = array(); //Si on trouve une localisation, on la convertie en libelle et on l'oublie si spécifié if (isset($expl["v"]) && preg_match("/\d{9}/", $expl["v"]) && $this->entrepots_localisations) { if (isset($this->entrepots_localisations[$expl["v"]])) { if (!$this->entrepots_localisations[$expl["v"]]["visible"]) { continue; } $alocation["priority"] = $this->entrepots_localisations[$expl["v"]]["visible"]; $expl["v"] = $this->entrepots_localisations[$expl["v"]]["libelle"]; } } if (!isset($alocation["priority"])) $alocation["priority"] = 1; $alocation["content"] = $expl; $final_location[] = $alocation; } if (!$final_location) return; $expl_output .= ""; foreach ($expl996 as $caption996) { $expl_output .= ""; } $expl_output .= ""; //trions usort($final_location, "cmpexpl"); foreach ($final_location as $expl) { $axepl_output = ""; foreach ($expl996 as $key996 => $caption996) { if (isset($expl["content"][$key996])) { $axepl_output .= ""; } else { $axepl_output .= ""; } } $axepl_output .= ""; $expl_output .= $axepl_output; $count++; } $expl_output .= "
".$caption996."
".$expl["content"][$key996]."
"; return $expl_output; } function do_image(&$entree) { global $charset; global $pmb_book_pics_show ; global $pmb_book_pics_url ; global $pmb_book_pics_msg; // pour url OPAC en diff DSI global $prefix_url_image ; global $depliable ; if ($depliable!==0) $depliable=1 ; if ($this->notice->code || $this->notice->thumbnail_url) { if ($pmb_book_pics_show=='1' && ($pmb_book_pics_url || $this->notice->thumbnail_url)) { $code_chiffre = pmb_preg_replace('/-|\.| /', '', $this->notice->code); $url_image = $pmb_book_pics_url ; $url_image = $prefix_url_image."getimage.php?url_image=".urlencode($url_image)."¬icecode=!!noticecode!!&vigurl=".urlencode($this->notice->thumbnail_url) ; if ($depliable) $image = ""; else { $url_image_ok = str_replace("!!noticecode!!", $code_chiffre, $url_image) ; if ($this->notice->thumbnail_url) { $title_image_ok = ""; } else { $title_image_ok = htmlentities($pmb_book_pics_msg, ENT_QUOTES, $charset); } $image = ""; } } else $image="" ; if ($image) { $entree = "
$entree$image
" ; } else { $entree = "
$entree
" ; } } else { $entree = "
$entree
" ; } } }