$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]."
"; } 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="".$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="".$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 "\"".$info_bulle."\""; }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.="\"".$info_bulle."\""; 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; }