Subversion Repositories Applications.annuaire

Rev

Rev 56 | Rev 84 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 56 Rev 63
1
<?php
1
<?php
2
/**
2
/**
3
* PHP Version 5
3
* PHP Version 5
4
*
4
*
5
* @category  PHP
5
* @category  PHP
6
* @package   annuaire
6
* @package   annuaire
7
* @author    aurelien <aurelien@tela-botanica.org>
7
* @author    aurelien <aurelien@tela-botanica.org>
8
* @copyright 2010 Tela-Botanica
8
* @copyright 2010 Tela-Botanica
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
10
* @version   SVN: <svn_id>
11
* @link      /doc/annuaire/
11
* @link      /doc/annuaire/
12
*/
12
*/
13
 
13
 
14
/**
14
/**
15
 * Controleur chargé de la propagation et le rassemblement d'informations extérieures
15
 * Controleur chargé de la propagation et le rassemblement d'informations extérieures
16
 * lors dce la consultation et modification des fiches utilisateurs
16
 * lors dce la consultation et modification des fiches utilisateurs
17
 */
17
 */
18
Class ApplicationExterneControleur extends Controleur {
18
Class ApplicationExterneControleur extends Controleur {
19
 
19
 
20
	private $applications_resume = null;
20
	private $applications_resume = null;
21
	private $applications_gestion = null;
21
	private $applications_gestion = null;
22
	private $repertoire_applications = null;
22
	private $repertoire_applications = null;
23
	private $mode_reponse = 'json';
23
	private $mode_reponse = 'json';
24
 
24
 
25
	public function ApplicationExterneControleur() {
25
	public function ApplicationExterneControleur() {
26
 
26
 
27
		$this->__construct();
27
		$this->__construct();
28
 
28
 
29
		// on charge les variables de classes à partir du fichier de configuration
29
		// on charge les variables de classes à partir du fichier de configuration
-
 
30
		if(Config::get('url_services_applications_inscription') != null) {
-
 
31
 
-
 
32
			$application_str = Config::get('url_services_applications_inscription');
-
 
33
			$this->applications_inscription = explode('##',$application_str);
-
 
34
		} else {
-
 
35
			$this->applications_inscription = array();
-
 
36
		}
-
 
37
 
-
 
38
		// on charge les variables de classes à partir du fichier de configuration
30
		if(Config::get('url_services_applications_resume') != null) {
39
		if(Config::get('url_services_applications_resume') != null) {
31
 
40
 
32
			$application_str = Config::get('url_services_applications_resume');
41
			$application_str = Config::get('url_services_applications_resume');
33
			$this->applications_resume = explode('##',$application_str);
42
			$this->applications_resume = explode('##',$application_str);
34
		} else {
43
		} else {
35
			$this->applications_resume = array();
44
			$this->applications_resume = array();
36
		}
45
		}
37
 
46
 
38
		// on charge les variables de classes à partir du fichier de configuration
47
		// on charge les variables de classes à partir du fichier de configuration
39
		if(Config::get('url_services_applications_gestion') != null) {
48
		if(Config::get('url_services_applications_gestion') != null) {
40
 
49
 
41
			$application_str = Config::get('url_services_applications_gestion');
50
			$application_str = Config::get('url_services_applications_gestion');
42
			$this->applications_gestion = explode('##',$application_str);
51
			$this->applications_gestion = explode('##',$application_str);
43
		} else {
52
		} else {
44
			$this->applications_gestion = array();
53
			$this->applications_gestion = array();
45
		}
54
		}
46
	}
55
	}
47
 
56
 
48
	/**
57
	/**
49
	 * Parcourt le repertoire racine des application et cherche un fichier spécifique pour l'inscription
58
	 * parcourt la liste des applications et appelle une adresse spécifique pour l'inscription
50
	 * et l'inclut, le cas échéant.
59
	 * et l'inclut, le cas échéant.
51
	 * @param l'identifiant de l'utilisateur
60
	 * @param l'identifiant de l'utilisateur
52
	 * @param le mail de l'utilisateur
61
	 * @param le mail de l'utilisateur
53
	 */
62
	 */
54
	public function ajouterInscription($id_utilisateur, $mail) {
63
	public function ajouterInscription($id_utilisateur, $mail) {
-
 
64
 
-
 
65
		if(count($this->applications_inscription) > 0) {
-
 
66
			foreach($this->applications_inscription as $application) {
-
 
67
 
-
 
68
				$inscription = @file_get_contents($application.'Inscription'.DS.$id_utilisateur.DS.$mail);
-
 
69
 
-
 
70
				if($inscription) {
-
 
71
				} else {
-
 
72
					echo 'Erreur d\'inscription à l\'application '.$application;
-
 
73
				}
-
 
74
			}
-
 
75
		}
55
 
76
 
56
		return true;
77
		return true;
57
	}
78
	}
58
 
79
 
59
 
80
 
60
	/**
81
	/**
61
	 * Parcourt le repertoire racine des application et cherche un fichier spécifique pour la modification
82
	 * parcourt la liste des applications et appelle une adresse spécifique pour la modification
62
	 * et l'inclut, le cas échéant.
83
	 * et l'inclut, le cas échéant.
63
	 * @param l'identifiant de l'utilisateur
84
	 * @param l'identifiant de l'utilisateur
64
	 * @param le mail de l'utilisateur
85
	 * @param le mail de l'utilisateur
65
	 */
86
	 */
66
	public function modifierInscription($id_utilisateur, $mail) {
87
	public function modifierInscription($id_utilisateur,$params) {
-
 
88
 
-
 
89
		if(count($this->applications_inscription) > 0) {
-
 
90
			foreach($this->applications_inscription as $application) {
-
 
91
 
-
 
92
				try {
-
 
93
				echo	$modification = @file_get_contents($application.'Modification/'.$this->fabriquerRequete($id_utilisateur, $params));
-
 
94
				} catch (Exception $e) {
-
 
95
					$modification = false;
-
 
96
				}
-
 
97
 
-
 
98
				if($modification) {
-
 
99
					echo 'modification de l\'appli '.$application.'<br />';
-
 
100
				} else {
-
 
101
					echo 'Erreur de modification  l\'application '.$application.'<br />';
-
 
102
				}
-
 
103
			}
-
 
104
		}
-
 
105
 
67
		return true;
106
		return true;
68
	}
107
	}
69
 
108
 
70
	/**
109
	/**
71
	 * Parcourt le repertoire racine des application et cherche un fichier spécifique pour la suppression
110
	 * parcourt la liste des applications et appelle une adresse spécifique pour la suppression
72
	 * et l'inclut, le cas échéant.
111
	 * et l'inclut, le cas échéant.
73
	 * @param l'identifiant de l'utilisateur
112
	 * @param l'identifiant de l'utilisateur
74
	 * @param le mail de l'utilisateur
113
	 * @param le mail de l'utilisateur
75
	 */
114
	 */
76
	public function supprimerInscription($id_utilisateur, $mail) {
115
	public function supprimerInscription($id_utilisateur, $mail) {
-
 
116
 
-
 
117
		if(count($this->applications_inscription) > 0) {
-
 
118
			foreach($this->applications_inscription as $application) {
-
 
119
 
-
 
120
				$suppression = @file_get_contents($application.'Suppression'.DS.$id_utilisateur.DS.$mail);
-
 
121
 
-
 
122
				if($suppression) {
-
 
123
 
-
 
124
				} else {
-
 
125
					echo 'Erreur de descinscription à l\'application '.$application;
-
 
126
				}
-
 
127
			}
-
 
128
		}
-
 
129
 
77
		return true;
130
		return true;
78
	}
131
	}
79
 
132
 
80
	/**
133
	/**
81
	 * Parcourt le repertoire racine des applications et appelle un web service contenant la méthode
134
	 * Parcourt le repertoire racine des applications et appelle un web service contenant la méthode
82
	 * Resume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
135
	 * Resume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
83
	 * de profil
136
	 * de profil
84
	 * @param l'identifiant de l'utilisateur
137
	 * @param l'identifiant de l'utilisateur
85
	 * @param le mail de l'utilisateur
138
	 * @param le mail de l'utilisateur
86
	 * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
139
	 * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
87
	 * inclus dans la fiche profil
140
	 * inclus dans la fiche profil
88
	 */
141
	 */
89
	public function obtenirResume($id_utilisateur, $mail) {
142
	public function obtenirResume($id_utilisateur, $mail) {
90
 
143
 
91
		$resumes = array();
144
		$resumes = array();
92
 
145
 
93
		if(count($this->applications_resume) > 0) {
146
		if(count($this->applications_resume) > 0) {
94
			foreach($this->applications_resume as $application) {
147
			foreach($this->applications_resume as $application) {
95
 
148
 
96
				$resume = @file_get_contents($application.'Resume'.DS.$id_utilisateur.DS.$mail);
149
				$resume = @file_get_contents($application.'Resume'.DS.$id_utilisateur.DS.$mail);
97
 
150
 
98
 
151
 
99
				if($resume) {
152
				if($resume) {
100
					$resume = json_decode($resume, true);
153
					$resume = json_decode($resume, true);
101
					//print_r($resume);
154
					//print_r($resume);
102
					$resumes[] = $resume;
155
					$resumes[] = $resume;
103
				} else {
156
				} else {
104
					echo $application.'Resume'.DS.$id_utilisateur.DS.$mail;
157
					echo $application.'Resume'.DS.$id_utilisateur.DS.$mail;
105
				}
158
				}
106
			}
159
			}
107
		}
160
		}
108
 
161
 
109
		return $resumes;
162
		return $resumes;
110
	}
163
	}
111
 
164
 
112
	 /** Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode
165
	 /** Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode
113
	 * obtenirResume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
166
	 * obtenirResume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
114
	 * de profil
167
	 * de profil
115
	 * @param l'identifiant de l'utilisateur
168
	 * @param l'identifiant de l'utilisateur
116
	 * @param le mail de l'utilisateur
169
	 * @param le mail de l'utilisateur
117
	 * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
170
	 * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
118
	 * inclus dans la fiche profil
171
	 * inclus dans la fiche profil
119
	 */
172
	 */
120
	public function gererInscription($id_utilisateur, $mail) {
173
	public function gererInscription($id_utilisateur, $mail) {
121
 
174
 
122
		$gestions = array();
175
		$gestions = array();
123
 
176
 
124
		if(count($this->applications_gestion) > 0) {
177
		if(count($this->applications_gestion) > 0) {
125
			foreach($this->applications_gestion as $application) {
178
			foreach($this->applications_gestion as $application) {
126
 
179
 
127
				$gestion = file_get_contents($application.'Gestion'.DS.$id_utilisateur.DS.$mail);
180
				$gestion = file_get_contents($application.'Gestion'.DS.$id_utilisateur.DS.$mail);
128
 
181
 
129
				if($gestion) {
182
				if($gestion) {
130
					$gestion = json_decode($gestion, true);
183
					$gestion = json_decode($gestion, true);
131
					$gestions[] = $gestion;
184
					$gestions[] = $gestion;
132
				} else {
185
				} else {
133
					echo $application.'Gestion'.DS.$id_utilisateur.DS.$mail;
186
					echo $application.'Gestion'.DS.$id_utilisateur.DS.$mail;
134
				}
187
				}
135
			}
188
			}
136
		}
189
		}
137
 
190
 
138
		return $gestions;
191
		return $gestions;
139
	}
192
	}
-
 
193
 
-
 
194
	private function fabriquerRequete($id, $params) {
-
 
195
 
-
 
196
		$requete = '?';
-
 
197
 
-
 
198
		foreach($params as $cle => $param) {
-
 
199
			$requete .= '&'.$cle.'='.$param;
-
 
200
		}
-
 
201
 
-
 
202
		return $requete;
-
 
203
	}
140
}
204
}
141
 
205
 
142
 
206
 
143
?>
207
?>