Rev 84 | Rev 143 | 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 AppControleur {private $applications_resume = null;private $applications_gestion = null;private $mode_reponse = 'json';public function ApplicationExterneControleur() {$this->__construct();// on charge les variables de classes à partir du fichier de configurationif(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 configurationif(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 configurationif(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, $params) {if(count($this->applications_inscription) > 0) {foreach($this->applications_inscription as $application) {$inscription = @file_get_contents($application.'Inscription/'.$this->fabriquerRequete($id_utilisateur, $params));$inscription = json_decode($inscription);if($inscription && $inscription == "OK") {} 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) {$modification = @file_get_contents($application.'Modification/'.$this->fabriquerRequete($id_utilisateur, $params));$modification = json_decode($modification);if($modification && $modification == "OK") {} else {echo 'Erreur de modification l\'application '.$application.'<br />'.$modification;}}}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, $params) {if(count($this->applications_inscription) > 0) {foreach($this->applications_inscription as $application) {$suppression = @file_get_contents($application.'Suppression/'.$this->fabriquerRequete($id_utilisateur, $params));$suppression = json_decode($suppression);if($suppression && $suppression == "OK") {} else {echo 'Erreur de desinscription à 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);$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;}}?>