table;
}
if (!count($langue_doc)) {
$langue_doc = new marc_list('lang');
$langue_doc = $langue_doc->table;
}
if (!count($icon_doc)) {
$icon_doc = new marc_list('icondoc');
$icon_doc = $icon_doc->table;
}
// Use this class if you want to show responsability functions before authors.
// This class defines a new fetch_auteurs function that overwrites the one included in the parent class notice_affichage
// using this function you can load the author functions from the litteral_function.xml file if this exists in the lang directory.
// Marco Vaninetti
class notice_affichage_custom_it extends notice_affichage {
function fetch_auteurs() {
global $fonction_auteur0;
global $dbh ;
global $include_path;
global $lang, $tdoc, $langue_doc;
$this->responsabilites = array() ;
$auteurs = array() ;
$res["responsabilites"] = array() ;
$res["auteurs"] = array() ;
// if literal_function.xml exists we use this instead of function.xml
$ISBDv2=0;
if (is_file("$include_path/marc_tables/$lang/literal_function.xml")) $ISBDv2=1;
if (!count($tdoc)) $tdoc = new marc_list('doctype');
if (!count($fonction_auteur0)) {
if ($ISBDv2)
$fonction_auteur0 = new marc_list('literal_function');
else
$fonction_auteur0 = new marc_list('function');
$fonction_auteur0 = $fonction_auteur0->table;
}
if (!count($langue_doc)) {
$langue_doc = new marc_list('lang');
$langue_doc = $langue_doc->table;
}
$rqt = "SELECT author_id, responsability_fonction, responsability_type, author_name, author_rejete, author_type, author_date, author_see, author_web ";
$rqt.= "FROM responsability, authors ";
$rqt.= "WHERE responsability_notice='".$this->notice_id."' AND responsability_author=author_id ";
$rqt.= "ORDER BY responsability_type, responsability_ordre, responsability_fonction " ;
$res_sql = mysql_query($rqt, $dbh);
while (($notice=mysql_fetch_object($res_sql))) {
$responsabilites[] = $notice->responsability_type ;
if ($notice->author_rejete) $auteur_isbd = $notice->author_rejete." ".$notice->author_name ;
else $auteur_isbd = $notice->author_name ;
// 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.")" ;
// 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)) ;
if ($notice->responsability_fonction) $fonction_aut=$fonction_auteur0[$notice->responsability_fonction] ;
else {
$fonction_aut="";
$notice->responsability_fonction="0";
}
$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' => $fonction_aut,
'auteur_isbd' => $auteur_isbd,
'auteur_titre' => $auteur_titre
) ;
}
$res["responsabilites"] = $responsabilites ;
$res["auteurs"] = $auteurs ;
$this->responsabilites = $res;
// $this->auteurs_principaux
// on ne prend que le auteur_titre = "Prénom 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" ) ;
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 ;
}
$flag1=0;
// $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"];
if($auteur_0["fonction"]!="0" and $auteur_0["fonction"]!= 70) $mention_resp_lib= $auteur_0["fonction_aff"]." ".$mention_resp_lib;
$first_mention=$auteur_0["fonction_aff"];
$mention_resp[] = $mention_resp_lib ;
}
$i=0;
$as = array_keys ($this->responsabilites["responsabilites"], "1" ) ;
while ($i < count($as) ) {
$j=count($as)-$i-1;
$indice = $as[$j] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice] ;
$flag= $auteur_1["fonction"];
$fonct_aff=$auteur_1["fonction_aff"];
$mention_resp_lib = "";
$k=0;
$sep="";
while ($flag==$auteur_1["fonction"]) {
$mention_resp_lib =$auteur_1["auteur_isbd"].$sep.$mention_resp_lib;
if ($k==0) $sep= " e ";
else $sep=",";
$k++;
$indice = $as[$j-$k] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice] ;
}
$i=$i+$k;
if($fonct_aff==$first_mention) {
if ($k==1)$mention_resp_lib=$mention_resp[0]." e ".$mention_resp_lib;
else $mention_resp_lib=$mention_resp[0].", ".$mention_resp_lib;
$flag1++;
} else if($fonct_aff !="") $mention_resp_lib=$fonct_aff." ".$mention_resp_lib;
$mention_resp1[] = $mention_resp_lib ;
}
$mention_resp1 =array_reverse($mention_resp1);
if($flag1==1) $mention_resp=$mention_resp1;
else $mention_resp= array_merge($mention_resp,$mention_resp1);
$as = array_keys ($this->responsabilites["responsabilites"], "2" ) ;
$i=0;
while ($i < count($as) ) {
$j=count($as)-$i-1;
$indice = $as[$j] ;
$auteur_2 = $this->responsabilites["auteurs"][$indice] ;
$flag= $auteur_2["fonction"];
$fonct_aff=$auteur_2["fonction_aff"];
$mention_resp_lib = "";
$k=0;
$sep="";
while ($flag==$auteur_2["fonction"]) {
$mention_resp_lib =$auteur_2["auteur_isbd"].$sep.$mention_resp_lib;
if ($k==0) $sep= " e ";
else $sep=",";
$k++;
$indice = $as[$j-$k] ;
$auteur_2 = $this->responsabilites["auteurs"][$indice] ;
}
$i=$i+$k;
$mention_resp_lib =$fonct_aff." ".$mention_resp_lib;
$mention_resp2[] =$mention_resp_lib ;
}
$mention_resp2 =array_reverse($mention_resp2);
$mention_resp= array_merge($mention_resp,$mention_resp2);
$libelle_mention_resp = implode (" ; ",$mention_resp) ;
if ($libelle_mention_resp) $this->auteurs_tous = $libelle_mention_resp ;
else $this->auteurs_tous ="" ;
} // end fetch_auteurs
} // end class notice_affichage_custom_it
class notice_affichage_custom_bretagne extends notice_affichage {
function do_public($short=0,$ex=1) {
global $dbh;
global $msg;
global $charset;
global $opac_url_base, $opac_permalink;
$this->fetch_categories() ;
$this->notice_public="
";
// ******* afin de pouvoir concaténer en td /td sous-collection et collection le cas échéant
global $colspanbretagne;
if ($this->notice->subcoll_id || ($this->notice->year && $this->notice->ed1_id)) $colspanbretagne = " colspan='3' ";
else $colspanbretagne = "";
// Notices parentes
$this->notice_public.=$this->parents;
// constitution de la mention de titre
if ($this->notice->serie_name) {
$this->notice_public.= "\n\t
\n";
//Notices liées
// ajoutées en dehors de l'onglet PUBLIC ailleurs
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
} // end do_public
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
global $tdoc;
// afin d'éviter de recalculer un truc déjà calculé...
// MODIF ER 21 oct 2008 : pour la Bretagne, on recalcule forcément à cause du colspanbretagne
// if ($this->affichage_suite) return $this->affichage_suite ;
// ******* afin de pouvoir concaténer en td /td sous-collection et collection le cas échéant,
// récupérer $colspanbretagne calculé par do_public
global $colspanbretagne;
// serials : si article
$ret .= $this->genere_in_perio () ;
//Espace
$ret.="\n\t
";
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes)
$ret_index .= "\n\t
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if ($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if ($mots_cles)
$ret_index.= "\n\t
";
}
}
$this->affichage_suite = $ret ;
return $ret ;
}
} // end class notice_affichage_custom_bretagne
class notice_affichage_custom_alstom extends notice_affichage {
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite) return $this->affichage_suite ;
// serials : si article
$ret .= $this->genere_in_perio () ;
//Espace
$ret.="
";
}
}
$this->affichage_suite = $ret ;
return $ret ;
}
}
class notice_affichage_mw extends notice_affichage {
//affichage alterné de 2 styles différents dans les lignes du tableau des notices
var $x=""; //gestion de l'alternance des lignes colorées dans le tableau HTML
// génération de l'affichage public----------------------------------------
function do_public($short=0,$ex=1) {
global $msg;
global $tdoc;
global $charset;
global $opac_url_base;
$this->fetch_categories() ;
$this->notice_public = "
";
// constitution de la mention de titre
$x="";
if ($this->notice->serie_name) {
if ($x=="2") $x="";
else $x="2";
$this->notice_public.= "
";
}
if ($x=="2") $x="";
else $x="2";
$this->notice_public.= "
".$msg['title']." :
";
$this->notice_public .= "
".$this->notice->tit1 ;
if ($this->notice->tit4) $this->notice_public .= ": ".$this->notice->tit4 ;
$this->notice_public.="
";
if ($this->notice->tit2) {
if ($x=="2") {$x="";} else {$x="2";}
$this->notice_public .= "
".$msg['other_title_t2']." :
".$this->notice->tit2."
" ;
}
if ($this->notice->tit3) {
if ($x=="2") {$x="";} else {$x="2";}
$this->notice_public .= "
".$msg['other_title_t3']." :
".$this->notice->tit3."
" ;
}
//type de document
if ($tdoc->table[$this->notice->typdoc]) {
if ($x=="2") {$x="";} else {$x="2";}
$this->notice_public .= "
".$msg['typdocdisplay_start']."
".$tdoc->table[$this->notice->typdoc]."
";
}
//auteur
if ($this->auteurs_tous) {
if ($x=="2") {$x="";} else {$x="2";}
$this->notice_public .= "
".$msg['auteur_start']."
".$this->auteurs_tous."
";
}
// mention d'édition
if ($this->notice->mention_edition) {
if ($x=="2") {$x="";} else {$x="2";}
$this->notice_public .= "
".$msg['mention_edition_start']."
".$this->notice->mention_edition."
";
}
//Date de publication
if ($this->notice->ed1_id) {
if ($x=="2") {$x="";} else {$x="2";}
$editeur = new publisher($this->notice->ed1_id);
$this->notice_public .= "
";
// ajout $annee si pas vide. Est vide si déjà ajouté plus haut
if (!$annee) $this->notice_public .= $annee ;
// Titres uniformes
if(($tu_liste=$this->notice->tu->get_print_type(2,$opac_url_base."/index.php?lvl=titre_uniforme_see&id=" ))) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$tu_liste."
";
}
// zone de la collation
if($this->notice->npages)
if ($this->notice->niveau_biblio<>"a") {
if ($x=="2") {$x="";} else {$x="2";}
$this->notice_public .= "
\n";
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
}
function aff_suite() {
global $msg;
global $charset;
global $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite) return $this->affichage_suite ;
// serials : si article
$ret .= $this->genere_in_perio () ;
//Espace
$ret.="
";
}
}
$this->affichage_suite = $ret ;
return $ret ;
}
// fonction d'affichage des exemplaires, résa et expl_num
function aff_resa_expl() {
global $opac_resa ;
global $opac_max_resa ;
global $opac_show_exemplaires ;
global $msg;
global $dbh;
global $popup_resa ;
global $opac_resa_popup ; // la résa se fait-elle par popup ?
global $allow_book ;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_resa_expl) return $this->affichage_resa_expl ;
if ( (is_null($this->dom) &&$opac_show_exemplaires && $this->visu_expl && (!$this->visu_expl_abon || ($this->visu_expl_abon && $_SESSION["user_code"]))) || ($this->rights & 8) ) {
$resa_check=check_statut($this->notice_id,0) ;
// vérification si exemplaire réservable
if ($resa_check) {
// déplacé dans le IF, si pas visible : pas de bouton résa
$requete_resa = "SELECT count(1) FROM resa WHERE resa_idnotice='$this->notice_id'";
$nb_resa_encours = mysql_result(mysql_query($requete_resa,$dbh), 0, 0) ;
if ($nb_resa_encours) $message_nbresa = str_replace("!!nbresa!!", $nb_resa_encours, $msg["resa_nb_deja_resa"]) ;
if (($this->notice->niveau_biblio=="m") && ($_SESSION["user_code"] && $allow_book) && $opac_resa && !$popup_resa) {
$ret .= "
".$explnum;
}
}
$this->affichage_resa_expl = $ret ;
return $ret ;
}
// génération du de l'affichage double avec onglets ---------------------------------------------
// si $depliable=1 alors inclusion du parent / child
function genere_double($depliable=1, $premier='ISBD') {
global $msg;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $opac_avis_allow;
global $opac_allow_add_tag;
$basket="
";
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
if ($this->notice->niveau_biblio=="s")
$icon="icon_per_16x16.gif";
elseif ($this->notice->niveau_biblio=="a")
$icon="icon_art_16x16.gif";
else
$icon="icon_".$this->notice->typdoc."_16x16.gif";
if ($depliable) {
$template="
$case_a_cocher
";
if ($icon) $template.="
";
$template.="
!!heada!!
";
} else {
$template="
$case_a_cocher";
if ($icon) $template.="
";
$template.="
!!heada!!";
}
$template.=$basket;
$template.="
";
$this->affichage_suite=$ret;
return $ret ;
}
}
// Demande CNL affichage de trouver le livre près de chez vous http://www.placedeslibraires.fr/detaillivre.php?gencod= isbn
class notice_affichage_placedeslibraires extends notice_affichage {
function aff_suite() {
global $msg;
global $charset;
if ($this->affichage_suite) return $this->affichage_suite ;
$link="".$msg["notice_trouver_le_livre"]."";
$ret=parent::aff_suite();
$ret.= "
".$msg["notice_librairie"]."
".$link."
";
$this->affichage_suite=$ret;
return $ret ;
}
}
// Demande Livr'Jeunes Nantes
class notice_affichage_livrjeunes extends notice_affichage {
function genere_double($depliable=1, $premier='ISBD') {
$this->genere_simple($depliable, 'PUBLIC');
}
function genere_simple($depliable=1, $what='ISBD') {
global $msg;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $icon_doc;
global $allow_tag ; // l'utilisateur a-t-il le droit d'ajouter un tag
global $opac_avis_display_mode;
$this->double_ou_simple = 1 ;
$this->notice_childs = $this->genere_notice_childs();
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
if ($this->cart_allowed) $basket="notice_id."&header=".rawurlencode(strip_tags($this->notice_header))."\" target=\"cart_info\" class=\"img_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','width=350,height=150,scrollbars=yes,resizable=yes'); return false;\"> ";
// LivrJeunes : avis supprimés d'ici + what=PUBLIC
$what='PUBLIC';
if ($basket) $basket="
".$basket.$img_tag."
";
$icon = $icon_doc[$this->notice->niveau_biblio.$this->notice->typdoc];
if ($depliable) {
$template="
$case_a_cocher
";
if ($icon) $template.="
";
$template.="
!!heada!!
".$basket."!!ISBD!!\n
!!SUITE!!
";
} else {
$template="
$case_a_cocher";
if ($icon) $template.="
";
$template.="
!!heada!!
\n
".$basket."
!!ISBD!!
!!SUITE!!
";
}
if (($opac_avis_display_mode==1) && (($this->avis_allowed && $this->avis_allowed !=2)|| ($_SESSION["user_code"] && $this->avis_allowed ==2))) $this->affichage_avis_detail=$this->avis_detail();
// Serials : différence avec les monographies on affiche [périodique] et [article] devant l'ISBD
if ($this->notice->niveau_biblio =='s') {
$template = str_replace('!!ISBD!!', "[".$msg['isbd_type_perio']."]".$msg["see_bull"]." !!ISBD!!", $template);
} elseif ($this->notice->niveau_biblio =='a') {
$template = str_replace('!!ISBD!!', "[".$msg['isbd_type_art']."] !!ISBD!!", $template);
} elseif ($this->notice->niveau_biblio =='b') {
$template_in = str_replace('!!ISBD!!', "[".$msg['isbd_type_bul']."] !!ISBD!!", $template_in);
}
$this->result = str_replace('!!id!!', $this->notice_id, $template);
$this->result = str_replace('!!heada!!', $this->notice_header, $this->result);
if ($what=='ISBD') {
$this->do_image($this->notice_isbd,$depliable);
$this->result = str_replace('!!ISBD!!', $this->notice_isbd, $this->result);
} else {
$this->do_image($this->notice_public,$depliable);
$this->result = str_replace('!!ISBD!!', $this->notice_public, $this->result);
}
if ($this->affichage_resa_expl || $this->notice_childs || $this->affichage_avis_detail) $this->result = str_replace('!!SUITE!!', $this->notice_childs.$this->affichage_resa_expl.$this->affichage_avis_detail, $this->result);
else $this->result = str_replace('!!SUITE!!', '', $this->result);
$this->aff_resa_expl();
global $action;
if ($action=="print") {
$this->notice_public .= $this->affichage_resa_expl ;
}
}
function aff_resa_expl() {
global $opac_resa ;
global $opac_max_resa ;
global $opac_show_exemplaires ;
global $msg;
global $dbh;
global $popup_resa ;
global $opac_resa_popup ; // la résa se fait-elle par popup ?
global $opac_resa_planning; // la résa est elle planifiée
global $allow_book;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_resa_expl) return $this->affichage_resa_expl ;
/*
if (($avis_en_bas = $this->avis_detail())) {
$ret = $avis_en_bas;
}
*/
if ( (is_null($this->dom) && $opac_show_exemplaires && $this->visu_expl && (!$this->visu_expl_abon || ($this->visu_expl_abon && $_SESSION["user_code"]))) || ($this->rights & 8) ) {
$temp = $this->expl_list($this->notice->niveau_biblio,$this->notice->notice_id, $this->bulletin_id);
$ret .= $temp ;
$this->affichage_expl = $ret ;
}
if ($this->visu_explnum && (!$this->visu_explnum_abon || ($this->visu_explnum_abon && $_SESSION["user_code"])))
if ($this->notice->niveau_biblio=="b" && ($explnum = show_explnum_per_notice(0, $this->bulletin_id, ''))) {
$ret .= "
".$explnum;
}
if (($autres_lectures = $this->autres_lectures($this->notice_id,$this->bulletin_id))) {
$ret .= $autres_lectures;
}
$this->affichage_resa_expl = $ret ;
return $ret ;
}
/*
// fontion qui génère le bloc H3 + table des avis détaillés
function avis_detail () {
global $dbh, $msg;
global $action; // pour gérer l'affichage des avis en impression de panier
$sql_avis = "select note, commentaire, sujet from avis where num_notice='$this->notice_id' and valide=1 order by note desc, id_avis desc";
$r_avis = mysql_query($sql_avis, $dbh) or die (" ".mysql_error()." ".$sql_avis." ");
$sql_avisnb = "select note, count(id_avis) as nb_by_note from avis where num_notice='$this->notice_id' and valide=1 group by note ";
$r_avisnb = mysql_query($sql_avisnb, $dbh) or die (" ".mysql_error()." ".$sql_avisnb." ");
while ($datanb=mysql_fetch_object($r_avisnb))
$rowspan[$datanb->note]=$datanb->nb_by_note ;
if (mysql_num_rows($r_avis)) {
// comptage des avis par note afin de mettre les bons rowspan
$odd_even=1;
$note_conserve=-1;
$ret="";
while (($data=mysql_fetch_object($r_avis))) {
// on affiche les résultats
if ($note_conserve!=$data->note) {
if ($odd_even==0) {
$pair_impair="odd";
$odd_even=1;
} else if ($odd_even==1) {
$pair_impair="even";
$odd_even=0;
}
$categ_avis=$msg['avis_detail_note_'.$data->note];
$note_conserve=$data->note;
$tr_javascript=" class='$pair_impair' ";
$ret .= "
" ;
}
}
return $ret;
}
*/
}
// abiodoc >> generation des liens vers la boutique openstudio
class notice_affichage_abiodoc extends notice_affichage {
var $explnum_shoplink="./../boutique/produit.php?ref=";
var $abiodoc_app_val="";
var $abiodoc_app_lib="";
// génération du de l'affichage double avec onglets ---------------------------------------------
// si $depliable=1 alors inclusion du parent / child
function genere_double($depliable=1, $premier='ISBD') {
global $msg;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $icon_doc,$biblio_doc,$tdoc;
global $allow_tag; // l'utilisateur a-t-il le droit d'ajouter un tag
$this->result ="";
if(!$this->notice_id) return;
$this->get_abiodoc_app();
$this->premier = $premier ;
$this->double_ou_simple = 2 ;
$this->notice_childs = $this->genere_notice_childs();
if ($this->cart_allowed) $basket="notice_id."&header=".rawurlencode(strip_tags($this->notice_header))."\" target=\"cart_info\" class=\"img_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','width=350,height=150,scrollbars=yes,resizable=yes'); return false;\">";
//Avis
if (($this->avis_allowed && $this->avis_allowed !=2)|| ($_SESSION["user_code"] && $this->avis_allowed ==2)) $img_tag .= $this->affichage_avis($this->notice_id);
//Suggestions
if (($this->sugg_allowed ==2)|| ($_SESSION["user_code"] && $this->sugg_allowed ==1)) $img_tag .= $this->affichage_suggestion($this->notice_id);
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
$icon = $icon_doc[$this->notice->niveau_biblio.$this->notice->typdoc];
if ($depliable) {
$template="
".$explnum;
}
}
return $ret;
}
// fonction retournant les infos d'exemplaires numeriques pour une notice ou un bulletin donne
function show_explnum_per_notice($no_notice, $no_bulletin) {
// params :
// $link_expl= lien associe a l'exemplaire avec !!explnum_id!! a mettre à jour
global $dbh;
global $charset;
global $opac_url_base ;
if (!$no_notice && !$no_bulletin) return "";
global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
create_tableau_mimetype() ;
// récupération du nombre d'exemplaires
$requete = "SELECT * FROM explnum WHERE ";
if ($no_notice && !$no_bulletin) {
$requete .= "explnum_notice='$no_notice' ";
} elseif (!$no_notice && $no_bulletin) {
$requete .= "explnum_bulletin='$no_bulletin' ";
} elseif ($no_notice && $no_bulletin) {
$requete .= "explnum_bulletin='$no_bulletin' or explnum_notice='$no_notice' ";
}
$requete .= " order by explnum_mimetype, explnum_id ";
$res = mysql_query($requete, $dbh);
$nb_ex = mysql_num_rows($res);
if($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
while (($expl = mysql_fetch_object($res))) {
if ($i==1) {
$ligne="
";
return $entry;
}
}
// pour affichage du descriptif du produit dans la boutique
class notice_affichage_abiodoc_boutique extends notice_affichage {
var $explnum_shoplink="./../boutique/produit.php?ref=";
// génération du header----------------------------------------------------
function do_header() {
global $charset;
global $opac_notice_reduit_format ;
global $opac_url_base, $msg ;
$type_reduit = substr($opac_notice_reduit_format,0,1);
if ($type_reduit=="E" || $type_reduit=="P" ) {
// peut-être veut-on des personnalises ?
$perso_voulus_temp = substr($opac_notice_reduit_format,2) ;
if ($perso_voulus_temp!="") $perso_voulus = explode(",",$perso_voulus_temp);
}
if ($type_reduit=="E") {
// zone de l'editeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$editeur_reduit = $editeur->display ;
if ($this->notice->year) $editeur_reduit .= " - ".$this->notice->year." ";
} elseif ($this->notice->year) {
// année mais pas d'éditeur et si pas un article
if($this->notice->niveau_biblio != 'a' && $this->notice->niveau_hierar != 2) $editeur_reduit = $this->notice->year." ";
}
} else $editeur_reduit = "" ;
//Champs personnalises a ajouter au reduit
if (!$this->p_perso->no_special_fields) {
if (count($perso_voulus)) {
$this->p_perso->get_values($this->notice_id) ;
for ($i=0; $ip_perso->get_formatted_output($this->p_perso->values[$perso_voulus[$i]],$perso_voulus[$i])." " ;
}
} else $perso_voulu_aff = "" ;
} else $perso_voulu_aff = "" ;
//Si c'est un périodique, ajout du titre et bulletin
if($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar == 2) {
$aff_perio_title="in ".$this->parent_title.", ".$this->parent_numero." (".($this->parent_date?$this->parent_date:"[".$this->parent_aff_date_date."]").")";
}
//Si c'est une notice de bulletin ajout du titre et bulletin
if($this->notice->niveau_biblio == 'b' && $this->notice->niveau_hierar == 2) {
$aff_bullperio_title = " ".($this->parent_date?sprintf($msg["bul_titre_perio"],$this->parent_title):sprintf($msg["bul_titre_perio"],$this->parent_title.", ".$this->parent_numero." [".$this->parent_aff_date_date."]"))."";
} else $aff_bullperio_title="";
// récupération du titre de série
// constitution de la mention de titre
if($this->notice->serie_name) {
$this->notice_header = $this->notice->serie_name;
if($this->notice->tnvol) $this->notice_header .= $this->notice->tnvol;
} elseif ($this->notice->tnvol) $this->notice_header .= $this->notice->tnvol;
if ($this->notice_header) $this->notice_header .= ". ".$this->notice->tit1 ;
else $this->notice_header = $this->notice->tit1;
$this->notice_header .= $aff_bullperio_title;
$this->notice_header_without_html = $this->notice_header;
$this->notice_header = "".$this->notice_header."";
//coins pour Zotero
$coins_span=$this->gen_coins_span();
$this->notice_header.=$coins_span;
$notice_header_suite = "";
if ($type_reduit=="T" && $this->notice->tit4) $notice_header_suite = " : ".$this->notice->tit4;
if ($this->auteurs_principaux) $notice_header_suite .= " / ".$this->auteurs_principaux;
if ($editeur_reduit) $notice_header_suite .= " / ".$editeur_reduit ;
if ($perso_voulu_aff) $notice_header_suite .= " / ".$perso_voulu_aff ;
if ($aff_perio_title) $notice_header_suite .= " ".$aff_perio_title;
$this->notice_header_without_html .= $notice_header_suite ;
$this->notice_header .= $notice_header_suite."" ;
$this->notice_header_with_link=inslink($this->notice_header, str_replace("!!id!!", $this->notice_id, $this->lien_rech_notice)) ;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
// résumé
if($this->notice->n_resume) $ret .= "
".$msg['n_resume_start']."
".nl2br($this->notice->n_resume)."
";
// note de contenu
if($this->notice->n_contenu) $ret .= "
";
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$this->notice->tu_print_type_2."
";
}
// zone de la collation
$collation=$this->notice->npages;
if($collation && $this->notice->ill)$collation.=" : ";
$collation.=$this->notice->ill;
if($collation && $this->notice->size)$collation.=", ";
$collation.=$this->notice->size;
if($collation) $this->notice_public.= "
".$msg['n_collation']."
".$collation."
";
if ($this->notice->accomp) $this->notice_public .= "
".$msg['accomp_start']."
".$this->notice->accomp."
";
// ISBN ou NO. commercial
if ($this->notice->code) $this->notice_public .= "
".$msg['code_start']."
".$this->notice->code."
";
if ($this->notice->prix) $this->notice_public .= "
".$msg['price_start']."
".$this->notice->prix."
";
// note générale
if ($this->notice->n_gen) $zoneNote = nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset));
if ($zoneNote) $this->notice_public .= "
".$msg['n_gen_start']."
".$zoneNote."
";
// langues
if (count($this->langues)) {
$this->notice_public .= "
".$msg['537']." :
".$this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $this->notice_public .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->notice_public.="
\n";
//etat des collections
if ($this->notice->niveau_biblio=='s' && $this->notice->niveau_hierar==1) $this->notice_public.=$this->affichage_etat_collections();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
//Espace
//$ret.="
";
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
";
//Champs personalisés
$perso_aff = $perso_aff_suite = $titre = $loc = $etablissement = $date = $lieu_ed = "" ;
if (!$this->p_perso->no_special_fields) {
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]) {
if($p["NAME"] == "t_d_f_titre")$titre=$p["AFF"];
elseif($p["NAME"] == "t_d_f_lieu_etabl")$lieu_ed=$p["AFF"];
elseif($p["NAME"] == "t_d_f_date")$date=$p["AFF"];
elseif($p["NAME"] == "sstitre_parallele");//rien, il est affiché après le titre paralelle
elseif($p["NAME"] == "titre_parallele");//rien, les autres titres parralleles sont affichés après le titre paralelle
else $perso_aff_suite.="
";
if ($this->notice->tit2) $this->notice_public .= "
".$msg['other_title_t2']." :
".$this->notice->tit2."
" ;
if ($this->notice->tit3) $this->notice_public .= "
".$msg['other_title_t3']." :
".$this->notice->tit3."
" ;
//Responsabilités
if ($this->auteurs_tous) $this->notice_public .= "
".$msg['auteur_start']."
".$this->auteurs_tous."
";
if ($this->congres_tous) $this->notice_public .= "
".$msg['congres_aff_public_libelle']."
".$this->congres_tous."
";
if ($this->collectivite_tous) $this->notice_public .= "
".$msg['collectivites_search'].":
".$this->collectivite_tous."
";
// zone de l'éditeur
if ($this->notice->year)
$annee = "
".$msg['year_start']."
".$this->notice->year."
" ;
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
//Subtype
if($this->customs["SUBTYPE"]) $this->notice_public .= $this->customs["SUBTYPE"] ;
if (!$short) $this->notice_public .= $this->aff_suite_public();
else $this->notice_public.=$this->genere_in_perio();
$this->notice_public.="
\n";
//etat des collections
if ($this->notice->niveau_biblio=='s' && $this->notice->niveau_hierar==1) $this->notice_public.=$this->affichage_etat_collections();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
}
// fonction d'affichage de la suite PUBLIC
function aff_suite_public() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_url_base;
$ret .= $this->genere_in_perio () ;
/** toutes indexations **/
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
".$libelle_key."
".nl2br($mots_cles)."
";
if ($ret_index)
$ret.=$ret_index;
// résumé
if($this->notice->n_resume) $ret .= "
".$msg['n_resume_start']."
".nl2br($this->notice->n_resume)."
";
$this->affichage_suite = $ret ;
return $ret ;
}
// fonction d'affichage de la suite PUBLIC
function aff_suite_isbd() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
$ret .= $this->genere_in_perio () ;
/** toutes indexations **/
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
".$libelle_key."
".nl2br($mots_cles)."
";
if ($ret_index)
$ret.=$ret_index;
// résumé
if($this->notice->n_resume) $ret .= "
".$msg['n_resume_start']."
".nl2br($this->notice->n_resume)."
";
// ISBN ou NO. commercial
if ($this->notice->code) $ret .= "
".$msg['code_start']."
".$this->notice->code."
";
//Persos
if($this->customs["DISCO"]) $ret .= $this->customs["DISCO"];
if($this->customs["PUBMED"]) $ret .= $this->customs["PUBMED"];
if($this->customs["DOI"]) $ret .= $this->customs["DOI"];
// Permalink avec Id
if ($opac_permalink) $ret.= "
" ;
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_isbd .= $annee ;
//Open Repository
$this->notice_isbd .= $this->customs["REPOS"];
//Subtype
$this->notice_isbd .= $this->customs["SUBTYPE"];
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_isbd .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_isbd .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_isbd .= "
".$msg['ill_start']."
".$this->notice->ill."
";
// langues
if (count($this->langues)) {
$this->notice_isbd .= "
".$msg['537']." :
".$this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $this->notice_isbd .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->notice_isbd.="
".$explnum;
}
}
return $ret;
}
// fonction retournant les infos d'exemplaires numériques pour une notice ou un bulletin donné
function show_explnum_per_notice($no_notice, $no_bulletin, $link_expl='') {
// params :
// $link_expl= lien associé à l'exemplaire avec !!explnum_id!! à mettre à jour
global $dbh;
global $charset;
global $opac_url_base ;
if (!$no_notice && !$no_bulletin) return "";
global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
create_tableau_mimetype() ;
// récupération du nombre d'exemplaires
$requete = "SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_data, explnum_vignette, explnum_nomfichier, explnum_extfichier
FROM explnum left join explnum_location on (num_explnum=explnum_id) WHERE ";
if ($no_notice && !$no_bulletin) $requete .= "explnum_notice='$no_notice' ";
elseif (!$no_notice && $no_bulletin) $requete .= "explnum_bulletin='$no_bulletin' ";
elseif ($no_notice && $no_bulletin) $requete .= "explnum_bulletin='$no_bulletin' or explnum_notice='$no_notice' ";
$requete .= " and (num_location='".$_SESSION['empr_location']."' or num_location is null) order by explnum_mimetype, explnum_id ";
$res = mysql_query($requete, $dbh);
$nb_ex = mysql_num_rows($res);
if($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
global $search_terms;
while (($expl = mysql_fetch_object($res))) {
if ($i==1) $ligne="
";
} else {
$this->notice_isbd.=$this->genere_in_perio();
}
//etat des collections
if ($this->notice->niveau_biblio=='s'&&$this->notice->niveau_hierar==1) $this->notice_isbd.=$this->affichage_etat_collections();
//Notices liées
// ajoutées en dehors de l'onglet PUBLIC ailleurs
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
}
// génération de l'affichage public----------------------------------------
function do_public($short=0,$ex=1) {
global $dbh;
global $msg;
global $tdoc;
global $charset;
global $memo_notice;
$this->notice_public="";
if(!$this->notice_id) return;
// Notices parentes
$this->notice_public.=$this->parents;
$this->notice_public .= "
";
// constitution de la mention de titre
if ($this->notice->serie_name) {
$this->notice_public.= "
";
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$this->notice->tu_print_type_2."
";
}
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_public .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_public .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_public .= "
".$msg['ill_start']."
".$this->notice->ill."
";
if ($this->notice->size) $this->notice_public .= "
".$msg['size_start']."
".$this->notice->size."
";
if ($this->notice->accomp) $this->notice_public .= "
".$msg['accomp_start']."
".$this->notice->accomp."
";
// ISBN ou NO. commercial
if ($this->notice->code) $this->notice_public .= "
".$msg['code_start']."
".$this->notice->code."
";
if ($this->notice->prix) $this->notice_public .= "
".$msg['price_start']."
".$this->notice->prix."
";
// note générale
if ($this->notice->n_gen) $zoneNote = nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset));
if ($zoneNote) $this->notice_public .= "
".$msg['n_gen_start']."
".$zoneNote."
";
// langues
if (count($this->langues)) {
$this->notice_public .= "
".$msg['537']." :
".$this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $this->notice_public .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->notice_public.="
\n";
//etat des collections
if ($this->notice->niveau_biblio=='s' && $this->notice->niveau_hierar==1) $this->notice_public.=$this->affichage_etat_collections();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
$ret .= $this->genere_in_perio () ;
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
";
}
$this->affichage_suite = $ret ;
return $ret ;
}
}
/*
* Classe d'affichage pour le CRIPS
*/
class notice_affichage_crips extends notice_affichage {
// génération du de l'affichage double avec onglets ---------------------------------------------
// si $depliable=1 alors inclusion du parent / child
var $customs = array();
function genere_double($depliable=1, $premier='ISBD') {
global $msg;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $opac_show_social_network;
global $icon_doc,$biblio_doc,$tdoc;
global $opac_notice_enrichment;
global $allow_tag; // l'utilisateur a-t-il le droit d'ajouter un tag
global $allow_sugg;// l'utilisateur a-t-il le droit de faire une suggestion
global $opac_avis_display_mode;
global $opac_allow_simili_search;
$this->result ="";
if(!$this->notice_id) return;
$this->premier = $premier ;
$this->double_ou_simple = 2 ;
$this->double_ou_simple = 2 ;
$this->notice_childs = $this->genere_notice_childs();
if ($this->cart_allowed) $basket="notice_id."&header=".rawurlencode(strip_tags($this->notice_header))."\" target=\"cart_info\" class=\"img_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','width=350,height=150,scrollbars=yes,resizable=yes'); return false;\">";
//Avis
if (($opac_avis_display_mode==0) && (($this->avis_allowed && $this->avis_allowed !=2)|| ($_SESSION["user_code"] && $this->avis_allowed ==2))) $img_tag .= $this->affichage_avis($this->notice_id);
//Suggestions
if (($this->sugg_allowed ==2)|| ($_SESSION["user_code"] && ($this->sugg_allowed ==1) && $allow_sugg)) $img_tag .= $this->affichage_suggestion($this->notice_id);
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
if ($this->no_header) $icon="";
else $icon = $icon_doc[$this->notice->niveau_biblio.$this->notice->typdoc];
if($opac_notice_enrichment){
$enrichment = new enrichment();
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 ($depliable) {
$template="
";
} else {
$this->notice_isbd.=$this->genere_in_perio();
}
//etat des collections
if ($this->notice->niveau_biblio=='s'&&$this->notice->niveau_hierar==1) $this->notice_isbd.=$this->affichage_etat_collections();
//Notices liées
// ajoutées en dehors de l'onglet PUBLIC ailleurs
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
}
// génération de l'affichage public----------------------------------------
function do_public($short=0,$ex=1) {
global $dbh;
global $msg;
global $tdoc;
global $charset;
global $memo_notice;
$this->notice_public="";
if(!$this->notice_id) return;
// Chargement des champs persos
if(!$this->customs) $this->customs = $this->load_custom_fields();
// Notices parentes
$this->notice_public.=$this->parents;
$this->notice_public .= "
";
// constitution de la mention de titre
if ($this->notice->serie_name) {
$this->notice_public.= "
";
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$this->notice->tu_print_type_2."
";
}
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_public .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_public .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_public .= "
".$msg['ill_start']."
".$this->notice->ill."
";
if ($this->notice->size) $this->notice_public .= "
".$msg['size_start']."
".$this->notice->size."
";
if ($this->notice->accomp) $this->notice_public .= "
".$msg['accomp_start']."
".$this->notice->accomp."
";
// ISBN ou NO. commercial
if ($this->notice->code) $this->notice_public .= "
".$msg['code_start']."
".$this->notice->code."
";
if ($this->notice->prix) $this->notice_public .= "
".$msg['price_start']."
".$this->notice->prix."
";
// note générale
if ($this->notice->n_gen) $zoneNote = nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset));
if ($zoneNote) $this->notice_public .= "
".$msg['n_gen_start']."
".$zoneNote."
";
// langues
if (count($this->langues)) {
$this->notice_public .= "
".$msg['537']." :
".$this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $this->notice_public .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->notice_public.="
\n";
//etat des collections
if ($this->notice->niveau_biblio=='s' && $this->notice->niveau_hierar==1) $this->notice_public.=$this->affichage_etat_collections();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite_public() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
//Espace
//$ret.="
";
// toutes indexations
$ret_index = "";
//Thématique
if($this->customs["THEMATIQUE"]) $ret_index .= $this->customs["THEMATIQUE"];
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
//Public cible
if($this->customs["CIBLE"]) $ret_index .= $this->customs["CIBLE"];
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
";
}
//Champs personalisés visibles restants
$perso_aff = "" ;
if (!$this->p_perso->no_special_fields) {
// $this->memo_perso_ permet au affichages personalisés dans notice_affichage_ex de gagner du temps
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]) {
if (($p["NAME"] != "thematiques") && ($p["NAME"] != "date_de_publication")
&& ($p["NAME"] != "public_cible") && ($p["NAME"] != "ancien_type_doc")
&& ($p["NAME"] != "signataire")) {
$perso_aff .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
}
}
}
}
$ret .= $perso_aff ;
$this->affichage_suite = $ret ;
$this->affichage_suite_flag = 1 ;
return $ret ;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite_isbd() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
//Espace
//$ret.="
";
return $entry;
}
}
/*
* Classe d'affichage pour l'OFDT
*/
class notice_affichage_ofdt extends notice_affichage {
var $customs = array();
// génération de l'affichage public----------------------------------------
function do_public($short=0,$ex=1) {
global $dbh;
global $msg;
global $tdoc;
global $charset;
global $memo_notice;
$this->notice_public="";
if(!$this->notice_id) return;
// Chargement des champs persos
if(!$this->customs) $this->customs = $this->load_custom_fields();
// Notices parentes
$this->notice_public.=$this->parents;
$this->notice_public .= "
";
// constitution de la mention de titre
if ($this->notice->serie_name) {
$this->notice_public.= "
";
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$this->notice->tu_print_type_2."
";
}
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_public .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_public .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_public .= "
".$msg['ill_start']."
".$this->notice->ill."
";
if ($this->notice->size) $this->notice_public .= "
".$msg['size_start']."
".$this->notice->size."
";
if ($this->notice->accomp) $this->notice_public .= "
".$msg['accomp_start']."
".$this->notice->accomp."
";
// ISBN ou NO. commercial
if ($this->notice->code) $this->notice_public .= "
".$msg['code_start']."
".$this->notice->code."
";
if ($this->notice->prix) $this->notice_public .= "
".$msg['price_start']."
".$this->notice->prix."
";
// note générale
if ($this->notice->n_gen) $zoneNote = nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset));
if ($zoneNote) $this->notice_public .= "
".$msg['n_gen_start']."
".$zoneNote."
";
// langues
if (count($this->langues)) {
$this->notice_public .= "
".$msg['537']." :
".$this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $this->notice_public .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->notice_public.="
\n";
//etat des collections
if ($this->notice->niveau_biblio=='s' && $this->notice->niveau_hierar==1) $this->notice_public.=$this->affichage_etat_collections();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// Chargement des champs persos
if(!$this->customs) $this->customs = $this->load_custom_fields();
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
// toutes indexations
$ret_index = "";
// indexation interne
if($this->notice->indexint) {
$indexint = new indexint($this->notice->indexint);
$ret_index.= "
";
}
$this->affichage_suite = $ret ;
$this->affichage_suite_flag = 1 ;
return $ret ;
}
/*
* Chargement des champs persos
*/
function load_custom_fields(){
$custom_fields = array();
if (!$this->p_perso->no_special_fields) {
$perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $i
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
if ($p["NAME"] == "doma"){
$custom_fields["DOMAINE_TOXI"] = $value;
}
}
}
}
return $custom_fields;
}
function do_mots_cle() {
global $pmb_keyword_sep ;
if (!$pmb_keyword_sep) $pmb_keyword_sep=" ";
if (!trim($this->notice->index_l)) return "";
$tableau_mots = explode ($pmb_keyword_sep,trim($this->notice->index_l)) ;
if (!sizeof($tableau_mots)) return "";
for ($i=0; $ilien_rech_motcle)) ;
}
if(ord($pmb_keyword_sep)==0xa || ord($pmb_keyword_sep)==0xd) $mots_cles = implode(" ", $tableau_mots);
else $mots_cles = implode(" $pmb_keyword_sep ", $tableau_mots);
return $mots_cles ;
}
}
class notice_affichage_commande_copie extends notice_affichage {
var $send_order ="";
function do_header() {
global $msg;
global $charset;
global $lang;
global $opac_url_base,$lang;
if ($this->notice_header) return $this->notice_header ;
parent::do_header();
//booléen pour les articles de 5 ans et plus
$condition_art = false;
if($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar ==2){
if (date("Y")-($this->parent_date*1) >=5 ){
$condition_art = true;
}
}
$condition_chap = false;
if($this->notice->typdoc == "w"){
//si une année est défini
if ($this->notice->year != ""){
//en début d'année (de janvier à juin) on prend année strictement < à 2ans
if(date("m")*1 <=6){
if(date("Y")-$this->notice->year > 2){
$condition_chap = true;
}
//dans le 2ème semestre on prend année <= à 2ans...
}else{
if(date("Y")-$this->notice->year >= 2){
$condition_chap = true;
}
}
}
}
if($condition_chap|| $condition_art)
$this->send_order.= "
";
}
// génération du de l'affichage double avec onglets ---------------------------------------------
// si $depliable=1 alors inclusion du parent / child
function genere_double($depliable=1, $premier='ISBD') {
global $msg;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $icon_doc,$biblio_doc,$tdoc;
global $allow_tag; // l'utilisateur a-t-il le droit d'ajouter un tag
$this->result ="";
if(!$this->notice_id) return;
$this->premier = $premier ;
$this->double_ou_simple = 2 ;
$this->notice_childs = $this->genere_notice_childs();
if ($this->cart_allowed) $basket="notice_id."&header=".rawurlencode(strip_tags($this->notice_header))."\" target=\"cart_info\" class=\"img_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','width=350,height=150,scrollbars=yes,resizable=yes'); return false;\">";
//Avis
if (($this->avis_allowed && $this->avis_allowed !=2)|| ($_SESSION["user_code"] && $this->avis_allowed ==2)) $img_tag .= $this->affichage_avis($this->notice_id);
//Suggestions
if (($this->sugg_allowed ==2)|| ($_SESSION["user_code"] && $this->sugg_allowed ==1)) $img_tag .= $this->affichage_suggestion($this->notice_id);
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
$icon = $icon_doc[$this->notice->niveau_biblio.$this->notice->typdoc];
if ($depliable) {
$template="
"
;
// Serials : différence avec les monographies on affiche [périodique] et [article] devant l'ISBD
if ($this->notice->niveau_biblio =='s') {
$template_in = str_replace('!!ISBD!!', "[".$msg['isbd_type_perio']."]".$msg["see_bull"]." !!ISBD!!", $template_in);
$template_in = str_replace('!!PUBLIC!!', "[".$msg['isbd_type_perio']."]".$msg["see_bull"]." !!PUBLIC!!", $template_in);
} elseif ($this->notice->niveau_biblio =='a') {
$template_in = str_replace('!!ISBD!!', "[".$msg['isbd_type_art']."] !!ISBD!!", $template_in);
$template_in = str_replace('!!PUBLIC!!', "[".$msg['isbd_type_art']."] !!PUBLIC!!", $template_in);
} elseif ($this->notice->niveau_biblio =='b') {
$template_in = str_replace('!!ISBD!!', "[".$msg['isbd_type_bul']."] !!ISBD!!", $template_in);
$template_in = str_replace('!!PUBLIC!!', "[".$msg['isbd_type_bul']."] !!PUBLIC!!", $template_in);
}
$template_in = str_replace('!!ISBD!!', $this->notice_isbd, $template_in);
$template_in = str_replace('!!PUBLIC!!', $this->notice_public, $template_in);
$template_in = str_replace('!!id!!', $this->notice_id, $template_in);
$this->do_image($template_in,$depliable);
$this->result = str_replace('!!id!!', $this->notice_id, $template);
if($this->notice_header)
$this->result = str_replace('!!heada!!', $this->notice_header, $this->result);
else $this->result = str_replace('!!heada!!', '', $this->result);
if ($this->send_order)
$this->result = str_replace('!!send_order!!', $this->send_order, $this->result);
else $this->result = str_replace('!!send_order!!', '', $this->result);
$this->result = str_replace('!!CONTENU!!', $template_in, $this->result);
if ($this->affichage_resa_expl || $this->notice_childs) $this->result = str_replace('!!SUITE!!', $this->notice_childs.$this->affichage_resa_expl, $this->result);
else $this->result = str_replace('!!SUITE!!', '', $this->result);
}
function do_isbd_small($short=0,$ex=1) {
global $dbh;
global $msg;
global $tdoc;
global $charset;
global $opac_notice_affichage_class;
global $memo_notice;
$this->notice_isbd_small="";
if(!$this->notice_id) return;
//In
//Recherche des notices parentes
$requete="select linked_notice, relation_type, rank from notices_relations where num_notice=".$this->notice_id." order by relation_type,rank";
$result_linked=mysql_query($requete,$dbh);
//Si il y en a, on prépare l'affichage
if (mysql_num_rows($result_linked)) {
global $relation_listup ;
if (!$relation_listup) $relation_listup=new marc_list("relationtypeup");
}
$r_type=array();
$ul_opened=false;
//Pour toutes les notices liées
while (($r_rel=mysql_fetch_object($result_linked))) {
if ($opac_notice_affichage_class) $notice_affichage=$opac_notice_affichage_class; else $notice_affichage="notice_affichage";
if($memo_notice[$r_rel->linked_notice]["header"]) {
$parent_notice->notice_header=$memo_notice[$r_rel->linked_notice]["header"];
} else {
$parent_notice=new $notice_affichage($r_rel->linked_notice,$this->liens,$this->cart,$this->to_print,1);
$parent_notice->visu_expl = 0;
$parent_notice->visu_explnum = 0;
$parent_notice->do_header();
}
//Présentation différente si il y en a un ou plusieurs
if (mysql_num_rows($result_linked)==1) {
$this->notice_isbd_small.=" ".$relation_listup->table[$r_rel->relation_type]." ";
if ($this->lien_rech_notice) $this->notice_isbd_small.="";
$this->notice_isbd_small.=$parent_notice->notice_header;
if ($this->lien_rech_notice) $this->notice_isbd_small.="";
$this->notice_isbd_small.="
";
// si une seule, peut-être est-ce une notice de bulletin, aller chercher $this>bulletin_id
$rqbull="select bulletin_id from bulletins where num_notice=".$this->notice_id;
$rqbullr=mysql_query($rqbull);
$rqbulld=@mysql_fetch_object($rqbullr);
if($rqbulld->bulletin_id) $this->bulletin_id=$rqbulld->bulletin_id;
} else {
if (!$r_type[$r_rel->relation_type]) {
$r_type[$r_rel->relation_type]=1;
if ($ul_opened) $this->notice_isbd_small.=""; else { $this->notice_isbd_small.=" "; $ul_opened=true; }
$this->notice_isbd_small.="".$relation_listup->table[$r_rel->relation_type]."";
$this->notice_isbd_small.="
";
} else {
$this->notice_isbd_small.=$this->genere_in_perio();
}
//etat des collections
if ($this->notice->niveau_biblio=='s'&&$this->notice->niveau_hierar==1) $this->notice_isbd_small.=$this->affichage_etat_collections();
//Notices liées
// ajoutées en dehors de l'onglet PUBLIC ailleurs
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
}
}
/*
* Classe d'affichage pour le RECI
*/
class notice_affichage_reci extends notice_affichage {
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
// résumé
if($this->notice->n_resume) $ret .= "
".$msg['n_resume_start']."
".nl2br($this->notice->n_resume)."
";
// note de contenu
if($this->notice->n_contenu) $ret .= "
";
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
" ;
}
if ($ret_index) {
$ret.=$ret_index;
//$ret.="
";
}
//Champs personalisés
$perso_aff = "" ;
if (!$this->p_perso->no_special_fields) {
// $this->memo_perso_ permet au affichages personalisés dans notice_affichage_ex de gagner du temps
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]) $perso_aff .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
}
}
if ($perso_aff) {
//Espace
//$ret.="
";
$ret .= $perso_aff ;
}
if ($this->notice->lien) {
//$ret.="
";
}
}
$this->affichage_suite = $ret ;
$this->affichage_suite_flag = 1 ;
return $ret ;
}
}
class notice_affichage_ireps extends notice_affichage {
// génération du de l'affichage double avec onglets
// si $depliable=1 alors inclusion du parent / child
function genere_double($depliable=1, $premier='ISBD') {
global $msg;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $opac_visionneuse_allow;
global $icon_doc,$biblio_doc,$tdoc;
global $allow_tag; // l'utilisateur a-t-il le droit d'ajouter un tag
global $allow_sugg;// l'utilisateur a-t-il le droit de faire une suggestion
global $lvl; // pour savoir qui demande l'affichage
$this->result ="";
if(!$this->notice_id) return;
$this->premier = $premier ;
$this->double_ou_simple = 2 ;
$this->notice_childs = $this->genere_notice_childs();
if ($this->cart_allowed) $basket="notice_id."&header=".rawurlencode(strip_tags($this->notice_header))."\" target=\"cart_info\" class=\"img_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','width=350,height=150,scrollbars=yes,resizable=yes'); return false;\">";
//Avis
if (($this->avis_allowed && $this->avis_allowed !=2)|| ($_SESSION["user_code"] && $this->avis_allowed ==2)) $img_tag .= $this->affichage_avis($this->notice_id);
//Suggestions
if (($this->sugg_allowed ==2)|| ($_SESSION["user_code"] && ($this->sugg_allowed ==1) && $allow_sugg)) $img_tag .= $this->affichage_suggestion($this->notice_id);
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
if ($this->no_header) $icon="";
else $icon = $icon_doc[$this->notice->niveau_biblio.$this->notice->typdoc];
if ($depliable) {
$template="
"
;
// Serials : différence avec les monographies on affiche [périodique] et [article] devant l'ISBD
if ($this->notice->niveau_biblio =='s') {
if($this->get_bulletins()){
if ($lvl == "notice_display")$voir_bulletins=" ".$msg["see_bull"]."";
else $voir_bulletins=" ".$msg["see_bull"]."";
}
$template_in = str_replace('!!ISBD!!', "[".$msg['isbd_type_perio']."]$voir_bulletins !!ISBD!!", $template_in);
$template_in = str_replace('!!PUBLIC!!', "[".$msg['isbd_type_perio']."]$voir_bulletins !!PUBLIC!!", $template_in);
} elseif ($this->notice->niveau_biblio =='a') {
$template_in = str_replace('!!ISBD!!', "[".$msg['isbd_type_art']."] !!ISBD!!", $template_in);
$template_in = str_replace('!!PUBLIC!!', "[".$msg['isbd_type_art']."] !!PUBLIC!!", $template_in);
} elseif ($this->notice->niveau_biblio =='b') {
$template_in = str_replace('!!ISBD!!', "[".$msg['isbd_type_bul']."] !!ISBD!!", $template_in);
$template_in = str_replace('!!PUBLIC!!', "[".$msg['isbd_type_bul']."] !!PUBLIC!!", $template_in);
}
$template_in = str_replace('!!ISBD!!', $this->notice_isbd, $template_in);
$template_in = str_replace('!!PUBLIC!!', $this->notice_public, $template_in);
$template_in = str_replace('!!id!!', $this->notice_id, $template_in);
$this->do_image($template_in,$depliable);
$this->result = str_replace('!!id!!', $this->notice_id, $template);
if($this->notice_header)
$this->result = str_replace('!!heada!!', $this->notice_header, $this->result);
else $this->result = str_replace('!!heada!!', '', $this->result);
$this->result = str_replace('!!CONTENU!!', $template_in, $this->result);
if ($this->affichage_resa_expl || $this->notice_childs) $this->result = str_replace('!!SUITE!!', $this->notice_childs.$this->affichage_resa_expl, $this->result);
else $this->result = str_replace('!!SUITE!!', '', $this->result);
} // fin genere_simple($depliable=1, $what='ISBD')
// génération du header----------------------------------------------------
function do_header() {
global $opac_notice_reduit_format ;
global $opac_url_base, $msg ;
global $memo_notice;
global $opac_visionneuse_allow;
global $opac_url_base;
$this->notice_header="";
if(!$this->notice_id) return;
$type_reduit = substr($opac_notice_reduit_format,0,1);
if ($type_reduit=="E" || $type_reduit=="P" ) {
// peut-être veut-on des personnalisés ?
$perso_voulus_temp = substr($opac_notice_reduit_format,2) ;
if ($perso_voulus_temp!="") $perso_voulus = explode(",",$perso_voulus_temp);
}
if ($type_reduit=="E") {
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$editeur_reduit = $editeur->display ;
if ($this->notice->year) $editeur_reduit .= " - ".$this->notice->year." ";
} elseif ($this->notice->year) {
// année mais pas d'éditeur et si pas un article
if($this->notice->niveau_biblio != 'a' && $this->notice->niveau_hierar != 2) $editeur_reduit = $this->notice->year." ";
}
} else $editeur_reduit = "" ;
//Champs personalisés à ajouter au réduit
if (!$this->p_perso->no_special_fields) {
if (count($perso_voulus)) {
$this->p_perso->get_values($this->notice_id) ;
for ($i=0; $ip_perso->get_formatted_output($this->p_perso->values[$perso_voulus[$i]],$perso_voulus[$i])." " ;
}
} else $perso_voulu_aff = "" ;
} else $perso_voulu_aff = "" ;
//Si c'est un depouillement, ajout du titre et bulletin
if($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar == 2 && $this->parent_title) {
$aff_perio_title="".$msg[in_serial]." ".$this->parent_title.", ".$this->parent_numero." (".($this->parent_date?$this->parent_date:"[".$this->parent_aff_date_date."]").")";
}
//Si c'est une notice de bulletin ajout du titre et bulletin
if($this->notice->niveau_biblio == 'b' && $this->notice->niveau_hierar == 2) {
$aff_bullperio_title = " ".($this->parent_date?sprintf($msg["bul_titre_perio"],$this->parent_title):sprintf($msg["bul_titre_perio"],$this->parent_title.", ".$this->parent_numero." [".$this->parent_aff_date_date."]"))."";
} else $aff_bullperio_title="";
// récupération du titre de série
// constitution de la mention de titre
if($this->notice->serie_name) {
$this->notice_header = $this->notice->serie_name;
if($this->notice->tnvol) $this->notice_header .= ', '.$this->notice->tnvol;
} elseif ($this->notice->tnvol) $this->notice_header .= $this->notice->tnvol;
if ($this->notice_header) $this->notice_header .= ". ".$this->notice->tit1 ;
else $this->notice_header = $this->notice->tit1;
$this->notice_header .= $aff_bullperio_title;
$this->notice_header_without_html = $this->notice_header;
$this->notice_header = "".$this->notice_header."";
//on ne propose à Zotero que les monos et les articles...
if($this->notice->niveau_biblio == "m" ||($this->notice->niveau_biblio == "a" && $this->notice->niveau_hierar == 2)) {
$this->notice_header =str_replace("!!zoteroNotice!!"," notice='".$this->notice_id."' ",$this->notice_header);
}else $this->notice_header =str_replace("!!zoteroNotice!!","",$this->notice_header);
$notice_header_suite = "";
if ($type_reduit=="T" && $this->notice->tit4) $notice_header_suite = " : ".$this->notice->tit4;
if ($this->auteurs_principaux) $notice_header_suite .= " / ".$this->auteurs_principaux;
if ($this->notice->niveau_biblio =='m') {
switch($type_reduit) {
case '1':
if ($this->notice->year != '') $notice_header_suite.=' / ('.htmlentities($this->notice->year,ENT_QUOTES,$charset).')';
break;
case '2':
if ($this->notice->year != '' && $this->notice->niveau_biblio!='b') $notice_header_suite.=' / ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')';
if ($this->notice->code != '') $notice_header_suite.=' / '.htmlentities($this->notice->code, ENT_QUOTES, $charset);
break;
default:
break;
}
}
if ($editeur_reduit) $notice_header_suite .= " / ".$editeur_reduit ;
if ($perso_voulu_aff) $notice_header_suite .= " / ".$perso_voulu_aff ;
if ($aff_perio_title) $notice_header_suite .= " ".$aff_perio_title;
$this->notice_header_without_html .= $notice_header_suite ;
$this->notice_header .= $notice_header_suite."";
//$this->notice_header.=" notice->notice_id."\" style=\"visibility:hidden\">";
if ($this->notice->lien) {
if(!$this->notice->eformat) $info_bulle=$msg["open_link_url_notice"];
else $info_bulle=$this->notice->eformat;
// ajout du lien pour les ressource électroniques
$this->notice_header .= " notice->lien."\" target=\"__LINK__\">";
$this->notice_header .= "notice_header .= " alt=\"";
$this->notice_header .= $info_bulle;
$this->notice_header .= "\" title=\"";
$this->notice_header .= $info_bulle;
$this->notice_header .= "\">";
$this->notice_header .= "";
}
if ($this->notice->niveau_biblio == 'b') {
$sql_explnum = "SELECT explnum_id, explnum_nom, explnum_nomfichier, explnum_url FROM explnum, bulletins WHERE bulletins.num_notice = ".$this->notice_id." AND bulletins.bulletin_id = explnum.explnum_bulletin order by explnum_id";
} else {
$sql_explnum = "SELECT explnum_id, explnum_nom, explnum_nomfichier,explnum_url FROM explnum WHERE explnum_notice = ".$this->notice_id." order by explnum_id";
}
$explnums = mysql_query($sql_explnum);
$explnumscount = mysql_num_rows($explnums);
if ( (is_null($this->dom_2) && $this->visu_explnum && (!$this->visu_explnum_abon || ($this->visu_explnum_abon && $_SESSION["user_code"]))) || ($this->rights & 16) ) {
if ($explnumscount == 1) {
$explnumrow = mysql_fetch_object($explnums);
if ($explnumrow->explnum_nomfichier){
if($explnumrow->explnum_nom == $explnumrow->explnum_nomfichier) $info_bulle=$msg["open_doc_num_notice"].$explnumrow->explnum_nomfichier;
else $info_bulle=$explnumrow->explnum_nom;
}elseif ($explnumrow->explnum_url){
if($explnumrow->explnum_nom == $explnumrow->explnum_url) $info_bulle=$msg["open_link_url_notice"].$explnumrow->explnum_url;
else $info_bulle=$explnumrow->explnum_nom;
}
$this->notice_header .= " ";
if ($opac_visionneuse_allow && $this->docnum_allowed){
$this->notice_header .="
explnum_id.");return false;\" alt='$alt' title='$alt'>";
}else{
$this->notice_header .= "explnum_id."\" target=\"__LINK__\">";
}
$this->notice_header .= "notice_header .= " alt=\"";
$this->notice_header .= htmlentities($info_bulle,ENT_QUOTES,$charset);
$this->notice_header .= "\" title=\"";
$this->notice_header .= htmlentities($info_bulle,ENT_QUOTES,$charset);
$this->notice_header .= "\">";
$this->notice_header .= "";
} elseif ($explnumscount > 1) {
$explnumrow = mysql_fetch_object($explnums);
$info_bulle=$msg["info_docs_num_notice"];
$this->notice_header .= "";
}
}
//coins pour Zotero
$coins_span=$this->gen_coins_span();
$this->notice_header.=$coins_span;
$memo_notice[$this->notice_id]["header"]=$this->notice_header;
$memo_notice[$this->notice_id]["niveau_biblio"] = $this->notice->niveau_biblio;
$this->notice_header_with_link=inslink($this->notice_header, str_replace("!!id!!", $this->notice_id, $this->lien_rech_notice)) ;
} // fin do_header()
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
//Espace
//$ret.="
";
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
";
//Champs personalisés
$perso_aff = "" ;
if (!$this->p_perso->no_special_fields) {
// $this->memo_perso_ permet au affichages personalisés dans notice_affichage_ex de gagner du temps
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]) $perso_aff .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
}
}
if ($perso_aff) {
//Espace
//$ret.="
";
$ret .= $perso_aff ;
}
if ($this->notice->lien) {
//$ret.="
";
}
}
$this->affichage_suite = $ret ;
$this->affichage_suite_flag = 1 ;
return $ret ;
} // fin aff_suite()
// fonction de génération du tableau des exemplaires
function expl_list($type,$id,$bull_id=0) {
global $dbh;
global $msg, $charset;
global $expl_list_header, $expl_list_footer;
global $opac_expl_data, $opac_expl_order, $opac_url_base;
global $pmb_transferts_actif,$transferts_statut_transferts;
global $memo_p_perso_expl;
global $opac_show_empty_items_block ;
global $opac_show_exemplaires_analysis;
global $expl_list_header_loc_tpl,$opac_aff_expl_localises;
$nb_expl_autre_loc=0;
$nb_perso_aff=0;
// les dépouillements ou périodiques n'ont pas d'exemplaire
if (($type=="a" && !$opac_show_exemplaires_analysis) || $type=="s") return "" ;
if(!$memo_p_perso_expl) $memo_p_perso_expl=new parametres_perso("expl");
$header_found_p_perso=0;
// les exemplaires des monographies
if ($type=="m") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.*";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders";
$requete .= " WHERE expl_notice='$id' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idnotice='$id' ";
} // fin si "m"
// les exemplaires des bulletins
if ($type=="b") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.*";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "b"
// les exemplaires des bulletins des articles affichés
// ERICROBERT : A faire ici !
if ($type=="a" && $opac_show_exemplaires_analysis) {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.*";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "a"
// récupération du nombre d'exemplaires
$res = mysql_query($requete, $dbh);
if (!$opac_expl_data) $opac_expl_data="expl_cb,expl_cote,tdoc_libelle,location_libelle,section_libelle";
$colonnesarray=explode(",",$opac_expl_data);
$expl_list_header_deb="
";
for ($i=0; $i".htmlentities($colencours,ENT_QUOTES, $charset)."";
}
$expl_list_header_deb.="
";
$expl_liste_all.=$expl_liste;
if($opac_aff_expl_localises && $_SESSION["empr_location"]) {
if($expl->expl_location==$_SESSION["empr_location"]) {
$expl_liste_loc.=$expl_liste;
} else $nb_expl_autre_loc++;
}
$expl_liste="";
} // fin while
//S'il y a des titres de champs perso dans les exemplaires
if($header_perso_aff) {
$expl_list_header_deb.=$header_perso_aff;
}
if($opac_aff_expl_localises && $_SESSION["empr_location"] && $nb_expl_autre_loc) {
// affichage avec onglet selon la localisation
if(!$expl_liste_loc) $expl_liste_loc="
".$msg["no_expl"]."
";
$expl_liste_all=str_replace("!!EXPL!!",$expl_list_header_deb.$expl_liste_all,$expl_list_header_loc_tpl);
$expl_liste_all=str_replace("!!EXPL_LOC!!",$expl_list_header_deb.$expl_liste_loc,$expl_liste_all);
$expl_liste_all=str_replace("!!mylocation!!",$_SESSION["empr_location_libelle"],$expl_liste_all);
$expl_liste_all=str_replace("!!id!!",$id+$bull_id,$expl_liste_all);
} else {
// affichage de la liste d'exemplaires calculée ci-dessus
if (!$expl_liste_all && $opac_show_empty_items_block==1) {
$expl_liste_all = $expl_list_header.$expl_list_header_deb."
";
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$this->notice->tu_print_type_2."
";
}
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_public .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_public .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_public .= "
".$msg['ill_start']."
".$this->notice->ill."
";
if ($this->notice->size) $this->notice_public .= "
".$msg['size_start']."
".$this->notice->size."
";
if ($this->notice->accomp) $this->notice_public .= "
".$msg['accomp_start']."
".$this->notice->accomp."
";
// ISBN ou NO. commercial
if ($this->notice->code) $this->notice_public .= "
".$msg['code_start']."
".$this->notice->code."
";
if ($this->notice->prix) $this->notice_public .= "
".$msg['price_start']."
".$this->notice->prix."
";
// note générale
if ($this->notice->n_gen) $zoneNote = nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset));
if ($zoneNote) $this->notice_public .= "
".$msg['n_gen_start']."
".$zoneNote."
";
// langues
if (count($this->langues)) {
$this->notice_public .= "
".$msg['537']." :
".$this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $this->notice_public .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->notice_public.="
\n";
//etat des collections
if ($this->notice->niveau_biblio=='s' && $this->notice->niveau_hierar==1) $this->notice_public.=$this->affichage_etat_collections();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
} // fin do_public($short=0,$ex=1)
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret .= $this->genere_in_perio () ;
//Espace
//$ret.="
";
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
";
//Champs personalisés
$perso_aff = "" ;
if (!$this->p_perso->no_special_fields) {
// $this->memo_perso_ permet au affichages personalisés dans notice_affichage_ex de gagner du temps
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]) $perso_aff .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
}
}
if ($perso_aff) {
//Espace
// if($this->notice->n_resume) $ret.="
";
$ret .= $perso_aff ;
}
if ($this->notice->lien) {
//$ret.="
";
}
}
$this->affichage_suite = $ret ;
$this->affichage_suite_flag = 1 ;
return $ret ;
} // fin aff_suite()
}
/*
* WMO-CUSTOM: Classe d'affichage pour WMO - World meteorological Organisation
*/
class notice_affichage_wmo extends notice_affichage {
var $collectivite_tous = "";
var $customs = array();
/*
* Affichage public
*/
function do_public($short=0,$ex=1){
global $dbh;
global $msg;
global $charset;
global $memo_notice;
global $lang, $tdoc, $langue_doc;
global $icon_doc,$biblio_doc;
$this->notice_public="";
if(!$this->notice_id) return;
//vignette
if ($this->notice->thumbnail_url) {$url_image_ok=$this->notice->thumbnail_url;}
else {$url_image_ok = str_replace("!!noticecode!!", $code_chiffre, $url_image) ;
$image = $url_image_ok;}
if ($this->notice->thumbnail_url) {
$vignette ="";
}
$this->notice_public .="
".$vignette."
";
/*if ($this->notice->niveau_biblio =='b') "";*/
// constitution de la mention de titre
if ($this->notice->niveau_biblio =='s' || $this->notice->niveau_biblio =='a') {
$this->notice_public .= "
".$this->notice->tit1;
}
if ($this->notice->tit4) $this->notice_public .= ": ".$this->notice->tit4."
";
else $this->notice_public .="
";
if ($this->notice->tit2) $this->notice_public .= " ".$this->notice->tit2;
//Recherche des notices parentes
$requete="select linked_notice, relation_type, rank from notices_relations where num_notice=".$this->notice_id." order by relation_type,rank";
$result_linked=mysql_query($requete,$dbh);
//Si il y en a, on prépare l'affichage
if (mysql_num_rows($result_linked)) {
global $relation_listup ;
if (!$relation_listup) $relation_listup=new marc_list("relationtypeup");
}
$r_type=array();
$ul_opened=false;
//Pour toutes les notices liées
while (($r_rel=mysql_fetch_object($result_linked))) {
if($memo_notice[$r_rel->linked_notice]["header"]) {
$parent_notice->notice_header=$memo_notice[$r_rel->linked_notice]["header"];
} else {
$parent_notice=new notice_affichage($r_rel->linked_notice,$this->liens,1,$this->to_print,1);
$parent_notice->visu_expl = 0 ;
$parent_notice->visu_explnum = 0 ;
$parent_notice->do_header();
}
//Présentation différente si il y en a un ou plusieurs
if (mysql_num_rows($result_linked)==1) {
$this->notice_public.=" ".$relation_listup->table[$r_rel->relation_type]." ";
if ($this->lien_rech_notice) $this->notice_public.="";
$this->notice_public.=$parent_notice->notice_header;
if ($this->lien_rech_notice) $this->notice_public.="";
$this->notice_public.=" ";
// si une seule, peut-être est-ce une notice de bulletin, aller cherche $this>bulletin_id
$rqbull="select bulletin_id from bulletins where num_notice=".$this->notice_id;
$rqbullr=mysql_query($rqbull);
$rqbulld=@mysql_fetch_object($rqbullr);
$this->bulletin_id=$rqbulld->bulletin_id;
} else {
if (!$r_type[$r_rel->relation_type]) {
$r_type[$r_rel->relation_type]=1;
if ($ul_opened) $this->notice_public.=""; else { $this->notice_public.=" "; $ul_opened=true; }
$this->notice_public.="
";
if ($ret_index)
$ret.=$ret_index;
$this->affichage_suite = $ret ;
return $ret ;
}
// fonction d'affichage de la suite PUBLIC
function aff_suite_isbd() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
$ret .= $this->genere_in_perio () ;
// ISBN ou NO. commercial
if ($this->notice->code) $ret .= "
".$msg['code_start']."
".$this->notice->code."
";
// Permalink avec Id
if ($opac_permalink) $ret.= "
";
$this->affichage_suite = $ret ;
return $ret ;
}
/*
* Récuperation des autorites
*/
function fetch_auteurs() {
global $fonction_auteur;
global $dbh ;
global $opac_url_base ;
$this->responsabilites = array() ;
$auteurs = array() ;
$res["responsabilites"] = array() ;
$res["auteurs"] = array() ;
$rqt = "SELECT author_id, responsability_fonction, responsability_type, author_type,author_name, author_rejete, author_type, author_date, author_see, author_web ";
$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 = mysql_query($rqt, $dbh);
while (($notice=mysql_fetch_object($res_sql))) {
$responsabilites[] = $notice->responsability_type ;
$info_bulle="";
if($notice->author_type==72 || $notice->author_type==71) {
$congres=new auteur($notice->author_id);
$auteur_isbd=$congres->isbd_entry;
$auteur_titre=$congres->display;
$info_bulle=" title='".$congres->info_bulle."' ";
} else {
if ($notice->author_rejete) $auteur_isbd = $notice->author_rejete." ".$notice->author_name ;
else $auteur_isbd = $notice->author_name ;
// 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.")" ;
}
// 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) $auteur_isbd .= ", ".$fonction_auteur[$notice->responsability_fonction] ;*/
$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,
'auteur_isbd' => $auteur_isbd,
'auteur_titre' => $auteur_titre
) ;
}
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 = "Prénom 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] ;
if($auteur_1["type"]==72 || $auteur_1["type"]==72) {
$congres=new auteur($auteur_1["id"]);
$aut1_libelle[]=$congres->display;
} else {
$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() ;
$collectivite_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 if($this->responsabilites["auteurs"][$as]["type"]==71){
$collectivite_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 if($this->responsabilites["auteurs"][$indice]["type"]==71){
$collectivite_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 if($this->responsabilites["auteurs"][$indice]["type"]==71){
$collectivite_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_collectivite_resp = implode ("; ",$collectivite_resp) ;
if ($libelle_collectivite_resp) $this->collectivite_tous = $libelle_collectivite_resp ;
else $this->collectivite_tous ="" ;
$libelle_congres_resp = implode ("; ",$congres_resp) ;
if ($libelle_congres_resp) $this->congres_tous = $libelle_congres_resp ;
else $this->congres_tous ="" ;
}
/*
* Affichage ISBD
*/
function do_isbd($short=0,$ex=1) {
global $dbh;
global $msg;
global $tdoc;
global $charset;
global $opac_notice_affichage_class;
global $memo_notice;
$this->notice_isbd="";
if(!$this->notice_id) return;
//Recherche des notices parentes
$requete="select linked_notice, relation_type, rank from notices_relations where num_notice=".$this->notice_id." order by relation_type,rank";
$result_linked=mysql_query($requete,$dbh);
//Si il y en a, on prépare l'affichage
if (mysql_num_rows($result_linked)) {
global $relation_listup ;
if (!$relation_listup) $relation_listup=new marc_list("relationtypeup");
}
$r_type=array();
$ul_opened=false;
//Pour toutes les notices liées
while (($r_rel=mysql_fetch_object($result_linked))) {
if($memo_notice[$r_rel->linked_notice]["header"]) {
$parent_notice->notice_header=$memo_notice[$r_rel->linked_notice]["header"];
} else {
$parent_notice=new notice_affichage($r_rel->linked_notice,$this->liens,1,$this->to_print,1);
$parent_notice->visu_expl = 0 ;
$parent_notice->visu_explnum = 0 ;
$parent_notice->do_header();
}
//Présentation différente si il y en a un ou plusieurs
if (mysql_num_rows($result_linked)==1) {
$this->notice_isbd.=" ".$relation_listup->table[$r_rel->relation_type]." ";
if ($this->lien_rech_notice) $this->notice_isbd.="";
$this->notice_isbd.=$parent_notice->notice_header;
if ($this->lien_rech_notice) $this->notice_isbd.="";
$this->notice_isbd.="
";
// si une seule, peut-être est-ce une notice de bulletin, aller cherche $this>bulletin_id
$rqbull="select bulletin_id from bulletins where num_notice=".$this->notice_id;
$rqbullr=mysql_query($rqbull);
$rqbulld=@mysql_fetch_object($rqbullr);
$this->bulletin_id=$rqbulld->bulletin_id;
} else {
if (!$r_type[$r_rel->relation_type]) {
$r_type[$r_rel->relation_type]=1;
if ($ul_opened) $this->notice_isbd.=""; else { $this->notice_isbd.=" "; $ul_opened=true; }
$this->notice_isbd.="".$relation_listup->table[$r_rel->relation_type]."";
$this->notice_isbd.="
" ;
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_isbd .= $annee ;
//Open Repository
$this->notice_isbd .= $this->customs["REPOS"];
//Subtype
$this->notice_isbd .= $this->customs["SUBTYPE"];
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_isbd .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_isbd .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_isbd .= "
".$msg['ill_start']."
".$this->notice->ill."
";
// langues
if (count($this->langues)) {
$this->notice_isbd .= "
".$msg['537']." :
".$this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $this->notice_isbd .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->notice_isbd.="
".$explnum;
}
}
return $ret;
}
/*
* Chargement des champs persos
*/
// fonction retournant les infos d'exemplaires numériques pour une notice ou un bulletin donné
function show_explnum_per_notice($no_notice, $no_bulletin, $link_expl='') {
// params :
// $link_expl= lien associé à l'exemplaire avec !!explnum_id!! à mettre à jour
global $dbh;
global $charset;
global $opac_url_base ;
if (!$no_notice && !$no_bulletin) return "";
global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
create_tableau_mimetype() ;
// récupération du nombre d'exemplaires
$requete = "SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_data, explnum_vignette, explnum_nomfichier, explnum_extfichier
FROM explnum join explnum_location on (num_explnum=explnum_id and num_location='".$_SESSION['empr_location']."') WHERE ";
if ($no_notice && !$no_bulletin) $requete .= "explnum_notice='$no_notice' ";
elseif (!$no_notice && $no_bulletin) $requete .= "explnum_bulletin='$no_bulletin' ";
elseif ($no_notice && $no_bulletin) $requete .= "explnum_bulletin='$no_bulletin' or explnum_notice='$no_notice' ";
$requete .= " order by explnum_mimetype, explnum_id ";
$res = mysql_query($requete, $dbh);
$nb_ex = mysql_num_rows($res);
if($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
global $search_terms;
while (($expl = mysql_fetch_object($res))) {
if ($i==1) $ligne="
".$explnum;
}
}
return $ret;
} // fin aff_explnum ()
// fonction retournant les infos d'exemplaires numériques pour une notice ou un bulletin donné
function show_explnum_per_notice($no_notice, $no_bulletin, $link_expl='') {
// params :
// $link_expl= lien associé à l'exemplaire avec !!explnum_id!! à mettre à jour
global $dbh;
global $charset;
global $opac_url_base ;
global $opac_visionneuse_allow;
global $opac_photo_filtre_mimetype;
if (!$no_notice && !$no_bulletin) return "";
global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
create_tableau_mimetype() ;
// récupération du nombre d'exemplaires
$requete = "SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_data, explnum_vignette, explnum_nomfichier, explnum_extfichier, explnum_repertoire FROM explnum WHERE ";
if ($no_notice && !$no_bulletin) $requete .= "(explnum_notice='$no_notice' and explnum_bulletin=0) ";
elseif (!$no_notice && $no_bulletin) $requete .= "(explnum_bulletin='$no_bulletin' and explnum_notice) ";
elseif ($no_notice && $no_bulletin) $requete .= "(explnum_bulletin='$no_bulletin' and explnum_notice=0) or (explnum_notice='$no_notice' and explnum_bulletin) ";
$requete .= " order by explnum_mimetype, explnum_id ";
$res = mysql_query($requete, $dbh);
$nb_ex = mysql_num_rows($res);
if ($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
global $search_terms;
while (($expl = mysql_fetch_object($res))) {
if ($i==1) $ligne="
";
return $entry;
}
// génération du header----------------------------------------------------
function do_header() {
global $opac_notice_reduit_format ;
global $opac_url_base, $msg ;
global $memo_notice;
global $opac_visionneuse_allow;
global $opac_url_base;
$this->notice_header="";
if(!$this->notice_id) return;
$type_reduit = substr($opac_notice_reduit_format,0,1);
if ($type_reduit=="E" || $type_reduit=="P" ) {
// peut-être veut-on des personnalisés ?
$perso_voulus_temp = substr($opac_notice_reduit_format,2) ;
if ($perso_voulus_temp!="") $perso_voulus = explode(",",$perso_voulus_temp);
}
if ($type_reduit=="E") {
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$editeur_reduit = $editeur->display ;
if ($this->notice->year) $editeur_reduit .= " - ".$this->notice->year." ";
} elseif ($this->notice->year) {
// année mais pas d'éditeur et si pas un article
if($this->notice->niveau_biblio != 'a' && $this->notice->niveau_hierar != 2) $editeur_reduit = $this->notice->year." ";
}
} else $editeur_reduit = "" ;
//Champs personalisés à ajouter au réduit
if (!$this->p_perso->no_special_fields) {
if (count($perso_voulus)) {
$this->p_perso->get_values($this->notice_id) ;
for ($i=0; $ip_perso->get_formatted_output($this->p_perso->values[$perso_voulus[$i]],$perso_voulus[$i])." " ;
}
} else $perso_voulu_aff = "" ;
} else $perso_voulu_aff = "" ;
//Si c'est un depouillement, ajout du titre et bulletin
if($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar == 2 && $this->parent_title) {
$aff_perio_title="".$msg[in_serial]." ".$this->parent_title.", ".$this->parent_numero." (".($this->parent_date?$this->parent_date:"[".$this->parent_aff_date_date."]").")";
}
//Si c'est une notice de bulletin ajout du titre et bulletin
if($this->notice->niveau_biblio == 'b' && $this->notice->niveau_hierar == 2) {
$aff_bullperio_title = " ".($this->parent_date?sprintf($msg["bul_titre_perio"],$this->parent_title):sprintf($msg["bul_titre_perio"],$this->parent_title.", ".$this->parent_numero." [".$this->parent_aff_date_date."]"))."";
} else $aff_bullperio_title="";
// récupération du titre de série
// constitution de la mention de titre
if($this->notice->serie_name) {
$this->notice_header = $this->notice->serie_name;
if($this->notice->tnvol) $this->notice_header .= ', '.$this->notice->tnvol;
} elseif ($this->notice->tnvol) $this->notice_header .= $this->notice->tnvol;
if ($this->notice_header) $this->notice_header .= ". ".$this->notice->tit1 ;
else $this->notice_header = $this->notice->tit1;
$this->notice_header .= $aff_bullperio_title;
if ($this->notice->niveau_biblio =='m') {
switch($type_reduit) {
case '1':
if ($this->notice->year != '') $this->notice_header.=' ('.htmlentities($this->notice->year,ENT_QUOTES,$charset).')';
break;
case '2':
if ($this->notice->year != '' && $this->notice->niveau_biblio!='b') $this->notice_header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')';
if ($this->notice->code != '') $this->notice_header.=' / '.htmlentities($this->notice->code, ENT_QUOTES, $charset);
break;
default:
break;
}
}
$this->notice_header_without_html = $this->notice_header;
$this->notice_header = "".$this->notice_header."";
//on ne propose à Zotero que les monos et les articles...
if($this->notice->niveau_biblio == "m" ||($this->notice->niveau_biblio == "a" && $this->notice->niveau_hierar == 2)) {
$this->notice_header =str_replace("!!zoteroNotice!!"," notice='".$this->notice_id."' ",$this->notice_header);
}else $this->notice_header =str_replace("!!zoteroNotice!!","",$this->notice_header);
$notice_header_suite = "";
if ($type_reduit=="T" && $this->notice->tit4) $notice_header_suite = " : ".$this->notice->tit4;
if ($this->auteurs_principaux) $notice_header_suite .= " / ".$this->auteurs_principaux;
if ($editeur_reduit) $notice_header_suite .= " / ".$editeur_reduit ;
if ($perso_voulu_aff) $notice_header_suite .= " / ".$perso_voulu_aff ;
if ($aff_perio_title) $notice_header_suite .= " ".$aff_perio_title;
$this->notice_header_without_html .= $notice_header_suite ;
//$this->notice_header .= $notice_header_suite."";
//Un span de trop ?
$this->notice_header .= $notice_header_suite;
//$this->notice_header.=" notice->notice_id."\" style=\"visibility:hidden\">";
$this->notice_header_doclink="";
if ($this->notice->lien) {
if(!$this->notice->eformat) $info_bulle=$msg["open_link_url_notice"];
else $info_bulle=$this->notice->eformat;
// ajout du lien pour les ressource électroniques
$this->notice_header_doclink .= " notice->lien."\" target=\"__LINK__\">";
$this->notice_header_doclink .= "notice_header_doclink .= " alt=\"";
$this->notice_header_doclink .= $info_bulle;
$this->notice_header_doclink .= "\" title=\"";
$this->notice_header_doclink .= $info_bulle;
$this->notice_header_doclink .= "\">";
$this->notice_header_doclink .= "";
}
if ($this->notice->niveau_biblio == 'b') {
$sql_explnum = "SELECT explnum_id, explnum_nom, explnum_nomfichier, explnum_url, explnum_repertoire FROM explnum, bulletins WHERE bulletins.num_notice = ".$this->notice_id." AND bulletins.bulletin_id = explnum.explnum_bulletin order by explnum_id";
} else {
$sql_explnum = "SELECT explnum_id, explnum_nom, explnum_nomfichier,explnum_url, explnum_repertoire FROM explnum WHERE explnum_notice = ".$this->notice_id." order by explnum_id";
}
$explnums = mysql_query($sql_explnum);
$explnumscount = mysql_num_rows($explnums);
if ( (is_null($this->dom_2) && $this->visu_explnum && (!$this->visu_explnum_abon || ($this->visu_explnum_abon && $_SESSION["user_code"]))) || ($this->rights & 16) ) {
if ($explnumscount == 1) {
$explnumrow = mysql_fetch_object($explnums);
if ($explnumrow->explnum_nomfichier){
if($explnumrow->explnum_nom == $explnumrow->explnum_nomfichier) $info_bulle=$msg["open_doc_num_notice"].$explnumrow->explnum_nomfichier;
else $info_bulle=$explnumrow->explnum_nom;
}elseif ($explnumrow->explnum_url){
if($explnumrow->explnum_nom == $explnumrow->explnum_url) $info_bulle=$msg["open_link_url_notice"].$explnumrow->explnum_url;
else $info_bulle=$explnumrow->explnum_nom;
}
$this->notice_header_doclink .= " ";
if ($opac_visionneuse_allow && $this->docnum_allowed){
$this->notice_header_doclink .="
explnum_id.");return false;\" alt='$alt' title='$alt'>";
}else{
if($explnumrow->explnum_repertoire != 0){
switch($_SERVER['REMOTE_ADDR']){
case "92.103.17.90":
case "92.103.17.91":
case "92.103.17.92":
case "92.103.17.93":
case "92.103.17.94":
case "217.128.195.136":
case "193.251.186.82":
case "80.13.185.226":
case "80.14.211.232":
case "80.13.10.218":
case "80.13.195.117":
//accès interne
$this->notice_header_doclink .= "" ;
break;
default :
//accès externe
$this->notice_header_doclink .= "explnum_id."\" target=\"__LINK__\">" ;
break;
}
}else{
//accès externe
$suite_url_explnum ="doc_num.php?explnum_id=$expl->explnum_id";
$this->notice_header_doclink .= "explnum_id."\" target=\"__LINK__\">" ;
}
$this->notice_header_doclink .= "";
}
$this->notice_header_doclink .= "notice_header_doclink .= " alt=\"";
$this->notice_header_doclink .= htmlentities($info_bulle,ENT_QUOTES,$charset);
$this->notice_header_doclink .= "\" title=\"";
$this->notice_header_doclink .= htmlentities($info_bulle,ENT_QUOTES,$charset);
$this->notice_header_doclink .= "\">";
$this->notice_header_doclink .= "";
} elseif ($explnumscount > 1) {
$explnumrow = mysql_fetch_object($explnums);
$info_bulle=$msg["info_docs_num_notice"];
$this->notice_header_doclink .= "";
}
}
//coins pour Zotero
$coins_span=$this->gen_coins_span();
$this->notice_header.=$coins_span;
$this->notice_header_without_doclink=$this->notice_header;
$this->notice_header.=$this->notice_header_doclink;
$memo_notice[$this->notice_id]["header"]=$this->notice_header;
$memo_notice[$this->notice_id]["niveau_biblio"] = $this->notice->niveau_biblio;
$this->notice_header_with_link=inslink($this->notice_header, str_replace("!!id!!", $this->notice_id, $this->lien_rech_notice)) ;
} // fin do_header()
}
class notice_affichage_agroparistech extends notice_affichage {
// récupération des categories ------------------------------------------------------------------
function fetch_categories() {
global $opac_thesaurus, $opac_categories_categ_in_line, $pmb_keyword_sep, $opac_categories_affichage_ordre;
global $dbh;
global $lang,$opac_categories_show_only_last;
global $categories_memo,$libelle_thesaurus_memo;
global $categories_top;
$categ_repetables = array() ;
if(!count($categories_top)) {
$q = "select num_thesaurus,id_noeud from noeuds where num_parent in(select id_noeud from noeuds where autorite='TOP') ";
$r = mysql_query($q, $dbh);
while(($res = mysql_fetch_object($r))) {
$categories_top[]=$res->id_noeud;
}
}
$requete = "select * from (
select libelle_thesaurus, c0.libelle_categorie as categ_libelle, c0.comment_public, n0.id_noeud , n0.num_parent, langue_defaut,id_thesaurus, if(c0.langue = '".$lang."',2, if(c0.langue= thesaurus.langue_defaut ,1,0)) as p, ordre_vedette, ordre_categorie
FROM noeuds as n0, categories as c0,thesaurus,notices_categories
where notices_categories.num_noeud=n0.id_noeud and n0.id_noeud = c0.num_noeud and n0.num_thesaurus=id_thesaurus and
notices_categories.notcateg_notice=".$this->notice_id." order by id_thesaurus, n0.id_noeud, p desc
) as list_categ group by id_noeud";
if ($opac_categories_affichage_ordre==1) $requete .= " order by ordre_vedette, ordre_categorie";
$result_categ=@mysql_query($requete);
if (mysql_num_rows($result_categ)) {
while(($res_categ = 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($categ_id,$categories_top))$categ_head=1;
if ($opac_categories_show_only_last || $categ_head) {
if ($opac_thesaurus) $catalog_form="[".$libelle_thesaurus."] ".$libelle_categ;
//Pour AgroParisTech
if($res_categ->id_thesaurus == 6){
$ma_req="SELECT libelle_categorie FROM categories WHERE num_noeud='".$num_parent."'";
$ma_res=mysql_query($ma_req);
if(mysql_num_rows($ma_res)){
$libelle_categ.=" [".mysql_result($ma_res,0,0)."]";
}
}
// 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(!$categories_memo[$categ_id]) {
$anti_recurse[$categ_id]=1;
$path_table='';
$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=@mysql_query($requete);
if (mysql_num_rows($result)) {
$parent = 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
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=@mysql_query($requete);
if (mysql_num_rows($result)) {
$parent = mysql_fetch_object($result);
$anti_recurse[$parent->categ_id]=1;
$path_table[] = array(
'id' => $parent->categ_id,
'libelle' => $parent->categ_libelle);
} 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='';
while(list($xi, $l) = each($path_table)) {
$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] ;
}
}
}
}
while (list($nom_tesaurus, $val_lib)=each($categ_repetables)) {
//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_tesaurus."]".implode(" [".$nom_tesaurus."]",$val_lib) ;
}else {
$categ_repetables_aff = "".$nom_tesaurus." ".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 ";
}
$this->categories_toutes = $tmpcateg_aff;
} // fin fetch_categories()
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
//Seule l'indexation décimale est supprimée par rapport à la fonction d'origine
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
";
//Champs personalisés
$perso_aff = "" ;
if (!$this->p_perso->no_special_fields) {
// $this->memo_perso_ permet au affichages personalisés dans notice_affichage_ex de gagner du temps
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]) $perso_aff .="
";
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$this->notice->tu_print_type_2."
";
}
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_public .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_public .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_public .= "
".$msg['ill_start']."
".$this->notice->ill."
";
if ($this->notice->size) $this->notice_public .= "
".$msg['size_start']."
".$this->notice->size."
";
if ($this->notice->accomp) $this->notice_public .= "
".$msg['accomp_start']."
".$this->notice->accomp."
";
// ISBN ou NO. commercial
if ($this->notice->code) $this->notice_public .= "
".$msg['code_start']."
".$this->notice->code."
";
if ($this->notice->prix) $this->notice_public .= "
".$msg['price_start']."
".$this->notice->prix."
";
// note générale
if ($this->notice->n_gen) $zoneNote = nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset));
if ($zoneNote) $this->notice_public .= "
".$msg['n_gen_start']."
".$zoneNote."
";
// langues
if (count($this->langues)) {
$this->notice_public .= "
";
}
//etat des collections
if ($this->notice->niveau_biblio=='s'&&$this->notice->niveau_hierar==1) $this->notice_isbd.=$this->affichage_etat_collections();
//Notices liées
// ajoutées en dehors de l'onglet PUBLIC ailleurs
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
} // fin do_isbd($short=0,$ex=1)
// fonction de génération du tableau des exemplaires
function expl_list($type,$id,$bull_id=0,$build_ifempty=1) {
global $dbh;
global $msg, $charset;
global $expl_list_header, $expl_list_footer;
global $opac_expl_data, $opac_expl_order, $opac_url_base;
global $pmb_transferts_actif,$transferts_statut_transferts;
global $memo_p_perso_expl;
global $opac_show_empty_items_block ;
global $opac_show_exemplaires_analysis;
global $expl_list_header_loc_tpl,$opac_aff_expl_localises;
global $opac_sur_location_activate;
$nb_expl_autre_loc=0;
$nb_perso_aff=0;
// les dépouillements ou périodiques n'ont pas d'exemplaire
if (($type=="a" && !$opac_show_exemplaires_analysis) || $type=="s") return "" ;
if(!$memo_p_perso_expl) $memo_p_perso_expl=new parametres_perso("expl");
$header_found_p_perso=0;
if($opac_sur_location_activate){
$opac_sur_location_select=", sur_location.*";
$opac_sur_location_from=", sur_location";
$opac_sur_location_where=" AND docs_location.surloc_num=sur_location.surloc_id";
}
// les exemplaires des monographies
if ($type=="m") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='$id' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idnotice='$id' ";
} // fin si "m"
// les exemplaires des bulletins
if ($type=="b") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "b"
// les exemplaires des bulletins des articles affichés
// ERICROBERT : A faire ici !
if ($type=="a" && $opac_show_exemplaires_analysis) {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "a"
// récupération du nombre d'exemplaires
$res = mysql_query($requete, $dbh);
if(!$build_ifempty && !mysql_num_rows($res))return"";
$surloc_field="";
if ($opac_sur_location_activate==1) $surloc_field="surloc_libelle,";
if (!$opac_expl_data) $opac_expl_data="expl_cb,expl_cote,tdoc_libelle,".$surloc_field."location_libelle,section_libelle";
$colonnesarray=explode(",",$opac_expl_data);
$expl_list_header_deb="
";
for ($i=0; $i".htmlentities($colencours,ENT_QUOTES, $charset)."";
//On insère le cp emplacement
if($i==0){
if (!$memo_p_perso_expl->no_special_fields) {
$perso_=$memo_p_perso_expl->show_fields($expl->expl_id);
for ($ii=0; $ii".$p["TITRE_CLEAN"]."";
}
}
}
}
}
$expl_list_header_deb.="
";
$expl_liste_all.=$expl_liste;
if($opac_aff_expl_localises && $_SESSION["empr_location"]) {
if($expl->expl_location==$_SESSION["empr_location"]) {
$expl_liste_loc.=$expl_liste;
} else $nb_expl_autre_loc++;
}
$expl_liste="";
} // fin while
//S'il y a des titres de champs perso dans les exemplaires
if($header_perso_aff) {
$expl_list_header_deb.=$header_perso_aff;
}
if($opac_aff_expl_localises && $_SESSION["empr_location"] && $nb_expl_autre_loc) {
// affichage avec onglet selon la localisation
if(!$expl_liste_loc) $expl_liste_loc="
".$msg["no_expl"]."
";
$expl_liste_all=str_replace("!!EXPL!!",$expl_list_header_deb.$expl_liste_all,$expl_list_header_loc_tpl);
$expl_liste_all=str_replace("!!EXPL_LOC!!",$expl_list_header_deb.$expl_liste_loc,$expl_liste_all);
$expl_liste_all=str_replace("!!mylocation!!",$_SESSION["empr_location_libelle"],$expl_liste_all);
$expl_liste_all=str_replace("!!id!!",$id+$bull_id,$expl_liste_all);
} else {
// affichage de la liste d'exemplaires calculée ci-dessus
if (!$expl_liste_all && $opac_show_empty_items_block==1) {
$expl_liste_all = $expl_list_header.$expl_list_header_deb."
".$msg["no_expl"]."
".$expl_list_footer;
} elseif (!$expl_liste_all && $opac_show_empty_items_block==0) {
$expl_liste_all = "";
} else {
$expl_liste_all = $expl_list_header.$expl_list_header_deb.$expl_liste_all.$expl_list_footer;
}
}
return $expl_liste_all;
} // fin function expl_list
}
class notice_affichage_livrechange extends notice_affichage {
function expl_list($type,$id,$bull_id=0,$build_ifempty=1) {
global $dbh;
global $msg, $charset;
global $expl_list_header, $expl_list_footer;
global $opac_expl_data, $opac_expl_order, $opac_url_base;
global $pmb_transferts_actif,$transferts_statut_transferts;
global $memo_p_perso_expl;
global $opac_show_empty_items_block ;
global $opac_show_exemplaires_analysis;
global $expl_list_header_loc_tpl,$opac_aff_expl_localises;
global $opac_sur_location_activate,$opac_view_filter_class;
$nb_expl_autre_loc=0;
$nb_perso_aff=0;
// les dépouillements ou périodiques n'ont pas d'exemplaire
if (($type=="a" && !$opac_show_exemplaires_analysis) || $type=="s") return "" ;
if(!$memo_p_perso_expl) $memo_p_perso_expl=new parametres_perso("expl");
$header_found_p_perso=0;
if($opac_sur_location_activate){
$opac_sur_location_select=", sur_location.*";
$opac_sur_location_from=", sur_location";
$opac_sur_location_where=" AND docs_location.surloc_num=sur_location.surloc_id";
}
if($opac_view_filter_class){
$opac_view_filter_where=" AND idlocation in (". implode(",",$opac_view_filter_class->params["nav_sections"]).")";
}
// les exemplaires des monographies
if ($type=="m") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='$id' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= $opac_view_filter_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idnotice='$id' ";
} // fin si "m"
// les exemplaires des bulletins
if ($type=="b") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= $opac_view_filter_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "b"
// les exemplaires des bulletins des articles affichés
// ERICROBERT : A faire ici !
if ($type=="a" && $opac_show_exemplaires_analysis) {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= $opac_view_filter_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "a"
// récupération du nombre d'exemplaires
$res = mysql_query($requete, $dbh);
if(!$build_ifempty && !mysql_num_rows($res))return"";
$surloc_field="";
if ($opac_sur_location_activate==1) $surloc_field="surloc_libelle,";
if (!$opac_expl_data) $opac_expl_data="expl_cb,expl_cote,tdoc_libelle,".$surloc_field."location_libelle,section_libelle";
$colonnesarray=explode(",",$opac_expl_data);
$expl_list_header_deb="
";
for ($i=0; $i".htmlentities($colencours,ENT_QUOTES, $charset)."";
}
$expl_list_header_deb.="
";
$expl_liste_all.=$expl_liste;
if($opac_aff_expl_localises && $_SESSION["empr_location"]) {
if($expl->expl_location==$_SESSION["empr_location"]) {
$expl_liste_loc.=$expl_liste;
} else $nb_expl_autre_loc++;
}
$expl_liste="";
} // fin while
//S'il y a des titres de champs perso dans les exemplaires
if($header_perso_aff) {
$expl_list_header_deb.=$header_perso_aff;
}
if($opac_aff_expl_localises && $_SESSION["empr_location"] && $nb_expl_autre_loc) {
// affichage avec onglet selon la localisation
if(!$expl_liste_loc) $expl_liste_loc="
".$msg["no_expl"]."
";
$expl_liste_all=str_replace("!!EXPL!!",$expl_list_header_deb.$expl_liste_all,$expl_list_header_loc_tpl);
$expl_liste_all=str_replace("!!EXPL_LOC!!",$expl_list_header_deb.$expl_liste_loc,$expl_liste_all);
$expl_liste_all=str_replace("!!mylocation!!",$_SESSION["empr_location_libelle"],$expl_liste_all);
$expl_liste_all=str_replace("!!id!!",$id+$bull_id,$expl_liste_all);
} else {
// affichage de la liste d'exemplaires calculée ci-dessus
if (!$expl_liste_all && $opac_show_empty_items_block==1) {
$expl_liste_all = $expl_list_header.$expl_list_header_deb."
".$msg["no_expl"]."
".$expl_list_footer;
} elseif (!$expl_liste_all && $opac_show_empty_items_block==0) {
$expl_liste_all = "";
} else {
$expl_liste_all = $expl_list_header.$expl_list_header_deb.$expl_liste_all.$expl_list_footer;
}
}
return $expl_liste_all;
} // fin function expl_list
}
/*
* Classe d'affichage pour Issy les Moulineaux
*/
class notice_affichage_issy_les_moulineaux extends notice_affichage {
// fonction de génération du tableau des exemplaires
function expl_list($type,$id,$bull_id=0,$build_ifempty=1) {
global $dbh;
global $msg, $charset;
global $expl_list_header, $expl_list_footer;
global $opac_expl_data, $opac_expl_order, $opac_url_base;
global $pmb_transferts_actif,$transferts_statut_transferts;
global $memo_p_perso_expl;
global $opac_show_empty_items_block ;
global $opac_show_exemplaires_analysis;
global $expl_list_header_loc_tpl,$opac_aff_expl_localises;
global $opac_sur_location_activate,$opac_view_filter_class;
$nb_expl_autre_loc=0;
$nb_perso_aff=0;
// les dépouillements ou périodiques n'ont pas d'exemplaire
if (($type=="a" && !$opac_show_exemplaires_analysis) || $type=="s") return "" ;
if(!$memo_p_perso_expl) $memo_p_perso_expl=new parametres_perso("expl");
$header_found_p_perso=0;
if($opac_sur_location_activate){
$opac_sur_location_select=", sur_location.*";
$opac_sur_location_from=", sur_location";
$opac_sur_location_where=" AND docs_location.surloc_num=sur_location.surloc_id";
}
if($opac_view_filter_class){
$opac_view_filter_where=" AND idlocation in (". implode(",",$opac_view_filter_class->params["nav_sections"]).")";
}
// les exemplaires des monographies
if ($type=="m") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='$id' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= $opac_view_filter_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idnotice='$id' ";
} // fin si "m"
// les exemplaires des bulletins
if ($type=="b") {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= $opac_view_filter_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "b"
// les exemplaires des bulletins des articles affichés
// ERICROBERT : A faire ici !
if ($type=="a" && $opac_show_exemplaires_analysis) {
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* $opac_sur_location_select";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders $opac_sur_location_from";
$requete .= " WHERE expl_notice='0' and expl_bulletin='$bull_id'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= $opac_sur_location_where;
$requete .= $opac_view_filter_where;
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
if ($opac_expl_order) $requete .= " ORDER BY $opac_expl_order ";
$requete_resa = "SELECT count(1) from resa where resa_idbulletin='$bull_id' ";
} // fin si "a"
// récupération du nombre d'exemplaires
$res = mysql_query($requete, $dbh);
if(!$build_ifempty && !mysql_num_rows($res))return"";
$surloc_field="";
if ($opac_sur_location_activate==1) $surloc_field="surloc_libelle,";
if (!$opac_expl_data) $opac_expl_data="expl_cb,expl_cote,tdoc_libelle,".$surloc_field."location_libelle,section_libelle";
$colonnesarray=explode(",",$opac_expl_data);
$expl_list_header_deb="
";
for ($i=0; $i".htmlentities($colencours,ENT_QUOTES, $charset)."";
}
$expl_list_header_deb.="
";
$expl_liste_all.=$expl_liste;
if($opac_aff_expl_localises && $_SESSION["empr_location"]) {
if($expl->expl_location==$_SESSION["empr_location"]) {
$expl_liste_loc.=$expl_liste;
} else $nb_expl_autre_loc++;
}
$expl_liste="";
} // fin while
//S'il y a des titres de champs perso dans les exemplaires
if($header_perso_aff) {
$expl_list_header_deb.=$header_perso_aff;
}
if($opac_aff_expl_localises && $_SESSION["empr_location"] && $nb_expl_autre_loc) {
// affichage avec onglet selon la localisation
if(!$expl_liste_loc) $expl_liste_loc="
".$msg["no_expl"]."
";
$expl_liste_all=str_replace("!!EXPL!!",$expl_list_header_deb.$expl_liste_all,$expl_list_header_loc_tpl);
$expl_liste_all=str_replace("!!EXPL_LOC!!",$expl_list_header_deb.$expl_liste_loc,$expl_liste_all);
$expl_liste_all=str_replace("!!mylocation!!",$_SESSION["empr_location_libelle"],$expl_liste_all);
$expl_liste_all=str_replace("!!id!!",$id+$bull_id,$expl_liste_all);
} else {
// affichage de la liste d'exemplaires calculée ci-dessus
if (!$expl_liste_all && $opac_show_empty_items_block==1) {
$expl_liste_all = $expl_list_header.$expl_list_header_deb."
".$msg["no_expl"]."
".$expl_list_footer;
} elseif (!$expl_liste_all && $opac_show_empty_items_block==0) {
$expl_liste_all = "";
} else {
$expl_liste_all = $expl_list_header.$expl_list_header_deb.$expl_liste_all.$expl_list_footer;
}
}
return $expl_liste_all;
} // fin function expl_list
}
class notice_affichage_uncitral extends notice_affichage {
// génération de l'affichage simple sans onglet
// si $depliable=1 alors inclusion du parent / child
function genere_simple($depliable=1, $what='ISBD') {
global $msg,$charset;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $opac_notice_enrichment;
global $opac_show_social_network;
global $icon_doc,$biblio_doc,$tdoc;
global $allow_tag ; // l'utilisateur a-t-il le droit d'ajouter un tag
global $allow_sugg; // l'utilisateur a-t-il le droit de faire une suggestion
global $lvl; // pour savoir qui demande l'affichage
global $opac_avis_display_mode;
global $flag_no_get_bulletin;
if(!$this->notice_id) return;
$this->double_ou_simple = 1 ;
$this->notice_childs = $this->genere_notice_childs();
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
if ($this->cart_allowed) $basket="notice_id."&header=".rawurlencode(strip_tags($this->notice_header))."\" target=\"cart_info\" class=\"img_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','width=350,height=150,scrollbars=yes,resizable=yes'); return false;\">";
//Avis
if (($opac_avis_display_mode==0)&&(($this->avis_allowed && $this->avis_allowed !=2)|| ($_SESSION["user_code"] && $this->avis_allowed ==2)))
$img_tag .= $this->affichage_avis($this->notice_id);
//Suggestions
if (($this->sugg_allowed ==2)|| ($_SESSION["user_code"] && ($this->sugg_allowed ==1) && $allow_sugg)) $img_tag .= $this->affichage_suggestion($this->notice_id);
if ($this->no_header) $icon="";
else $icon = $icon_doc[$this->notice->niveau_biblio.$this->notice->typdoc];
if($opac_notice_enrichment){
$enrichment = new enrichment();
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 ($depliable) {
$template="
', $this->result);
}
}
// génération de l'affichage public----------------------------------------
function do_public($short=0,$ex=1) {
global $dbh;
global $msg;
global $tdoc;
global $charset;
global $memo_notice;
global $opac_notice_affichage_class;
$this->notice_public= $this->genere_in_perio ();
if(!$this->notice_id) return;
// Notices parentes
//$this->notice_public.=$this->parents;
$this->notice_public .= "
";
// constitution de la mention de titre
if ($this->notice->serie_name) {
$this->notice_public.= "
\n";
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
";
if($ret_authors) $ret.=$ret_authors;
//Champs personnalisés (en 3 parties)
$perso_aff_1 = "" ;
$perso_aff_2 = "" ;
$perso_aff_3 = "" ;
if (!$this->p_perso->no_special_fields) {
// $this->memo_perso_ permet aux affichages personnalisés dans notice_affichage_ext de gagner du temps
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]) {
if ($p['NAME']=='cp_applicable') {
$perso_aff_2 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_history') {
$perso_aff_3 .="
";
}
}
$this->affichage_suite = $ret ;
$this->affichage_suite_flag = 1 ;
return $ret;
} // fin aff_suite()
}
// Centre d'étude de l'emploi
class notice_affichage_cee extends notice_affichage {
// génération du header----------------------------------------------------
function do_header($id_tpl=0) {
global $opac_notice_reduit_format ;
global $opac_url_base, $msg, $charset;
global $memo_notice;
global $opac_visionneuse_allow;
global $opac_url_base;
global $opac_resa_popup;
$this->notice_header="";
if(!$this->notice_id) return;
$type_reduit = substr($opac_notice_reduit_format,0,1);
$notice_tpl_header="";
if ($type_reduit=="H" || $id_tpl){
if(!$id_tpl) $id_tpl=substr($opac_notice_reduit_format,2);
if($id_tpl){
$tpl = new notice_tpl_gen($id_tpl);
$notice_tpl_header=$tpl->build_notice($this->notice_id);
if($notice_tpl_header){
$this->notice_header=$notice_tpl_header;
return;
}
}
}
if ($type_reduit=="E" || $type_reduit=="P" ) {
// peut-être veut-on des personnalisés ?
$perso_voulus_temp = substr($opac_notice_reduit_format,2) ;
if ($perso_voulus_temp!="") $perso_voulus = explode(",",$perso_voulus_temp);
}
$editeur_reduit = "" ;
// zone de l'éditeur
if ($this->notice->ed1_id) {
$requete = "SELECT * FROM publishers WHERE ed_id='".$this->notice->ed1_id."' ";
$result = mysql_query($requete);
if (mysql_num_rows($result)) {
$obj = mysql_fetch_object($result);
$editeur_reduit = $obj->ed_name ;
if ($this->notice->year) $editeur_reduit .= " (".$this->notice->year.")";
}
} elseif ($this->notice->year) {
// année mais pas d'éditeur et si pas un article
if($this->notice->niveau_biblio != 'a' && $this->notice->niveau_hierar != 2) $editeur_reduit = " (".$this->notice->year.")";
}
//Champs personalisés à ajouter au réduit
if (!$this->p_perso->no_special_fields) {
if (count($perso_voulus)) {
$this->p_perso->get_values($this->notice_id) ;
for ($i=0; $ip_perso->get_formatted_output($this->p_perso->values[$perso_voulus[$i]],$perso_voulus[$i])." " ;
}
$perso_voulu_aff=trim($perso_voulu_aff);
} else $perso_voulu_aff = "" ;
} else $perso_voulu_aff = "" ;
//Si c'est un depouillement, : Titre / Auteur principal in Collection Année cote"
if($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar == 2 && $this->parent_title) {
$aff_perio_title="".$msg[in_serial]." ".$this->parent_numero.", ".$this->parent_title.", ".($this->parent_date?$this->parent_date:"[".$this->parent_aff_date_date."]")."";
}
//Si c'est une notice de bulletin ajout du titre et bulletin: Titre du périodique, vol., n° (date) - Cote Disponibilité"
if($this->notice->niveau_biblio == 'b' && $this->notice->niveau_hierar == 2) {
$aff_bullperio_title = "".($this->parent_date?sprintf($msg["bul_titre_perio"],$this->parent_title):sprintf($msg["bul_titre_perio"],$this->parent_title.", ".$this->parent_numero." [".$this->parent_aff_date_date."]"))."";
} else $aff_bullperio_title="";
// récupération du titre de série
// constitution de la mention de titre
if($this->notice->serie_name) {
$this->notice_header = $this->notice->serie_name;
if($this->notice->tnvol) $this->notice_header .= ', '.$this->notice->tnvol;
} elseif ($this->notice->tnvol) $this->notice_header .= $this->notice->tnvol;
if ($this->notice_header) $this->notice_header .= ". ".$this->notice->tit1 ;
else $this->notice_header = $this->notice->tit1;
if ($type_reduit=='4') {
if ($this->notice->tit3 != "") $this->notice_header .= " = ".$this->notice->tit3;
}
if($this->notice->niveau_biblio == 'b' && $this->notice->niveau_hierar == 2){
$this->notice_header ="";
}
$this->notice_header .= $aff_bullperio_title;
/* if ($this->notice->niveau_biblio =='m') {
switch($type_reduit) {
case '1':
if ($this->notice->year != '') $this->notice_header.=' ('.htmlentities($this->notice->year,ENT_QUOTES,$charset).')';
break;
case '2':
if ($this->notice->year != '' && $this->notice->niveau_biblio!='b') $this->notice_header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')';
if ($this->notice->code != '') $this->notice_header.=' / '.htmlentities($this->notice->code, ENT_QUOTES, $charset);
break;
default:
break;
}
}
*/
//$this->notice_header_without_html = $this->notice_header;
$this->notice_header = "".$this->notice_header."";
//on ne propose à Zotero que les monos et les articles...
if($this->notice->niveau_biblio == "m" ||($this->notice->niveau_biblio == "a" && $this->notice->niveau_hierar == 2)) {
$this->notice_header =str_replace("!!zoteroNotice!!"," notice='".$this->notice_id."' ",$this->notice_header);
}else $this->notice_header =str_replace("!!zoteroNotice!!","",$this->notice_header);
$notice_header_suite = "";
if ($type_reduit=="T" && $this->notice->tit4) $notice_header_suite = " : ".$this->notice->tit4;
if ($type_reduit!='3' && $this->auteurs_principaux) $notice_header_suite .= " / ".$this->auteurs_principaux;
if ($editeur_reduit && $this->notice->niveau_biblio != "m" && $this->notice->niveau_hierar!=0) $notice_header_suite .= " / ".$editeur_reduit ;
if ($perso_voulu_aff) $notice_header_suite .= " / ".$perso_voulu_aff ;
if ($aff_perio_title) $notice_header_suite .= " ".$aff_perio_title;
$this->notice_header.= $notice_header_suite;
//"titre+auteur+in+vol, n°, année, titre de périodique" Cote
if($this->notice->niveau_biblio == "m" && $this->notice->niveau_hierar==0 && $this->notice->nocoll && $this->notice->year && $this->notice->coll_id){
$requete = "SELECT * FROM collections WHERE collection_id=".$this->notice->coll_id." LIMIT 1 ";
$result = @mysql_query($requete);
if(mysql_num_rows($result)) {
$temp = mysql_fetch_object($result);
$this->notice_header.=" / ".$temp->collection_name.", ".$this->notice->nocoll.", ".$this->notice->year.", ";
}
}
// champ perso de notice cp_cote (Cote)
$notice_cote_cee= $this->p_perso->get_val_field($this->notice_id ,"cp_cote") ;
$notice_rel_cee="";
$notice_expl_dispo_cee="";
if($this->bulletin_id){
$expl_bulletin=$this->bulletin_id;
$expl_notice=0;
}else{
$expl_notice=$this->notice_id;
$expl_bulletin=0;
}
$requete = "SELECT exemplaires.*, pret.*, docs_location.*, docs_section.*, docs_statut.*, docs_type.*, docs_codestat.*, lenders.* ";
$requete .= " FROM exemplaires LEFT JOIN pret ON exemplaires.expl_id=pret.pret_idexpl, docs_location, docs_section, docs_statut, docs_type, docs_codestat, lenders ";
$requete .= " WHERE expl_notice='".$expl_notice."' and expl_bulletin='".$expl_bulletin."'";
$requete .= " AND location_visible_opac=1 AND section_visible_opac=1 AND statut_visible_opac=1";
$requete .= " AND exemplaires.expl_location=docs_location.idlocation";
$requete .= " AND exemplaires.expl_section=docs_section.idsection ";
$requete .= " AND exemplaires.expl_statut=docs_statut.idstatut ";
$requete .= " AND exemplaires.expl_typdoc=docs_type. idtyp_doc ";
$requete .= " AND exemplaires.expl_codestat=docs_codestat.idcode ";
$requete .= " AND exemplaires.expl_owner=lenders.idlender ";
$res = mysql_query($requete);
if(mysql_num_rows($res)){
while($expl = mysql_fetch_object($res)){
$requete_resa = "SELECT count(1) from resa where resa_cb='$expl->expl_cb' ";
$flag_resa = mysql_result(mysql_query($requete_resa),0,0);
if ($flag_resa || !$expl->pret_flag || $expl->pret_retour) {
// exemplaire non dispo
if($expl->pret_retour){
// en pret
$expl_en_pret=1;
}
}else{
//$notice_expl_dispo_cee=" ( disponible ) ";
$expl_dispo=1;
break;
}
}
if( !$expl_dispo && $expl_en_pret){
$notice_expl_dispo_cee=" ( emprunté ) ";
// pas de dispo et en pret: on propose le lien de réservation
if($_SESSION["user_code"]){
if ($opac_resa_popup) $notice_expl_dispo_cee .= "notice_id."&id_bulletin=".$this->bulletin_id."&oresa=popup','doresa','scrollbars=yes,width=500,height=600,menubar=0,resizable=yes'); w.focus(); return false;}else return false;\" id=\"bt_resa\">".$msg["bulletin_display_place_resa"]."" ;
else $notice_expl_dispo_cee .= "".$msg["bulletin_display_place_resa"]."" ;
}
}
}
if(($this->notice->typdoc=='o') || ($this->notice->typdoc=='v')){
if($this->parents_in){
$notice_parent_in_cee=$this->parents_in;
}
}
$this->notice_header .= $notice_rel_cee ." ". $notice_cote_cee . $notice_parent_in_cee;
//$this->notice_header.=" notice->notice_id."\" style=\"visibility:hidden\">";
$this->notice_header_doclink="";
if ($this->notice->lien) {
if(!$this->notice->eformat) $info_bulle=$msg["open_link_url_notice"];
else $info_bulle=$this->notice->eformat;
// ajout du lien pour les ressources électroniques
$this->notice_header_doclink .= " notice->lien."\" target=\"__LINK__\">";
$this->notice_header_doclink .= "notice_header_doclink .= " alt=\"";
$this->notice_header_doclink .= $info_bulle;
$this->notice_header_doclink .= "\" title=\"";
$this->notice_header_doclink .= $info_bulle;
$this->notice_header_doclink .= "\">";
$this->notice_header_doclink .= "";
}
if ($this->notice->niveau_biblio == 'b') {
$sql_explnum = "SELECT explnum_id, explnum_nom, explnum_nomfichier, explnum_url FROM explnum, bulletins WHERE bulletins.num_notice = ".$this->notice_id." AND bulletins.bulletin_id = explnum.explnum_bulletin order by explnum_id";
} else {
$sql_explnum = "SELECT explnum_id, explnum_nom, explnum_nomfichier,explnum_url FROM explnum WHERE explnum_notice = ".$this->notice_id." order by explnum_id";
}
$explnums = mysql_query($sql_explnum);
$explnumscount = mysql_num_rows($explnums);
if ( (is_null($this->dom_2) && $this->visu_explnum && (!$this->visu_explnum_abon || ($this->visu_explnum_abon && $_SESSION["user_code"]))) || ($this->rights & 16) ) {
if ($explnumscount == 1) {
$explnumrow = mysql_fetch_object($explnums);
if ($explnumrow->explnum_nomfichier){
if($explnumrow->explnum_nom == $explnumrow->explnum_nomfichier) $info_bulle=$msg["open_doc_num_notice"].$explnumrow->explnum_nomfichier;
else $info_bulle=$explnumrow->explnum_nom;
}elseif ($explnumrow->explnum_url){
if($explnumrow->explnum_nom == $explnumrow->explnum_url) $info_bulle=$msg["open_link_url_notice"].$explnumrow->explnum_url;
else $info_bulle=$explnumrow->explnum_nom;
}
$this->notice_header_doclink .= " ";
if ($opac_visionneuse_allow && $this->docnum_allowed){
$this->notice_header_doclink .="
explnum_id.");return false;\" alt='$alt' title='$alt'>";
}else{
$this->notice_header_doclink .= "explnum_id."\" target=\"__LINK__\">";
}
$this->notice_header_doclink .= "notice_header_doclink .= " alt=\"";
$this->notice_header_doclink .= htmlentities($info_bulle,ENT_QUOTES,$charset);
$this->notice_header_doclink .= "\" title=\"";
$this->notice_header_doclink .= htmlentities($info_bulle,ENT_QUOTES,$charset);
$this->notice_header_doclink .= "\">";
$this->notice_header_doclink .= "";
} elseif ($explnumscount > 1) {
$explnumrow = mysql_fetch_object($explnums);
$info_bulle=$msg["info_docs_num_notice"];
$this->notice_header_doclink .= "";
}
}
//coins pour Zotero
$coins_span=$this->gen_coins_span();
$this->notice_header.=$coins_span;
$this->notice_header_without_doclink=$this->notice_header;
$this->notice_header.=$this->notice_header_doclink;
$this->notice_header_doclink.=$notice_expl_dispo_cee;
$memo_notice[$this->notice_id]["header_without_doclink"]=$this->notice_header_without_doclink;
$memo_notice[$this->notice_id]["header_doclink"]= $this->notice_header_doclink;
$memo_notice[$this->notice_id]["header"]=$this->notice_header;
$memo_notice[$this->notice_id]["niveau_biblio"] = $this->notice->niveau_biblio;
$this->notice_header_with_link=inslink($this->notice_header, str_replace("!!id!!", $this->notice_id, $this->lien_rech_notice)) ;
} // fin do_header()
// Construction des parents-----------------------------------------------------
function do_parents() {
global $dbh;
global $msg;
global $charset;
global $memo_notice;
global $opac_notice_affichage_class;
global $relation_listup, $parents_to_childs ;
// Pour ne pas afficher en parents les liens transférer dans les childs
if (sizeof($parents_to_childs)>0) $clause = " AND relation_type not in ('".implode("','", $parents_to_childs)."') ";
// gestion des droits d'affichage des parents
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 = "";
}
//Recherche des notices parentes
$requete="select linked_notice, relation_type, rank from notices_relations join notices on notice_id=linked_notice $acces_j $statut_j
where num_notice=".$this->notice_id." $clause $statut_r
order by relation_type,rank";
$result_linked=mysql_query($requete,$dbh);
//Si il y en a, on prépare l'affichage
if (!mysql_num_rows($result_linked)) {
$this->parents = "";
return ;
}
$this->parents = "";
$this->parents_in = "";
if (!$relation_listup) $relation_listup=new marc_list("relationtypeup");
$r_type=array();
$ul_opened=false;
//Pour toutes les notices liées
while (($r_rel=mysql_fetch_object($result_linked))) {
if ($opac_notice_affichage_class) $notice_affichage=$opac_notice_affichage_class; else $notice_affichage="notice_affichage";
// if($memo_notice[$r_rel->linked_notice]["header"]) {
// $parent_notice->notice_header=$memo_notice[$r_rel->linked_notice]["header"];
// } else {
// $parent_notice=new $notice_affichage($r_rel->linked_notice,$this->liens,1,$this->to_print,1);
// $parent_notice->visu_expl = 0 ;
// $parent_notice->visu_explnum = 0 ;
// $parent_notice->do_header();
// }
if(!$memo_notice[$r_rel->linked_notice]["header_without_doclink"]) {
$parent_notice=new $notice_affichage($r_rel->linked_notice,$this->liens,1,$this->to_print,1);
$parent_notice->visu_expl = 0 ;
$parent_notice->visu_explnum = 0 ;
$parent_notice->do_header();
}
//Présentation différente si il y en a un ou plusieurs
if (mysql_num_rows($result_linked)==1) {
// si une seule, peut-être est-ce une notice de bulletin, aller cherche $this>bulletin_id
$this->parents.=" ".$relation_listup->table[$r_rel->relation_type]." ";
if ($this->lien_rech_notice) $this->parents.="";
//$this->parents.=$parent_notice->notice_header;
$this->parents.=$memo_notice[$r_rel->linked_notice]["header_without_doclink"];
if ($this->lien_rech_notice) $this->parents.="";
$this->parents.="
";
// si une seule, peut-être est-ce une notice de bulletin, aller cherche $this->bulletin_id
$rqbull="select bulletin_id from bulletins where num_notice=".$this->notice_id;
$rqbullr=mysql_query($rqbull);
$rqbulld=@mysql_fetch_object($rqbullr);
$this->bulletin_id=$rqbulld->bulletin_id;
if($relation_listup->table[$r_rel->relation_type]== "in"){
$this->parents_in="".$relation_listup->table[$r_rel->relation_type]." ";
if ($this->lien_rech_notice) $this->parents_in.="";
//$this->parents.=$parent_notice->notice_header;
$this->parents_in.=$memo_notice[$r_rel->linked_notice]["header_without_doclink"];
if ($this->lien_rech_notice) $this->parents_in.="";
}
} else {
if (!$r_type[$r_rel->relation_type]) {
$r_type[$r_rel->relation_type]=1;
if ($ul_opened) $this->parents.="";
else {
$this->parents.=" ";
$ul_opened=true;
}
$this->parents.="".$relation_listup->table[$r_rel->relation_type]."";
$this->parents.="
\n";
}
}
if (mysql_num_rows($result_linked)>1)
$this->parents.="
\n";
return ;
} // fin do_parents()
function affichage_etat_collections() {
global $msg;
global $pmb_etat_collections_localise;
global $tpl_collstate_liste,$tpl_collstate_liste_line;
$tpl_collstate_liste[2]="
".$explnum;
}
}
return $ret;
} // fin aff_explnum ()
// fonction retournant les infos d'exemplaires numériques pour une notice ou un bulletin donné
function show_explnum_per_notice($no_notice, $no_bulletin, $link_expl='') {
global $class_path;
require_once($class_path."/auth_popup.class.php");
// params :
// $link_expl= lien associé à l'exemplaire avec !!explnum_id!! à mettre à jour
global $dbh,$msg,$charset;
global $opac_url_base ;
global $opac_visionneuse_allow;
global $opac_photo_filtre_mimetype;
global $opac_explnum_order;
global $opac_show_links_invisible_docnums;
global $gestion_acces_active,$gestion_acces_empr_notice;
if (!$no_notice && !$no_bulletin) return "";
global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
create_tableau_mimetype() ;
// récupération du nombre d'exemplaires
$requete = "SELECT explnum_id, explnum_notice, explnum_bulletin, explnum_nom, explnum_mimetype, explnum_url, explnum_vignette, explnum_nomfichier, explnum_extfichier FROM explnum WHERE ";
if ($no_notice && !$no_bulletin) $requete .= "explnum_notice='$no_notice' ";
elseif (!$no_notice && $no_bulletin) $requete .= "explnum_bulletin='$no_bulletin' ";
elseif ($no_notice && $no_bulletin) $requete .= "explnum_bulletin='$no_bulletin' or explnum_notice='$no_notice' ";
if ($opac_explnum_order) $requete .= " order by ".$opac_explnum_order;
else $requete .= " order by explnum_mimetype, explnum_nom, explnum_id ";
$res = mysql_query($requete, $dbh);
$nb_ex = mysql_num_rows($res);
$docnum_visible = true;
$id_for_right = $no_notice;
if($no_bulletin){
$query = "select num_notice,bulletin_notice from bulletins where bulletin_id = ".$no_bulletin;
$result = mysql_query($query);
if(mysql_num_rows($result)){
$infos = mysql_fetch_object($result);
if($infos->num_notice){
$id_for_right = $infos->num_notice;
}else{
$id_for_right = $infos->bulletin_notice;
}
}
}
if ($gestion_acces_active==1 && $gestion_acces_empr_notice==1) {
$ac= new acces();
$dom_2= $ac->setDomain(2);
$docnum_visible = $dom_2->getRights($_SESSION['id_empr_session'],$id_for_right,16);
} else {
$requete = "SELECT explnum_visible_opac, explnum_visible_opac_abon FROM notices, notice_statut WHERE notice_id ='".$id_for_right."' and id_notice_statut=statut ";
$myQuery = mysql_query($requete, $dbh);
if(mysql_num_rows($myQuery)) {
$statut_temp = mysql_fetch_object($myQuery);
if(!$statut_temp->explnum_visible_opac) $docnum_visible=false;
if($statut_temp->explnum_visible_opac_abon && !$_SESSION['id_empr_session']) $docnum_visible=false;
} else $docnum_visible=false;
}
//on peut appeller cette méthode sans avoir le droit de voir les documents...
if(!$docnum_visible && $opac_show_links_invisible_docnums){
$auth_popup = new auth_popup();
}
if ($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
global $search_terms;
while (($expl = mysql_fetch_object($res))) {
if ($i==1) $ligne="
";
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->notice_public .= "
";
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
$this->notice_public .= $annee ;
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->notice_public.=
"
".$msg['titre_uniforme_aff_public']."
".$this->notice->tu_print_type_2."
";
}
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->notice_public .= "
".$msg['npages_start']."
".$this->notice->npages."
";
} else {
$this->notice_public .= "
".$msg['npages_start_perio']."
".$this->notice->npages."
";
}
}
if ($this->notice->ill) $this->notice_public .= "
".$msg['ill_start']."
".$this->notice->ill."
";
if ($this->notice->size) $this->notice_public .= "
".$msg['size_start']."
".$this->notice->size."
";
if ($this->notice->accomp) $this->notice_public .= "
".$msg['accomp_start']."
".$this->notice->accomp."
";
// ISBN ou NO. commercial
if ($this->notice->code) $this->notice_public .= "
\n";
//etat des collections
if ($this->notice->niveau_biblio=='s' && $this->notice->niveau_hierar==1) $this->notice_public.=$this->affichage_etat_collections();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
return;
} // fin do_public($short=0,$ex=1)
function affichage_etat_collections() {
global $msg;
global $pmb_etat_collections_localise;
global $tpl_collstate_liste,$tpl_collstate_liste_line;
$tpl_collstate_liste[2]="
";
$affichage.=$collstate->liste;
}
return $affichage;
} // fin affichage_etat_collections()
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
function aff_suite() {
global $msg;
global $charset;
global $opac_allow_tags_search, $opac_permalink, $opac_url_base;
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
// toutes indexations
$ret_index = "";
// Catégories
if ($this->categories_toutes) $ret_index .= "
".$msg['categories_start']."
".$this->categories_toutes."
";
// Affectation du libellé mots clés ou tags en fonction de la recherche précédente
if($opac_allow_tags_search == 1) $libelle_key = $msg['tags'];
else $libelle_key = $msg['motscle_start'];
// indexation libre
$mots_cles = $this->do_mots_cle() ;
if($mots_cles) $ret_index.= "
".$libelle_key."
".nl2br($mots_cles)."
";
//calculs champs persos et affichage keywords
$perso_aff = "" ;
$libKeywords = "";
$valKeywords = "";
if (!$this->p_perso->no_special_fields) {
// $this->memo_perso_ permet au affichages personalisés dans notice_affichage_ex de gagner du temps
if(!$this->memo_perso_) $this->memo_perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $imemo_perso_["FIELDS"]); $i++) {
$p=$this->memo_perso_["FIELDS"][$i];
if ($p['OPAC_SHOW'] && $p["AFF"]){
if ($p["NAME"] != "cp_mc_eng" && $p["NAME"] != "cp_vol_per") {
$perso_aff .="
";
}
}
$this->affichage_suite = $ret ;
$this->affichage_suite_flag = 1 ;
return $ret;
} // fin aff_suite()
function aff_parents() {
global $dbh;
global $msg;
global $charset;
global $memo_notice;
global $opac_notice_affichage_class;
global $relation_listup, $parents_to_childs ;
// Pour ne pas afficher en parents les liens transférer dans les childs
if (sizeof($parents_to_childs)>0) $clause = " AND relation_type not in ('".implode("','", $parents_to_childs)."') ";
// gestion des droits d'affichage des parents
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 = "";
}
//Recherche des notices parentes
$requete="select linked_notice, relation_type, rank from notices_relations join notices on notice_id=linked_notice $acces_j $statut_j
where num_notice=".$this->notice_id." $clause $statut_r
order by relation_type,rank";
$result_linked=mysql_query($requete,$dbh);
//Si il y en a, on prépare l'affichage
if (!mysql_num_rows($result_linked)) {
return ;
}
$retour = "";
if (!$relation_listup) $relation_listup=new marc_list("relationtypeup");
$r_type=array();
//Pour toutes les notices liées
while (($r_rel=mysql_fetch_object($result_linked))) {
if ($opac_notice_affichage_class) $notice_affichage=$opac_notice_affichage_class; else $notice_affichage="notice_affichage";
if(!$memo_notice[$r_rel->linked_notice]["header_without_doclink"]) {
$parent_notice=new $notice_affichage($r_rel->linked_notice,$this->liens,1,$this->to_print,1);
$parent_notice->visu_expl = 0 ;
$parent_notice->visu_explnum = 0 ;
$parent_notice->do_header();
}
if (!$r_type[$r_rel->relation_type]) {
$r_type[$r_rel->relation_type]=1;
$retour.="