$param[1], $param[0]);
}
function aff_p_perso($param) {
global $parser_environnement;
global $pmb_perso_sep;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if(!$param[1]) $field="VALUE";
else return $notice['notice_info']->parametres_perso[$param[0]]['TITRE'];
if (!$notice['notice_info']->parametres_perso[$param[0]][$field]) $notice['notice_info']->parametres_perso[$param[0]][$field]=array();
return implode($pmb_perso_sep,$notice['notice_info']->parametres_perso[$param[0]][$field]);
}
function aff_notice_field($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->notice->$param[0];
}
function aff_url($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->notice->lien;
}
function aff_page($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->notice->npages;
}
function aff_cost($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->notice->prix;
}
function aff_collation($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_collation;
}
function aff_lang($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$display=array();
foreach($notice['notice_info']->memo_lang as $line){
$display[]=$line['langue'];
}
if(!$param[0]) $sep="; "; else $sep=$param[0];
return implode ($sep,$display);
}
function aff_lang_or($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$display=array();
foreach($notice['notice_info']->memo_lang_or as $line){
$display[]=$line['langue'];
}
if(!$param[0]) $sep="; "; else $sep=$param[0];
return implode ($sep,$display);
}
function aff_collection($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_collection;
}
function aff_collection_with_tpl($param) {
// Utiliser pour le template les attributs de la classe "collection", cf classes/collection.class.php
// $param[0] = template
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$collec_infos = new collection($notice['notice_info']->notice->coll_id);
return _get_aut_infos($collec_infos, $param[0]);
}
function aff_gen_tpl($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
foreach($param[0] as $line){
$tpl=$param[1];
$tpl=str_replace("!!parity!!", ($i++&1) ? "odd" : "even", $tpl) ;
foreach($line as $key=>$val){
$tpl=str_replace("!!$key!!", $val, $tpl);
$tpl=str_replace("!!p_perso_$key!!", $val, $tpl);
}
// p_perso de la notice
while(($p_perso=strstr($tpl,"p_perso_notice"))){
$pos_end=strpos($p_perso,"!!");
$name=substr($p_perso,0,$pos_end);
$name=substr($name,14);
$val= $notice['notice_info']->parametres_perso[$name]["VALUE"];
$tpl=str_replace("!!p_perso_notice_$name!!", $val, $tpl);
}
// p_perso de l'exemplaire
while(($p_perso=strstr($tpl,"p_perso_"))){
$pos_end=strpos($p_perso,"!!");
$name=substr($p_perso,0,$pos_end);
$name=substr($name,8);
$val= $line->parametres_perso[$name]["VALUE"];
$tpl=str_replace("!!p_perso_$name!!", $val, $tpl);
}
$display.=$tpl;
}
return $display;
}
function aff_get_expl($param) {
global $parser_environnement;
$res=array();
if(!$parser_environnement['id_notice']) return $res;
$notice=gere_global();
if(count($notice['notice_info']->memo_exemplaires)) {
$res =$notice['notice_info']->memo_exemplaires;
}
return $res;
}
function aff_img_url($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_url_image;
}
function aff_img($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_image;
}
function aff_issn($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_isbn;
}
function aff_isbn($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_isbn;
}
function aff_ed1($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_ed1;
}
function aff_ed1_with_tpl($param) {
// Utiliser pour le template les attributs de la classe "editeur", cf classes/editor.class.php
// $param[0] = template
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$publisher_infos = new publisher($notice['notice_info']->notice->ed1_id);
return _get_aut_infos($publisher_infos, $param[0]);
}
function aff_ed2($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_ed2;
}
function aff_ed2_with_tpl($param) {
// Utiliser pour le template les attributs de la classe "editeur", cf classes/editor.class.php
// $param[0] = template
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$publisher_infos = new publisher($notice['notice_info']->notice->ed2_id);
return _get_aut_infos($publisher_infos, $param[0]);
}
function aff_year_publication($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_year;
}
function aff_date_publication($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_date;
}
/*
* Minimaliste
#header_link(#title(); #a_empty(#author();, / );,2);
#resume();
#if(#is_article();,
#nom_revue(); - #date_publication();,
#publisher(); #a_empty(#year_publication();, - ););
***********************
Exemple pour l'ARNT
***********************
#header_link(#title();,2);
#resume();
#b_empty(#author();#b_empty(#author_1();, - );,
);
#if(#is_article();,
#nom_revue();#a_empty(#numero_bulletin();, - ); - #date_bulletin();,
#b_empty(#publisher();, - ); #year_publication(););
#gen_plus(
#header_link(#title(); #a_empty(#author();, / );,2);
,
#resume();
#if(#is_article();,
#nom_revue(); - #date_publication();,
#publisher(); #a_empty(#year_publication();, - ););
);
*
*/
function gere_global(){
global $notice_data,$parser_environnement;
if(!$notice_data[$parser_environnement['id_notice']]['notice_info']) {
$notice_data[$parser_environnement['id_notice']] ['notice_info']= new notice_info($parser_environnement['id_notice']);
}
return $notice_data[$parser_environnement['id_notice']];
}
function aff_gen_plus($param) {
global $parser_environnement;
if($param[2]) $max=" startOpen=\"Yes\""; else $max='';
return"
".$param[0]."
".$param[1]."
";
}
function aff_b_empty($param) {
if($param[0]) {
return $param[0].$param[1];
}
return "";
}
function aff_a_empty($param) {
if($param[0]) {
return $param[1].$param[0];
}
return "";
}
function aff_not_empty($param) {
if($param[0]) {
return $param[1];
} else return $param[0];
return "";
}
function aff_if($param) {
if($param[0]) {
return $param[1];
} else return $param[2];
return "";
}
function aff_is_article($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if (($notice['notice_info']->niveau_biblio=="a")&&($notice['notice_info']->niveau_hierar==2)) return 1; else return 0;
}
function aff_is_serial($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if (($notice['notice_info']->niveau_biblio=="s")&&($notice['notice_info']->niveau_hierar==1)) return 1; else return 0;
}
function aff_is_mono($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if (($notice['notice_info']->niveau_biblio=="m")&&($notice['notice_info']->niveau_hierar==0)) return 1; else return 0;
}
function aff_is_bull($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if (($notice['notice_info']->niveau_biblio=="b")&&($notice['notice_info']->niveau_hierar==2)) return 1; else return 0;
}
function aff_isbd($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->isbd;
}
function aff_title($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_titre;
}
function aff_parallel_title($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_titre_parallele;
}
function aff_complement_title($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_complement_titre;
}
function aff_typdoc($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_typdoc;
}
function aff_icondoc($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_icondoc;
}
function aff_auteur_principal($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_auteur_principal;
}
function aff_auteur_autre($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if($param[0]) $sep = $param[0];
else $sep= " ; ";
if($param[1]){
for($i=0 ; $i < $param[1] ; $i++){
if ($notice['notice_info']->memo_auteur_autre_tab[$i]) $aut[]=$notice['notice_info']->memo_auteur_autre_tab[$i];
}
if(count($notice['notice_info']->memo_auteur_autre_tab) > $param[1]) $aut[] = "et al.";
return implode($sep,$aut);
}
return implode($sep,$notice['notice_info']->memo_auteur_autre_tab);
}
function aff_auteur_secondaire($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if($param[0]) $sep = $param[0];
else $sep= " ; ";
if($param[1]){
for($i=0 ; $i < $param[1] ; $i++){
if ($notice['notice_info']->memo_auteur_secondaire_tab[$i]) $aut[]=$notice['notice_info']->memo_auteur_secondaire_tab[$i];
}
if(count($notice['notice_info']->memo_auteur_secondaire_tab) > $param[1]) $aut[] = "et al.";
return implode($sep,$aut);
}
return implode($sep,$notice['notice_info']->memo_auteur_secondaire_tab);
}
// Travail ER
function aff_auteurs($param) {
global $fonction_auteur;
// $param[0] = 0=principal seul, 1=principal+autres, 2=tous
// $param[1] = nombre maxi d'auteurs à afficher
// $param[2] = séparateur entre auteurs
// $param[3] = séparateur entre principal/autres/secondaires
// $param[4] = afficher la fonction : 0=non, 1=toujours
// $param[5] = afficher "et al." si plus d'auteurs que le maxi
// $param[6] = $tpl_num ???
global $parser_environnement, $dbh;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$rqt_count="select count(*) as nb from responsability
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_type<='".$param[0]."'";
$res_sql_count = mysql_query($rqt_count, $dbh);
$res_count=mysql_fetch_object($res_sql_count);
$rqt = "select author_id, responsability_fonction, responsability_type
from responsability, authors
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_author=author_id
and responsability_type<='".$param[0]."'
order by responsability_type, responsability_ordre " ;
if ($param[1]>0) $rqt .= " limit 0,".$param[1] ;
$res_sql = mysql_query($rqt, $dbh);
while ($authors=mysql_fetch_object($res_sql)) {
$aut_detail=new auteur($authors->author_id);
if(!$param[6]){
if ($authors->responsability_fonction && $param[4]==1) $aut_detail->isbd_entry .= ", ".$fonction_auteur[$authors->responsability_fonction];
if ($authors->responsability_type==0) $aut[]=$aut_detail->isbd_entry;
if ($authors->responsability_type==1) $aut1[]=$aut_detail->isbd_entry;
if ($authors->responsability_type==2) $aut2[]=$aut_detail->isbd_entry;
}elseif($param[6]==1){
$function=$fonction_auteur[$authors->responsability_fonction];
$format="%s %s (%s)";
$args[]=$aut_detail->author_name;
$args[]=$aut_detail->author_rejete;
$args[]=$function;
if ($authors->responsability_type==0) $aut[]=sprintf($format,$aut_detail->name,substr($aut_detail->rejete,0,1),$function);
if ($authors->responsability_type==1) $aut1[]=sprintf($format,$aut_detail->name,substr($aut_detail->rejete,0,1),$function);
if ($authors->responsability_type==2) $aut2[]=sprintf($format,$aut_detail->name,substr($aut_detail->rejete,0,1),$function);
}
}
if (count($aut1)) $aut[]=implode($param[2],$aut1);
if (count($aut2)) $aut[]=implode($param[2],$aut2);
if ($param[1]>0 && $param[5] && $res_count->nb>$param[1]) $aut[]="et al.";
if (count($aut)) return implode($param[3],$aut);
return "";
}
function aff_resume($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return nl2br($notice['notice_info']->notice->n_resume);
}
function aff_contenu($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return nl2br($notice['notice_info']->notice->n_contenu);
}
function aff_note($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return nl2br($notice['notice_info']->notice->n_gen);
}
function aff_categories($param) {
// $param[0] = 0=tous thésaurus, sinon thesaurus id=$param[0]
// $param[1] = séparateur entre categories
// $param[2] = séparateur entre thesaurus
// $param[3] = langue à prendre en compte
// $param[4] = afficher le nom du ou des thesaurus en entête, 0 ou 1
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
//Descripteurs
if ($param[0]>0) $restrict_thes=" and catlg.num_thesaurus='".$param[0]."' and catdef.num_thesaurus='".$param[0]."' ";
$requete="SELECT libelle_thesaurus as thesnom, if(catlg.libelle_categorie is not null,catlg.libelle_categorie,catdef.libelle_categorie) as categnom FROM notices_categories left join categories catlg on (catlg.num_noeud = notices_categories.num_noeud and catlg.langue='".$param[3]."') left join categories catdef on (catdef.num_noeud = notices_categories.num_noeud), thesaurus thesdef where catdef.num_thesaurus=thesdef.id_thesaurus and notcateg_notice='".$parser_environnement['id_notice']."' and (catdef.langue=thesdef.langue_defaut or catdef.langue is null) $restrict_thes ORDER BY libelle_thesaurus, ordre_categorie";
$resultat=mysql_query($requete);
$thes_conserve="";$res="";
$juste_apresthes=true;
while (($cat = mysql_fetch_object($resultat))) {
if ($thes_conserve!=$cat->thesnom) {
if (!$res && $param[4]) $res="[".$cat->thesnom."] ";
elseif ($param[4]) $res.=$param[2]."[".$cat->thesnom."] ";
elseif ($res) $res.=$param[2];
$thes_conserve=$cat->thesnom;
$juste_apresthes=true;
}
if ($juste_apresthes) {
$res.=$cat->categnom;
$juste_apresthes=false;
} elseif ($res) $res.=$param[1].$cat->categnom;
else $res.=$cat->categnom;
}
return $res;
}
function aff_indexint($param) {
// $param[0] = séparateur
// $param[1] = afficher le plan de classement ? 0 ou 1
// $param[2] = séparateur
// $param[3] = afficher l'indexation indexint_name
// $param[4] = séparateur
// $param[5] = afficher le libellé indexint_comment
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
// Indexation décimale
$requete="SELECT name_pclass, indexint_name, indexint_comment FROM notices, indexint, pclassement where notice_id='".$parser_environnement['id_notice']."' and id_pclass=num_pclass and indexint_id=indexint";
$resultat=mysql_query($requete);
if ($int = mysql_fetch_object($resultat)) {
$res = $param[0];
if ($param[1]==1) $res.=$int->name_pclass;
$res.= $param[2];
if ($param[3]==1) $res.=$int->indexint_name;
$res.= $param[4];
if ($param[5]==1) $res.=$int->indexint_comment;
}
return $res;
}
function aff_header_link($param) {
global $pmb_opac_url,$use_opac_url_base,$opac_url_base;
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
switch($param[1]){
case 2:
if($notice['notice_info']->notice->lien) {
$libelle="notice->lien."\">".$param[0];
if (!$use_opac_url_base) $libelle.= "notice->eformat. "\" title=\"". $notice['notice_info']->notice->eformat ."\">";
$libelle.="";
} else {
$libelle="$param[0]";
}
break;
default:
$libelle="$param[0]";
break;
}
return $libelle;
}
function aff_nom_revue($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "Voila";
$notice=gere_global();
return $notice["notice_info"]->serial_title;
}
function aff_date_bulletin($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "1er janvier 1970";
$notice=gere_global();
if ($notice["notice_info"]->bulletin_mention_date) $format=$notice["notice_info"]->bulletin_mention_date." (%s)"; else $format="%s";
return sprintf($format,$notice["notice_info"]->bulletin_date_date);
}
function aff_numero_bulletin($param) {
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "1er janvier 1970";
$notice=gere_global();
return $notice["notice_info"]->bulletin_numero;
}
function aff_expl_num($param) {
// $param[0] = Est-ce que l'on tient compte des droits (0 ou vide -> Non, 1 -> Oui)
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "1er janvier 1970";
if(is_array($param) && count($param) && ($param[0] ==1) && !explnum_test_rights($parser_environnement['id_notice'])) return "";
$notice=gere_global();
return $notice["notice_info"]->memo_explnum_assoc;
}
function aff_expl_num_with_tpl($param) {
// Utiliser pour le template les attributs de la classe "explnum", cf classes/explnum.class.php
// $param[0] = nb maxi d'explnum à afficher
// $param[1] = séparateur entre les explnum
// $param[2] = 0 : tous les documents, 1 : documents sans statut spécifique, 2 : documents avec statut spécifique
// $param[3] = template
// Pour afficher la vignette :
// $param[4] = Est-ce que l'on tient compte des droits (0 ou vide -> Non, 1 -> Oui)
// $param[5] = Par quel(s) mimetype doit-on filtrer ? Si vide pas de filtre, si plusieurs séparer par ,
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "1er janvier 1970";
if(is_array($param) && (count($param) >= 6) && ($param[4] == 1) && !explnum_test_rights($parser_environnement['id_notice'])) return "";
$notice=gere_global();
$mime_type="";
if($tmp=trim($param[5])){
$mime_type="'".str_replace(',',"','",$tmp)."'";
}
$query = "SELECT explnum_id FROM explnum WHERE explnum_notice = '".$parser_environnement['id_notice']."'";
//S'il s'agit d'une notice de bulletin, l'exemplaire numérique est relié au bulletin
if($notice["notice_info"]->niveau_biblio=="b" && $notice["notice_info"]->niveau_hierar=="2"){
$result = mysql_query("SELECT bulletin_id FROM bulletins WHERE num_notice= '".$parser_environnement['id_notice']."'");
if($result && mysql_num_rows($result)){
$row = mysql_fetch_object($result);
$query = "SELECT explnum_id FROM explnum WHERE explnum_bulletin = '".$row->bulletin_id."'";
}
}
if($mime_type){
$query.=" AND explnum_mimetype IN(".$mime_type.")";
}
if(($param[0])*1){
$query.=" LIMIT ".(($param[0])*1);
}
$result = mysql_query($query);
if ($result && mysql_num_rows($result)) {
while ($explnum = mysql_fetch_object($result)) {
$explnum_infos = new explnum($explnum->explnum_id);
if (!$param[2] || (($param[2] == 1) && (!$explnum_infos->explnum_statut)) || (($param[2] == 2) && ($explnum_infos->explnum_statut))) {
$tab_explnum[] = _get_aut_infos($explnum_infos, $param[3]);
}
}
}
if (count($tab_explnum)) return implode($param[1],$tab_explnum);
return "";
}
/*
* $param[0] : id localisation format accepté: 1 ou [1] ou [1;2;3]
* $param[1] : colonne à afficher format accepté: expl_cote ou [expl_cote] ou [expl_cote;location_libelle]
* liste des champs possible: expl_id, expl_cb,expl_cote,expl_statut,statut_libelle, expl_typdoc, tdoc_libelle, expl_note, expl_comment, expl_section, section_libelle, expl_owner, lender_libelle, codestat_libelle, expl_date_retour, expl_date_depot, expl_note, pret_flag, location_libelle
*/
function aff_expl($param) {
global $parser_environnement;
global $opac_sur_location_activate;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$id_loc=array();
$list_colonne=array();
if(isset($param) && is_array($param)){
if($param[0] != ""){
if(preg_match("/^\[([0-9;]+)\]$/",$param[0],$matches)){
$id_loc=explode(";",$matches[1]);
}elseif(preg_match("/^[0-9]+$/",$param[0])){
$id_loc[]=$param[0];
}
}
if($param[1] != ""){
if(preg_match("/^\[(.*?)\]$/",$param[1],$matches)){
$list_colonne=explode(";",$matches[1]);
}else{
$list_colonne[]=$param[1];
}
}else{
$list_colonne=array("tdoc_libelle","surloc_libelle","location_libelle","section_libelle","expl_cote","expl_cb","statut_libelle");
}
}
$res="";
for ($i = 0 ; $i < count($notice["notice_info"]->memo_exemplaires); $i++) {
if(!count($id_loc) || in_array($notice["notice_info"]->memo_exemplaires[$i]->expl_location,$id_loc)){
$res.="";
$expl_tabl = (array) $notice["notice_info"]->memo_exemplaires[$i];
foreach ( $list_colonne as $value ) {
if($value == "surloc_libelle" && !$opac_sur_location_activate){
continue;
}
$res.="";
if($expl_tabl[$value] !== ""){
$res.=$expl_tabl[$value];
}else{
$res.=" ";
}
$res.=" | ";
}
}
}
if($res){
$res="";
}
return $res;
}
/*
* $param[0] : nombre d'élément maximum
* $param[1] : séparateur
* $param[2] : champ demandé
* $param[3] : critères de filtrage des exemplaires. format accepté: expl_location=1 ou [expl_location=1;2] ou [expl_location=1;2,expl_section=2;3]
* liste des champs possible (param 2 et 3) : expl_id, expl_cb,expl_cote,expl_statut,statut_libelle, expl_typdoc, tdoc_libelle, expl_note, expl_comment, expl_section, section_libelle, expl_owner, lender_libelle, codestat_libelle, expl_date_retour, expl_date_depot, expl_note, pret_flag, location_libelle
*/
function aff_expl_by_field($param){
$res=$nb_elem=$sep=$field="";
if(isset($param) && is_array($param)){
$nb_elem=trim($param[0])*1;
$sep=$param[1];
$field=trim($param[2]);
$filters=array();
if($param[3] != ""){
if(!preg_match("#\[|\]#",$param[3])){
$filters[]=$param[3];
}elseif(preg_match("/^\[(.*?)\]$/",$param[3],$matches)){
$filters=explode(",",$matches[1]);
}
if(count($filters)){
$tmp=array();
foreach ( $filters as $key => $value ) {
$tmp2=explode("=",$value);
if(count($tmp2) == 2){
$tmp[$tmp2[0]]=explode(";",$tmp2[1]);
}else{
return $res;//Le format n'est pas correct
}
}
$filters=$tmp;
}
}
}
if(($sep !== "") && $field){
$tot=false;
if(!$nb_elem) $tot=true;
$notice=gere_global();
if(count($notice["notice_info"]->memo_exemplaires)){
for ($i = 0 ; $i < count($notice["notice_info"]->memo_exemplaires); $i++) {
$expl_tabl = (array) $notice["notice_info"]->memo_exemplaires[$i];
$pass=true;
if(count($filters)){
foreach ( $filters as $key => $value ) {
if(!$expl_tabl[$key] || !in_array($expl_tabl[$key],$value)){
$pass=false;
break;
}
}
}
if($pass){
$val=trim($expl_tabl[$field]);
if($val !== ""){
if($res)$res.=$sep;
$res.=$val;
if(!$tot){
$nb_elem--;
if($nb_elem <=0){
break;
}
}
}
}
}
}
}
return $res;
}
/*
* $param[0] : pattern
* $param[1] : chaine
*/
function aff_extract_path($param){
if(preg_match("\"".$param[0]."\"",$param[1],$output)){;
return $output[1];
}else return "";
}
/*
* $param[0] : format
* $param[1] : date
*/
function aff_format_date($param){
//si c'est pas une date potable, on arrete là...
if(!preg_match(getDatePattern(),$param[1]) && !preg_match(getDatePattern("short"),$param[1]) && !preg_match(getDatePattern("year"),$param[1])){
return $param[1];
}
$date = detectFormatDate($param[1]);
$year = substr($date,0,4);
$month = substr($date,5,2);
$day = substr($date,8,2);
return date($param[0],mktime(0,0,0,$month,$day,$year));
}
function aff_trim($param){
return trim($param[0]);
}
function aff_substr($param){
if($param[1] && $param[2]) $sc =substr($param[0],$param[1],$param[2]);
else if($param[1] && !$param[2]) $sc =substr($param[0],$param[1]);
else $sc = "";
return $sc;
}
function aff_lastchr($param){
return substr($param[0],strlen($param[0])-1);
}
/*
* $param[0],$param[1] : chaines à comparer
* $param[2] : valeur si égale
* $param[3] : valeur si différente
*
*/
function aff_ifequal($param){
if($param[0] == $param[1]) return $param[2];
else return $param[3];
}
function aff_strtoupper($param){
return strtoupper($param[0]);
}
function aff_strtolower($param){
return strtolower($param[0]);
}
function aff_ucfirst($param){
return ucfirst($param[0]);
}
function aff_publisher_name($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_ed1_name;
}
function aff_publisher_place($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_ed1_place;
}
function aff_publisher2_name($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_ed2_name;
}
function aff_publisher2_place($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_ed2_place;
}
function aff_mention_edition($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->memo_mention_edition;
}
function aff_get_notice_tpl($param){
global $parser_environnement;
global $deflt2docs_location;
$id_notice = $parser_environnement['id_notice'];
$template_notice = new notice_tpl_gen($parser_environnement['id_template']);
$notice = $template_notice->build_notice($param[0],$deflt2docs_location,true);
$parser_environnement['id_notice']=$id_notice;
return $notice;
}
function aff_get_parents_in_tpl($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$result="";
if (count($notice['notice_info']->memo_notice_mere)) {
foreach($notice['notice_info']->memo_notice_mere as $parent){
$result.= " In : ".aff_get_notice_tpl(array($parent));
}
}
return $result;
}
function aff_get_childs_in_tpl($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$result="";
if (count($notice['notice_info']->memo_notice_fille)) {
foreach($notice['notice_info']->memo_notice_fille as $child){
$result.= aff_get_notice_tpl(array($child));
}
}
return $result;
}
function aff_authors_by_type($param){
global $fonction_auteur;
// $param[0] = 0=principal seul, 1=principal+autres, 2=tous, 3=autres, 4=secondaires, 5=autres+secondaires
// $param[1] = nombre maxi d'auteurs à afficher
// $param[2] = séparateur entre auteurs
// $param[3] = séparateur entre principal/autres/secondaires
// $param[4] = afficher la fonction : 0=non, 1=toujours
// $param[5] = afficher "et al." si plus d'auteurs que le maxi
// $param[6] = 70=physique, 71=collectivités, 72=congrès (séparé parune virgule...)
global $parser_environnement, $dbh;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$param[6] = explode(",",$param[6]);
$param[6] = implode("','",$param[6]);
$rqt_count="select count(*) as nb from responsability, authors
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_author=author_id
and author_type in('".$param[6]."') ";
if ($param[0] <= 2) {
$rqt_count.= "and responsability_type<='".$param[0]."'";
} else {
if ($param[0] == 3) $rqt_count.= "and responsability_type='1'";
else if ($param[0] == 4) $rqt_count.= "and responsability_type='2'";
else if ($param[0] == 5) $rqt_count.= "and responsability_type in('1','2')";
}
$res_sql_count = mysql_query($rqt_count, $dbh);
$res_count=mysql_fetch_object($res_sql_count);
$rqt = "select author_id, responsability_fonction, responsability_type
from responsability, authors
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_author=author_id
and author_type in('".$param[6]."') ";
if ($param[0] <= 2) {
$rqt.= "and responsability_type<='".$param[0]."' ";
} else {
if ($param[0] == 3) $rqt.= "and responsability_type='1' ";
else if ($param[0] == 4) $rqt.= "and responsability_type='2' ";
else if ($param[0] == 5) $rqt.= "and responsability_type in('1','2') ";
}
$rqt.= "order by responsability_type, responsability_ordre " ;
if ($param[1]>0) $rqt .= " limit 0,".$param[1] ;
$res_sql = mysql_query($rqt, $dbh);
while ($authors=mysql_fetch_object($res_sql)) {
$aut_detail=new auteur($authors->author_id);
if ($authors->responsability_fonction && $param[4]==1) $aut_detail->isbd_entry .= ", ".$fonction_auteur[$authors->responsability_fonction];
if ($authors->responsability_type==0) $aut[]=$aut_detail->isbd_entry;
if ($authors->responsability_type==1) $aut1[]=$aut_detail->isbd_entry;
if ($authors->responsability_type==2) $aut2[]=$aut_detail->isbd_entry;
}
if (count($aut1)) $aut[]=implode($param[2],$aut1);
if (count($aut2)) $aut[]=implode($param[2],$aut2);
if ($param[1]!= 0 && $param[5] && $res_count->nb>$param[1]) $aut[]="et al.";
if (count($aut)) return implode($param[3],$aut);
return "";
}
function aff_authors_by_type_dir($param){
global $fonction_auteur;
// $param[0] = 0=principal seul, 1=principal+autres, 2=tous, 3=autres, 4=secondaires, 5=autres+secondaires
// $param[1] = nombre maxi d'auteurs à afficher
// $param[2] = séparateur entre auteurs
// $param[3] = séparateur entre principal/autres/secondaires
// $param[4] = afficher la fonction : 0=non, 1=toujours
// $param[5] = afficher "et al." si plus d'auteurs que le maxi
// $param[6] = 70=physique, 71=collectivités, 72=congrès (séparé parune virgule...)
global $parser_environnement, $dbh;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$param[6] = explode(",",$param[6]);
$param[6] = implode("','",$param[6]);
$rqt_count="select count(*) as nb from responsability, authors
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_author=author_id
and author_type in('".$param[6]."') ";
if ($param[0] <= 2) {
$rqt_count.= "and responsability_type<='".$param[0]."'";
} else {
if ($param[0] == 3) $rqt_count.= "and responsability_type='1'";
else if ($param[0] == 4) $rqt_count.= "and responsability_type='2'";
else if ($param[0] == 5) $rqt_count.= "and responsability_type in('1','2')";
}
$res_sql_count = mysql_query($rqt_count, $dbh);
$res_count=mysql_fetch_object($res_sql_count);
$rqt = "select author_id, responsability_fonction, responsability_type
from responsability, authors
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_author=author_id
and author_type in('".$param[6]."') ";
if ($param[0] <= 2) {
$rqt.= "and responsability_type<='".$param[0]."' ";
} else {
if ($param[0] == 3) $rqt.= "and responsability_type='1' ";
else if ($param[0] == 4) $rqt.= "and responsability_type='2' ";
else if ($param[0] == 5) $rqt.= "and responsability_type in('1','2') ";
}
$rqt.= "order by responsability_type, responsability_ordre " ;
if ($param[1]>0) $rqt .= " limit 0,".$param[1] ;
$res_sql = mysql_query($rqt, $dbh);
while ($authors=mysql_fetch_object($res_sql)) {
$aut_detail=new auteur($authors->author_id);
if ($authors->responsability_fonction && $param[4]==1 && $authors->responsability_fonction == "651") $aut_detail->isbd_entry .= " (dir.)";
if ($authors->responsability_type==0) $aut[]=$aut_detail->isbd_entry;
if ($authors->responsability_type==1) $aut1[]=$aut_detail->isbd_entry;
if ($authors->responsability_type==2) $aut2[]=$aut_detail->isbd_entry;
}
if (count($aut1)) $aut[]=implode($param[2],$aut1);
if (count($aut2)) $aut[]=implode($param[2],$aut2);
if ($param[1]!= 0 && $param[5] && $res_count->nb>$param[1]) $aut[]="et al.";
if (count($aut)) return implode($param[3],$aut);
return "";
}
function aff_permalink($param){
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
return $notice['notice_info']->permalink;
}
function aff_authors_by_type_with_tpl($param){
global $fonction_auteur;
// $param[0] = 0=principal seul, 1=principal+autres, 2=tous, 3=autres, 4=secondaires, 5=autres+secondaires
// $param[1] = nombre maxi d'auteurs à afficher
// $param[2] = séparateur entre auteurs
// $param[3] = séparateur entre principal/autres/secondaires
// $param[4] = afficher la fonction : 0=non, 1=toujours
// $param[5] = afficher "et al." si plus d'auteurs que le maxi
// $param[6] = 70=physique, 71=collectivités, 72=congrès (séparé parune virgule...)
// $param[7] = template d'afficahge de l'autorité
global $parser_environnement, $dbh;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$param[6] = explode(",",$param[6]);
$param[6] = implode("','",$param[6]);
$rqt_count="select count(*) as nb from responsability, authors
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_author=author_id
and author_type in('".$param[6]."') ";
if ($param[0] <= 2) {
$rqt_count.= "and responsability_type<='".$param[0]."'";
} else {
if ($param[0] == 3) $rqt_count.= "and responsability_type='1'";
else if ($param[0] == 4) $rqt_count.= "and responsability_type='2'";
else if ($param[0] == 5) $rqt_count.= "and responsability_type in('1','2')";
}
$res_sql_count = mysql_query($rqt_count, $dbh);
$res_count=mysql_fetch_object($res_sql_count);
$rqt = "select author_id, responsability_fonction, responsability_type
from responsability, authors
where responsability_notice='".$parser_environnement['id_notice']."'
and responsability_author=author_id
and author_type in('".$param[6]."') ";
if ($param[0] <= 2) {
$rqt.= "and responsability_type<='".$param[0]."' ";
} else {
if ($param[0] == 3) $rqt.= "and responsability_type='1' ";
else if ($param[0] == 4) $rqt.= "and responsability_type='2' ";
else if ($param[0] == 5) $rqt.= "and responsability_type in('1','2') ";
}
$rqt.="order by responsability_type, responsability_ordre " ;
if ($param[1]>0) $rqt .= " limit 0,".$param[1] ;
$res_sql = mysql_query($rqt, $dbh);
while ($authors=mysql_fetch_object($res_sql)) {
$aut_detail=new auteur($authors->author_id);
if ($authors->responsability_fonction && $param[4]==1) {
$aut_detail->function = $fonction_auteur[$authors->responsability_fonction];
}
if ($authors->responsability_type==0) $aut[]=_get_aut_infos($aut_detail,$param[7]);
if ($authors->responsability_type==1) $aut1[]=_get_aut_infos($aut_detail,$param[7]);
if ($authors->responsability_type==2) $aut2[]=_get_aut_infos($aut_detail,$param[7]);
}
if (count($aut1)) $aut[]=implode($param[2],$aut1);
if (count($aut2)) $aut[]=implode($param[2],$aut2);
if ($param[1]!= 0 && $param[5] && $res_count->nb>$param[1]) $aut[]="et al.";
if (count($aut)) return implode($param[3],$aut);
return "";
}
function _get_aut_infos($aut,$tpl){
if($tpl != "" && preg_match_all("/{([^}]*)}/",$tpl,$matches)){
for ($i=0 ; $i$matches[1][$i],$tpl);
}
}else{
return $aut->isbd_entry;
}
return $tpl;
}
function aff_parents_authors_by_type_with_tpl($param){
global $parser_environnement;
global $fonction_auteur;
$result = "";
if(!$param[0]) $separator = " / ";
else $separator = $param[0];
if(!$parser_environnement['id_notice']) return "";
//on récupère les parents
$notice=gere_global();
//$notice['notice_info']->fetch_notices_parents();
$param[6] = explode(",",$param[6]);
$param[6] = implode("','",$param[6]);
$return = "";
for($i=0 ; $imemo_notice_mere) ; $i++){
$aut = array();
$rqt_count="select count(*) as nb from responsability, authors
where responsability_notice='".$notice['notice_info']->memo_notice_mere[$i]."'
and responsability_author=author_id ";
if($param[6]!= "") $rqt_count.=" and author_type in('".$param[6]."') ";
$rqt_count .= "and responsability_type<='".$param[0]."' ";
$res_sql_count = mysql_query($rqt_count);
$res_count=mysql_fetch_object($res_sql_count);
$rqt = "select author_id, responsability_fonction, responsability_type
from responsability, authors
where responsability_notice='".$notice['notice_info']->memo_notice_mere[$i]."'
and responsability_author=author_id ";
if($param[6]!= "") $rqt.=" and author_type in('".$param[6]."') ";
$rqt .= "and responsability_type<='".$param[0]."'
order by responsability_type, responsability_ordre " ;
if ($param[1]>0) $rqt .= " limit 0,".$param[1] ;
$res_sql = mysql_query($rqt);
while ($authors=mysql_fetch_object($res_sql)) {
$aut_detail=new auteur($authors->author_id);
if ($authors->responsability_fonction && $param[4]==1) {
$aut_detail->function = $fonction_auteur[$authors->responsability_fonction];
}
if ($authors->responsability_type==0) $aut[]=_get_aut_infos($aut_detail,$param[7]);
if ($authors->responsability_type==1) $aut1[]=_get_aut_infos($aut_detail,$param[7]);
if ($authors->responsability_type==2) $aut2[]=_get_aut_infos($aut_detail,$param[7]);
}
if (count($aut1)) $aut[]=implode($param[2],$aut1);
if (count($aut2)) $aut[]=implode($param[2],$aut2);
if ($param[1]!= 0 && $param[5] && $res_count->nb>$param[1]) $aut[]="et al.";
if (count($aut)){
if($return != "") $return.=" / ";
$return.= implode($param[3],$aut);
}
}
return $return;
}
function aff_parents_title($params){
global $parser_environnement;
$result = "";
if(!$param[0]) $separator = " / ";
else $separator = $param[0];
if(!$parser_environnement['id_notice']) return "";
//on récupère les parents
$notice=gere_global();
$notice['notice_info']->fetch_notices_parents();
for($i=0 ; $inotices_parents) ; $i++){
if($result != "") $result.=$separator;
$result.= $notice['notice_info']->notices_parents[$i]->memo_titre;
}
return $result;
}
function aff_parents_page($param){
global $parser_environnement;
$result = "";
if(!$param[0]) $separator = " / ";
else $separator = $param[0];
if(!$parser_environnement['id_notice']) return "";
//on récupère les parents
$notice=gere_global();
$notice['notice_info']->fetch_notices_parents();
for($i=0 ; $inotices_parents) ; $i++){
if($result != "") $result.=$separator;
$result.= $notice['notice_info']->notices_parents[$i]->notice->npages;
}
return $result;
}
function aff_parents_mention_edition($param){
global $parser_environnement;
$result = "";
if(!$param[0]) $separator = " / ";
else $separator = $param[0];
if(!$parser_environnement['id_notice']) return "";
//on récupère les parents
$notice=gere_global();
$notice['notice_info']->fetch_notices_parents();
for($i=0 ; $inotices_parents) ; $i++){
if($result != "") $result.=$separator;
$result.= $notice['notice_info']->notices_parents[$i]->notice->memo_mention_edition;
}
return $result;
}
function aff_parents_publisher_place($param){
global $parser_environnement;
$result = "";
if(!$param[0]) $separator = " / ";
else $separator = $param[0];
if(!$parser_environnement['id_notice']) return "";
//on récupère les parents
$notice=gere_global();
$notice['notice_info']->fetch_notices_parents();
for($i=0 ; $inotices_parents) ; $i++){
if($result != "") $result.=$separator;
$result.= $notice['notice_info']->notices_parents[$i]->memo_ed1_place;
}
return $result;
}
function aff_parents_publisher_name($param){
global $parser_environnement;
$result = "";
if(!$param[0]) $separator = " / ";
else $separator = $param[0];
if(!$parser_environnement['id_notice']) return "";
//on récupère les parents
$notice=gere_global();
$notice['notice_info']->fetch_notices_parents();
for($i=0 ; $inotices_parents) ; $i++){
if($result != "") $result.=$separator;
$result.= $notice['notice_info']->notices_parents[$i]->memo_ed1_name;
}
return $result;
}
function aff_parents_year_publication($param){
global $parser_environnement;
$result = "";
if(!$param[0]) $separator = " / ";
else $separator = $param[0];
if(!$parser_environnement['id_notice']) return "";
//on récupère les parents
$notice=gere_global();
$notice['notice_info']->fetch_notices_parents();
for($i=0 ; $inotices_parents) ; $i++){
if($result != "") $result.=$separator;
$result.= $notice['notice_info']->notices_parents[$i]->notice->year;
}
return $result;
}
function aff_str_replace($param){
return str_replace($param[0],$param[1],$param[2]);
}
function get_collstate($param) {
global $parser_environnement;
$res=array();
if(!$parser_environnement['id_notice']) return $res;
$notice=gere_global();
if(count($notice['notice_info']->memo_collstate)) {
$res = $notice['notice_info']->memo_collstate;
}
return $res;
}
function aff_collstate($param) {
global $parser_environnement;
global $opac_sur_location_activate;
if(!$parser_environnement['id_notice']) return '';
$notice=gere_global();
$res='';
$id_loc=array();
if(isset($param) && is_array($param) && ($param[0] != "")){
if(preg_match("/^\[([0-9;]+)\]$/",$param[0],$matches)){
$id_loc=explode(";",$matches[1]);
}elseif(preg_match("/^[0-9]+$/",$param[0])){
$id_loc[]=$param[0];
}
}
if (count($notice['notice_info']->memo_collstate)) {
for ($i = 0 ; $i < count($notice['notice_info']->memo_collstate) ; $i++) {
if(!count($id_loc) || in_array($notice['notice_info']->memo_collstate[$i]->idlocation,$id_loc)){
$res.="";
if ($opac_sur_location_activate) {
$res.="".$notice['notice_info']->memo_collstate[$i]->surloc_libelle." | ";
}
$res.="".$notice['notice_info']->memo_collstate[$i]->location_libelle." | ";
$res.="".$notice['notice_info']->memo_collstate[$i]->archempla_libelle." | ";
$res.="".$notice['notice_info']->memo_collstate[$i]->collstate_cote." | ";
$res.="".$notice['notice_info']->memo_collstate[$i]->archtype_libelle." | ";
$res.="".$notice['notice_info']->memo_collstate[$i]->archstatut_opac_libelle." | ";
$res.="".$notice['notice_info']->memo_collstate[$i]->collstate_origine." | ";
$res.="".$notice['notice_info']->memo_collstate[$i]->state_collections." | ";
$res.="".$notice['notice_info']->memo_collstate[$i]->collstate_lacune." | ";
$res.="
";
}
}
}
if($res){
$res="";
}
return $res;
}
function aff_titre_bulletin($param){
global $parser_environnement;
$notice=gere_global();
return $notice["notice_info"]->memo_notice_bulletin->bulletin_titre;
}
/*
* @param[0] = sens (up/down/both),
* @param[1,...n] = types de relations recherchées
* @return
*/
function linked_id($param) {
$link=array();
//Sens de la relation : up, down ou both
$link_direction=$param[0];
if($link_direction=='both'){
//si both, on force à relation descendante.
$link_direction='down';
}
unset($param[0]);
$allowed_link_types=$param;
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if($link_direction=='up'){
if (count($notice['notice_info']->memo_notice_mere)) {
foreach($notice['notice_info']->memo_notice_mere as $id=>$noticeMereId){
if(in_array($notice['notice_info']->memo_notice_mere_relation_type[$id],$allowed_link_types)){
$link[]=$noticeMereId;
}
}
}
}elseif($link_direction=='down'){
if (count($notice['notice_info']->memo_notice_fille)) {
foreach($notice['notice_info']->memo_notice_fille as $id=>$noticeFilleId){
if(in_array($notice['notice_info']->memo_notice_fille_relation_type[$id],$allowed_link_types)){
$link[]=$noticeFilleId;
}
}
}
}
return $link;
}
function group($param){
global $parser_environnement;
$sav_parser_environnement=array();
$sav_parser_environnement=$parser_environnement;
$tpl='';
$array_id=$param[0];
$display_number=$param[1];
$separator=$param[2];
$code=$param[3];
if(!$display_number || $display_number==0){
$display_number=sizeof($array_id);
}
if(!$separator){
$separator=' - ';
}
for($i=0;$i<$display_number;$i++){
global $parser_environnement;
$parser_environnement=array();
$parser_environnement['id_notice']=$array_id[$i];
$parser_environnement['id_template']='';
$notice=gere_global();
$parser=new parse_format('notice_tpl.inc.php');
$parser->cmd = $code;
if($tpl){
$tpl.=$separator;
}
$tpl.=$parser->exec_cmd();
}
$parser_environnement=$sav_parser_environnement;
return $tpl;
}
function aff_msg($param) {
// Attention : l'aperçu en gestion n'utilise pas le même fichier de messages que le rendu en OPAC
// il faut donc utiliser les codes des fichiers langues de l'OPAC
// $param[0] = code du message à afficher
global $msg;
return $msg[$param[0]];
}
function aff_serie_with_tpl($param) {
// Utiliser pour le template les attributs de la classe "serie", cf classes/serie.class.php
// $param[0] = template
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
if ($notice['notice_info']->notice->tparent_id) {
$serie_infos = new serie($notice['notice_info']->notice->tparent_id);
return _get_aut_infos($serie_infos, $param[0]);
}
return "";
}
function aff_ellipse($param) {
// $param[0] = chaine de caractère à réduire
// $param[1] = nb de caractères max à afficher
// $param[2] = chaine de remplacement
if (pmb_strlen($param[0]) <= $param[1]) {
return $param[0];
} else {
return pmb_substr_replace($param[0], $param[2], $param[1]);
}
}
function aff_avis($param) {
// $param[0] = mode d'affichage de la note 0=note non visible, 1=sous forme d'étoiles, 2=sous forme textuelle, 3 =sous forme textuelle et étoiles
// $param[1] = affiche le nom du lecteur : 0=non, 1=oui
// $param[2] = nombre maxi d'avis à afficher
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$res="";
if (count($notice["notice_info"]->memo_avis)) {
if (($param[2]) && ($param[2] < count($notice["notice_info"]->memo_avis))) $max_avis = $param[2];
else $max_avis = count($notice["notice_info"]->memo_avis);
for ($i = 0 ; $i < $max_avis; $i++) {
$res.= "
";
if($param[0]){
if($param[0]!=1){
$categ_avis=$notice["notice_info"]->memo_avis[$i]->note_textuelle." ";
}
if($param[0]!=2){
$etoiles="";$cpt_star = 4;
for ($j = 1; $j <= $notice["notice_info"]->memo_avis[$i]->note; $j++) {
$etoiles.="
";
}
for ( $j = round($notice["notice_info"]->memo_avis[$i]->note);$j <= $cpt_star ; $j++) {
$etoiles .= "
";
}
}
if($param[0]==3)$note=$etoiles."
".$categ_avis;
else $note=$etoiles.$categ_avis;
} else $note="";
if (!$notice["notice_info"]->memo_avis[$i]->valide)
$res.= "
$note".$notice["notice_info"]->memo_avis[$i]->sujet."";
else
$res.= "
$note".$notice["notice_info"]->memo_avis[$i]->sujet."";
$res.= ", ".$notice["notice_info"]->memo_avis[$i]->ladate." ".($param[1] ? $notice["notice_info"]->memo_avis[$i]->empr_prenom." ".$notice["notice_info"]->memo_avis[$i]->empr_nom : "")."
".$notice["notice_info"]->memo_avis[$i]->commentaire."
";
}
}
return $res;
}
function aff_avis_with_tpl($param) {
// Utiliser pour le template les attributs suivants : id_avis,note,sujet,commentaire,ladate,empr_login,empr_nom,empr_prenom,valide,note_textuelle
// $param[0] = nombre maxi d'avis à afficher
// $param[1] = séparateur entre les avis
// $param[2] = template
global $parser_environnement;
if(!$parser_environnement['id_notice']) return "";
$notice=gere_global();
$tab_avis = array();
if (count($notice["notice_info"]->memo_avis)) {
if (($param[0]) && ($param[0] < count($notice["notice_info"]->memo_avis))) $max_avis = $param[0];
else $max_avis = count($notice["notice_info"]->memo_avis);
for ($i = 0 ; $i < $max_avis; $i++) {
$tab_avis[] = _get_aut_infos($notice["notice_info"]->memo_avis[$i], $param[2]);
}
}
if (count($tab_avis)) return implode($param[1],$tab_avis);
return "";
}
function aff_expl_num_vign_reduit($param) {
// Affiche pour une notice une icone cliquable pour ouvrir le document numérique (en tenant compte de la visionneuse)
// $param[0] = Est-ce que l'on tient compte des droits (0 ou vide -> Non, 1 -> Oui)
// $param[1] = Texte de l'info-bulle dans le cas ou il y a plusieurs documents numériques // Si vide c'est celui par défaut qui est utilisé
// $param[2] = Url de l'image dans le cas ou il y a plusieurs documents numériques // Si vide c'est celui par défaut qui est utilisé
// $param[3] = Texte de l'info-bulle dans le cas ou il n'y a qu'un document numérique // Si vide c'est celui par défaut qui est utilisé
// $param[4] = Url de l'image dans le cas ou il n'y a qu'un document numérique // Si vide c'est celui par défaut qui est utilisé
global $parser_environnement,$opac_visionneuse_allow,$opac_photo_filtre_mimetype,$msg;
if(!$parser_environnement['id_notice']) return "";
if(is_array($param) && count($param) && ($param[0] == 1) && !explnum_test_rights($parser_environnement['id_notice'])) return "";
$query = "SELECT explnum_id,explnum_mimetype,explnum_nom,explnum_nomfichier,explnum_url FROM explnum WHERE explnum_notice = '".$parser_environnement['id_notice']."'";
$result = mysql_query($query);
if ($result && mysql_num_rows($result)) {
if(mysql_num_rows($result) > 1){
$info_bulle=$msg["info_docs_num_notice"];
if(is_array($param) && (count($param) >= 2) && (trim($param[1]))) $info_bulle=$param[1];
$img_multip_doc="./images/globe_rouge.png";
if(is_array($param) && (count($param) >= 3) && (trim($param[2]))) $img_multip_doc=trim($param[2]);
return "";
}else{
$explnumrow=mysql_fetch_object($result);
$info_bulle="";
if(is_array($param) && (count($param) >= 4) && (trim($param[3]))){
$info_bulle=$param[3];
}else{
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;
}
}
$img_multip_doc="./images/globe_orange.png";
if(is_array($param) && (count($param) >= 5) && (trim($param[4]))) $img_multip_doc=trim($param[4]);
$allowed_mimetype=array();
if ($opac_visionneuse_allow){
$allowed_mimetype = explode(",",str_replace("'","",$opac_photo_filtre_mimetype));
}
$ret="";
if ($opac_visionneuse_allow && in_array($explnumrow->explnum_mimetype,$allowed_mimetype)){
$ret.="
explnum_id.");return false;\" alt=\"".$info_bulle."\" title=\"".$info_bulle."\">";
}else{
$ret.="explnum_id."\" target=\"__LINK__\">";
}
$ret.="";
return $ret;
}
}
return "";
}
function explnum_test_rights($id_notice){
global $gestion_acces_active, $gestion_acces_empr_notice;
//droits d'acces emprunteur/notice
if ($gestion_acces_active==1 && $gestion_acces_empr_notice==1) {
$ac= new acces();
$dom_2= $ac->setDomain(2);
$rights= $dom_2->getRights($_SESSION['id_empr_session'],$id_notice);
}
//Accessibilité des documents numériques aux abonnés en opac
$req_restriction_abo = "SELECT explnum_visible_opac, explnum_visible_opac_abon FROM notices,notice_statut WHERE notice_id='".$id_notice."' AND statut=id_notice_statut ";
$result=mysql_query($req_restriction_abo);
if($result && mysql_num_rows($result)){
$expl_num=mysql_fetch_array($result,MYSQL_ASSOC);
if( $rights & 16 || (is_null($dom_2) && $expl_num["explnum_visible_opac"] && (!$expl_num["explnum_visible_opac_abon"] || ($expl_num["explnum_visible_opac_abon"] && $_SESSION["user_code"])))){
return true;
}
}
return false;
}