Subversion Repositories Applications.annuaire

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
33 aurelien 1
<?php
2
/**
3
* PHP Version 5
4
*
5
* @category  PHP
6
* @package   annuaire
7
* @author    aurelien <aurelien@tela-botanica.org>
8
* @copyright 2010 Tela-Botanica
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
11
* @link      /doc/annuaire/
12
*/
13
 
14
/**
15
 * Controleur chargé de la propagation et le rassemblement d'informations extérieures
16
 * lors dce la consultation et modification des fiches utilisateurs
17
 */
18
Class ApplicationExterneControleur extends Controleur {
19
 
20
	private $applications = null;
21
	private $repertoire_applications = null;
22
 
23
	public function ApplicationExterneControleur() {
24
 
25
		$this->__construct();
26
 
27
		// on charge les variables de classes à partir du fichier de configuration
28
		if(Config::get('applications_externes') != null) {
29
 
30
			$application_str = Config::get('applications_externes');
31
			$this->applications = explode(';;',$application_str);
32
		} else {
33
			$this->applications = array();
34
		}
35
 
36
		if(Config::get('repertoire_applications_externes') != null) {
37
			$this->repertoire_applications = Config::get('repertoire_applications_externes');
38
		} else {
39
			$this->repertoire_applications = '';
40
		}
41
	}
42
 
43
	/**
44
	 * Parcourt le repertoire racine des application et cherche un fichier spécifique pour l'inscription
45
	 * et l'inclut, le cas échéant.
46
	 * @param l'identifiant de l'utilisateur
47
	 * @param le mail de l'utilisateur
48
	 */
49
	public function ajouterInscription($id_utilisateur, $mail) {
50
 
51
		$d = dir($this->repertoire_applications);
52
 
53
		$msg = '';
54
 
55
		// parcours du répertoire des appli
56
		while (false !== ($repertoire = $d->read())) {
57
			if ($repertoire != '.' || $repertoire != '..') {
58
				// on recherche un fichier de la forme nom_appli_inscription.inc.php
59
				if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php')) {
60
					include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php' ;
61
				}
62
			}
63
			if ($msg != '') $res .= $msg;
64
		}
65
 
66
		if($msg != '') {
67
			$msg = 'Attention certaines erreurs se son produites lors de l\'inscription '.$msg;
68
			trigger_error($msg, E_USER_WARNING);
69
		}
70
 
71
		$d->close();
72
 
73
		return true;
74
	}
75
 
76
 
77
	/**
78
	 * Parcourt le repertoire racine des application et cherche un fichier spécifique pour la modification
79
	 * et l'inclut, le cas échéant.
80
	 * @param l'identifiant de l'utilisateur
81
	 * @param le mail de l'utilisateur
82
	 */
83
	public function modifierInscription($id_utilisateur, $mail) {
84
		$d = dir($this->repertoire_applications);
85
 
86
		$msg = '';
87
 
88
		while (false !== ($repertoire = $d->read())) {
89
			if ($repertoire != '.' || $repertoire != '..') {
90
				if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php')) {
91
					include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php' ;
92
				}
93
			}
94
			if ($msg != '') $res .= $msg;
95
		}
96
 
97
		if($msg != '') {
98
			$msg = 'Attention certaines erreurs se sont produites lors de la modification de l\'inscription '.$msg;
99
			trigger_error($msg, E_USER_WARNING);
100
		}
101
 
102
		$d->close();
103
	}
104
 
105
	/**
106
	 * Parcourt le repertoire racine des application et cherche un fichier spécifique pour la suppression
107
	 * et l'inclut, le cas échéant.
108
	 * @param l'identifiant de l'utilisateur
109
	 * @param le mail de l'utilisateur
110
	 */
111
	public function supprimerInscription($id_utilisateur, $mail) {
112
 
113
		$d = dir($this->repertoire_applications);
114
 
115
		$msg = '';
116
 
117
		while (false !== ($repertoire = $d->read())) {
118
			if ($repertoire != '.' || $repertoire != '..') {
119
				if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php')) {
120
					include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php' ;
121
				}
122
			}
123
			if ($msg != '') $res .= $msg;
124
		}
125
 
126
		if($msg != '') {
127
			$msg = 'Attention certaines erreurs se sont produites lors de la desinscription '.$msg;
128
			trigger_error($msg, E_USER_WARNING);
129
		}
130
 
131
		$d->close();
132
	}
133
 
134
	/**
135
	 * Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode
136
	 * obtenirResume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
137
	 * de profil
138
	 * @param l'identifiant de l'utilisateur
139
	 * @param le mail de l'utilisateur
140
	 * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
141
	 * inclus dans la fiche profil
142
	 */
143
	public function obtenirResume($id_utilisateur, $mail) {
144
 
145
		$d = dir($this->repertoire_applications);
146
 
147
		$resumes = array();
148
 
149
		while (false !== ($repertoire = $d->read())) {
150
			if ($repertoire != '.' || $repertoire != '..') {
151
				if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php')) {
152
					include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php' ;
153
 
154
					if(class_exists($repertoire.'Resume')) {
155
 
156
						$classe = $repertoire.'Resume';
157
						$resume_appli = new $classe();
158
						$resumes[$repertoire] = $resume_appli->obtenirResume($id_utilisateur, $mail);
159
					}
160
				}
161
			}
162
		}
163
		$d->close();
164
 
165
		return $resumes;
166
	}
167
}
168
 
169
 
170
?>