table; } // definition de la classe d'affichage des notices class notice_affichage_unimarc { public $notice_id = 0; // id de la notice a afficher public $notice_header = "" ; // titre + auteur principaux // le terme affichage correspond au code HTML qui peut etre envoye avec un print public $notice_isbd = "" ; // Affichage ISBD de la notice public $notice_public = "" ; // Affichage public PMB de la notice public $notice_indexations = "" ; // Affichage des indexations categories et mots cles, peut etre ajoute a $notice_isbd ou a $notice_public afin d'avoir l'affichage complet PMB public $notice_exemplaires = "" ; // Affichage des exemplaires, peut etre ajoute a $notice_isbd ou a $notice_public afin d'avoir l'affichage complet PMB public $notice_explnum = "" ; // Affichage des exemplaires numeriques, peut etre ajoute a $notice_isbd ou a $notice_public afin d'avoir l'affichage complet PMB public $notice_notes = "" ; // Affichage des notes de contenu et resume, peut etre ajoute a $notice_isbd ou a $notice_public afin d'avoir l'affichage complet PMB public $notice; // objet notice tel que fetche dans la table notices, // augmente de $this->notice->serie_name si serie il y a // augmente de n_gen, n_contenu, n_resume si on est alle les chercher car non ISBD standard public $responsabilites = array("responsabilites" => array(),"auteurs" => array()); // les auteurs avec tout ce qu'il faut public $categories = array(); // les id des categories public $auteurs_principaux = "" ; // ce qui apparait apres le titre pour le header public $auteurs_tous = "" ; // Tous les auteurs avec leur fonction public $categories_toutes = "" ; // Toutes les categories dans lesquelles est rangee la notice public $lien_rech_notice ; public $lien_rech_auteur ; public $lien_rech_editeur ; public $lien_rech_serie ; public $lien_rech_collection ; public $lien_rech_subcollection ; public $lien_rech_indexint ; public $lien_rech_motcle ; public $lien_rech_categ ; public $lien_rech_perio ; public $lien_rech_bulletin ; public $liens = array(); public $langues = array(); public $languesorg = array(); public $action = ''; // URL à associer au header public $header = ''; // chaine accueillant le chapeau de notice (peut-être cliquable) public $tit_serie = ''; // titre de série si applicable public $tit1 = ''; // valeur du titre 1 public $result = ''; // affichage final public $isbd = ''; // isbd de la notice en fonction du level défini public $expl = 0; // flag indiquant si on affiche les infos d'exemplaire public $link_expl = ''; // lien associé à un exemplaire public $show_resa = 0; // flag indiquant si on affiche les infos de resa public $p_perso; public $cart_allowed = 0; public $avis_allowed = 0; public $tag_allowed = 0; public $to_print = 0; public $affichage_resa_expl = "" ; // lien réservation, exemplaires et exemplaires numériques, en tableau comme il faut public $affichage_expl = "" ; // la même chose mais sans le lien réservation public $statut = 1 ; // Statut (id) de la notice public $statut_notice = "" ; // Statut (libellé) de la notice public $visu_notice = 1 ; // Visibilité de la notice à tout le monde public $visu_notice_abon = 0 ; // Visibilité de la notice aux abonnés uniquement public $visu_expl = 1 ; // Visibilité des exemplaires de la notice à tout le monde public $visu_expl_abon = 0 ; // Visibilité des exemplaires de la notice aux abonnés uniquement public $visu_explnum = 1 ; // Visibilité des exemplaires numériques de la notice à tout le monde public $visu_explnum_abon = 0 ;// Visibilité des exemplaires numériques de la notice aux abonnés uniquement public $childs = array() ; // filles de la notice public $notice_childs = "" ; // l'équivalent à afficher public $anti_loop=""; public $seule = 0 ; public $premier = "PUBLIC" ; public $double_ou_simple = 2 ; public $avis_moyenne ; // Moyenne des avis public $avis_qte; // Quantité d'un avis public $antiloop=array(); public $unimarc=array(); public $source_id; public $source_name; public $connector_id; public $entrepots_localisations=array(); public $notice_expired = false; public $details = array(); public $publishers = array(); public $titres_uniformes = array(); // constructeur------------------------------------------------------------ public function __construct($id, $liens, $cart=0, $to_print=0, $entrepots_localisations=array()) { // $id = id de la notice à afficher // $liens = tableau de liens tel que ci-dessous // $cart : afficher ou pas le lien caddie // $to_print = affichage mode impression ou pas global $opac_avis_allow; global $opac_allow_add_tag; if (!$liens) $liens=array(); $this->lien_rech_notice = (isset($liens['lien_rech_notice']) ? $liens['lien_rech_notice'] : ''); $this->lien_rech_auteur = (isset($liens['lien_rech_auteur']) ? $liens['lien_rech_auteur'] : ''); $this->lien_rech_editeur = (isset($liens['lien_rech_editeur']) ? $liens['lien_rech_editeur'] : ''); $this->lien_rech_serie = (isset($liens['lien_rech_serie']) ? $liens['lien_rech_serie'] : ''); $this->lien_rech_collection = (isset($liens['lien_rech_collection']) ? $liens['lien_rech_collection'] : ''); $this->lien_rech_subcollection = (isset($liens['lien_rech_subcollection']) ? $liens['lien_rech_subcollection'] : ''); $this->lien_rech_indexint = (isset($liens['lien_rech_indexint']) ? $liens['lien_rech_indexint'] : ''); $this->lien_rech_motcle = (isset($liens['lien_rech_motcle']) ? $liens['lien_rech_motcle'] : ''); $this->lien_rech_categ = (isset($liens['lien_rech_categ']) ? $liens['lien_rech_categ'] : ''); $this->lien_rech_perio = (isset($liens['lien_rech_perio']) ? $liens['lien_rech_perio'] : ''); $this->lien_rech_bulletin = (isset($liens['lien_rech_bulletin']) ? $liens['lien_rech_bulletin'] : ''); $this->liens = $liens; $this->cart_allowed = $cart; $this->entrepots_localisations = $entrepots_localisations; if ($to_print) { $this->avis_allowed = 0; $this->tag_allowed = 0; } else { $this->avis_allowed = $opac_avis_allow; $this->tag_allowed = $opac_allow_add_tag; } $this->to_print = $to_print; // $seule : si 1 la notice est affichée seule et dans ce cas les notices childs sont en mode dépliable global $seule ; $this->seule = $seule ; if(!$id) return; else { $id = intval($id); $this->notice_id = $id; $this->fetch_data(); } //$this->p_perso=new parametres_perso("notices"); } // récupération des valeurs en table--------------------------------------- public function fetch_data() { global $dbh; $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = pmb_mysql_query($requete, $dbh); $source_id = pmb_mysql_result($myQuery, 0, 0); $requete="select * from entrepot_source_".$source_id." where recid='".addslashes($this->notice_id)."' group by field_order,ufield,usubfield,subfield_order,value"; $myQuery = pmb_mysql_query($requete, $dbh); $notice= new stdClass(); $lpfo=""; $n_ed=-1; $exemplaires = array(); $doc_nums = array(); $cpt_notice_pperso=0; $notice->notice_pperso= array(); if(pmb_mysql_num_rows($myQuery)) { $is_article = false; while ($l=pmb_mysql_fetch_object($myQuery)) { if (!$this->source_id) { $this->source_id=$l->source_id; $requete="select name, id_connector from connectors_sources where source_id=".$l->source_id; $result=pmb_mysql_query($requete); if (pmb_mysql_num_rows($result)) { $row = pmb_mysql_fetch_object($result); $this->source_name = $row->name; $this->connector_id = $row->id_connector; } } if (!isset($this->details[$l->ufield])) { $this->details[$l->ufield] = array(); } if ($l->usubfield === "") { $this->details[$l->ufield][] = $l->value; } else { $this->details[$l->ufield][] = array($l->usubfield => $l->value); } // $this->unimarc[$l->ufield][$l->field_order][$l->usubfield][$l->subfield_order]; switch ($l->ufield) { //dt case "dt": $notice->typdoc=$l->value; break; case "bl": if($l->value == 'a'){ $notice->niveau_biblio=$l->value; } else $notice->niveau_biblio='m'; //On force le document au type monographie break; case "hl": if($l->value == '2'){ $notice->niveau_hierar=$l->value; } else $notice->niveau_hierar='0'; //On force le niveau à zéro break; //ISBN case "010": if ($l->usubfield=="a") $notice->code=$l->value; break; //Titres case "200": switch ($l->usubfield) { case "a": if(!isset($notice->tit1)) $notice->tit1 = ''; $notice->tit1.=($notice->tit1?" ":"").$l->value; break; case "c": if(!isset($notice->tit2)) $notice->tit2 = ''; $notice->tit2.=($notice->tit2?" ":"").$l->value; break; case "d": if(!isset($notice->tit3)) $notice->tit3 = ''; $notice->tit3.=($notice->tit3?" ":"").$l->value; break; case "e": if(!isset($notice->tit4)) $notice->tit4 = ''; $notice->tit4.=($notice->tit4?" ":"").$l->value; break; } break; //Editeur case "210": case "214": case "219": if($l->field_order!=$lpfo) { $lpfo=$l->field_order; $n_ed++; } switch ($l->usubfield) { case "a": $this->publishers[$n_ed]["city"]=$l->value; break; case "c": $this->publishers[$n_ed]["name"]=$l->value; break; case "d": $this->publishers[$n_ed]["year"]=$l->value; $this->year=$l->value; break; } break; //Collation case "215": switch ($l->usubfield) { case "a": $notice->npages=$l->value; break; case "c": $notice->ill=$l->value; break; case "d": $notice->size=$l->value; break; case "e": $notice->accomp=$l->value; break; } break; //Collection case "225": switch ($l->usubfield) { case "a": if(!isset($notice->coll))$notice->coll = new stdClass(); $notice->coll->titre=$l->value; break; case "i": if(!isset($notice->subcoll))$notice->subcoll = new stdClass(); $notice->subcoll->titre=$l->value; break; case "v": if(!isset($notice->coll))$notice->coll = new stdClass(); $notice->coll->num=$l->value; break; } break; //Note generale case "300": if(empty($notice->n_gen)) { $notice->n_gen = array(); } $notice->n_gen[]=$l->value; break; //Note de contenu case "327": if(empty($notice->n_contenu)) { $notice->n_contenu = array(); } $notice->n_contenu[]=$l->value; break; //Note de resume case "330": if(empty($notice->n_resume)) { $notice->n_resume = array(); } $notice->n_resume[]=$l->value; break; //Serie ou Pério case "461": switch($l->usubfield){ case 'x': $this->perio_issn = $l->value; break; case 't': $this->parent_title = $l->value; $notice->serie_name = $l->value; break; case '9': $is_article = true; break; } if($is_article) $notice->serie_name = ""; else { $this->parent_title = ""; $this->perio_issn = ""; } break; //Bulletins case "463" : switch($l->usubfield){ case 't': $notice->bulletin_titre = $l->value; break; case 'v': $this->parent_numero = $l->value; break; case 'd': $this->parent_aff_date_date = $l->value; break; case 'e': $this->parent_date = $l->value; break; } break; //Titres Uniformes case "500": switch ($l->usubfield) { case "a": $this->titres_uniformes[]=$l->value; break; } break; //Mots cles case "610": switch ($l->usubfield) { case "a": if (!isset($notice->index_l)) { $notice->index_l = ""; } $notice->index_l.=($notice->index_l?" / ":"").$l->value; break; } break; //Indexations décimales..; case "676": case "686": switch ($l->usubfield) { case "a": $notice->indexint[] = $l->value; break; } break; //URL case "856": switch ($l->usubfield) { case "u": $notice->lien=$l->value; break; case "q": $notice->eformat=$l->value; break; case "t": $notice->lien_texte=$l->value; break; } break; // champs perso notice case "900": switch ($l->usubfield) { case "a": if(isset($notice->notice_pperso[$cpt_notice_pperso]['value'])){ $cpt_notice_pperso++; } $notice->notice_pperso[$cpt_notice_pperso]['value']=$l->value; break; case "l": $notice->notice_pperso[$cpt_notice_pperso]['libelle']=$l->value; break; case "n": $notice->notice_pperso[$cpt_notice_pperso]['name']=$l->value; break; case "t": $notice->notice_pperso[$cpt_notice_pperso]['type']=$l->value; break; } break; case "996": $exemplaires[$l->field_order][$l->usubfield] = $l->value; break; //Thumbnail case "896": switch ($l->usubfield) { case "a": $notice->thumbnail_url=$l->value; } break; //Documents numériques case "897": $doc_nums[$l->field_order][$l->usubfield] = $l->value; break; } } } $this->exemplaires = $exemplaires; $this->docnums = $doc_nums; $this->notice=$notice; if (!$this->notice->typdoc) $this->notice->typdoc='a'; // serials : si article //if($this->notice->niveau_biblio == 'a' && $this->notice->niveau_hierar == 2) //$this->get_bul_info(); $this->fetch_categories() ; $this->fetch_auteurs() ; //$this->fetch_visibilite() ; $this->fetch_langues(0) ; $this->fetch_langues(1) ; //$this->fetch_avis(); //$this->childs=array(); return pmb_mysql_num_rows($myQuery); } // fin fetch_data //public function fetch_visibilite() { // global $dbh; // global $hide_explnum; // $requete = "SELECT opac_libelle, notice_visible_opac, expl_visible_opac, notice_visible_opac_abon, expl_visible_opac_abon, explnum_visible_opac, explnum_visible_opac_abon FROM notice_statut WHERE id_notice_statut='".$this->notice->statut."' "; // $myQuery = pmb_mysql_query($requete, $dbh); // if(pmb_mysql_num_rows($myQuery)) { // $statut_temp = pmb_mysql_fetch_object($myQuery); // $this->statut_notice = $statut_temp->opac_libelle ; // $this->visu_notice = $statut_temp->notice_visible_opac ; // $this->visu_notice_abon = $statut_temp->notice_visible_opac_abon ; // $this->visu_expl = $statut_temp->expl_visible_opac ; // $this->visu_expl_abon = $statut_temp->expl_visible_opac_abon ; // $this->visu_explnum = $statut_temp->explnum_visible_opac ; // $this->visu_explnum_abon = $statut_temp->explnum_visible_opac_abon ; // // if ($hide_explnum) { // $this->visu_explnum=0; // $this->visu_explnum_abon=0; // } // } // //} // recuperation des auteurs --------------------------------------------------------------------- // retourne $this->auteurs_principaux = ce qu'on va afficher en titre du resultat // retourne $this->auteurs_tous = ce qu'on va afficher dans l'isbd // NOTE: now we have two functions: // fetch_auteurs() the pmb-standard one public function fetch_auteurs() { global $fonction_auteur; global $dbh ; global $opac_url_base ; $this->responsabilites = array() ; $auteurs = array() ; $res["responsabilites"] = array() ; $res["auteurs"] = array() ; if(!$this->source_id){ $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = pmb_mysql_query($requete, $dbh); $this->source_id = pmb_mysql_result($myQuery, 0, 0); } $rqt = "select ufield,field_order,usubfield,subfield_order,value from entrepot_source_".$this->source_id." where recid='".addslashes($this->notice_id)."' and ufield like '7%' group by ufield,usubfield,field_order,subfield_order,value order by recid,field_order,subfield_order"; $res_sql=pmb_mysql_query($rqt); $id_aut=""; $n_aut=-1; while ($l=pmb_mysql_fetch_object($res_sql)) { if ($l->field_order!=$id_aut) { $n_aut++; switch ($l->ufield) { case "700": case "710": $responsabilites[]=0; break; case "701": case "711": $responsabilites[]=1; break; case "702": case "712": $responsabilites[]=2; break; } switch (substr($l->ufield,0,2)) { case "70": $auteurs[$n_aut]["type"]=1; break; case "71": $auteurs[$n_aut]["type"]=2; break; } $auteurs[$n_aut]["id"]=(isset($l->recid) ? $l->recid : '').$l->field_order; $id_aut=$l->field_order; } switch ($l->usubfield) { case '4': $auteurs[$n_aut]['fonction']=$l->value; $auteurs[$n_aut]['fonction_aff']=$fonction_auteur[$l->value]; break; case 'a': $auteurs[$n_aut]['name']=$l->value; break; case 'b': if ($auteurs[$n_aut]['type']==2) { $auteurs[$n_aut]['subdivision']=$l->value; } else { $auteurs[$n_aut]['rejete']=$l->value; } break; case 'd': if ($auteurs[$n_aut]['type']==2) { $auteurs[$n_aut]['numero']=$l->value; } break; case 'e': if ($auteurs[$n_aut]['type']==2) { if (!isset($auteurs[$n_aut]['lieu'])) { $auteurs[$n_aut]['lieu'] = ""; } $auteurs[$n_aut]['lieu'].=(($auteurs[$n_aut]['lieu'])?'; ':'').$l->value; } break; case 'f': $auteurs[$n_aut]['date']=$l->value; break; case 'g': if ($auteurs[$n_aut]['type']==2) { $auteurs[$n_aut]['rejete']=$l->value; } break; } } foreach($auteurs as $n_aut=>$auteur) { $auteurs[$n_aut]['auteur_titre'] = (!empty($auteurs[$n_aut]['rejete']) ? $auteurs[$n_aut]['rejete'].' ' : '').$auteurs[$n_aut]['name']; if ($auteur['type']==2 && (!empty($auteurs[$n_aut]['subdivision']) || !empty($auteurs[$n_aut]['numero']) || !empty($auteurs[$n_aut]['date']) || !empty($auteurs[$n_aut]['lieu']))) { $c=''; $c.=(!empty($auteurs[$n_aut]['subdivision']) ? $auteurs[$n_aut]['subdivision'] : ""); $c.=($c && !empty($auteurs[$n_aut]['numero'])) ? ', ' : ""; $c.=(!empty($auteurs[$n_aut]['numero'])) ? $auteurs[$n_aut]['numero'] : ""; $c.=($c && !empty($auteurs[$n_aut]['date'])) ? ', ' : ""; $c.=(!empty($auteurs[$n_aut]['date'])) ? $auteurs[$n_aut]['date'] : ""; $c.=($c && !empty($auteurs[$n_aut]['lieu'])) ? ', ' : ""; $c.=(!empty($auteurs[$n_aut]['lieu'])) ? $auteurs[$n_aut]['lieu'] : ""; $auteurs[$n_aut]['auteur_titre'].=' ('.$c.')'; } $auteurs[$n_aut]['auteur_isbd']=$auteurs[$n_aut]['auteur_titre'].(!empty($auteurs[$n_aut]['fonction_aff'])?' ,':'').(isset($auteurs[$n_aut]['fonction_aff']) ? $auteurs[$n_aut]['fonction_aff'] : ''); } if (!isset($responsabilites)) $responsabilites = array(); if (!$auteurs) $auteurs = array(); $res["responsabilites"] = $responsabilites ; $res["auteurs"] = $auteurs ; $this->responsabilites = $res; // $this->auteurs_principaux // on ne prend que le auteur_titre = "Prenom NOM" $as = array_search ("0", $this->responsabilites["responsabilites"]) ; if ($as!== FALSE && $as!== NULL) { $auteur_0 = $this->responsabilites["auteurs"][$as] ; $this->auteurs_principaux = $auteur_0["auteur_titre"]; } else { $as = array_keys ($this->responsabilites["responsabilites"], "1" ) ; $aut1_libelle = array(); for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_1 = $this->responsabilites["auteurs"][$indice] ; $aut1_libelle[]= $auteur_1["auteur_titre"]; } $auteurs_liste = implode ("; ",$aut1_libelle) ; if ($auteurs_liste) $this->auteurs_principaux = $auteurs_liste ; } // $this->auteurs_tous $mention_resp = array() ; $as = array_search ("0", $this->responsabilites["responsabilites"]) ; if ($as!== FALSE && $as!== NULL) { $auteur_0 = $this->responsabilites["auteurs"][$as] ; $mention_resp_lib = $auteur_0["auteur_isbd"]; $mention_resp[] = $mention_resp_lib ; } $as = array_keys ($this->responsabilites["responsabilites"], "1" ) ; for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_1 = $this->responsabilites["auteurs"][$indice] ; $mention_resp_lib = $auteur_1["auteur_isbd"]; $mention_resp[] = $mention_resp_lib ; } $as = array_keys ($this->responsabilites["responsabilites"], "2" ) ; for ($i = 0 ; $i < count($as) ; $i++) { $indice = $as[$i] ; $auteur_2 = $this->responsabilites["auteurs"][$indice] ; $mention_resp_lib = $auteur_2["auteur_isbd"]; $mention_resp[] = $mention_resp_lib ; } $libelle_mention_resp = implode ("; ",$mention_resp) ; if ($libelle_mention_resp) $this->auteurs_tous = $libelle_mention_resp ; else $this->auteurs_tous ="" ; } // fin fetch_auteurs // recuperation des categories ------------------------------------------------------------------ public function fetch_categories() { global $opac_thesaurus, $opac_categories_categ_in_line, $pmb_keyword_sep,$dbh; $this->categories_toutes=""; if(!$this->source_id){ $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = pmb_mysql_query($requete, $dbh); $this->source_id = pmb_mysql_result($myQuery, 0, 0); } $rqt = "select ufield,field_order,usubfield,subfield_order,value from entrepot_source_".$this->source_id." where recid='".addslashes($this->notice_id)."' and ufield like '60%' group by ufield,usubfield,field_order,subfield_order,value order by recid,field_order,subfield_order"; $res_sql=pmb_mysql_query($rqt); $id_categ=""; $n_categ=-1; $categ_l=array(); while ($l=pmb_mysql_fetch_object($res_sql)) { if ($l->field_order!=$id_categ) { if ($n_categ!=-1) { $categ_libelle=(!empty($categ_l["a"][0]) ? $categ_l["a"][0] : "").(!empty($categ_l["x"])?" - ".implode(" - ",$categ_l["x"]):"").(!empty($categ_l["y"]) ?" - ".implode(" - ",$categ_l["y"]):"").(!empty($categ_l["z"]) ?" - ".implode(" - ",$categ_l["z"]):""); $this->categories_toutes.=($this->categories_toutes?"
":"").$categ_libelle; } $categ_l=array(); $n_categ++; $id_categ=$l->field_order; } $categ_l[$l->usubfield][]=$l->value; } if ($n_categ>=0) { $categ_libelle=(!empty($categ_l["a"][0]) ? $categ_l["a"][0] : "").(!empty($categ_l["x"])?" - ".implode(" - ",$categ_l["x"]):"").(!empty($categ_l["y"]) ?" - ".implode(" - ",$categ_l["y"]):"").(!empty($categ_l["z"]) ?" - ".implode(" - ",$categ_l["z"]):""); $this->categories_toutes.=($this->categories_toutes?"
":"").$categ_libelle; } } public function fetch_langues($quelle_langues=0) { global $dbh; global $marc_liste_langues ; if (!$marc_liste_langues) $marc_liste_langues=new marc_list('lang'); if(!$this->source_id){ $requete = "SELECT source_id FROM external_count WHERE rid=".addslashes($this->notice_id); $myQuery = pmb_mysql_query($requete, $dbh); $this->source_id = pmb_mysql_result($myQuery, 0, 0); } $rqt = "select ufield,field_order,usubfield,subfield_order,value from entrepot_source_".$this->source_id." where recid='".addslashes($this->notice_id)."' and ufield like '101' group by ufield,usubfield,field_order,subfield_order,value order by recid,field_order,subfield_order"; $res_sql=pmb_mysql_query($rqt); $langues = array() ; $subfield=array("0"=>"a","1"=>"c"); while ($l=pmb_mysql_fetch_object($res_sql)) { if ($l->usubfield==$subfield[$quelle_langues]) { if ($marc_liste_langues->table[$l->value]) { $langues[] = array( 'lang_code' => $l->value, 'langue' => $marc_liste_langues->table[$l->value] ) ; } } } if (!$quelle_langues) $this->langues = $langues; else $this->languesorg = $langues; } public function fetch_avis() { global $dbh; $sql="select avg(note) as m from avis where valide=1 and type_object=1 and num_notice='$this->notice_id' group by num_notice"; $r = pmb_mysql_query($sql, $dbh); $sql_nb = "select * from avis where valide=1 and type_object=1 and num_notice='$this->notice_id'"; $r_nb = pmb_mysql_query($sql_nb, $dbh); $qte_avis = pmb_mysql_num_rows($r_nb); $loc = pmb_mysql_fetch_object($r); if($loc->m > 0) $moyenne=number_format($loc->m,1, ',', ''); $this->avis_moyenne = $moyenne; $this->avis_qte = $qte_avis; } //public function affichage_etat_collections() { // global $msg; // global $pmb_etat_collections_localise; // // //etat des collections // $affichage=""; // if ($pmb_etat_collections_localise) { // $restrict_location=" 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=pmb_mysql_query($rqt); // if ($execute_query) { // if (pmb_mysql_num_rows($execute_query)) { // $affichage = "
".$msg["perio_etat_coll"]."
"; // $bool=false; // while ($r=pmb_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==false) $affichage=""; // } // } // return $affichage; //} public function construit_liste_langues($tableau) { $langues = ""; for ($i = 0 ; $i < sizeof($tableau) ; $i++) { if ($langues) $langues.=" "; $langues .= $tableau[$i]["langue"]." (".$tableau[$i]["lang_code"].")"; } return $langues; } // Fonction d'affichage des avis public function affichage_avis($notice_id) { global $dbh; global $msg; $nombre_avis = ""; //Affichage des Etoiles et nombre d'avis if ($this->avis_qte > 0) { $nombre_avis = "".$this->avis_qte." ".$msg['notice_bt_avis'].""; $etoiles_moyenne = $this->stars($this->avis_moyenne); } else { $nombre_avis = "".$msg['avis_aucun'].""; $cpt_star = -1; } // Affichage du nombre d'avis ainsi que la note moyenne et les etoiles associees $img_tag .= $nombre_avis."".$etoiles_moyenne.""; return $img_tag; } // Gestion des etoiles pour les avis public function stars() { $etoiles_moyenne=""; $cpt_star = 4; for ($i = 1; $i <= $this->avis_moyenne; $i++) { $etoiles_moyenne.=""; } if(substr($this->avis_moyenne,2) > 1) { $etoiles_moyenne .= ""; $cpt_star = 3; } for ( $j = round($this->avis_moyenne);$j <= $cpt_star ; $j++) { $etoiles_moyenne .= ""; } return $etoiles_moyenne; } // generation 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 $css; global $cart_aff_case_traitement; global $opac_url_base ; global $dbh; global $tdoc; global $allow_tag ; // l'utilisateur a-t-il le droit d'ajouter un tag $this->premier = $premier ; $this->double_ou_simple = 2 ; $this->notice_childs = $this->genere_notice_childs(); if ($this->cart_allowed) { if(isset($_SESSION["cart"]) && in_array("es".$this->notice_id, $_SESSION["cart"])) { $basket="\"".$msg['notice_title_basket_exist']."\""; } else { $basket="notice_id."&header=".rawurlencode(strip_tags($this->notice_header))."\" target=\"cart_info\" title=\"".$msg['notice_title_basket']."\">\"".$msg['notice_title_basket']."\""; } } else { $basket=""; } //add tags $img_tag = ""; //if ( ($this->tag_allowed==1) || ( ($this->tag_allowed==2)&&($_SESSION["user_code"])&&($allow_tag) ) ) // $img_tag.="notice_id','ajouter_un_tag'); return false;\">\"".$msg['notice_title_tag']."\""; //Avis //if ($this->avis_allowed) { // $img_tag .= $this->affichage_avis($this->notice_id); //} // preparation de la case a cocher pour traitement panier if ($cart_aff_case_traitement) $case_a_cocher = " "; else $case_a_cocher = "" ; $icon_doc = marc_list_collection::get_instance('icondoc'); $icon = (isset($icon_doc->table[$this->notice->niveau_biblio.$this->notice->typdoc]) ? $icon_doc->table[$this->notice->niveau_biblio.$this->notice->typdoc] : ""); $biblio_doc = marc_list_collection::get_instance('nivbiblio'); if($depliable == 1){ $template="
$case_a_cocher"; if(!$this->notice_expired) $template.=" \"".$msg['expandable_notice']."\""; if ($icon) $template.=" ".$biblio_doc->table[$this->notice->niveau_biblio]." : ".$tdoc->table[$this->notice->typdoc].""; $template.=" !!heada!!