Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 32 → Rev 33

/trunk/controleurs/ApplicationExterneControleur.php
New file
0,0 → 1,170
<?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 = null;
private $repertoire_applications = null;
 
public function ApplicationExterneControleur() {
 
$this->__construct();
 
// on charge les variables de classes à partir du fichier de configuration
if(Config::get('applications_externes') != null) {
 
$application_str = Config::get('applications_externes');
$this->applications = explode(';;',$application_str);
} else {
$this->applications = array();
}
 
if(Config::get('repertoire_applications_externes') != null) {
$this->repertoire_applications = Config::get('repertoire_applications_externes');
} else {
$this->repertoire_applications = '';
}
}
 
/**
* Parcourt le repertoire racine des application et cherche un fichier 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) {
 
$d = dir($this->repertoire_applications);
 
$msg = '';
 
// parcours du répertoire des appli
while (false !== ($repertoire = $d->read())) {
if ($repertoire != '.' || $repertoire != '..') {
// on recherche un fichier de la forme nom_appli_inscription.inc.php
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php')) {
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php' ;
}
}
if ($msg != '') $res .= $msg;
}
 
if($msg != '') {
$msg = 'Attention certaines erreurs se son produites lors de l\'inscription '.$msg;
trigger_error($msg, E_USER_WARNING);
}
 
$d->close();
 
return true;
}
 
 
/**
* Parcourt le repertoire racine des application et cherche un fichier 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, $mail) {
$d = dir($this->repertoire_applications);
 
$msg = '';
 
while (false !== ($repertoire = $d->read())) {
if ($repertoire != '.' || $repertoire != '..') {
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php')) {
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php' ;
}
}
if ($msg != '') $res .= $msg;
}
 
if($msg != '') {
$msg = 'Attention certaines erreurs se sont produites lors de la modification de l\'inscription '.$msg;
trigger_error($msg, E_USER_WARNING);
}
 
$d->close();
}
 
/**
* Parcourt le repertoire racine des application et cherche un fichier 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) {
 
$d = dir($this->repertoire_applications);
 
$msg = '';
 
while (false !== ($repertoire = $d->read())) {
if ($repertoire != '.' || $repertoire != '..') {
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php')) {
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php' ;
}
}
if ($msg != '') $res .= $msg;
}
 
if($msg != '') {
$msg = 'Attention certaines erreurs se sont produites lors de la desinscription '.$msg;
trigger_error($msg, E_USER_WARNING);
}
 
$d->close();
}
 
/**
* 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 obtenirResume($id_utilisateur, $mail) {
 
$d = dir($this->repertoire_applications);
 
$resumes = array();
 
while (false !== ($repertoire = $d->read())) {
if ($repertoire != '.' || $repertoire != '..') {
if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php')) {
include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php' ;
 
if(class_exists($repertoire.'Resume')) {
 
$classe = $repertoire.'Resume';
$resume_appli = new $classe();
$resumes[$repertoire] = $resume_appli->obtenirResume($id_utilisateur, $mail);
}
}
}
}
$d->close();
 
return $resumes;
}
}
 
 
?>