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;
}
require_once($include_path."/templates/collstate.tpl.php");
// 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
";
}
$this->notice_public.=$this->genere_in_perio();
if (!$short) $this->notice_public .= $this->aff_suite() ;
$this->notice_public.="
\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 ;
}
// fonction de génération de ,la mention in titre du pério + numéro
function genere_in_perio () {
global $charset ;
// serials : si article
if($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar == 2) {
$bulletin = $this->parent_title;
$notice_mere = inslink("".$this->parent_title."", str_replace("!!id!!", $this->parent_id, $this->lien_rech_perio));
if($this->parent_numero) $numero = $this->parent_numero." " ;
// affichage de la mention de date utile : mention_date si existe, sinon date_date
if ($this->parent_date) $date_affichee = " (".$this->parent_date.")";
elseif ($this->parent_date_date) $date_affichee .= " [".formatdate($this->parent_date_date)."]";
else $date_affichee="" ;
$bulletin = inslink("".$numero.$date_affichee."", str_replace("!!id!!", $this->bulletin_id, $this->lien_rech_bulletin));
$this->bulletin_numero=$numero;
$this->bulletin_date=$date_affichee;
$mention_parent = "in $notice_mere > $bulletin ";
$retour .= " $mention_parent";
$pagination = htmlentities($this->notice->npages,ENT_QUOTES, $charset);
//if ($pagination) $retour .= ". - $pagination";
}
return $retour ;
} // fin genere_in_perio ()
} // 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,$charset;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $opac_visionneuse_allow;
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 $lvl; // pour savoir qui demande l'affichage
global $opac_avis_display_mode;
global $flag_no_get_bulletin;
global $opac_allow_simili_search;
global $opac_draggable;
if($opac_draggable){
$draggable='yes';
}else{
$draggable='no';
}
$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){
$title=$this->notice_header;
if(!$title)$title=$this->notice->tit1;
$basket="notice_id."&header=".rawurlencode(strip_tags($title))."\" 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($opac_allow_simili_search) {
$script_simili_search="show_simili_search('".$this->notice_id."');";
$simili_search_script_all="
";
$script_expl_voisin_search="show_expl_voisin_search('".$this->notice_id."');";
}
if ($depliable == 1) {
$template="$simili_search_script_all
".$explnum;
}
}
return $ret;
} // fin aff_explnum ()
// 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
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."
";
}
}
//Présentation
if ($this->notice->ill && ($this->notice->typdoc != "a" /*Ouvrage*/ ) && ($this->notice->typdoc != "x" /*Outil pédagogique*/ ) && ($this->notice->typdoc != "e" /*Compte-rendu*/ )) $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 ;
//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 .="
";
}
// $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.="
";
}
// $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,$charset;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $opac_visionneuse_allow;
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 $lvl; // pour savoir qui demande l'affichage
global $opac_avis_display_mode;
global $flag_no_get_bulletin;
global $opac_allow_simili_search;
global $opac_draggable;
if($opac_draggable){
$draggable='yes';
}else{
$draggable='no';
}
$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){
$title=$this->notice_header;
if(!$title)$title=$this->notice->tit1;
$basket="notice_id."&header=".rawurlencode(strip_tags($title))."\" 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($opac_allow_simili_search) {
$script_simili_search="show_simili_search('".$this->notice_id."');";
$simili_search_script_all="
";
$script_expl_voisin_search="show_expl_voisin_search('".$this->notice_id."');";
}
if ($depliable == 1) {
$template="$simili_search_script_all
"
;
$template_in.="
";
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') {
if(!$flag_no_get_bulletin){
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.=$this->get_serialcirc_form_actions();
$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_doclink){
$this->result = str_replace('!!heada!!', $this->notice_header_without_doclink, $this->result);
}elseif($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($opac_allow_simili_search){
$this->affichage_simili_search_head="
".$expl_voisin_search_script."
".$simili_search_script;
}
if ($this->affichage_resa_expl || $this->notice_childs || $this->affichage_avis_detail || $this->affichage_simili_search_head) $this->result = str_replace('!!SUITE!!', $this->notice_childs.$this->affichage_resa_expl.$this->affichage_avis_detail.$this->affichage_simili_search_head, $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($id_tpl=0) {
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);
$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);
}
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])." " ;
}
$perso_voulu_aff=trim($perso_voulu_aff);
} 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;
if ($type_reduit=='4') {
if ($this->notice->tit3 != "") $this->notice_header .= " = ".$this->notice->tit3;
}
$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."";
//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 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;
$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()
// 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,$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."
";
}
// $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.="
".$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
function genere_double($depliable=1, $premier='ISBD') {
global $msg,$charset;
global $cart_aff_case_traitement;
global $opac_url_base ;
global $opac_visionneuse_allow;
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 $lvl; // pour savoir qui demande l'affichage
global $opac_avis_display_mode;
global $flag_no_get_bulletin;
global $opac_allow_simili_search;
global $opac_draggable;
if($opac_draggable){
$draggable='yes';
}else{
$draggable='no';
}
$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){
$title=$this->notice_header;
if(!$title)$title=$this->notice->tit1;
$basket="notice_id."&header=".rawurlencode(strip_tags($title))."\" 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{
$requete="SELECT notices_custom_small_text FROM notices_custom_values JOIN notices_custom ON notices_custom_champ=idchamp WHERE name='typ_res_elec' AND notices_custom_origine='".$this->notice_id."'";
$resico=mysql_query($requete);
if($resico && mysql_num_rows($resico)){
$icon = "icon_".mysql_result($resico,0,0)."_16x16.gif";
}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($opac_allow_simili_search) {
$script_simili_search="show_simili_search('".$this->notice_id."');";
$simili_search_script_all="
";
$script_expl_voisin_search="show_expl_voisin_search('".$this->notice_id."');";
}
if ($depliable == 1) {
$template="$simili_search_script_all
";
}
$template.="permalink."\" style=\"display:none;\">Permalink
$simili_search_script_all
";
$template_in = str_replace('!!id!!', $this->notice_id, $template_in);
$this->do_image($template_in,$opac_notices_depliable);
$this->result = str_replace('!!id!!', $this->notice_id, $template);
if($this->notice_header_doclink){
$this->result = str_replace('!!heada!!', $this->notice_header_without_doclink, $this->result);
}elseif($this->notice_header)
$this->result = str_replace('!!heada!!', $this->notice_header, $this->result);
else $this->result = str_replace('!!heada!!', '', $this->result);
} // fin genere_ajax()
}
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
}
// 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_photo_filtre_mimetype;
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)
$allowed_mimetype = explode(",",str_replace("'","",$opac_photo_filtre_mimetype));
if ($opac_visionneuse_allow && $this->docnum_allowed && ($allowed_mimetype && in_array($expl->explnum_mimetype,$allowed_mimetype))){
$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" && $p["NAME"] != "ESCR") {
$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.="
";
}
return $retour;
} // fin aff_parents()
// 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.="
";
$colencours="";
//Gestion de la couleur de la cote selon le code stat
$color='';
for ($i=0; $i".$colonnesarray[$i].";");
if ($colonnesarray[$i]=="codestat_libelle"){
if(strripos($tmpColencours, 'red label')){
$color='red';
}elseif(strripos($tmpColencours, 'green label')){
$color='green';
}
}
}
for ($i=0; $i".$colonnesarray[$i].";");
if ($colonnesarray[$i]=="location_libelle" && $expl->num_infopage) {
if ($expl->surloc_id != "0") $param_surloc="&surloc=".$expl->surloc_id;
else $param_surloc="";
$expl_liste.="
";
$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
}// fin class notice_affichage_esc_rennes
class notice_affichage_esa 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_photo_filtre_mimetype;
global $opac_url_base;
global $charset;
$this->notice_header="";
if(!$this->notice_id){
return;
}
//Affichage perso pour header notice esa abacarisse
$notice_header_suite = "";
if($this->notice->niveau_biblio=='a' && $this->notice->niveau_hierar=='2'){
//Articles
$this->notice_header=$this->notice->tit1;
if($this->notice->tit4){
$this->notice_header.=' : '.$this->notice->tit4;
}
$this->notice_header.=' ';
if($this->auteurs_principaux){
$this->notice_header.='/ '.$this->auteurs_principaux;
}
$this->notice_header.=' / ';
$first=true;
if($this->parent_title){
if(!$first){
$this->notice_header.=', ';
}
$this->notice_header.=$this->parent_title;
$first=false;
}
if($this->notice->year){
if(!$first){
$this->notice_header.=', ';
}
$this->notice_header.=$this->notice->year;
$first=false;
}
}else{
if($this->notice->typdoc=='u'){
//Mémoire
$this->notice_header=$this->notice->tit1;
if($this->notice->tit4){
$this->notice_header.=' : '.$this->notice->tit4;
}
$this->notice_header.=' ';
if($this->auteurs_principaux){
$this->notice_header.='/ '.$this->auteurs_principaux;
}
$this->notice_header.=' / ';
$first=true;
if($this->notice->year){
if(!$first){
$this->notice_header.=', ';
}
$this->notice_header.=$this->notice->year;
$first=false;
}
// COTE
$req='SELECT expl_cote FROM exemplaires WHERE expl_notice='.$this->notice_id.' LIMIT 1';
$res = mysql_query($req);
if(mysql_result($res,0,0)){
$match=array();
if(preg_match('/^[a-z]{1,3}-[\d]{1,4}-[\d]{1,3}/i', mysql_result($res,0,0),$match)){
if(!$first){
$this->notice_header.=', ';
}
$this->notice_header.=$match[0];
}
}
unset($res);
unset($req);
}else{
//Livres
$this->notice_header=$this->notice->tit1;
if($this->notice->tit4){
$this->notice_header.=' : '.$this->notice->tit4;
}
$this->notice_header.=' ';
if($this->auteurs_principaux){
$this->notice_header.='/ '.$this->auteurs_principaux;
}
$this->notice_header.=' / ';
$first=true;
if($this->notice->ed1_id){
if(!$first){
$this->notice_header.=', ';
}
$editeur=new publisher($this->notice->ed1_id);
$this->notice_header.=$editeur->name;
$first=false;
}
if($this->notice->year){
if(!$first){
$this->notice_header.=', ';
}
$this->notice_header.=$this->notice->year;
$first=false;
}
// COTE
$req='SELECT expl_cote FROM exemplaires WHERE expl_notice='.$this->notice_id.' LIMIT 1';
$res = mysql_query($req);
if(mysql_result($res,0,0)){
$match=array();
if(preg_match('/^[a-z]{1,3}-[\d]{1,4}-[\d]{1,3}/i', mysql_result($res,0,0),$match)){
if(!$first){
$this->notice_header.=', ';
}
$this->notice_header.=$match[0];
}
}
unset($res);
unset($req);
}
}
$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);
}
$this->notice_header = 'statut_notice)?'title="'.htmlentities($this->statut_notice,ENT_QUOTES,$charset).'"':'').'>'.$this->notice_header;
$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 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)
$allowed_mimetype = explode(",",str_replace("'","",$opac_photo_filtre_mimetype));
if ($opac_visionneuse_allow && $this->docnum_allowed && ($allowed_mimetype && in_array($expl->explnum_mimetype,$allowed_mimetype))){
$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;
$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()
// 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;
global $opac_permalink;
$this->notice_public= $this->genere_in_perio ();
if(!$this->notice_id){
return;
}
// Notices parentes
$this->notice_public.=$this->parents;
$this->notice_public .= "
";
if($this->notice->niveau_biblio=='a' && $this->notice->niveau_hierar=='2'){
//Articles
//type de doc
if ($tdoc->table[$this->notice->typdoc]){
$this->notice_public .= "
".$msg['typdocdisplay_start']."
".$tdoc->table[$this->notice->typdoc]."
";
}
//titres et sous titre
$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 $pmb_etat_collections_localise;
global $dbh, $msg,$nb_per_page_a_search,$tpl_collstate_liste,$tpl_collstate_liste_line, $tpl_collstate_surloc_liste, $tpl_collstate_surloc_liste_line;
global $opac_sur_location_activate, $opac_view_filter_class;
global $opac_collstate_order, $opac_url_base;
$location="";
if($opac_view_filter_class){
$req="SELECT collstate_id , location_id, num_infopage, surloc_id FROM arch_statut, collections_state
LEFT JOIN arch_emplacement ON collstate_emplacement=archempla_id, docs_location
LEFT JOIN sur_location on docs_location.surloc_num=surloc_id
WHERE ".($location?"(location_id='$location') and ":"")."id_serial='".$this->notice_id."'
and location_id=idlocation and idlocation in(". implode(",",$opac_view_filter_class->params["nav_collections"]).")
and archstatut_id=collstate_statut
and ((archstatut_visible_opac=1 and archstatut_visible_opac_abon=0)".( $_SESSION["user_code"]? " or (archstatut_visible_opac_abon=1 and archstatut_visible_opac=1)" : "").")";
if ($opac_collstate_order) $req .= " ORDER BY ".$opac_collstate_order;
else $req .= " ORDER BY ".($pmb_etat_collections_localise?"location_libelle, ":"")."archempla_libelle, collstate_cote";
} else {
$req="SELECT collstate_id , location_id, num_infopage, surloc_id FROM arch_statut, collections_state
LEFT JOIN docs_location ON location_id = idlocation
LEFT JOIN sur_location on docs_location.surloc_num=surloc_id
LEFT JOIN arch_emplacement ON collstate_emplacement=archempla_id
WHERE ".($location?"(location_id='$location') and ":"")."id_serial='".$this->notice_id."'
and archstatut_id=collstate_statut
and ((archstatut_visible_opac=1 and archstatut_visible_opac_abon=0)".( $_SESSION["user_code"]? " or (archstatut_visible_opac_abon=1 and archstatut_visible_opac=1)" : "").")";
if ($opac_collstate_order) $req .= " ORDER BY ".$opac_collstate_order;
else $req .= " ORDER BY ".($pmb_etat_collections_localise?"location_libelle, ":"")."archempla_libelle, collstate_cote";
}
$myQuery = mysql_query($req, $dbh);
if(($nbr = mysql_num_rows($myQuery))) {
$tab="
";
$affichage.=$tab;
}
return $affichage;
} // fin affichage_etat_collections()
}
class notice_affichage_cconstitutionnel extends notice_affichage {
var $parents_in = ""; // la chaine des parents, utilisée pour do_parents en header
// génération du 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;
global $opac_allow_simili_search;
global $opac_draggable;
if($opac_draggable){
$draggable='yes';
}else{
$draggable='no';
}
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){
$title=$this->notice_header;
if(!$title)$title=$this->notice->tit1;
$basket="notice_id."&header=".rawurlencode(strip_tags($title))."\" 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($opac_allow_simili_search) {
$script_simili_search="show_simili_search('".$this->notice_id."');";
$simili_search_script_all="
";
$script_expl_voisin_search="show_expl_voisin_search('".$this->notice_id."');";
}
if ($depliable == 1) {
$template=" ".$simili_search_script_all."
";
}
//Partie
if ($this->notice->tnvol) {
$this->notice_public .= "
".$msg['tnvol_start']."
".$this->notice->tnvol;
$this->notice_public .="
";
}
//Complément du titre
if ($this->notice->tit4) {
$this->notice_public .= "
".$msg['240']." :
";
$this->notice_public .= "
".$this->notice->tit4."
";
}
//Titre parallèle
if ($this->notice->tit3) $this->notice_public .= "
".$msg['other_title_t3']." :
".$this->notice->tit2."
" ;
//type de doc
if ($tdoc->table[$this->notice->typdoc]){
$this->notice_public .= "
".$msg['typdocdisplay_start']."
".$tdoc->table[$this->notice->typdoc]."
";
}
//Auteurs
if ($this->auteurs_tous) $this->notice_public .= "
".$msg['auteur_start']."
".$this->auteurs_tous."
";
//Congrès
if ($this->congres_tous) $this->notice_public .= "
".$msg['congres_aff_public_libelle']."
".$this->congres_tous."
";
// mention d'édition
if ($this->notice->mention_edition) $this->notice_public .= "
".$msg['mention_edition_start']."
".$this->notice->mention_edition."
";
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->notice_public .= "
";
}
if ($this->notice->typdoc=='j') {
//Champs perso - Lieu de la soutenance
$perso_aff_1 = "" ;
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_lieusout') {
$perso_aff_1 .="
";
//Complément du titre
if ($this->notice->tit4) {
$this->notice_public .= "
".$msg['240']." :
";
$this->notice_public .= "
".$this->notice->tit4."
";
}
//Auteurs
if ($this->auteurs_tous) $this->notice_public .= "
".$msg['auteur_start']."
".$this->auteurs_tous."
";
//Congrès
if ($this->congres_tous) $this->notice_public .= "
".$msg['congres_aff_public_libelle']."
".$this->congres_tous."
";
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->notice_public .= "
";
//Complément du titre
if ($this->notice->tit4) {
$this->notice_public .= "
".$msg['240']." :
";
$this->notice_public .= "
".$this->notice->tit4."
";
}
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->notice_public .= "
";
}
//Champs personnalisés (en 2 parties)
$perso_aff_1 = "" ;
$perso_aff_2 = "" ;
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_abrev') {
$perso_aff_1 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_titreabrev') {
$perso_aff_2 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
}
}
}
}
//Abréviation
$this->notice_public .= $perso_aff_1;
} elseif(($this->notice->typdoc=='d') || (($this->notice->niveau_biblio == 'a') && ($this->notice->typdoc=='e'))) {
/*
* Article de périodique
* Article de presse
*/
//Champs personnalisés (en 4 parties)
$perso_aff_1 = "" ;
$perso_aff_2 = "" ;
$perso_aff_3 = "" ;
$perso_aff_4 = "" ;
$perso_aff_5 = "" ;
$perso_aff_6 = "" ;
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_theme') {
$perso_aff_1 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_cahier') {
$perso_aff_2 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_recueil') {
$perso_aff_3 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_revdoct') {
$perso_aff_4 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_cpt_tit') {
$perso_aff_5 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_partie_revue') {
$perso_aff_6 .="
";
//Complément du titre
if ($this->notice->tit4) {
$this->notice_public .= "
".$msg['240']." :
";
$this->notice_public .= "
".$this->notice->tit4."
";
}
//Autres compléments de titre
$this->notice_public .= $perso_aff_1;
//Titre en langue étrangère
if ($this->notice->tit3) $this->notice_public .= "
".$msg['other_title_t3']." :
".$this->notice->tit2."
" ;
//type de doc
if ($tdoc->table[$this->notice->typdoc]){
$this->notice_public .= "
".$msg['typdocdisplay_start']."
".$tdoc->table[$this->notice->typdoc]."
";
}
//Auteurs
if ($this->auteurs_tous) $this->notice_public .= "
".$msg['auteur_start']."
".$this->auteurs_tous."
";
//Congrès
if ($this->congres_tous) $this->notice_public .= "
".$msg['congres_aff_public_libelle']."
".$this->congres_tous."
";
// mention d'édition
if ($this->notice->mention_edition) $this->notice_public .= "
".$msg['mention_edition_start']."
".$this->notice->mention_edition."
";
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->notice_public .= "
";
}
} elseif($this->notice->typdoc=='g'){
/*
* Décision du CC
*/
//Champs personnalisés (en 4 parties)
$perso_aff_1 = "" ;
$perso_aff_2 = "" ;
$perso_aff_3 = "" ;
$perso_aff_4 = "" ;
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_referent') {
$perso_aff_1 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_datedec') {
$perso_aff_2 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_codedec') {
$perso_aff_3 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
} else if ($p['NAME']=='cp_type_dec') {
$perso_aff_4 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
}
}
}
}
//type de doc
if ($tdoc->table[$this->notice->typdoc]){
$this->notice_public .= "
";
//Complément du titre
if ($this->notice->tit4) {
$this->notice_public .= "
".$msg['240']." :
";
$this->notice_public .= "
".$this->notice->tit4."
";
}
//Autres compléments de titre
$this->notice_public .= $perso_aff_1;
//Auteurs
if ($this->auteurs_tous) $this->notice_public .= "
".$msg['auteur_start']."
".$this->auteurs_tous."
";
//Congrès
if ($this->congres_tous) $this->notice_public .= "
".$msg['congres_aff_public_libelle']."
".$this->congres_tous."
";
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->notice_public .= "
";
}
//Partie
if ($this->notice->tnvol) {
$this->notice_public .= "
".$msg['tnvol_start']."
".$this->notice->tnvol;
$this->notice_public .="
";
}
//Complément du titre
if ($this->notice->tit4) {
$this->notice_public .= "
".$msg['240']." :
";
$this->notice_public .= "
".$this->notice->tit4."
";
}
//Titre parallèle
if ($this->notice->tit3) $this->notice_public .= "
".$msg['other_title_t3']." :
".$this->notice->tit2."
" ;
//type de doc
if ($tdoc->table[$this->notice->typdoc]){
$this->notice_public .= "
".$msg['typdocdisplay_start']."
".$tdoc->table[$this->notice->typdoc]."
";
}
//Auteurs
if ($this->auteurs_tous) $this->notice_public .= "
".$msg['auteur_start']."
".$this->auteurs_tous."
";
//Congrès
if ($this->congres_tous) $this->notice_public .= "
".$msg['congres_aff_public_libelle']."
".$this->congres_tous."
";
// mention d'édition
if ($this->notice->mention_edition) $this->notice_public .= "
".$msg['mention_edition_start']."
".$this->notice->mention_edition."
";
// zone de l'éditeur
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->notice_public .= "
";
}
if ($this->notice->typdoc=='j') {
//Champs perso - Lieu de la soutenance
$perso_aff_1 = "" ;
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_lieusout') {
$perso_aff_1 .="
".strip_tags($p["TITRE"])."
".$p["AFF"]."
";
}
}
}
}
$this->notice_public .= $perso_aff_1;
}
}
//statut de notice en commande
if ($this->notice->statut == 3) {
$this->notice_public .= "
".$msg['statut_start']."
".$this->statut_notice."
";
}
// Permalink avec Id
if ($opac_permalink) {
if($this->notice->niveau_biblio != "b"){
$this->notice_public .= "
\n";
//notice mère
$this->notice_public.=$this->parents;
//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()
function aff_suite() {
//
}
// 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 ;
global $opac_url_base,$icon_doc,$biblio_doc,$tdoc;
global $parent_notice;
// 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 = "";
$this->parents_in_cote = "";
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();
}
if (mysql_num_rows($result_linked)==1) {
// 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);
if ($rqbullr) {
if (mysql_num_rows($rqbullr)) {
$rqbulld=@mysql_fetch_object($rqbullr);
$this->bulletin_id=$rqbulld->bulletin_id;
}
}
}
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.="
";
}
// $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."
";
}
}
//Ne pas afficher la Présentation si type de document = E-books
if ($this->notice->ill && ($this->notice->typdoc != "l")) $this->notice_public .= "
".$msg['ill_start']."
".$this->notice->ill."
";
//Ne pas afficher le formation si type de document = Monographie, E-book ou Multimédia
if ($this->notice->size && ($this->notice->typdoc != "a") && ($this->notice->typdoc != "l") && ($this->notice->typdoc != "m")) $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."
";
//Ne pas afficher le prix si type de document = Monographie, Films ou Bande dessinée
if ($this->notice->prix && ($this->notice->typdoc != "a") && ($this->notice->typdoc != "g") && ($this->notice->typdoc != "k")) $this->notice_public .= "
".$msg['price_start']."
".$this->notice->prix."
";
// note générale
//Ne pas afficher la note générale si type de document = Périodique
if ($this->notice->n_gen && ($this->notice->typdoc != "v")) $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 ;
//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];
//Ne pas afficher la Nouvelles acquisitions si type de document = Monographies, Films, Périodiques
if ($p['OPAC_SHOW'] && $p["AFF"] && ( ($p["NAME"] != "cp_nouv_acq") || ($this->notice->typdoc != "a") || ($this->notice->typdoc != "g") || ($this->notice->typdoc != "k"))) $perso_aff .="