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!!
!!ISBD!!
";
$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($docnum["b"]){
$display .=
"".htmlentities($docnum["b"],ENT_QUOTES,$charset)."
| ";
}
if($nb_doc == 4) {
$display .= "
";
$nb_doc=0;
}
}
$display .= "
";
$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 = "";
//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 .= "".$caption996." | ";
}
$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 .= "".$expl["content"][$key996]." | ";
}
else {
$axepl_output .= " | ";
}
}
$axepl_output .= "
";
$expl_output .= $axepl_output;
$count++;
}
$expl_output .= "
";
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 = "" ;
} else {
$entree = "" ;
}
} else {
$entree = "" ;
}
}
}