get_primaldatafrom($id);
} else {
$this->id = $id;
$this->get_primaldata();
}
$this->get_otherdata();
}
// ---------------------------------------------------------------
// get_primaldata() : récupération infos auteur à partir de l'id
// ---------------------------------------------------------------
function get_primaldata() {
global $dbh;
$requete = "SELECT * FROM authors WHERE author_id='".addslashes($this->id)."' LIMIT 1 ";
$result = @mysql_query($requete, $dbh);
if(mysql_num_rows($result)) {
$obj = mysql_fetch_object($result);
mysql_free_result($result);
$this->get_primaldatafrom($obj);
} else {
// pas d'auteur avec cette clé
$this->id = 0;
$this->type = '';
$this->name = '';
$this->rejete = '';
$this->date = '';
$this->see = '';
$this->display = '';
$this->isbd_entry = '';
$this->author_web = '' ;
$this->author_comment = '' ;
$this->subdivision = '';
$this->lieu = '';
$this->salle = '';
$this->ville = '';
$this->pays = '';
$this->numero = '';
}
}
// ---------------------------------------------------------------
// get_primaldatafrom($obj) : récupération infos auteur à partir d'un auteur-objet
// ---------------------------------------------------------------
function get_primaldatafrom($obj) {
$this->id = $obj->author_id;
$this->type = $obj->author_type;
$this->name = $obj->author_name;
$this->rejete = $obj->author_rejete;
$this->date = $obj->author_date;
$this->see = $obj->author_see;
$this->author_web = $obj->author_web;
$this->author_comment = $obj->author_comment;
//Ajout pour les congrès
$this->subdivision = $obj->author_subdivision ;
$this->lieu = $obj->author_lieu ;
$this->salle = $obj->author_salle ;
$this->ville = $obj->author_ville ;
$this->pays = $obj->author_pays ;
$this->numero = $obj->author_numero ;
}
// ---------------------------------------------------------------
function get_otherdata() {
global $msg;
if($this->type==71 ) {
// C'est une collectivité
if($this->subdivision) {
$this->isbd_entry = $this->name." ".$this->subdivision;
$this->display = $this->name.", ".$this->subdivision;
} else {
$this->isbd_entry = $this->name;
$this->display = $this->name;
}
if($this->rejete ) {
$this->info_bulle=$this->rejete;
}
$liste_field=$liste_lieu=array();
if($this->numero) {
$liste_field[]= $this->numero;
}
if($this->date) {
$liste_field[]= $this->date;
}
if($this->lieu) {
$liste_lieu[]= $this->lieu;
}
if($this->ville) {
$liste_lieu[]= $this->ville;
}
if($this->pays) {
$liste_lieu[]= $this->pays;
}
if(count($liste_lieu)) $liste_field[]= implode(", ",$liste_lieu);
if(count($liste_field)) {
$liste_field=implode("; ",$liste_field);
$this->isbd_entry .= ' ('.$liste_field.')';
$this->display .= ' ('.$liste_field.')';
}
} elseif( $this->type==72) {
// C'est un congrès
$libelle=$msg["congres_libelle"].": ";
if($this->rejete) {
$this->isbd_entry = $libelle.$this->name." ".$this->rejete;
$this->display = $libelle.$this->name." ".$this->rejete;
} else {
$this->isbd_entry = $this->name;
$this->display = $this->name;
}
$liste_field=$liste_lieu=array();
if($this->subdivision) {
$liste_field[]= $this->subdivision;
}
if($this->numero) {
$liste_field[]= $this->numero;
}
if($this->date) {
$liste_field[]= $this->date;
}
if($this->lieu) {
$liste_lieu[]= $this->lieu;
}
if($this->ville) {
$liste_lieu[]= $this->ville;
}
if($this->pays) {
$liste_lieu[]= $this->pays;
}
if(count($liste_lieu)) $liste_field[]= implode(", ",$liste_lieu);
if(count($liste_field)) {
$liste_field=implode("; ",$liste_field);
$this->isbd_entry .= ' ('.$liste_field.')';
$this->display .= ' ('.$liste_field.')';
}
} else {
// C'est un auteur physique
if($this->rejete) {
$this->isbd_entry = "$this->name, $this->rejete";
$this->display = "$this->rejete $this->name";
} else {
$this->isbd_entry = "$this->name";
$this->display = "$this->name";
}
if($this->date) $this->isbd_entry .= ' ('.$this->date.')';
}
if($this->author_web) $this->author_web_link = " ";
else $this->author_web_link = "" ;
}
function get_similar_name($author_type='72',$from=0,$number=30) {
global $dbh;
if($author_type) $and_author_type = " and author_type='$author_type' ";
$requete = "SELECT * FROM authors WHERE author_name='".$this->name."' and author_id != ".$this->id." $and_author_type order by author_date, author_lieu LIMIT $from, $number";
$result = @mysql_query($requete, $dbh);
if(mysql_num_rows($result)) {
$i=0;
while(($obj = mysql_fetch_object($result))) {
$this->similar_name[$i]->id = $obj->author_id;
$this->similar_name[$i]->type = $obj->author_type;
$this->similar_name[$i]->name = $obj->author_name;
$this->similar_name[$i]->rejete = $obj->author_rejete;
$this->similar_name[$i]->date = $obj->author_date;
$this->similar_name[$i]->see = $obj->author_see;
$this->similar_name[$i]->author_web = $obj->author_web;
$this->similar_name[$i]->author_comment = $obj->author_comment;
$this->similar_name[$i]->subdivision = $obj->author_subdivision ;
$this->similar_name[$i]->lieu = $obj->author_lieu ;
$this->similar_name[$i]->salle = $obj->author_salle ;
$this->similar_name[$i]->ville = $obj->author_ville ;
$this->similar_name[$i]->pays = $obj->author_pays ;
$this->similar_name[$i]->numero = $obj->author_numero;
$requete = "SELECT count(distinct responsability_notice) FROM responsability WHERE responsability_author=".$this->similar_name[$i]->id;
$res_count = mysql_query($requete);
if ($res_count) $this->similar_name[$i]->nb_notice = mysql_result($res_count,0,0);
else $this->similar_name[$i]->nb_notice=0;
$i++;
}
}
}
function print_similar_name($nb_by_line=3) {
// Template
global $base_path,
$author_display_similar_congres,
$author_display_similar_congres_ligne,
$author_display_similar_congres_element;
$nb=count($this->similar_name);
$congres="";
for($i=0;$i<$nb;$i++) {
$data=$this->similar_name[$i];
$label= $data->numero." ".$data->date." ".$data->lieu;
$detail= "";
if($this->type!=71) $detail.= $data->rejete." ";
$detail.= $data->subdivision." "
.$data->salle." "
.$data->ville." "
.$data->pays;
if($data->nb_notice) {
$detail.=" (".$data->nb_notice.")";
$img_folder="";
}else {
$img_folder="";
}
$congres_element = str_replace("!!congres_label!!",$label, $author_display_similar_congres_element);
$congres_element = str_replace("!!img_folder!!",$img_folder, $congres_element);
$congres_element = str_replace("!!congres_id!!",$data->id, $congres_element);
$congres_element = str_replace("!!congres_detail!!",$detail, $congres_element);
$congres_ligne.=$congres_element;
if(!(($i+1)%$nb_by_line) || (($i+1)==$nb)) {
$congres.= str_replace("!!congres_ligne!!",$congres_ligne, $author_display_similar_congres_ligne);
$congres_ligne='';
}
}
if ($nb) $congres_contens= str_replace("!!congres_contens!!",$congres, $author_display_similar_congres);
return $congres_contens;
}
function print_congres_titre() {
$print=$this->name;
if($this->type==71 && $this->subdivision) {
// Collectivité
$print.= " ".$this->subdivision;
}
elseif($this->rejete) {
$print.= " ".$this->rejete;
}
$liste_field=$liste_lieu=array();
if($this->subdivision && !$this->type==71) {
$liste_field[]= $this->subdivision;
}
if($this->numero) {
$liste_field[]= $this->numero;
}
if($this->date) {
$liste_field[]= $this->date;
}
if($this->lieu) {
$liste_lieu[]= $this->lieu;
}
if($this->ville) {
$liste_lieu[]= $this->ville;
}
if($this->pays) {
$liste_lieu[]= $this->pays;
}
if(count($liste_lieu)) $liste_field[]= implode(", ",$liste_lieu);
if(count($liste_field)) {
$liste_field=implode("; ",$liste_field);
$print .= ' > '.$liste_field;
}
return $print;
}
// ---------------------------------------------------------------
function print_resume($level = 2,$css='') {
global $css;
if(!$this->id)
return;
// adaptation par rapport au niveau de détail souhaité
switch ($level) {
// case x :
case 1 :
global $author_level1_display;
global $author_level1_no_dates_info;
$author_display = $author_level1_display;
$author_no_dates_info = $author_level1_no_dates_info;
break;
case 2 :
default :
global $author_level2_display;
global $author_level2_no_dates_info;
global $author_level2_display_congres;
if($this->type==72) {
$author_display = $author_level2_display_congres;
} else {
$author_display = $author_level2_display;
}
$author_no_dates_info = $author_level2_no_dates_info;
break;
}
$print = $author_display;
// remplacement des champs statiques
$print = str_replace("!!id!!", $this->id, $print);
$print = str_replace("!!name!!", $this->name, $print);
$print = str_replace("!!rejete!!", $this->rejete, $print);
$print = str_replace("!!lieu!!", $this->lieu, $print);
$print = str_replace("!!ville!!", $this->lieu, $print);
$print = str_replace("!!pays!!", $this->pays, $print);
$print = str_replace("!!numero!!", $this->numero, $print);
$print = str_replace("!!subdivision!!", $this->subdivision, $print);
if ($this->author_web) $print = str_replace("!!site_web!!", "", $print);
else $print = str_replace("!!site_web!!", "", $print);
$print = str_replace("!!date!!", $this->date, $print);
$print = str_replace("!!aut_comment!!", nl2br($this->author_comment), $print);
// remplacement des champs dynamiques
if ((preg_match("#!!allname!!#", $print)) || (preg_match("#!!allnamenc!!#", $print))) {
if($this->type==71) {
// Collectivité
$remplacement = $this->name;
if ($this->subdivision) $remplacement = $remplacement." ".$this->subdivision;
if($this->rejete ) {
$this->info_bulle=$this->rejete;
}
$liste_field=$liste_lieu=array();
if($this->numero) {
$liste_field[]= $this->numero;
}
if($this->date) {
$liste_field[]= $this->date;
}
if($this->lieu) {
$liste_lieu[]= $this->lieu;
}
if($this->ville) {
$liste_lieu[]= $this->ville;
}
if($this->pays) {
$liste_lieu[]= $this->pays;
}
if(count($liste_lieu)) $liste_field[]= implode(", ",$liste_lieu);
if(count($liste_field)) {
$liste_field=implode("; ",$liste_field);
$remplacement .= ' ('.$liste_field.')';
}
} elseif($this->type==72) {
// Congrès
$remplacement = $this->name;
if ($this->rejete != "") $remplacement = $remplacement." ".$this->rejete;
$liste_field=$liste_lieu=array();
if($this->subdivision) {
$liste_field[]= $this->subdivision;
}
if($this->numero) {
$liste_field[]= $this->numero;
}
if($this->date) {
$liste_field[]= $this->date;
}
if($this->lieu) {
$liste_lieu[]= $this->lieu;
}
if($this->ville) {
$liste_lieu[]= $this->ville;
}
if($this->pays) {
$liste_lieu[]= $this->pays;
}
if(count($liste_lieu)) $liste_field[]= implode(", ",$liste_lieu);
if(count($liste_field)) {
$liste_field=implode("; ",$liste_field);
$remplacement .= ' ('.$liste_field.')';
}
} else {
// auteur physique
$remplacement = $this->name;
if ($this->rejete != "") $remplacement = $this->rejete." ".$remplacement;
}
if (preg_match("#!!allname!!#", $print)) {
$remplacement = "$remplacement";
$print = str_replace("!!allname!!", $remplacement, $print);
} else $print = str_replace("!!allnamenc!!", $remplacement, $print);
}
if (preg_match("#!!dates!!#", $print)) {
if ($this->date != "") {
$remplacement = " ($this->date)";
} else $remplacement = $author_no_dates_info;
$print = str_replace("!!dates!!", $remplacement, $print);
}
return $print;
}
} # fin de définition de la classe auteur
} # fin de délaration