fetch_sources(); $this->fetch_data(); } //On récupère la liste des sources dispos pour enrichir function fetch_sources(){ global $base_path; $connectors = new connecteurs(); $this->catalog = $connectors->catalog; foreach ($this->catalog as $id=>$prop) { $comment=$prop['COMMENT']; //Recherche du nombre de sources $n_sources=0; if($prop['ENRICHMENT'] == "yes"){ if (is_file($base_path."/admin/connecteurs/in/".$prop['PATH']."/".$prop['NAME'].".class.php")) { require_once($base_path."/admin/connecteurs/in/".$prop['PATH']."/".$prop['NAME'].".class.php"); eval("\$conn=new ".$prop['NAME']."(\"".$base_path."/admin/connecteurs/in/".$prop['PATH']."\");"); $conn->get_sources(); foreach($conn->sources as $source_id=>$s) { if($s['ENRICHMENT'] == 1){ $this->enhancer[] = array( 'id' =>$s['SOURCE_ID'], 'name' =>$s['NAME'] ); } } } } } } //Récupération des données existantes function fetch_data(){ $rqt = "select * from sources_enrichment"; $res = mysql_query($rqt); if(mysql_num_rows($res)){ while($r= mysql_fetch_object($res)){ $this->active[$r->source_enrichment_typnotice.$r->source_enrichment_typdoc][] = $r->source_enrichment_num; } } } //Affichage du formulaire function show_form(){ global $msg; global $admin_enrichment_form; if(count($this->enhancer)){ //création du sélecteur... $select=""; foreach($this->enhancer as $source){ $select.=""; } $select.=""; return $select; } //retourne les éléments à rajouter dans le head, les calculs aux besoins; function getHeaders(){ if(!$this->enrichmentsTabHeaders) $this->generateHeaders(); return implode("\n",$this->enrichmentsTabHeaders); } //Méthode qui génère les éléments à insérer dans le header pour le bon fonctionnement des enrichissements function generateHeaders(){ global $base_path; $this->enrichmentsTabHeaders =array(); $alreadyIncluded = array(); foreach($this->active as $type => $sources){ foreach($sources as $source_id){ if(!in_array($source_id,$alreadyIncluded)){ //on récupère les infos de la source nécessaires pour l'instancier $name = connecteurs::get_class_name($source_id); foreach($this->catalog as $connector){ if($connector['NAME'] == $name){ if (is_file($base_path."/admin/connecteurs/in/".$connector['PATH']."/".$name.".class.php")){ require_once($base_path."/admin/connecteurs/in/".$connector['PATH']."/".$name.".class.php"); $conn = new $name($base_path."/admin/connecteurs/in/".$connector['PATH']); $this->enrichmentsTabHeaders = array_merge($this->enrichmentsTabHeaders,$conn->getEnrichmentHeader()); $this->enrichmentsTabHeaders = array_unique($this->enrichmentsTabHeaders); } } } $alreadyIncluded[]=$source_id; } } } } function getEnrichment($notice_id,$tnoti,$tdoc){ global $base_path; $infos = array(); if($this->active[$tnoti.$tdoc]) $type = $tnoti.$tdoc; else $type = $tnoti; if($this->active[$type]){ foreach($this->active[$type] as $source_id){ //on récupère les infos de la source nécessaires pour l'instancier $name = connecteurs::get_class_name($source_id); foreach($this->catalog as $connector){ if($connector['NAME'] == $name){ if (is_file($base_path."/admin/connecteurs/in/".$connector['PATH']."/".$name.".class.php")){ require_once($base_path."/admin/connecteurs/in/".$connector['PATH']."/".$name.".class.php"); $conn = new $name($base_path."/admin/connecteurs/in/".$connector['PATH']); $infos[] = $conn->getEnrichment($notice_id); } } } } } highlight_string(print_r($infos,true)); return $infos; } } ?>