Subversion Repositories eFlore/Applications.cel

Rev

Rev 798 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 798 Rev 1061
Line 40... Line 40...
40
		$methode .= str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($nom))));
40
		$methode .= str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($nom))));
41
		return $methode;
41
		return $methode;
42
	}
42
	}
Line 43... Line 43...
43
	
43
	
44
	//+----------------------------------------------------------------------------------------------------------------+
44
	//+----------------------------------------------------------------------------------------------------------------+
Line 45... Line 45...
45
	// GESTION DU DAO
45
	// GESTION des CLASSES CHARGÉES à la DEMANDE
46
	
46
	
47
	protected function getDao() {
47
	protected function getDao() {
48
		if (! isset($this->dao)) {
48
		if (! isset($this->dao)) {
Line 193... Line 193...
193
 
193
 
194
		$autorisation = (in_array($courriel, $courriels_autorises)) ? true : false ;
194
		$autorisation = (in_array($courriel, $courriels_autorises)) ? true : false ;
195
		return $autorisation;
195
		return $autorisation;
Line 196... Line -...
196
	}
-
 
197
	
-
 
198
	/**
-
 
199
	 * Prend en paramêtre un tableau de courriels et retourne après avoir intérogé un service we de l'annuaire
-
 
200
	 * une tableau avec en clé le courriel et en valeur, un tableau associatif :
-
 
201
	 *  - nom : le nom de l'utilisateur
-
 
202
	 *  - prenom : le prénom de l'utilisateur. 
-
 
203
	 * @param array $courriels un tableau de courriels pour lesquels il faut recherche le prénom et nom.
196
	}
204
	 */
197
	
205
	protected function recupererUtilisateursNomPrenom(Array $courriels) {
198
	protected function recupererUtilisateursIdentite(Array $courriels) {
206
		// Récupération des données au format Json
199
		// Récupération des données au format Json
207
		$service = "utilisateur/prenom-nom-par-courriel/".implode(',', $courriels);
200
		$service = "utilisateur/identite-par-courriel/".implode(',', $courriels);
208
		$url = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], $service);
201
		$url = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], $service);
-
 
202
		$json = $this->getDao()->consulter($url);
-
 
203
		$utilisateurs = json_decode($json);
-
 
204
		foreach ($courriels as $courriel) {
-
 
205
			$info = array('id' => null, 'intitule' => '');
-
 
206
			if (isset($utilisateurs->$courriel)) {
-
 
207
				$info['intitule'] = $utilisateurs->$courriel->intitule;
-
 
208
				$info['id'] = $utilisateurs->$courriel->id;
-
 
209
			} else {
-
 
210
				$info['intitule'] = $this->tronquerCourriel($courriel);
-
 
211
			}
-
 
212
			$noms[$courriel] = $info;
209
		$json = $this->getDao()->consulter($url);
213
		}	
Line 210... Line 214...
210
		return (array) json_decode($json);
214
		return $noms;
211
	}
215
	}
Line 222... Line 226...
222
		// Traitements des messages d'erreurs et données
226
		// Traitements des messages d'erreurs et données
223
		if (count($this->messages) != 0) {
227
		if (count($this->messages) != 0) {
224
			header('HTTP/1.1 500 Internal Server Error');
228
			header('HTTP/1.1 500 Internal Server Error');
225
			$mime = 'text/html';
229
			$mime = 'text/html';
226
			$encodage = 'utf-8';
230
			$encodage = 'utf-8';
227
			$json = true;
231
			$sortie = '<html>'.
228
			$sortie = $this->messages;
232
				'<head><title>Messages</title></head>'.
-
 
233
				'<body><pre>'.implode("\n", $this->messages).'</pre><body>'.
-
 
234
				'</html>';
229
		} else {
235
		} else {
230
			$sortie = $donnees;
236
			$sortie = $donnees;
231
			if (is_null($donnees)) {
237
			if (is_null($donnees)) {
232
				$sortie = 'OK';
238
				$sortie = 'OK';
233
			}
239
			}
Line 270... Line 276...
270
		print $message_echec;
276
		print $message_echec;
271
		exit(0);
277
		exit(0);
272
	}
278
	}
Line 273... Line 279...
273
	
279
	
274
	//+----------------------------------------------------------------------------------------------------------------+
280
	//+----------------------------------------------------------------------------------------------------------------+
-
 
281
	// GESTION DES SQUELETTES (PHP, TXT...)
-
 
282
	
-
 
283
	/**
-
 
284
	 * Méthode prenant en paramètre un tableau associatif, les clés seront recherchées dans le texte pour être
-
 
285
	 * remplacer par la valeur. Dans le texte, les clés devront être entre accolades : {}
-
 
286
	 *
-
 
287
	 * @param String $txt		le texte où chercher les motifs.
-
 
288
	 * @param Array  $donnees	un tableau associatif contenant les motifs à remplacer.
-
 
289
	 *
-
 
290
	 * @return String le texte avec les motifs remplacer par les valeurs du tableau.
-
 
291
	 */
-
 
292
	protected static function traiterSqueletteTxt($txt, Array $donnees = array()) {
-
 
293
		$motifs = array();
-
 
294
		$valeurs = array();
-
 
295
		foreach ($donnees as $cle => $valeur) {
-
 
296
			if (strpos($cle, '{') === false && strpos($cle, '}') === false) {
-
 
297
				$motifs = '{'.$cle.'}';
-
 
298
				$valeurs = $valeur;
-
 
299
			}
-
 
300
		}
-
 
301
		$txt = str_replace($motifs, $valeurs, $txt);
-
 
302
		return $txt;
Line 275... Line 303...
275
	// GESTION DES SQUELETTES PHP
303
	}
276
 
304
 
277
	/**
305
	/**
278
	 * Méthode prenant en paramètre un chemin de fichier squelette et un tableau associatif de données,
306
	 * Méthode prenant en paramètre un chemin de fichier squelette et un tableau associatif de données,
Line 327... Line 355...
327
		$contenu = str_replace('<?=', '<?php echo ',  $contenu);
355
		$contenu = str_replace('<?=', '<?php echo ',  $contenu);
328
		// Ajout systématique d'un point virgule avant la fermeture php
356
		// Ajout systématique d'un point virgule avant la fermeture php
329
		$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu);
357
		$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu);
330
		return $contenu;
358
		return $contenu;
331
	}
359
	}
-
 
360
	
-
 
361
	//+----------------------------------------------------------------------------------------------------------------+
-
 
362
	// UTILITAIRES
-
 
363
	
-
 
364
	/**
-
 
365
	 * Permet de trier un tableau multi-dimenssionnel en gardant l'ordre des clés.
-
 
366
	 * 
-
 
367
	 * @param Array $array le tableau à trier
-
 
368
	 * @param Array $cols tableau indiquant en clé la colonne à trier et en valeur l'ordre avec SORT_ASC ou SORT_DESC
-
 
369
	 * @author cagret at gmail dot com
-
 
370
	 * @see  http://fr.php.net/manual/fr/function.array-multisort.php Post du 21-Jun-2009 12:38
-
 
371
	 */
-
 
372
	public static function trierTableauMd($array, $cols) {
-
 
373
		$colarr = array();
-
 
374
		foreach ($cols as $col => $order) {
-
 
375
		$colarr[$col] = array();
-
 
376
			foreach ($array as $k => $row) {
-
 
377
				$colarr[$col]['_'.$k] = strtolower($row[$col]);
-
 
378
			}
-
 
379
		}
-
 
380
		$params = array();
-
 
381
		foreach ($cols as $col => $order) {
-
 
382
			$params[] =& $colarr[$col];
-
 
383
			$params = array_merge($params, (array)$order);
-
 
384
		}
-
 
385
		call_user_func_array('array_multisort', $params);
-
 
386
		$ret = array();
-
 
387
		$keys = array();
-
 
388
		$first = true;
-
 
389
		foreach ($colarr as $col => $arr) {
-
 
390
			foreach ($arr as $k => $v) {
-
 
391
				if ($first) {
-
 
392
					$keys[$k] = substr($k,1);
-
 
393
				}
-
 
394
				$k = $keys[$k];
-
 
395
				if (!isset($ret[$k])) {
-
 
396
					$ret[$k] = $array[$k];
-
 
397
				}
-
 
398
				$ret[$k][$col] = $array[$k][$col];
-
 
399
			}
-
 
400
			$first = false;
-
 
401
		}
-
 
402
		return $ret;
-
 
403
	}
332
}
404
}
333
?>
405
?>
334
406