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 {
public function fetch_auteurs() {
global $fonction_auteur0;
global $dbh ;
global $include_path;
global $lang, $tdoc;
$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;
}
$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 = pmb_mysql_query($rqt, $dbh);
while (($notice=pmb_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"
$this->auteurs_principaux = $this->record_datas->get_auteurs_principaux();
$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 {
public function do_public_line($label, $value, $css='') {
global $colspanbretagne;
if($value) {
if(substr(trim($label), strlen(trim($label))-1) != ':') $label .= ' :';
$this->notice_public .=
"
".$label."
".$value."
";
}
}
public function get_line_aff_suite($label, $value, $css='') {
global $colspanbretagne;
$line_aff_suite = '';
if($value) {
if(substr(trim($label), strlen(trim($label))-1) != ':') $label .= ' :';
$line_aff_suite .=
"
".$label."
".$value."
";
}
return $line_aff_suite;
}
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_map_activate;
global $opac_demandes_allow_from_record;
global $opac_scan_request_activate;
global $memo_expl;
$this->notice_public= "";
if(!$this->notice_id) return;
// ******* 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 = "";
$this->notice_public="
";
// Notices parentes
$this->notice_public.=$this->parents;
// constitution de la mention de titre
if ($this->notice->serie_name) {
$this->do_public_line($msg['tparent_start'], inslink($this->notice->serie_name, str_replace("!!id!!", $this->notice->tparent_id, $this->lien_rech_serie)).($this->notice->tnvol ? ", ".$this->notice->tnvol : ''), 'serie');
}
//titre 1 - titre 4
$this->do_public_line($msg['title'], $this->notice->tit1.($this->notice->tit4 ? " : ".$this->notice->tit4 : ''), 'title');
//titre 2
$this->do_public_line($msg['other_title_t2'], $this->notice->tit2, 'tit2');
//titre 3
$this->do_public_line($msg['other_title_t3'], $this->notice->tit3, 'tit3');
//type de document
$this->do_public_line($msg['typdocdisplay_start'], $tdoc->table[$this->notice->typdoc], 'typdoc');
//auteurs
$this->do_public_line($msg['auteur_start'], $this->auteurs_tous, 'auteurs');
//congrès
$this->do_public_line($msg['congres_aff_public_libelle'], $this->congres_tous, 'congres');
// mention d'édition
$this->do_public_line($msg['mention_edition_start'], $this->notice->mention_edition, 'mention');
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['editeur_start'], inslink($editeur->display, str_replace("!!id!!", $this->notice->ed1_id, $this->lien_rech_editeur)).($this->notice->year ? ", ".$this->notice->year : ""), 'ed1');
}
// Autre editeur
if ($this->notice->ed2_id) {
$editeur_2 = new publisher($this->notice->ed2_id);
$this->publishers[]=$editeur;
//+ année d'édition
$this->do_public_line($msg['other_editor'], inslink($editeur_2->display, str_replace("!!id!!", $this->notice->ed2_id, $this->lien_rech_editeur)), 'ed2');
}
// collection
if ($this->notice->nocoll) $affnocoll = " ".str_replace("!!nocoll!!", $this->notice->nocoll, $msg['subcollection_details_nocoll']) ;
else $affnocoll = "";
if($this->notice->subcoll_id) {
$subcollection = new subcollection($this->notice->subcoll_id);
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->name, str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection))." ".$collection->collection_web_link, 'coll');
$this->do_public_line($msg['subcoll_start'], inslink($subcollection->name, str_replace("!!id!!", $this->notice->subcoll_id, $this->lien_rech_subcollection)).$affnocoll, 'subcoll');
} elseif ($this->notice->coll_id) {
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->get_isbd(), str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection)).$affnocoll." ".$collection->collection_web_link, 'coll');
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
//année d'édition
if (!$this->notice->ed1_id) {
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->do_public_line($msg['titre_uniforme_aff_public'], $this->notice->tu_print_type_2, 'tu');
}
if($this->authperso_info)$this->notice_public .= $this->get_authperso_display();
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->do_public_line($msg['npages_start'], $this->notice->npages, 'npages');
} else {
$this->do_public_line($msg['npages_start_perio'], $this->notice->npages, 'npages');
}
}
$this->do_public_line($msg['ill_start'], $this->notice->ill, 'ill');
$this->do_public_line($msg['size_start'], $this->notice->size, 'size');
$this->do_public_line($msg['accomp_start'], $this->notice->accomp, 'accomp');
if($opac_map_activate==1 || $opac_map_activate==2){
if($mapisbd=$this->map_info->get_public()) $this->notice_public .=$mapisbd;
}
// map
if(($opac_map_activate==1 || $opac_map_activate==2) && $this->show_map){
$map = $this->map->get_map();
if($map){
$this->do_public_line($msg['map_notice_map'], $this->map->get_map(), 'map');
}
}
// ISBN ou NO. commercial
$this->do_public_line($msg['code_start'], $this->notice->code, 'code');
$this->do_public_line($msg['price_start'], $this->notice->prix, 'prix');
// note générale
$this->do_public_line($msg['n_gen_start'], nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset)), 'ngen');
// langues
if (count($this->langues)) {
$langues_value = $this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $langues_value .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->do_public_line($msg['537'], $langues_value, 'langues');
} elseif (count($this->languesorg)) {
$this->do_public_line($msg['711'], $this->construit_liste_langues($this->languesorg), 'langues');
}
$this->notice_public.=$this->genere_in_perio();
if (!$short){
$this->notice_public .= $this->aff_suite() ;
}
$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();
//notice de bulletin : etat des collections
if ($this->notice->niveau_biblio=='b' && $this->notice->niveau_hierar==2) $this->notice_public.=$this->get_display_collstates_bulletin_notice();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
//carte des localisations
if(($opac_map_activate==1 || $opac_map_activate==3) && $ex && $this->affichage_resa_expl){
$this->affichage_resa_expl = '
';
}
// demandes
if ($opac_demandes_allow_from_record) $this->aff_demand();
// demandes de numérisation
if ($opac_scan_request_activate) $this->aff_scan_requests();
return;
} // fin do_public($short=0,$ex=1)
// fonction de génération de ,la mention in titre du pério + numéro
public 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
public function aff_suite() {
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret = $this->genere_in_perio();
$ret .= parent::aff_suite();
return $ret ;
} // fin aff_suite()
}
class notice_affichage_mw extends notice_affichage {
//affichage alterné de 2 styles différents dans les lignes du tableau des notices
protected $x=""; //gestion de l'alternance des lignes colorées dans le tableau HTML
// génération d'une ligne de l'affichage public----------------------------------------
public function do_public_line($label, $value, $css='') {
if($value) {
if(substr(trim($label), strlen(trim($label))-1) != ':') $label .= ' :';
if($this->x) $this->x = "";
else $this->x = "2";
$this->notice_public .=
"
";
}
return $line_aff_suite;
}
// fonction d'affichage de la suite ISBD ou PUBLIC : partie commune, pour éviter la redondance de calcul
public function aff_suite() {
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret = $this->genere_in_perio();
$ret .= parent::aff_suite();
return $ret ;
} // fin aff_suite()
// fonction d'affichage des exemplaires, résa et expl_num
public 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 = pmb_mysql_result(pmb_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
public 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="
";
}
if (($opac_allow_add_tag==1)||(($opac_allow_add_tag==2)&&($_SESSION["user_code"]))){
//add tags
$basket.=" notice_id','Ajouter_un_tag')\">".$msg['notice_bt_tag']."";
}
if ((!$this->cart_allowed)&&($opac_avis_allow==0)) {
$basket.="";
}
$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 {
public 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 {
public 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 = static::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 = static::autres_lectures($this->notice_id,$this->bulletin_id))) {
$ret .= $autres_lectures;
}
$this->affichage_resa_expl = $ret ;
return $ret ;
}
}
// prao >> authentification sur kportal pour les resas
class notice_affichage_prao extends notice_affichage {
public function aff_resa_expl() {
global $opac_resa_popup;
parent::aff_resa_expl();
$this->affichage_resa_expl=str_replace("do_resa.php?", "do_resa_prao.php?",$this->affichage_resa_expl);
$ret=$this->affichage_resa_expl;
return $ret;
}
// génération de l'affichage public----------------------------------------
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_map_activate;
global $opac_demandes_allow_from_record;
global $opac_scan_request_activate;
global $memo_expl;
$this->notice_public= $this->genere_in_perio ();
if(!$this->notice_id) return;
// Notices parentes
$this->notice_public.=$this->parents;
$this->notice_public .= "
";
// constitution de la mention de titre
if ($this->notice->serie_name) {
$this->do_public_line($msg['tparent_start'], inslink($this->notice->serie_name, str_replace("!!id!!", $this->notice->tparent_id, $this->lien_rech_serie)).($this->notice->tnvol ? ", ".$this->notice->tnvol : ''), 'serie');
}
//titre 1 - titre 4
$this->do_public_line($msg['title'], $this->notice->tit1.($this->notice->tit4 ? " : ".$this->notice->tit4 : ''), 'title');
//titre 2
$this->do_public_line($msg['other_title_t2'], $this->notice->tit2, 'tit2');
//titre 3
$this->do_public_line($msg['other_title_t3'], $this->notice->tit3, 'tit3');
//type de document
$this->do_public_line($msg['typdocdisplay_start'], $tdoc->table[$this->notice->typdoc], 'typdoc');
//auteurs
$this->do_public_line($msg['auteur_start'], $this->auteurs_tous, 'auteurs');
//congrès
$this->do_public_line($msg['congres_aff_public_libelle'], $this->congres_tous, 'congres');
// mention d'édition
$this->do_public_line($msg['mention_edition_start'], $this->notice->mention_edition, 'mention');
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['editeur_start'], inslink($editeur->display, str_replace("!!id!!", $this->notice->ed1_id, $this->lien_rech_editeur)), 'ed1');
//année d'édition
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Autre editeur
if ($this->notice->ed2_id) {
$editeur_2 = new publisher($this->notice->ed2_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['other_editor'], inslink($editeur_2->display, str_replace("!!id!!", $this->notice->ed2_id, $this->lien_rech_editeur)), 'ed2');
}
// collection
if ($this->notice->nocoll) $affnocoll = " ".str_replace("!!nocoll!!", $this->notice->nocoll, $msg['subcollection_details_nocoll']) ;
else $affnocoll = "";
if($this->notice->subcoll_id) {
$subcollection = new subcollection($this->notice->subcoll_id);
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->name, str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection))." ".$collection->collection_web_link, 'coll');
$this->do_public_line($msg['subcoll_start'], inslink($subcollection->name, str_replace("!!id!!", $this->notice->subcoll_id, $this->lien_rech_subcollection)).$affnocoll, 'subcoll');
} elseif ($this->notice->coll_id) {
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->get_isbd(), str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection)).$affnocoll." ".$collection->collection_web_link, 'coll');
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
//année d'édition
if (!$this->notice->ed1_id) {
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->do_public_line($msg['titre_uniforme_aff_public'], $this->notice->tu_print_type_2, 'tu');
}
if($this->authperso_info)$this->notice_public .= $this->get_authperso_display();
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->do_public_line($msg['npages_start'], $this->notice->npages, 'npages');
} else {
$this->do_public_line($msg['npages_start_perio'], $this->notice->npages, '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->do_public_line($msg['ill_start'], $this->notice->ill, 'ill');
}
if ($this->notice->size && ($this->notice->typdoc != "a" /*Ouvrage*/ ) && ($this->notice->typdoc != "x" /*Outil pédagogique*/ ) && ($this->notice->typdoc != "e" /*Compte-rendu*/ ) && ($this->notice->typdoc != "b" /*Actes*/ ) && ($this->notice->typdoc != "v" /*Travaux universitaires*/ ) && ($this->notice->typdoc != "s" /*Rapport*/ ) && ($this->notice->typdoc != "m" /*document multimédia*/ )) {
$this->do_public_line($msg['size_start'], $this->notice->size, 'size');
}
if ($this->notice->accomp) {
$this->do_public_line($msg['accomp_start'], $this->notice->accomp, 'accomp');
}
if($opac_map_activate==1 || $opac_map_activate==2){
if($mapisbd=$this->map_info->get_public()) $this->notice_public .=$mapisbd;
}
// map
if(($opac_map_activate==1 || $opac_map_activate==2) && $this->show_map){
$map = $this->map->get_map();
if($map){
$this->do_public_line($msg['map_notice_map'], $this->map->get_map(), 'map');
}
}
// ISBN ou NO. commercial
$this->do_public_line($msg['code_start'], $this->notice->code, 'code');
$this->do_public_line($msg['price_start'], $this->notice->prix, 'prix');
// note générale
$this->do_public_line($msg['n_gen_start'], nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset)), 'ngen');
// langues
// if (count($this->langues)) {
// $langues_value = $this->construit_liste_langues($this->langues);
// if (count($this->languesorg)) $langues_value .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
// $this->do_public_line($msg['537'], $langues_value, 'langues');
// } elseif (count($this->languesorg)) {
// $this->do_public_line($msg['711'], $this->construit_liste_langues($this->languesorg), 'langues');
// }
if (!$short) $this->notice_public .= $this->aff_suite() ;
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();
//notice de bulletin : etat des collections
if ($this->notice->niveau_biblio=='b' && $this->notice->niveau_hierar==2) $this->notice_public.=$this->get_display_collstates_bulletin_notice();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
//carte des localisations
if(($opac_map_activate==1 || $opac_map_activate==3) && $ex && $this->affichage_resa_expl){
$this->affichage_resa_expl = '
';
}
// demandes
if ($opac_demandes_allow_from_record) $this->aff_demand();
// demandes de numérisation
if ($opac_scan_request_activate) $this->aff_scan_requests();
return;
} // fin do_public($short=0,$ex=1)
}
// MBA
class notice_affichage_mba extends notice_affichage {
// génération de l'affichage public----------------------------------------
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_map_activate;
global $opac_demandes_allow_from_record;
global $opac_scan_request_activate;
global $memo_expl;
$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->do_public_line($msg['tparent_start'], inslink($this->notice->serie_name, str_replace("!!id!!", $this->notice->tparent_id, $this->lien_rech_serie)).($this->notice->tnvol ? ", ".$this->notice->tnvol : ''), 'serie');
}
//titre 1 - titre 4
$this->do_public_line($msg['title'], $this->notice->tit1.($this->notice->tit4 ? " : ".$this->notice->tit4 : ''), 'title');
//titre 2
$this->do_public_line($msg['other_title_t2'], $this->notice->tit2, 'tit2');
//Complément du titre parallèle dans le Champ personalisé sstitre_parallele
$sstitre_parallele="";
$sstitre_parallele1="";
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"] == "sstitre_parallele") {
$sstitre_parallele=$p["AFF"];
}
if($p["NAME"] == "titre_parallele") {
$sstitre_parallele1=str_replace("/"," ",$p["AFF"]);
}
}
}
}
if($sstitre_parallele)$sstitre_parallele=" : ".$sstitre_parallele;
//titre 3
$this->do_public_line($msg['other_title_t3'], $this->notice->tit3.$sstitre_parallele, 'tit3');
$this->do_public_line('Autres titres parallèles :', $sstitre_parallele1, 'sstitre_parallele1');
//type de document
$this->do_public_line($msg['typdocdisplay_start'], $tdoc->table[$this->notice->typdoc], 'typdoc');
//auteurs
$this->do_public_line($msg['auteur_start'], $this->auteurs_tous, 'auteurs');
//congrès
$this->do_public_line($msg['congres_aff_public_libelle'], $this->congres_tous, 'congres');
// mention d'édition
$this->do_public_line($msg['mention_edition_start'], $this->notice->mention_edition, 'mention');
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['editeur_start'], inslink($editeur->display, str_replace("!!id!!", $this->notice->ed1_id, $this->lien_rech_editeur)), 'ed1');
//année d'édition
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Autre editeur
if ($this->notice->ed2_id) {
$editeur_2 = new publisher($this->notice->ed2_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['other_editor'], inslink($editeur_2->display, str_replace("!!id!!", $this->notice->ed2_id, $this->lien_rech_editeur)), 'ed2');
}
// collection
if ($this->notice->nocoll) $affnocoll = " ".str_replace("!!nocoll!!", $this->notice->nocoll, $msg['subcollection_details_nocoll']) ;
else $affnocoll = "";
if($this->notice->subcoll_id) {
$subcollection = new subcollection($this->notice->subcoll_id);
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->name, str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection))." ".$collection->collection_web_link, 'coll');
$this->do_public_line($msg['subcoll_start'], inslink($subcollection->name, str_replace("!!id!!", $this->notice->subcoll_id, $this->lien_rech_subcollection)).$affnocoll, 'subcoll');
} elseif ($this->notice->coll_id) {
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->get_isbd(), str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection)).$affnocoll." ".$collection->collection_web_link, 'coll');
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
//année d'édition
if (!$this->notice->ed1_id) {
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->do_public_line($msg['titre_uniforme_aff_public'], $this->notice->tu_print_type_2, 'tu');
}
if($this->authperso_info)$this->notice_public .= $this->get_authperso_display();
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->do_public_line($msg['npages_start'], $this->notice->npages, 'npages');
} else {
$this->do_public_line($msg['npages_start_perio'], $this->notice->npages, 'npages');
}
}
$this->do_public_line($msg['ill_start'], $this->notice->ill, 'ill');
$this->do_public_line($msg['size_start'], $this->notice->size, 'size');
$this->do_public_line($msg['accomp_start'], $this->notice->accomp, 'accomp');
if($opac_map_activate==1 || $opac_map_activate==2){
if($mapisbd=$this->map_info->get_public()) $this->notice_public .=$mapisbd;
}
// map
if(($opac_map_activate==1 || $opac_map_activate==2) && $this->show_map){
$map = $this->map->get_map();
if($map){
$this->do_public_line($msg['map_notice_map'], $this->map->get_map(), 'map');
}
}
// ISBN ou NO. commercial
$this->do_public_line($msg['code_start'], $this->notice->code, 'code');
$this->do_public_line($msg['price_start'], $this->notice->prix, 'prix');
// note générale
$this->do_public_line($msg['n_gen_start'], nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset)), 'ngen');
// langues
if (count($this->langues)) {
$langues_value = $this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $langues_value .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->do_public_line($msg['537'], $langues_value, 'langues');
} elseif (count($this->languesorg)) {
$this->do_public_line($msg['711'], $this->construit_liste_langues($this->languesorg), 'langues');
}
if (!$short){
$this->notice_public .= $this->aff_suite() ;
}
$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();
//notice de bulletin : etat des collections
if ($this->notice->niveau_biblio=='b' && $this->notice->niveau_hierar==2) $this->notice_public.=$this->get_display_collstates_bulletin_notice();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
//carte des localisations
if(($opac_map_activate==1 || $opac_map_activate==3) && $ex && $this->affichage_resa_expl){
$this->affichage_resa_expl = '
';
}
// demandes
if ($opac_demandes_allow_from_record) $this->aff_demand();
// demandes de numérisation
if ($opac_scan_request_activate) $this->aff_scan_requests();
return;
} // fin do_public($short=0,$ex=1)
public function get_aff_fields_perso() {
global $msg;
$aff_fields_perso = $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.="
" ;
}
}
return $aff_fields_perso.$perso_aff_suite;
}
}
/*
* Classe d'affichage pour Philip Morris
*/
class notice_affichage_pmi extends notice_affichage {
public $collectivite_tous = "";
public $customs = array();
/*
* Affichage public
*/
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
$this->notice_public .= "
";
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
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."
";
// Concepts
$concepts_list = new skos_concepts_list();
if ($concepts_list->set_concepts_from_object(TYPE_NOTICE, $this->notice_id)) {
$ret_index .= "
";
}
// 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
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."
";
// Concepts
$concepts_list = new skos_concepts_list();
if ($concepts_list->set_concepts_from_object(TYPE_NOTICE, $this->notice_id)) {
$ret_index .= "
" ;
}
// $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é
public 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 = pmb_mysql_query($requete, $dbh);
$nb_ex = pmb_mysql_num_rows($res);
if($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
global $search_terms;
while (($expl = pmb_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----------------------------------------
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_map_activate;
global $opac_demandes_allow_from_record;
global $opac_scan_request_activate;
global $memo_expl;
$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->do_public_line($msg['tparent_start'], inslink($this->notice->serie_name, str_replace("!!id!!", $this->notice->tparent_id, $this->lien_rech_serie)).($this->notice->tnvol ? ", ".$this->notice->tnvol : ''), 'serie');
}
//titre 1 - titre 4
$this->do_public_line($msg['title'], $this->notice->tit1.($this->notice->tit4 ? " : ".$this->notice->tit4 : ''), 'title');
//titre 2
$this->do_public_line($msg['other_title_t2'], $this->notice->tit2, 'tit2');
//titre 3
$this->do_public_line($msg['other_title_t3'], $this->notice->tit3, 'tit3');
//type de document
$this->do_public_line($msg['typdocdisplay_start'], $tdoc->table[$this->notice->typdoc], 'typdoc');
//Champs personalisés
$perso_aff = "" ;
if (!$this->p_perso->no_special_fields) {
$perso_=$this->p_perso->show_fields($this->notice_id);
for ($i=0; $ido_public_line($p["TITRE"], $p["AFF"], $p["TITRE"]);
}
}
}
//auteurs
$this->do_public_line($msg['auteur_start'], $this->auteurs_tous, 'auteurs');
//congrès
$this->do_public_line($msg['congres_aff_public_libelle'], $this->congres_tous, 'congres');
// mention d'édition
$this->do_public_line($msg['mention_edition_start'], $this->notice->mention_edition, 'mention');
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['editeur_start'], inslink($editeur->display, str_replace("!!id!!", $this->notice->ed1_id, $this->lien_rech_editeur)), 'ed1');
//année d'édition
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Autre editeur
if ($this->notice->ed2_id) {
$editeur_2 = new publisher($this->notice->ed2_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['other_editor'], inslink($editeur_2->display, str_replace("!!id!!", $this->notice->ed2_id, $this->lien_rech_editeur)), 'ed2');
}
// collection
if ($this->notice->nocoll) $affnocoll = " ".str_replace("!!nocoll!!", $this->notice->nocoll, $msg['subcollection_details_nocoll']) ;
else $affnocoll = "";
if($this->notice->subcoll_id) {
$subcollection = new subcollection($this->notice->subcoll_id);
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->name, str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection))." ".$collection->collection_web_link, 'coll');
$this->do_public_line($msg['subcoll_start'], inslink($subcollection->name, str_replace("!!id!!", $this->notice->subcoll_id, $this->lien_rech_subcollection)).$affnocoll, 'subcoll');
} elseif ($this->notice->coll_id) {
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->get_isbd(), str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection)).$affnocoll." ".$collection->collection_web_link, 'coll');
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
//année d'édition
if (!$this->notice->ed1_id) {
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->do_public_line($msg['titre_uniforme_aff_public'], $this->notice->tu_print_type_2, 'tu');
}
if($this->authperso_info)$this->notice_public .= $this->get_authperso_display();
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->do_public_line($msg['npages_start'], $this->notice->npages, 'npages');
} else {
$this->do_public_line($msg['npages_start_perio'], $this->notice->npages, 'npages');
}
}
$this->do_public_line($msg['ill_start'], $this->notice->ill, 'ill');
$this->do_public_line($msg['size_start'], $this->notice->size, 'size');
$this->do_public_line($msg['accomp_start'], $this->notice->accomp, 'accomp');
if($opac_map_activate==1 || $opac_map_activate==2){
if($mapisbd=$this->map_info->get_public()) $this->notice_public .=$mapisbd;
}
// map
if(($opac_map_activate==1 || $opac_map_activate==2) && $this->show_map){
$map = $this->map->get_map();
if($map){
$this->do_public_line($msg['map_notice_map'], $this->map->get_map(), 'map');
}
}
// ISBN ou NO. commercial
$this->do_public_line($msg['code_start'], $this->notice->code, 'code');
$this->do_public_line($msg['price_start'], $this->notice->prix, 'prix');
// note générale
$this->do_public_line($msg['n_gen_start'], nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset)), 'ngen');
// langues
if (count($this->langues)) {
$langues_value = $this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $langues_value .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->do_public_line($msg['537'], $langues_value, 'langues');
} elseif (count($this->languesorg)) {
$this->do_public_line($msg['711'], $this->construit_liste_langues($this->languesorg), 'langues');
}
if (!$short){
$this->notice_public .= $this->aff_suite() ;
}
$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();
//notice de bulletin : etat des collections
if ($this->notice->niveau_biblio=='b' && $this->notice->niveau_hierar==2) $this->notice_public.=$this->get_display_collstates_bulletin_notice();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
//carte des localisations
if(($opac_map_activate==1 || $opac_map_activate==3) && $ex && $this->affichage_resa_expl){
$this->affichage_resa_expl = '
";
} 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----------------------------------------
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_map_activate;
global $opac_demandes_allow_from_record;
global $opac_scan_request_activate;
global $memo_expl;
$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->do_public_line($msg['tparent_start'], inslink($this->notice->serie_name, str_replace("!!id!!", $this->notice->tparent_id, $this->lien_rech_serie)).($this->notice->tnvol ? ", ".$this->notice->tnvol : ''), 'serie');
}
//titre 1 - titre 4
$this->do_public_line($msg['title'], $this->notice->tit1.($this->notice->tit4 ? " : ".$this->notice->tit4 : ''), 'title');
//titre 2
$this->do_public_line($msg['other_title_t2'], $this->notice->tit2, 'tit2');
//titre 3
$this->do_public_line($msg['other_title_t3'], $this->notice->tit3, 'tit3');
//type de document
$this->do_public_line($msg['typdocdisplay_start'], $tdoc->table[$this->notice->typdoc], 'typdoc');
//Nature du document
if($this->customs["NATURE"]) $this->notice_public .= $this->customs["NATURE"];
//auteurs
$this->do_public_line($msg['auteur_start'], $this->auteurs_tous, 'auteurs');
//congrès
$this->do_public_line($msg['congres_aff_public_libelle'], $this->congres_tous, 'congres');
// mention d'édition
$this->do_public_line($msg['mention_edition_start'], $this->notice->mention_edition, 'mention');
//Date de publication
if($this->customs["PUBLICATION"]) $this->notice_public .= $this->customs["PUBLICATION"];
if ($this->notice->ed1_id) {
$editeur = new publisher($this->notice->ed1_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['editeur_start'], inslink($editeur->display, str_replace("!!id!!", $this->notice->ed1_id, $this->lien_rech_editeur)), 'ed1');
//année d'édition
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Autre editeur
if ($this->notice->ed2_id) {
$editeur_2 = new publisher($this->notice->ed2_id);
$this->publishers[]=$editeur;
$this->do_public_line($msg['other_editor'], inslink($editeur_2->display, str_replace("!!id!!", $this->notice->ed2_id, $this->lien_rech_editeur)), 'ed2');
}
// collection
if ($this->notice->nocoll) $affnocoll = " ".str_replace("!!nocoll!!", $this->notice->nocoll, $msg['subcollection_details_nocoll']) ;
else $affnocoll = "";
if($this->notice->subcoll_id) {
$subcollection = new subcollection($this->notice->subcoll_id);
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->name, str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection))." ".$collection->collection_web_link, 'coll');
$this->do_public_line($msg['subcoll_start'], inslink($subcollection->name, str_replace("!!id!!", $this->notice->subcoll_id, $this->lien_rech_subcollection)).$affnocoll, 'subcoll');
} elseif ($this->notice->coll_id) {
$collection = new collection($this->notice->coll_id);
$this->collections[]=$collection;
$this->do_public_line($msg['coll_start'], inslink($collection->get_isbd(), str_replace("!!id!!", $this->notice->coll_id, $this->lien_rech_collection)).$affnocoll." ".$collection->collection_web_link, 'coll');
}
// $annee est vide si ajoutée avec l'éditeur, donc si pas éditeur, on l'affiche ici
//année d'édition
if (!$this->notice->ed1_id) {
$this->do_public_line($msg['year_start'], $this->notice->year, 'year');
}
// Titres uniformes
if($this->notice->tu_print_type_2) {
$this->do_public_line($msg['titre_uniforme_aff_public'], $this->notice->tu_print_type_2, 'tu');
}
if($this->authperso_info)$this->notice_public .= $this->get_authperso_display();
// zone de la collation
if($this->notice->npages) {
if ($this->notice->niveau_biblio<>"a") {
$this->do_public_line($msg['npages_start'], $this->notice->npages, 'npages');
} else {
$this->do_public_line($msg['npages_start_perio'], $this->notice->npages, 'npages');
}
}
$this->do_public_line($msg['ill_start'], $this->notice->ill, 'ill');
$this->do_public_line($msg['size_start'], $this->notice->size, 'size');
$this->do_public_line($msg['accomp_start'], $this->notice->accomp, 'accomp');
if($opac_map_activate==1 || $opac_map_activate==2){
if($mapisbd=$this->map_info->get_public()) $this->notice_public .=$mapisbd;
}
// map
if(($opac_map_activate==1 || $opac_map_activate==2) && $this->show_map){
$map = $this->map->get_map();
if($map){
$this->do_public_line($msg['map_notice_map'], $this->map->get_map(), 'map');
}
}
// ISBN ou NO. commercial
$this->do_public_line($msg['code_start'], $this->notice->code, 'code');
$this->do_public_line($msg['price_start'], $this->notice->prix, 'prix');
// note générale
$this->do_public_line($msg['n_gen_start'], nl2br(htmlentities($this->notice->n_gen,ENT_QUOTES, $charset)), 'ngen');
// langues
if (count($this->langues)) {
$langues_value = $this->construit_liste_langues($this->langues);
if (count($this->languesorg)) $langues_value .= " ".$msg['711']." : ".$this->construit_liste_langues($this->languesorg);
$this->do_public_line($msg['537'], $langues_value, 'langues');
} elseif (count($this->languesorg)) {
$this->do_public_line($msg['711'], $this->construit_liste_langues($this->languesorg), 'langues');
}
if (!$short) {
$this->notice_public .= $this->aff_suite_public() ;
} else {
$this->notice_public.=$this->genere_in_perio();
}
$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();
//notice de bulletin : etat des collections
if ($this->notice->niveau_biblio=='b' && $this->notice->niveau_hierar==2) $this->notice_public.=$this->get_display_collstates_bulletin_notice();
// exemplaires, résas et compagnie
if ($ex) $this->affichage_resa_expl = $this->aff_resa_expl() ;
//carte des localisations
if(($opac_map_activate==1 || $opac_map_activate==3) && $ex && $this->affichage_resa_expl){
$this->affichage_resa_expl = '
';
}
// demandes
if ($opac_demandes_allow_from_record) $this->aff_demand();
// demandes de numérisation
if ($opac_scan_request_activate) $this->aff_scan_requests();
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
public 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."
";
// Concepts
$concepts_list = new skos_concepts_list();
if ($concepts_list->set_concepts_from_object(TYPE_NOTICE, $this->notice_id)) {
$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
public 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.="
".$explnum_bull;
}
}
}
}
}
return $ret;
}
public function show_explnum_per_notice($no_notice, $no_bulletin, $link_expl='',$analysis_id=0) {
// params :
// $link_expl= lien associé à l'exemplaire avec !!explnum_id!! à mettre à jour
global $dbh;
global $msg;
global $charset;
global $opac_url_base ;
global $opac_visionneuse_allow;
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 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 = pmb_mysql_query($requete, $dbh);
$nb_ex = pmb_mysql_num_rows($res);
if($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
global $search_terms;
//Champ perso note de docnum
$perso_display="";
if (!$this->p_perso->no_special_fields) {
$perso_=$this->p_perso->show_fields($this->notice_id);
for ($j=0; $j
";
return $entry;
}
protected function get_query_explnum_header() {
if ($this->notice->niveau_biblio == 'b') {
$query = "SELECT explnum_id, explnum_nom, explnum_nomfichier, explnum_url, explnum_mimetype, explnum_extfichier FROM explnum, bulletins WHERE bulletins.num_notice = ".$this->notice_id." AND bulletins.bulletin_id = explnum.explnum_bulletin order by explnum_id";
} else if ($this->notice->niveau_biblio == 'a'){
$query_analysis = "SELECT explnum_id, explnum_nom,explnum_notice, explnum_bulletin, explnum_nomfichier,explnum_url, explnum_mimetype, explnum_extfichier FROM explnum WHERE explnum_notice = ".$this->notice_id;
$query_bull = "SELECT explnum_id, explnum_nom,explnum_notice, explnum_bulletin, explnum_nomfichier,explnum_url, explnum_mimetype, explnum_extfichier FROM analysis join explnum on analysis_notice = ".$this->notice_id." and explnum_bulletin = analysis_bulletin";
$query = "select * from ($query_analysis union $query_bull) as uni order by explnum_id";
}else {
$query = "SELECT explnum_id, explnum_nom, explnum_nomfichier,explnum_url, explnum_mimetype, explnum_extfichier FROM explnum WHERE explnum_notice = ".$this->notice_id." order by explnum_id";
}
return $query;
}
public function do_header($id_tpl=0) {
global $opac_url_base, $msg, $charset;
global $memo_notice;
global $opac_visionneuse_allow;
global $opac_photo_filtre_mimetype;
global $opac_show_links_invisible_docnums;
$this->notice_header="";
if(!$this->notice_id) return;
$this->notice_header = $this->get_notice_header($id_tpl);
$type_reduit = substr($this->notice_reduit_format,0,1);
if ($type_reduit=="H" || $id_tpl){
return;
}
//$this->notice_header.=" notice->notice_id."\" style=\"visibility:hidden\">";
$this->notice_header_doclink="";
if ($this->notice->lien) {
$this->notice_header_doclink .= $this->get_resource_link_notice_header();
}
$sql_explnum = $this->get_query_explnum_header();
$explnums = pmb_mysql_query($sql_explnum);
$explnumscount = pmb_mysql_num_rows($explnums);
if ($opac_show_links_invisible_docnums || (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 = pmb_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($explnumrow->explnum_mimetype,$allowed_mimetype))){
if($this->notice->niveau_biblio == "a" && $explnumrow->explnum_bulletin != 0){
$this->p_perso->get_values($this->notice_id) ;
if($this->p_perso->values[35] && $this->p_perso->values[35][0] != 0){
$pagin = $this->p_perso->values[35][0];
}else{
$pagin = preg_replace("/[^0-9]/","",$this->notice->npages) * 1;
}
$this->notice_header_doclink .="
explnum_id."_".$pagin."');return false;\" title='$alt'>";
}else{
$this->notice_header_doclink .="
explnum_id.");return false;\" title='$alt'>";
}
}else{
if($this->check_accessibility_explnum($explnumrow->explnum_id)){
$this->notice_header_doclink .= "
explnum_id)."'); return false;\" title='$alt'>";
}else{
$this->notice_header_doclink .= "
explnum_id."\" target=\"_blank\">";
}
}
$this->notice_header_doclink .= "get_docnum_icon($explnumrow->mimetype, $explnumrow->explnum_extfichier)."\" width='16px' border=\"0\" class='align_middle' hspace=\"3\"";
$this->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) {
$info_bulle=$msg["info_docs_num_notice"];
$this->notice_header_doclink .= "";
}
}
$this->notice_header_doclink.=$this->get_icon_is_new();
//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()
public function get_docnum_icon($mimetype,$ext){
global $_mimetypes_bymimetype_, $_mimetypes_byext_ ;
create_tableau_mimetype();
$icon = icone_mimetype($mimetype,$ext);
if($icon == "unknown.gif"){
$path = get_url_icon("globe_orange.png");
}else{
$path = "./images/mimetype/".$icon;
}
return $path;
}
}
class notice_affichage_commande_copie extends notice_affichage {
public $send_order ="";
public function do_header($id_tpl=0) {
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.= "
";
}
public function get_icon_is_new() {
//pas très optimale, mais ça fait le job
$icon_is_new = parent::get_icon_is_new();
return $this->send_order.$icon_is_new;
}
public 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
$r_type=array();
$ul_opened=false;
$parents = $this->notice_relations->get_parents();
foreach ($parents as $rel_type=>$parents_relations) {
foreach ($parents_relations as $parent) {
if ($opac_notice_affichage_class) $notice_affichage=$opac_notice_affichage_class; else $notice_affichage="notice_affichage";
if($memo_notice[$parent->get_linked_notice()]["header"]) {
$parent_notice=new stdClass();
$parent_notice->notice_header=$memo_notice[$parent->get_linked_notice()]["header"];
} else {
$parent_notice=new $notice_affichage($parent->get_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 ($this->notice_relations->get_nb_parents()==1) {
$this->notice_isbd_small.=" ".notice_relations::$liste_type_relation['up']->table[$parent->get_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=pmb_mysql_query($rqbull);
$rqbulld=@pmb_mysql_fetch_object($rqbullr);
if($rqbulld->bulletin_id) $this->bulletin_id=$rqbulld->bulletin_id;
} else {
if (!$r_type[$parent->get_relation_type()]) {
$r_type[$parent->get_relation_type()]=1;
if ($ul_opened) $this->notice_isbd_small.=""; else { $this->notice_isbd_small.=" "; $ul_opened=true; }
$this->notice_isbd_small.="".notice_relations::$liste_type_relation['up']->table[$parent->get_relation_type()]."";
$this->notice_isbd_small.="
';
}
// demandes
if ($opac_demandes_allow_from_record) $this->aff_demand();
// demandes de numérisation
if ($opac_scan_request_activate) $this->aff_scan_requests();
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
public function aff_suite() {
// afin d'éviter de recalculer un truc déjà calculé...
if ($this->affichage_suite_flag) return $this->affichage_suite ;
$ret = $this->genere_in_perio();
$ret .= parent::aff_suite();
return $ret ;
} // fin aff_suite()
}
class notice_affichage_ensosp extends notice_affichage {
// fonction d'affichage des exemplaires numeriques
public function aff_explnum () {
global $msg;
$ret='';
if ( (is_null($this->dom_2) && $this->visu_explnum && (!$this->visu_explnum_abon || ($this->visu_explnum_abon && $_SESSION["user_code"]))) || ($this->rights & 16)){
if ($this->notice->niveau_biblio=="b" && ($explnum = $this->show_explnum_per_notice(0, $this->bulletin_id, ''))) {
$ret .= "
".$explnum;
}
}
return $ret;
} // fin aff_explnum ()
// fonction retournant les infos d'exemplaires numériques pour une notice ou un bulletin donné
public 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 = pmb_mysql_query($requete, $dbh);
$nb_ex = pmb_mysql_num_rows($res);
if ($nb_ex) {
// on récupère les données des exemplaires
$i = 1 ;
global $search_terms;
while (($expl = pmb_mysql_fetch_object($res))) {
if ($i==1) $ligne="
!!1!!
!!2!!
!!3!!
" ;
if ($link_expl) {
$tlink = str_replace("!!explnum_id!!", $expl->explnum_id, $link_expl);
$tlink = str_replace("!!notice_id!!", $expl->explnum_notice, $tlink);
$tlink = str_replace("!!bulletin_id!!", $expl->explnum_bulletin, $tlink);
}
$alt = htmlentities($expl->explnum_nom." - ".$expl->explnum_mimetype,ENT_QUOTES, $charset) ;
if ($expl->explnum_vignette) $obj="";
else // trouver l'icone correspondant au mime_type
$obj="";
$expl_liste_obj = "";
$words_to_find="";
if (($expl->explnum_mimetype=='application/pdf') ||($expl->explnum_mimetype=='URL' && (strpos($expl->explnum_nom,'.pdf')!==false))){
$words_to_find = "#search=\"".trim(str_replace('*','',implode(' ',$search_terms)))."\"";
}
if ($opac_visionneuse_allow)
$allowed_mimetype = explode(",",str_replace("'","",$opac_photo_filtre_mimetype));
if ($allowed_mimetype && in_array($expl->explnum_mimetype,$allowed_mimetype)){
$link="
explnum_id.");return false;\" title='$alt'>".$obj." ";
$expl_liste_obj .=$link;
} else {
if($expl->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
$expl_liste_obj .= "".$obj." " ;
break;
default :
//accès externe
$suite_url_explnum ="doc_num.php?explnum_id=$expl->explnum_id";
$expl_liste_obj .= "".$obj." " ;
break;
}
}else{
//accès externe
$suite_url_explnum ="doc_num.php?explnum_id=$expl->explnum_id";
$expl_liste_obj .= "".$obj." " ;
}
}
if ($_mimetypes_byext_[$expl->explnum_extfichier]["label"]) $explmime_nom = $_mimetypes_byext_[$expl->explnum_extfichier]["label"] ;
elseif ($_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"]) $explmime_nom = $_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"] ;
else $explmime_nom = $expl->explnum_mimetype;
if ($tlink) {
$expl_liste_obj .= "";
$expl_liste_obj .= htmlentities($expl->explnum_nom,ENT_QUOTES, $charset)."
".$explnum;
}
}
return $ret;
} // fin aff_explnum ()
// fonction retournant les infos d'exemplaires numériques pour une notice ou un bulletin donné
public 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 = pmb_mysql_query($requete, $dbh);
$nb_ex = pmb_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 = pmb_mysql_query($query);
if(pmb_mysql_num_rows($result)){
$infos = pmb_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 = pmb_mysql_query($requete, $dbh);
if(pmb_mysql_num_rows($myQuery)) {
$statut_temp = pmb_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 = pmb_mysql_fetch_object($res))) {
if ($i==1) $ligne="
!!1!!
!!2!!
!!3!!
" ;
if ($link_expl) {
$tlink = str_replace("!!explnum_id!!", $expl->explnum_id, $link_expl);
$tlink = str_replace("!!notice_id!!", $expl->explnum_notice, $tlink);
$tlink = str_replace("!!bulletin_id!!", $expl->explnum_bulletin, $tlink);
}
$alt = htmlentities($expl->explnum_nom." - ".$expl->explnum_mimetype,ENT_QUOTES, $charset) ;
if ($expl->explnum_vignette) $obj="";
else // trouver l'icone correspondant au mime_type
$obj="";
$expl_liste_obj = "";
$words_to_find="";
if (($expl->explnum_mimetype=='application/pdf') ||($expl->explnum_mimetype=='URL' && (strpos($expl->explnum_nom,'.pdf')!==false))){
if (is_array($search_terms)) {
$words_to_find = "#search=\"".trim(str_replace('*','',implode(' ',$search_terms)))."\"";
}
}
//si l'affichage du lien vers les documents numériques est forcé et qu'on est pas connecté, on propose l'invite de connexion!
if(!$docnum_visible && !$_SESSION['user_code'] && $opac_show_links_invisible_docnums){
if ($opac_visionneuse_allow)
$allowed_mimetype = explode(",",str_replace("'","",$opac_photo_filtre_mimetype));
if ($allowed_mimetype && in_array($expl->explnum_mimetype,$allowed_mimetype)){
$link="
explnum_id."');\" title='$alt'>".$obj." ";
$expl_liste_obj .=$link;
}else{
$link="
explnum_id)."'); return false;\" title='$alt'>".$obj." ";
$expl_liste_obj .=$link;
}
}else{
if ($opac_visionneuse_allow)
$allowed_mimetype = explode(",",str_replace("'","",$opac_photo_filtre_mimetype));
if ($allowed_mimetype && in_array($expl->explnum_mimetype,$allowed_mimetype)){
$link="
explnum_id.");return false;\" title='$alt'>".$obj." ";
$expl_liste_obj .=$link;
$suite_url_explnum ="doc_num.php?explnum_id=$expl->explnum_id";
$expl_liste_obj .= "".htmlentities($msg['download'],ENT_QUOTES,$charset)." " ;
} else {
$suite_url_explnum ="doc_num.php?explnum_id=$expl->explnum_id";
$expl_liste_obj .= "".$obj." " ;
}
}
if ($_mimetypes_byext_[$expl->explnum_extfichier]["label"]) $explmime_nom = $_mimetypes_byext_[$expl->explnum_extfichier]["label"] ;
elseif ($_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"]) $explmime_nom = $_mimetypes_bymimetype_[$expl->explnum_mimetype]["label"] ;
else $explmime_nom = $expl->explnum_mimetype ;
if ($tlink) {
$expl_liste_obj .= "";
$expl_liste_obj .= htmlentities($expl->explnum_nom,ENT_QUOTES, $charset)."
";
// 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)
public function affichage_etat_collections() {
global $msg;
global $pmb_etat_collections_localise;
global $tpl_collstate_liste,$tpl_collstate_liste_line;
$tpl_collstate_liste[2]="
\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)
public function affichage_etat_collections() {
//Il y avait une dérivée pour n'afficher que les entrées statut et archive
//Le paramètre $opac_collstate_data doit permettre de répondre à leur besoin
//Je conserve tout de même la dérivée pour avoir l'information lors de la montée de version
return parent::affichage_etat_collections();
} // fin affichage_etat_collections()
}
class notice_affichage_cconstitutionnel extends notice_affichage {
public $parents_in = ""; // la chaine des parents, utilisée pour do_parents en header
public $is_parent = false;
// génération du de l'affichage simple sans onglet ----------------------------------------------
// si $depliable=1 alors inclusion du parent / child
public 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 $allow_tag ; // l'utilisateur a-t-il le droit d'ajouter un tag
global $allow_avis;// l'utilisateur a-t-il le droit d'ajouter un avis
global $allow_sugg; // l'utilisateur a-t-il le droit de faire une suggestion
global $allow_liste_lecture;// l'utilisateur a-t-il le droit de faire une liste de lecture
global $lvl; // pour savoir qui demande l'affichage
global $opac_avis_display_mode;
global $flag_no_get_bulletin;
global $opac_allow_simili_search;
global $opac_draggable;
global $opac_visionneuse_allow;
if($opac_draggable){
$draggable='yes';
}else{
$draggable='no';
}
$this->result ="";
if(!$this->notice_id) return;
$this->double_ou_simple = 1 ;
// préparation de la case à cocher pour traitement panier
if ($cart_aff_case_traitement) $case_a_cocher = " ";
else $case_a_cocher = "" ;
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){
$simili_search_script_all="
";
}
$script_simili_search = $this->get_simili_script();
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 .= "
" ;
}
//Année de publication
if ($this->notice->year) {
$this->notice_public .= "
".$msg['year_start']."
".$this->notice->year."
" ;
}
//ISSN
if ($this->notice->code) $this->notice_public .= "
".$msg['issn']."
".$this->notice->code."
";
//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."
";
//Lien - En ligne
if ($this->notice->lien) {
$this->notice_public .= $this->get_line_aff_suite($msg['lien_start'], $this->get_constructed_external_url(), 'lien');
if ($this->notice->eformat && substr($this->notice->eformat,0,3)!='RSS') $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)
public 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()
public function aff_suite() {
//
}
// Construction des parents-----------------------------------------------------
public function do_parents() {
global $dbh;
global $msg;
global $charset;
global $memo_notice;
global $opac_notice_affichage_class;
global $parent_notice;
$this->parents = "";
$this->parents_in = '';
$this->parents_in_cote = '';
$r_type=array();
$ul_opened=false;
if(!isset($this->notice_relations)) {
$this->notice_relations = notice_relations_collection::get_object_instance($this->notice_id);
}
if($this->notice_relations->get_nb_parents()) {
$this->parents .= "
";
$parents = $this->notice_relations->get_parents();
foreach ($parents as $relation_type=>$parents_relations) {
foreach ($parents_relations as $parent) {
if ($opac_notice_affichage_class) $notice_affichage=$opac_notice_affichage_class; else $notice_affichage="notice_affichage";
if(!$memo_notice[$parent->get_linked_notice()]["header_without_doclink"]) {
$parent_notice=new $notice_affichage($parent->get_linked_notice(),$this->liens,1,$this->to_print,1);
$parent_notice->visu_expl = 0 ;
$parent_notice->is_parent = true;
$parent_notice->visu_explnum = 0 ;
if ($this->parents_header_without_html) {
$parent_notice->do_header_without_html();
} else {
$parent_notice->do_header();
}
}
//Présentation différente si il y en a un ou plusieurs
if ($this->notice_relations->get_nb_parents()==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=pmb_mysql_query($rqbull);
if ($rqbullr) {
if (pmb_mysql_num_rows($rqbullr)) {
$rqbulld=@pmb_mysql_fetch_object($rqbullr);
$this->bulletin_id=$rqbulld->bulletin_id;
}
}
}
if (!$r_type[$relation_type]) {
$r_type[$relation_type]=1;
if ($ul_opened) $this->parents.="";
else {
// $this->parents.=" ";
$ul_opened=true;
}
$this->parents.=" ".notice_relations::$liste_type_relation['up']->table[$relation_type]."";
$this->parents.="