Rev 56 | Rev 84 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
/**
* PHP Version 5
*
* @category PHP
* @package annuaire
* @author aurelien <aurelien@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version SVN: <svn_id>
* @link /doc/annuaire/
*/
/**
* Controleur chargé de la propagation et le rassemblement d'informations extérieures
* lors dce la consultation et modification des fiches utilisateurs
*/
Class ApplicationExterneControleur extends Controleur {
private $applications_resume = null;
private $applications_gestion = null;
private $repertoire_applications = null;
private $mode_reponse = 'json';
public function ApplicationExterneControleur() {
$this->__construct();
// on charge les variables de classes à partir du fichier de configuration
if(Config::get('url_services_applications_inscription') != null) {
$application_str = Config::get('url_services_applications_inscription');
$this->applications_inscription = explode('##',$application_str);
} else {
$this->applications_inscription = array();
}
// on charge les variables de classes à partir du fichier de configuration
if(Config::get('url_services_applications_resume') != null) {
$application_str = Config::get('url_services_applications_resume');
$this->applications_resume = explode('##',$application_str);
} else {
$this->applications_resume = array();
}
// on charge les variables de classes à partir du fichier de configuration
if(Config::get('url_services_applications_gestion') != null) {
$application_str = Config::get('url_services_applications_gestion');
$this->applications_gestion = explode('##',$application_str);
} else {
$this->applications_gestion = array();
}
}
/**
* parcourt la liste des applications et appelle une adresse spécifique pour l'inscription
* et l'inclut, le cas échéant.
* @param l'identifiant de l'utilisateur
* @param le mail de l'utilisateur
*/
public function ajouterInscription($id_utilisateur, $mail) {
if(count($this->applications_inscription) > 0) {
foreach($this->applications_inscription as $application) {
$inscription = @file_get_contents($application.'Inscription'.DS.$id_utilisateur.DS.$mail);
if($inscription) {
} else {
echo 'Erreur d\'inscription à l\'application '.$application;
}
}
}
return true;
}
/**
* parcourt la liste des applications et appelle une adresse spécifique pour la modification
* et l'inclut, le cas échéant.
* @param l'identifiant de l'utilisateur
* @param le mail de l'utilisateur
*/
public function modifierInscription($id_utilisateur,$params) {
if(count($this->applications_inscription) > 0) {
foreach($this->applications_inscription as $application) {
try {
echo $modification = @file_get_contents($application.'Modification/'.$this->fabriquerRequete($id_utilisateur, $params));
} catch (Exception $e) {
$modification = false;
}
if($modification) {
echo 'modification de l\'appli '.$application.'<br />';
} else {
echo 'Erreur de modification l\'application '.$application.'<br />';
}
}
}
return true;
}
/**
* parcourt la liste des applications et appelle une adresse spécifique pour la suppression
* et l'inclut, le cas échéant.
* @param l'identifiant de l'utilisateur
* @param le mail de l'utilisateur
*/
public function supprimerInscription($id_utilisateur, $mail) {
if(count($this->applications_inscription) > 0) {
foreach($this->applications_inscription as $application) {
$suppression = @file_get_contents($application.'Suppression'.DS.$id_utilisateur.DS.$mail);
if($suppression) {
} else {
echo 'Erreur de descinscription à l\'application '.$application;
}
}
}
return true;
}
/**
* Parcourt le repertoire racine des applications et appelle un web service contenant la méthode
* Resume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
* de profil
* @param l'identifiant de l'utilisateur
* @param le mail de l'utilisateur
* @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
* inclus dans la fiche profil
*/
public function obtenirResume($id_utilisateur, $mail) {
$resumes = array();
if(count($this->applications_resume) > 0) {
foreach($this->applications_resume as $application) {
$resume = @file_get_contents($application.'Resume'.DS.$id_utilisateur.DS.$mail);
if($resume) {
$resume = json_decode($resume, true);
//print_r($resume);
$resumes[] = $resume;
} else {
echo $application.'Resume'.DS.$id_utilisateur.DS.$mail;
}
}
}
return $resumes;
}
/** Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode
* obtenirResume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
* de profil
* @param l'identifiant de l'utilisateur
* @param le mail de l'utilisateur
* @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
* inclus dans la fiche profil
*/
public function gererInscription($id_utilisateur, $mail) {
$gestions = array();
if(count($this->applications_gestion) > 0) {
foreach($this->applications_gestion as $application) {
$gestion = file_get_contents($application.'Gestion'.DS.$id_utilisateur.DS.$mail);
if($gestion) {
$gestion = json_decode($gestion, true);
$gestions[] = $gestion;
} else {
echo $application.'Gestion'.DS.$id_utilisateur.DS.$mail;
}
}
}
return $gestions;
}
private function fabriquerRequete($id, $params) {
$requete = '?';
foreach($params as $cle => $param) {
$requete .= '&'.$cle.'='.$param;
}
return $requete;
}
}
?>