Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
416 aurelien 1
<?php
887 aurelien 2
/**
2143 jpm 3
 * Liste des utilisateurs du cel, par défaut les 50 premiers
4
 * ou bien commencant par la chaine fournie en paramètre
5
 * in : utf8
6
 * out : utf8
7
 *
8
 * @category	PHP
9
 * @package		jrest
10
 * @author		Aurélien Peronnet <aurelien@tela-botanica.org>
11
 * @copyright	© 2010-2014 Tela-Botanica
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
13
 */
754 aurelien 14
class InventoryUserList extends Cel {
416 aurelien 15
 
2143 jpm 16
	function getElement($uid) {
17
		$this->controleUtilisateur($uid[0]);
416 aurelien 18
 
2143 jpm 19
		$requete_utilisateurs ='SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '.
20
			$this->construireRequeteConditionTableUtilisateurs($uid).' '.
21
			'UNION '.
22
			'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
23
			'FROM cel_obs '.
24
			$this->construireRequeteConditionTableObs($uid).' '.
25
			'LIMIT 0,50';
26
 
27
		$utilisateurs = Cel::db()->requeter($requete_utilisateurs);
28
 
29
		$liste_utilisateurs = array();
30
		if ($utilisateurs) {
31
			foreach ($utilisateurs as $utilisateur) {
32
				$liste_utilisateurs[] = $utilisateur;
33
			}
34
		}
35
		usort($liste_utilisateurs, 'trierUtilisateurs');
36
 
37
		$this->envoyerJson($liste_utilisateurs);
38
		return true;
39
	}
40
 
41
	private function construireRequeteConditionTableUtilisateurs($params) {
42
		$condition = '';
43
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
44
			$condition .= ' WHERE courriel LIKE '.Cel::db()->proteger($params[1].'%');
45
		}
46
		return $condition;
47
	}
48
 
49
	private function construireRequeteConditionTableObs($params) {
50
		$condition = '';
51
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
52
			$condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%');
53
		}
54
		return $condition;
55
	}
416 aurelien 56
}
57
 
58
function trierUtilisateurs($val1, $val2) {
2143 jpm 59
	if (strstr($val1['courriel'], '@')) {
60
		if (strstr($val2['courriel'], '@')) {
61
			return strcmp($val1['courriel'], $val2['courriel']);
62
		} else {
63
			return -1;
64
		}
65
	} else {
66
		if (strstr($val2['courriel'], '@')) {
67
			return 1;
68
		} else {
69
			return strcmp($val1['courriel'], $val2['courriel']);
70
		}
71
	}
1014 aurelien 72
}
850 aurelien 73
?>