table;
}
// définition de la classe d'affichage des monographies en liste pour selecteur
class sel_mono_display {
var $notice_id = 0; //id notice
var $notice = ''; //objet notice
var $header = ''; //entete
var $result = ''; //affichage final
var $isbd = ''; //isbd notice
var $responsabilites = array("responsabilites" => array(),"auteurs" => array()); //auteurs
var $statut = '' ; //statut notice
var $tit_serie = ''; //titre serie
var $tit1 = ''; //titre 1
var $nb_expl = 0; //nb exemplaires
var $base_url = ''; //URL a associer aux elements cliquables
var $action = ''; //action a effectuer pour retour des parametres
var $action_values = array(); //tableau des elements à modifier dans l'action
var $code = ''; //isbn ou code EAN de la notice à afficher
var $titre = ''; //titre renvoye
var $auteur1 = ''; //auteur1 renvoye
var $editeur1 = ''; //editeur1 renvoye
var $collection = ''; //collection renvoyee
var $prix = '0.00'; //prix renvoye
// constructeur
function sel_mono_display($notice_id, $base_url) {
if (!$notice_id) return;
$this->notice_id=$notice_id;
$this->base_url=$base_url;
}
//creation formulaire
function doForm() {
$this->getData();
$this->responsabilites = get_notice_authors($this->notice_id) ;
$this->doHeader();
$this->doContent();
$this->finalize();
}
// récupération des valeurs en table
function getData() {
global $dbh;
$q = "SELECT * FROM notices WHERE notice_id='".$this->notice_id."' ";
$r = mysql_query($q, $dbh);
if(mysql_num_rows($r)) {
$this->notice = mysql_fetch_object($r);
}
$q = "select count(*) from exemplaires where expl_notice='".$this->notice_id."' ";
$r = mysql_query($q, $dbh);
$this->nb_expl = mysql_result($r,0,0);
}
// creation header
function doHeader() {
global $dbh, $charset;
global $pmb_notice_reduit_format;
//gen. statut
if ($this->notice->statut) {
$rqt_st = "SELECT class_html , gestion_libelle FROM notice_statut WHERE id_notice_statut='".$this->notice->statut."' ";
$res_st = mysql_query($rqt_st, $dbh) or die ($rqt_st. " ".mysql_error()) ;
$class_html = " class='".mysql_result($res_st, 0, 0)."' ";
if ($this->notice->statut>1) $txt = mysql_result($res_st, 0, 1) ;
else $txt = "" ;
} else {
$class_html = " class='statutnot1' " ;
$txt = "" ;
}
if ($this->notice->commentaire_gestion) {
if ($txt) $txt .= ":\r\n".$this->notice->commentaire_gestion ;
else $txt = $this->notice->commentaire_gestion ;
}
if ($txt) {
$statut = "notice_id."'); z.style.display=''; \" onmouseout=\"z=document.getElementById('zoom_statut".$this->notice_id."'); z.style.display='none'; \">";
$statut .= "
".nl2br(htmlentities($txt,ENT_QUOTES, $charset))."
" ;
} else $statut = "";
$this->statut = $statut ;
//aff. titre série
if($this->notice->tparent_id) {
$parent = new serie($this->notice->tparent_id);
$this->tit_serie = $parent->name;
$this->header.= $this->tit_serie;
if($this->notice->tnvol) {
$this->header .= ', '.$this->notice->tnvol;
}
}
//aff. titre1
$this->tit1 = $this->notice->tit1;
$this->tit_serie ? $this->header.= '. '.$this->tit1 : $this->header.= $this->tit1;
//aff. auteur1
$as = array_search ("0", $this->responsabilites["responsabilites"]);
$aut1_libelle = array() ;
$lib_auteur='';
if ($as!== FALSE && $as!== NULL) {
$auteur_0 = $this->responsabilites["auteurs"][$as] ;
$auteur = new auteur($auteur_0["id"]);
if ($auteur->isbd_entry) {
$lib_auteur=$auteur->isbd_entry;
}
} else {
$as = array_keys ($this->responsabilites["responsabilites"], "1" );
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice];
$auteur = new auteur($auteur_1["id"]);
$aut1_libelle[]= $auteur->isbd_entry;
}
$auteurs_liste = implode ("; ",$aut1_libelle) ;
if ($auteurs_liste) {
$this->header .= ' / '. $auteurs_liste;
$lib_auteur=$auteurs_liste;
}
}
if ($lib_auteur!='') {
$this->header .= ' / '. $lib_auteur;
}
//aff. annee
switch ($pmb_notice_reduit_format) {
case '1':
if ($this->notice->year != '') $this->header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')';
break;
case "2":
if ($this->notice->year != '') $this->header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')';
if ($this->notice->code != '') $this->header.=' / '.htmlentities($this->notice->code, ENT_QUOTES, $charset);
break;
default :
break;
}
//renv. code
$this->code = $this->notice->code;
//renvoi titre
$this->titre = $this->tit_serie;
if($this->notice->tnvol) {
$this->titre.= ', '.$this->notice->tnvol;
}
$this->titre ? $this->titre .= '. '.$this->tit1 : $this->titre = $this->tit1;
//renv. auteur1
$this->auteur1=$lib_auteur;
//renv. editeur, collection
if($this->notice->subcoll_id) {
$collection = new subcollection($this->notice->subcoll_id);
$ed_obj = new editeur($collection->editeur) ;
$this->editeur1 = $ed_obj->isbd_entry;
$this->collection = $collection->isbd_entry;
} elseif ($this->notice->coll_id) {
$collection = new collection($this->notice->coll_id);
$ed_obj = new editeur($collection->parent) ;
$this->editeur1 = $ed_obj->isbd_entry;
$this->collection = $collection->isbd_entry;
} elseif ($this->notice->ed1_id) {
$editeur = new editeur($this->notice->ed1_id);
$this->editeur1 = $editeur->isbd_entry;
}
$this->ed_date = $this->notice->year;
//renv. prix
$this->prix=$this->notice->prix;
}
// creation contenu
function doContent() {
global $tdoc;
global $fonction_auteur;
//mention titre
$this->isbd = $this->titre;
$this->isbd .= ' ['.$tdoc->table[$this->notice->typdoc].']';
if($this->notice->tit3) $this->isbd .= " = ".$this->notice->tit3;
if($this->notice->tit4) $this->isbd .= " : ".$this->notice->tit4;
if($this->notice->tit2) $this->isbd .= " ; ".$this->notice->tit2;
//mention responsabilité
$mention_resp = array() ;
$as = array_search ("0", $this->responsabilites["responsabilites"]);
if ($as!== FALSE && $as!== NULL) {
$auteur_0 = $this->responsabilites["auteurs"][$as] ;
$auteur = new auteur($auteur_0["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_0["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_0["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "1" );
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_1["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_1["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_1["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "2" ) ;
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_2 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_2["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_2["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_2["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$libelle_mention_resp = implode ("; ",$mention_resp) ;
if($libelle_mention_resp) {
$this->isbd .= " / $libelle_mention_resp" ;
}
// mention edition
if($this->notice->mention_edition) {
$this->isbd .= ". - ".$this->notice->mention_edition;
}
// zone de l'adresse
// on récupère la collection au passage, si besoin est
if($this->notice->subcoll_id) {
$collection = new subcollection($this->notice->subcoll_id);
$ed_obj = new editeur($collection->editeur) ;
$editeurs .= $ed_obj->isbd_entry;
$collections = $collection->isbd_entry;
} elseif ($this->notice->coll_id) {
$collection = new collection($this->notice->coll_id);
$ed_obj = new editeur($collection->parent) ;
$editeurs .= $ed_obj->isbd_entry;
$collections = $collection->isbd_entry;
} elseif ($this->notice->ed1_id) {
$editeur = new editeur($this->notice->ed1_id);
$editeurs .= $editeur->isbd_entry;
}
if($this->notice->ed2_id) {
$editeur = new editeur($this->notice->ed2_id);
$ed_isbd=$editeur->isbd_entry;
$editeurs ? $editeurs .= ' ; '.$ed_isbd : $editeurs = $ed_isbd;
}
if($this->notice->year) {
$editeurs ? $editeurs .= ', '.$this->notice->year : $editeurs = $this->notice->year;
}
if ($editeurs) {
$this->isbd .= ". - $editeurs";
}
// zone de la collation
if($this->notice->npages) {
$collation = $this->notice->npages;
}
if($this->notice->ill) {
$collation .= ': '.$this->notice->ill;
}
if($this->notice->size) {
$collation .= '; '.$this->notice->size;
}
if($this->notice->accomp) {
$collation .= '+ '.$this->notice->accomp;
}
if($collation) {
$this->isbd .= ". - $collation";
}
if($collections) {
if($this->notice->nocoll) {
$collections .= '; '.$this->notice->nocoll;
}
$this->isbd .= ". - ($collections)".' ';
}
if(substr(trim($this->isbd), -1) != "."){
$this->isbd .= '.';
}
// ISBN ou NO. commercial
if($this->notice->code) {
if(isISBN($this->notice->code)) {
$zoneNote = 'ISBN ';
}
$zoneNote .= $this->notice->code;
}
//prix code
if($this->notice->prix) {
if($this->notice->code) {
$zoneNote .= ' : '.$this->notice->prix;
} else {
if ($zoneNote) {
$zoneNote .= ' '.$this->notice->prix;
} else {
$zoneNote = $this->notice->prix;
}
}
}
if($zoneNote) {
$this->isbd .= "
$zoneNote.";
}
}
//génération du template javascript
function finalize() {
global $msg;
$javascript_template ="
!!header!!
!!isbd!!
";
if ($this->action) {
$this->header = str_replace('!!display!!', $this->header, $this->action);
$this->header = $this->statut.$this->header;
$this->header = str_replace('!!id!!', $this->notice_id, $this->header);
if (count($this->action_values)) {
foreach($this->action_values as $v) {
$this->header = str_replace("!!$v!!", addslashes($this->$v), $this->header);
}
}
}
$this->result = str_replace('!!id!!', $this->notice_id, $javascript_template);
$this->result = str_replace('!!header!!', $this->header, $this->result);
$this->result = str_replace('!!isbd!!', $this->isbd, $this->result);
}
}
// définition de la classe d'affichage des périodiques en liste pour selecteur
class sel_serial_display {
var $notice_id = 0; // id de la notice à afficher
var $notice; // objet notice (tel que fetché dans la table 'notices'
var $header = ''; // chaine accueillant le chapeau de notice (peut-être cliquable)
var $tit1 = ''; // valeur du titre 1
var $result = ''; // affichage final
var $level = 1; // niveau d'affichage
var $isbd = ''; // isbd de la notice
var $nb_bull = 0; // nombre de bulletins
var $nb_expl = 0; // nombre d'exemplaires
var $nb_art = 0; // nombre d'articles
var $responsabilites = array("responsabilites" => array(),"auteurs" => array()); // les auteurs
var $show_statut = 1;
var $aff_statut = '' ; // carré de couleur pour signaler le statut de la notice
var $base_url = ''; // URL à associer aux éléments cliquables
var $action = ''; // URL à associer aux notices
var $action_values = array(); // tableau des elements à modifier dans l'action
// constructeur
function sel_serial_display ($notice_id, $base_url) {
if (!$notice_id) return;
$this->notice_id = $notice_id;
$this->base_url = $base_url;
}
//creation formulaire
function doForm() {
$this->getData();
$this->responsabilites = get_notice_authors($this->notice_id) ;
$this->doHeader();
$this->initJavascript();
$this->doContent();
$this->finalize();
return;
}
// récupération des valeurs en table
function getData() {
global $dbh;
$q = "SELECT * FROM notices WHERE notice_id=".$this->notice_id;
$r = mysql_query($q, $dbh);
if (mysql_num_rows($r)) {
$this->notice = mysql_fetch_object($r);
}
}
// creation header
function doHeader() {
global $dbh, $charset;
if ($this->notice->statut) {
$rqt_st = "SELECT class_html , gestion_libelle FROM notice_statut WHERE id_notice_statut='".$this->notice->statut."' ";
$res_st = mysql_query($rqt_st, $dbh);
$class_html = " class='".mysql_result($res_st, 0, 0)."' ";
if ($this->notice->statut>1) {
$txt = mysql_result($res_st, 0, 1);
} else {
$txt = '';
}
} else {
$class_html = " class='statutnot1' " ;
$txt = '' ;
}
if ($this->notice->commentaire_gestion) {
if ($txt) {
$txt .= ":\r\n".$this->notice->commentaire_gestion ;
} else {
$txt = $this->notice->commentaire_gestion ;
}
}
if ($txt) {
$statut = "notice_id."'); z.style.display=''; \" onmouseout=\"z=document.getElementById('zoom_statut".$this->notice_id."'); z.style.display='none'; \">";
$statut .= "".nl2br(htmlentities($txt,ENT_QUOTES, $charset))."
" ;
} else {
$statut = "";
}
$this->aff_statut = $statut ;
$this->header = htmlentities($this->notice->tit1,ENT_QUOTES, $charset);
//$this->responsabilites
$aut1_libelle = array() ;
$lib_auteur='';
$as = array_search ("0", $this->responsabilites["responsabilites"]) ;
if ($as!== FALSE && $as!== NULL) {
$auteur_0 = $this->responsabilites["auteurs"][$as] ;
$auteur = new auteur($auteur_0["id"]);
if ($auteur->isbd_entry) {
$lib_auteur=$auteur->isbd_entry;
}
} else {
$as = array_keys ($this->responsabilites["responsabilites"], "1" ) ;
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_1["id"]);
$aut1_libelle[]= $auteur->isbd_entry;
}
$auteurs_liste = implode ("; ",$aut1_libelle) ;
if ($auteurs_liste) {
$this->header .= ' / '. $auteurs_liste ;
$lib_auteur=$auteurs_liste;
}
}
if ($lib_auteur!='') {
$this->header .= ' / '. $lib_auteur;
}
if ($this->action) {
$this->header = str_replace('!!display!!', $this->header, $this->action);
$this->header = str_replace('!!aut_id!!', $this->notice_id, $this->header);
if (count($this->action_values)) {
foreach($this->action_values as $v) {
$this->header = str_replace("!!$v!!", addslashes($this->$v), $this->header);
}
}
}
if ($this->show_statut) {
$this->header = $this->aff_statut.$this->header ;
}
}
// génération du template javascript
function initJavascript() {
global $msg;
$javascript_template ="
!!header!!
!!serial_type!! !!isbd!!
";
$this->result = str_replace('!!id!!', $this->notice_id, $javascript_template);
$this->result = str_replace('!!header!!', $this->header, $this->result);
}
// creation contenu
function doContent() {
global $dbh, $msg;
global $fonction_auteur;
global $pmb_etat_collections_localise, $pmb_droits_explr_localises, $explr_visible_mod;
$this->isbd = $this->notice->tit1;
// constitution de la mention de titre
$tit3 = $this->notice->tit3;
$tit4 = $this->notice->tit4;
if($tit3) $this->isbd .= " = $tit3";
if($tit4) $this->isbd .= " : $tit4";
// constitution de la mention de responsabilité
//$this->responsabilites
$mention_resp = array() ;
$as = array_search ("0", $this->responsabilites["responsabilites"]) ;
if ($as!== FALSE && $as!== NULL) {
$auteur_0 = $this->responsabilites["auteurs"][$as] ;
$auteur = new auteur($auteur_0["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_0["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_0["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "1" ) ;
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_1["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_1["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_1["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "2" ) ;
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_2 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_2["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_2["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_2["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$libelle_mention_resp = implode ("; ",$mention_resp) ;
if($libelle_mention_resp) {
$this->isbd .= " / ". $libelle_mention_resp ." " ;
}
// zone de l'adresse
if($this->notice->ed1_id) {
$editeur = new editeur($this->notice->ed1_id);
$editeurs .= $editeur->isbd_entry;
}
if($this->notice->ed2_id) {
$editeur = new editeur($this->notice->ed2_id);
$ed_isbd=$editeur->isbd_entry;
if($editeurs) {
$editeurs .= ' ; '.$ed_isbd;
} else {
$editeurs .= $ed_isbd;
}
}
if($this->notice->year)
$editeurs ? $editeurs .= ', '.$this->notice->year : $editeurs = $this->notice->year;
if($editeurs) {
$this->isbd .= ". - $editeurs";
}
//code (ISSN,...)
if ($this->notice->code) $this->isbd .="
${msg[165]} : ".$this->notice->code;
// Si notice-mère alors on compte le nombre de numéros (bulletins)
if($this->notice->niveau_biblio=="s") {
$requete = "SELECT * FROM bulletins WHERE bulletin_notice=".$this->notice_id;
$Query = mysql_query($requete, $dbh);
$this->nb_bull=mysql_num_rows($Query);
while (($row = mysql_fetch_array($Query))) {
$requete2 = "SELECT count( * ) AS nb_art FROM analysis WHERE analysis_bulletin =".$row['bulletin_id'];
$Query2 = mysql_query($requete2, $dbh);
$analysis_array=mysql_fetch_array($Query2);
$this->nb_art+=$analysis_array['nb_art'];
$requete3 = "SELECT count( expL_id ) AS nb_expl FROM exemplaires WHERE expl_bulletin =".$row['bulletin_id'];
$Query3 = mysql_query($requete3, $dbh);
$expl_array=mysql_fetch_array($Query3);
$this->nb_expl+=$expl_array['nb_expl'];
}
// Cas général : au moins un bulletin
if (mysql_num_rows($Query)>0)
{$this->isbd .="
\n
".$msg["serial_bulletinage_etat"]."
$this->nb_bull ".$msg["serial_nb_bulletin"]."
$this->nb_expl ".$msg["bulletin_nb_ex"]."
$this->nb_art ".$msg["serial_nb_articles"]."
|
";
} else { // 0 bulletin
$this->isbd .="
\n
".$msg["serial_bulletinage_etat"]."
$this->nb_bull
".$msg["serial_nb_bulletin"]." : ";
$this->isbd .=$msg["bull_no_expl"];
$this->isbd .=" |
";
}
//état des collections
if ($pmb_etat_collections_localise&&$pmb_droits_explr_localises&&$explr_visible_mod) {
$restrict_location=" and location_id in (".$explr_visible_mod.") and idlocation=location_id";
$table_location=",docs_location";
$select_location=",location_libelle";
} else {
$restrict_location=" group by id_serial";
}
$rqt="select state_collections$select_location from collections_state$table_location where id_serial=".$this->notice_id.$restrict_location;
$execute_query=mysql_query($rqt);
if ($execute_query) {
if (mysql_num_rows($execute_query)) {
$bool=false;
$affichage="
".$msg["4001"]."
";
while (($r=mysql_fetch_object($execute_query))) {
if ($r->state_collections) {
if ($r->location_libelle) $affichage .= "".$r->location_libelle." : ";
$affichage .= $r->state_collections."
\n";
$bool=true;
}
}
if ($bool==true) $this->isbd .= $affichage;
}
}
}
return;
}
// finalisation du résultat
function finalize() {
global $msg ;
$this->result = str_replace('!!isbd!!', $this->isbd, $this->result);
$this->result = str_replace('!!serial_type!!', "[".$msg['isbd_type_perio']."]", $this->result);
}
}
//définition de la classe d'affichage des bulletins en liste pour selecteur
class sel_bulletin_display {
var $result = '';
var $bulletin_id=0;
var $bulletin = '';
var $nb_expl=0;
var $base_url = ''; // URL à associer aux éléments cliquables
var $action = ''; // URL à associer aux notices
var $action_values = array(); // tableau des elements à modifier dans l'action
var $titre = ''; //titre renvoye
var $editeur1 = ''; //editeur 1 renvoye
var $numero = ''; //numero renvoye
var $aff_date = ''; //date renvoyee
var $prix = '0.00'; //prix renvoye
var $code = ''; //code renvoye
//constructeur
function sel_bulletin_display($bulletin_id, $base_url) {
if(!$bulletin_id) return;
$this->bulletin_id=$bulletin_id;
$this->base_url=$base_url;
}
function doForm() {
global $charset;
$this->getData();
$this->titre = $this->bulletin->tit1;
if ($this->bulletin->ed1_id) {
$ed1= new editeur($this->bulletin->ed1_id);
$this->editeur1 = $ed1->isbd_entry;
}
if ($this->bulletin->bulletin_numero!=='') {
$this->numero = $this->bulletin->bulletin_numero;
}
if ($this->bulletin->libelle_periode) {
$this->aff_date = "(".$this->bulletin->libelle_periode.")";
}
if ($this->bulletin->date_date!='0000-00-00') {
$this->aff_date.= " [".$this->bulletin->aff_date_date."]";
}
if ($this->bulletin->bulletin_cb!='') {
$this->code = $this->bulletin->bulletin_cb;
}
$aff = $this->titre;
if($this->numero) {
$aff.= '. '.$this->numero;
}
$aff.= ' '.$this->aff_date;
$aff = htmlentities($aff, ENT_QUOTES, $charset);
if ($this->action) {
$aff= str_replace('!!display!!', "$aff", $this->action);
if (count($this->action_values)) {
foreach($this->action_values as $v) {
$aff = str_replace("!!$v!!", addslashes($this->$v), $aff);
}
}
}
$this->result = $aff;
}
// récupération des valeurs en table
function getData() {
global $dbh, $msg;
$q = "SELECT notices.tit1, notices.ed1_id, notices.code, bulletins.*, date_format(bulletins.date_date, '".$msg['format_date']."') as aff_date_date FROM bulletins join notices on bulletin_notice=notice_id WHERE bulletin_id='".$this->bulletin_id."' ";
$r = mysql_query($q, $dbh);
if(mysql_num_rows($r)) {
$this->bulletin = mysql_fetch_object($r);
}
$q = "select count(*) from exemplaires where expl_bulletin='".$this->bulletin_id."' ";
$r = mysql_query($q, $dbh);
$this->nb_expl = mysql_result($r,0,0);
}
}
//définition de la classe d'affichage des abonnements en liste pour selecteur
class sel_abt_display {
var $abt_id=0; //id abonnement
var $abt = ''; //objet abonnement
var $header = ''; //entete
var $result = ''; // affichage final
var $isbd = ''; // isbd notice
var $responsabilites = array("responsabilites" => array(),"auteurs" => array()); //auteurs
var $aff_date_echeance = ''; //date echeance abt actuel
var $base_url = ''; // URL à associer aux éléments cliquables
var $action = ''; // URL à associer aux notices
var $action_values = array(); // tableau des elements à modifier dans l'action
var $code = ''; //code renvoye
var $titre = ''; //titre renvoye
var $editeur1 = ''; //editeur 1 renvoye
var $periodicite = ''; //periodicite
var $duree = ''; //duree abt
var $prix = '0.00'; //prix renvoye
var $aff_date_debut = ''; //date debut abt renvoyee
//TODO
var $nb_num = 0; //nb numeros
//constructeur
function sel_abt_display($abt_id, $base_url) {
if(!$abt_id) return;
$this->abt_id=$abt_id;
$this->base_url=$base_url;
}
//creation formulaire
function doForm() {
$this->getData();
$this->responsabilites = get_notice_authors($this->abt->num_notice) ;
$this->doHeader();
$this->doContent();
$this->finalize();
}
// récupération des valeurs en table
function getData() {
global $dbh;
$q = "SELECT abts_abts.*, ";
$q.= "notices.tit1, notices.tit3, notices.tit4, notices.ed1_id, notices.ed2_id, notices.year, notices.code, notices.prix, ";
$q.= "abts_modeles.num_periodicite, abts_periodicites.libelle, ";
$q.= "docs_location.location_libelle ";
$q.= "FROM abts_abts ";
$q.= "join abts_abts_modeles on abts_abts.abt_id=abts_abts_modeles.abt_id ";
$q.= "join abts_modeles on abts_abts_modeles.modele_id=abts_modeles.modele_id ";
$q.= "left join abts_periodicites on abts_modeles.num_periodicite=abts_periodicites.periodicite_id ";
$q.= "join notices on abts_abts.num_notice=notices.notice_id ";
$q.= "join docs_location on abts_abts.location_id=docs_location.idlocation ";
$q.= "where abts_abts.abt_id='".$this->abt_id."' ";
$r = mysql_query($q, $dbh);
$this->abt = mysql_fetch_object($r);
}
// creation header
function doHeader() {
global $dbh, $msg, $charset;
//aff. nom abonnement
$this->header = htmlentities($this->abt->abt_name, ENT_QUOTES, $charset);
//aff. localisation
$this->header.= " / ".htmlentities($this->abt->location_libelle, ENT_QUOTES, $charset);
//aff. periodicite
if ($this->abt->num_periodicite) {
$this->header.= " (".htmlentities($this->abt->libelle, ENT_QUOTES, $charset);
} else {
$this->header.= " (".htmlentities($msg['abonnements_periodicite_manuel'], ENT_QUOTES, $charset);
}
//aff. duree
$this->header.= " - ".$this->abt->duree_abonnement." ".htmlentities($msg['abonnements_periodicite_unite_mois'], ENT_QUOTES, $charset).")";
//aff. date echeance
$this->aff_date_echeance = format_date($this->abt->date_fin);
//renv. code
$this->code=$this->abt->code;
//renv. titre
$this->titre = $this->abt->tit1;
if ($this->abt->tit3) $this->titre.= " = ".$this->abt->tit3;
if ($this->abt->tit4) $this->titre.= " : ".$this->abt->tit4;
//renv. editeur1
if ($this->abt->ed1_id) {
$editeur = new editeur($this->abt->ed1_id);
$this->editeur1 = $editeur->isbd_entry;
}
//renv. periodicite
if ($this->abt->num_periodicite) {
$this->periodicite=$this->abt->libelle;
}
//renv. duree
$this->duree = $this->abt->duree_abonnement;
//renv. date debut abt
$q = "select date_add('".$this->abt->date_fin."', interval 1 day) as date_debut, ";
$q.= " date_add('".$this->abt->date_fin."', interval ".$this->duree." month) as date_fin ";
$r = mysql_query($q, $dbh);
$obj = mysql_fetch_object($r);
$this->aff_date_debut = format_date($obj->date_debut);
//TODO A revoir, car le prix n'est pas accessible sur les notices de perio
//renv. prix
if ($this->abt->prix!=='') $this->prix=$this->abt->prix;
}
// creation contenu
function doContent() {
global $msg;
global $fonction_auteur;
//mention titre
$this->isbd = $this->titre;
//mention responsabilité
$mention_resp = array() ;
$as = array_search ("0", $this->responsabilites["responsabilites"]) ;
if ($as!== FALSE && $as!== NULL) {
$auteur_0 = $this->responsabilites["auteurs"][$as] ;
$auteur = new auteur($auteur_0["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_0["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_0["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "1" ) ;
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_1["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_1["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_1["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "2" ) ;
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_2 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_2["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_2["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_2["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$libelle_mention_resp = implode ("; ",$mention_resp) ;
if($libelle_mention_resp) {
$this->isbd .= " / ". $libelle_mention_resp ." " ;
}
// zone de l'adresse
if($this->abt->ed1_id) {
$editeur = new editeur($this->abt->ed1_id);
$ed_isbd .= $editeur->isbd_entry;
}
if($this->abt->year) {
$ed_isbd ? $ed_isbd .= ', '.$this->abt->year : $ed_isbd = $this->abt->year;
}
if($ed_isbd) {
$this->isbd .= ". - $ed_isbd";
}
//code (ISSN,...)
if ($this->abt->code) $this->isbd .="
${msg[165]} : ".$this->abt->code;
}
//génération du template javascript
function finalize() {
global $msg;
$javascript_template ="
!!header!!
!!serial_type!! !!isbd!!
";
if ($this->action) {
$this->header = str_replace('!!display!!', $this->header, $this->action);
$this->header = str_replace('!!id!!', $this->abt_id, $this->header);
if (count($this->action_values)) {
foreach($this->action_values as $v) {
$this->header = str_replace("!!$v!!", addslashes($this->$v), $this->header);
}
}
}
$this->result = str_replace('!!id!!', $this->abt_id, $javascript_template);
$this->result = str_replace('!!header!!', $this->header, $this->result);
$this->result = str_replace('!!isbd!!', $this->isbd, $this->result);
$this->result = str_replace('!!serial_type!!', "[".$msg['isbd_type_perio']."]", $this->result);
}
}
require_once("$class_path/frais.class.php");
require_once($class_path.'/tva_achats.class.php');
//Classe d'affichage des frais dans un selecteur
class sel_frais_display extends frais {
var $result='';
var $lib_montant='';
var $taux_tva = '0.00';
var $base_url = ''; //URL a associer aux elements cliquables
var $action = '';
var $action_values = array();
//Constructeur.
function sel_frais_display($id_frais, $base_url) {
if (!$id_frais) return;
parent::frais($id_frais);
$this->base_url=$base_url;
}
function doForm(){
global $charset;
global $acquisition_gestion_tva, $pmb_gestion_devise;
if(!$this->id_frais) return;
if ($acquisition_gestion_tva && $this->num_tva_achat) {
$tva = new tva_achats($this->num_tva_achat);
$this->taux_tva = $tva->taux_tva;
}
$aff = htmlentities($this->libelle, ENT_QUOTES, $charset);
if ($this->action) {
$aff= str_replace('!!display!!', "$aff", $this->action);
if (count($this->action_values)) {
foreach($this->action_values as $v) {
$aff = str_replace("!!$v!!", addslashes($this->$v), $aff);
}
}
}
$this->result = $aff;
$this->lib_montant = $this->montant.' '.$pmb_gestion_devise;
}
}
// définition de la classe d'affichage des articles en liste pour selecteur
class sel_article_display {
var $notice_id = 0; //id notice
var $notice = ''; //objet notice
var $header = ''; //entete
var $result = ''; //affichage final
var $isbd = ''; //isbd notice
var $responsabilites = array("responsabilites" => array(),"auteurs" => array()); //auteurs
var $statut = '' ; //statut notice
var $tit_serie = ''; //titre serie
var $tit1 = ''; //titre 1
var $parent_title = '';
var $parent_numero = '';
var $parent_date = '';
var $parent_date_date = '';
var $parent_aff_date_date = '';
var $base_url = ''; //URL a associer aux elements cliquables
var $action = ''; //action a effectuer pour retour des parametres
var $action_values = array(); //tableau des elements à modifier dans l'action
var $code = ''; //isbn ou code EAN de la notice à afficher
var $titre = ''; //titre renvoye
var $auteur1 = ''; //auteur1 renvoye
var $in_bull = ''; //lien bulletin renvoye
var $prix = '0.00'; //prix renvoye
// constructeur
function sel_article_display($notice_id, $base_url) {
if (!$notice_id) return;
$this->notice_id=$notice_id;
$this->base_url=$base_url;
}
//creation formulaire
function doForm() {
$this->getData();
$this->responsabilites = get_notice_authors($this->notice_id) ;
$this->doHeader();
$this->doContent();
$this->finalize();
}
// récupération des valeurs en table
function getData() {
global $dbh,$msg;
$q = "SELECT * FROM notices WHERE notice_id='".$this->notice_id."' ";
$r = mysql_query($q, $dbh);
if(mysql_num_rows($r)) {
$this->notice = mysql_fetch_object($r);
}
// récupération des données du bulletin et de la notice apparentée
$requete = "SELECT b.tit1,c.*,date_format(date_date, '".$msg["format_date"]."') as aff_date_date ";
$requete.= "from analysis a, notices b, bulletins c ";
$requete.= "WHERE a.analysis_notice=".$this->notice_id." ";
$requete.= "AND c.bulletin_id=a.analysis_bulletin ";
$requete .= "AND c.bulletin_notice=b.notice_id ";
$requete.= "LIMIT 1";
$myQuery = mysql_query($requete, $dbh);
if (mysql_num_rows($myQuery)) {
$parent = mysql_fetch_object($myQuery);
$this->parent_title = $parent->tit1;
$this->parent_numero = $parent->bulletin_numero;
$this->parent_date = $parent->mention_date;
$this->parent_date_date = $parent->date_date;
$this->parent_aff_date_date = $parent->aff_date_date;
}
}
// creation header
function doHeader() {
global $dbh, $charset;
global $pmb_notice_reduit_format;
//gen. statut
if ($this->notice->statut) {
$rqt_st = "SELECT class_html , gestion_libelle FROM notice_statut WHERE id_notice_statut='".$this->notice->statut."' ";
$res_st = mysql_query($rqt_st, $dbh) or die ($rqt_st. " ".mysql_error()) ;
$class_html = " class='".mysql_result($res_st, 0, 0)."' ";
if ($this->notice->statut>1) $txt = mysql_result($res_st, 0, 1) ;
else $txt = "" ;
} else {
$class_html = " class='statutnot1' " ;
$txt = "" ;
}
if ($this->notice->commentaire_gestion) {
if ($txt) $txt .= ":\r\n".$this->notice->commentaire_gestion ;
else $txt = $this->notice->commentaire_gestion ;
}
if ($txt) {
$statut = "notice_id."'); z.style.display=''; \" onmouseout=\"z=document.getElementById('zoom_statut".$this->notice_id."'); z.style.display='none'; \">";
$statut .= "".nl2br(htmlentities($txt,ENT_QUOTES, $charset))."
" ;
} else $statut = "";
$this->statut = $statut ;
$this->tit1 = $this->notice->tit1;
$this->header.= $this->tit1;
//aff. auteur1
$as = array_search ("0", $this->responsabilites["responsabilites"]);
$aut1_libelle = array() ;
$lib_auteur='';
if ($as!== FALSE && $as!== NULL) {
$auteur_0 = $this->responsabilites["auteurs"][$as] ;
$auteur = new auteur($auteur_0["id"]);
if ($auteur->isbd_entry) {
$lib_auteur=$auteur->isbd_entry;
}
} else {
$as = array_keys ($this->responsabilites["responsabilites"], "1" );
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice];
$auteur = new auteur($auteur_1["id"]);
$aut1_libelle[]= $auteur->isbd_entry;
}
$auteurs_liste = implode ("; ",$aut1_libelle) ;
if ($auteurs_liste) {
$this->header .= ' / '. $auteurs_liste;
$lib_auteur=$auteurs_liste;
}
}
if ($lib_auteur!='') {
$this->header .= ' / '. $lib_auteur;
}
//renvoi lien bulletin
$this->in_bull= "in ".$this->parent_title." (".$this->parent_numero." ".($this->parent_date?$this->parent_date:$this->parent_aff_date_date).")";
$this->header=$this->header." ".$this->in_bull." ";
//aff. annee
switch ($pmb_notice_reduit_format) {
case '1':
if ($this->notice->year != '') $this->header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')';
break;
case "2":
if ($this->notice->year != '') $this->header.=' ('.htmlentities($this->notice->year, ENT_QUOTES, $charset).')';
if ($this->notice->code != '') $this->header.=' / '.htmlentities($this->notice->code, ENT_QUOTES, $charset);
break;
default :
break;
}
//renvoi titre
$this->titre = $this->tit1;
//renv. auteur1
$this->auteur1=$lib_auteur;
//renv. prix
$this->prix=$this->notice->prix;
}
// creation contenu
function doContent() {
global $tdoc;
global $fonction_auteur;
//mention titre
$this->isbd = $this->titre;
if($this->notice->tit4) $this->isbd .= " : ".$this->notice->tit4;
if($this->notice->tit2) $this->isbd .= " ; ".$this->notice->tit2;
$this->isbd .= ' ['.$tdoc->table[$this->notice->typdoc].']';
//mention responsabilité
$mention_resp = array() ;
$as = array_search ("0", $this->responsabilites["responsabilites"]);
if ($as!== FALSE && $as!== NULL) {
$auteur_0 = $this->responsabilites["auteurs"][$as] ;
$auteur = new auteur($auteur_0["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_0["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_0["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "1" );
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_1 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_1["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_1["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_1["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$as = array_keys ($this->responsabilites["responsabilites"], "2" ) ;
for ($i = 0 ; $i < count($as) ; $i++) {
$indice = $as[$i] ;
$auteur_2 = $this->responsabilites["auteurs"][$indice] ;
$auteur = new auteur($auteur_2["id"]);
$mention_resp_lib = $auteur->isbd_entry;
if ($auteur_2["fonction"]) {
$mention_resp_lib .= ", ".$fonction_auteur[$auteur_2["fonction"]];
}
$mention_resp[] = $mention_resp_lib ;
}
$libelle_mention_resp = implode ("; ",$mention_resp) ;
if($libelle_mention_resp) {
$this->isbd .= " / $libelle_mention_resp" ;
}
// zone de la collation
if($this->notice->npages) {
$collation = $this->notice->npages;
}
if($collation) {
$this->isbd .= ". - $collation";
}
$this->isbd .= '.';
//prix
if($this->notice->prix) {
$zoneNote = $this->notice->prix;
}
if($zoneNote) {
$this->isbd .= "
$zoneNote.";
}
}
//génération du template javascript
function finalize() {
global $msg;
$javascript_template ="
!!header!!
!!isbd!!
";
if ($this->action) {
$this->header = str_replace('!!display!!', $this->header, $this->action);
$this->header = $this->statut.$this->header;
$this->header = str_replace('!!id!!', $this->notice_id, $this->header);
if (count($this->action_values)) {
foreach($this->action_values as $v) {
$this->header = str_replace("!!$v!!", addslashes($this->$v), $this->header);
}
}
}
$this->result = str_replace('!!id!!', $this->notice_id, $javascript_template);
$this->result = str_replace('!!header!!', $this->header, $this->result);
$this->result = str_replace('!!isbd!!', $this->isbd, $this->result);
}
}
?>