Subversion Repositories eFlore/Applications.cel

Rev

Rev 2143 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2143 Rev 2458
Line 1... Line 1...
1
<?php
1
<?php
-
 
2
// declare(encoding='UTF-8');
2
/**
3
/**
3
 * Liste des utilisateurs du cel, par défaut les 50 premiers
4
 * Liste des utilisateurs du cel, par défaut les 50 premiers ou bien commencant par la chaine fournie en paramètre
4
 * ou bien commencant par la chaine fournie en paramètre
-
 
5
 * in : utf8
-
 
6
 * out : utf8
-
 
7
 *
5
 *
-
 
6
 * @internal   Mininum PHP version : 5.2
8
 * @category	PHP
7
 * @category   CEL
9
 * @package		jrest
8
 * @package    Services
-
 
9
 * @subpackage Observations
-
 
10
 * @version    0.1
-
 
11
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
-
 
12
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @author		Aurélien Peronnet <aurelien@tela-botanica.org>
13
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
11
 * @copyright	© 2010-2014 Tela-Botanica
14
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
15
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
16
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
13
 */
17
 */
14
class InventoryUserList extends Cel {
18
class InventoryUserList extends Cel {
Line 15... Line 19...
15
 
19
 
16
	function getElement($uid) {
20
	public function getElement($uid) {
Line 17... Line 21...
17
		$this->controleUtilisateur($uid[0]);
21
		$this->controleUtilisateur($uid[0]);
18
 
22
 
19
		$requete_utilisateurs ='SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '.
23
		$requete = 'SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '.
20
			$this->construireRequeteConditionTableUtilisateurs($uid).' '.
24
			$this->construireRequeteConditionTableUtilisateurs($uid).' '.
21
			'UNION '.
25
			'UNION '.
22
			'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
26
			'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
23
			'FROM cel_obs '.
27
			'FROM cel_obs '.
24
			$this->construireRequeteConditionTableObs($uid).' '.
-
 
-
 
28
			$this->construireRequeteConditionTableObs($uid).' '.
25
			'LIMIT 0,50';
29
			'LIMIT 0,50 '.
Line 26... Line 30...
26
 
30
			' -- '.__FILE__.':'.__LINE__;
27
		$utilisateurs = Cel::db()->requeter($requete_utilisateurs);
31
		$utilisateurs = Cel::db()->requeter($requete);
28
 
32
 
29
		$liste_utilisateurs = array();
33
		$liste_utilisateurs = array();
30
		if ($utilisateurs) {
34
		if ($utilisateurs) {
31
			foreach ($utilisateurs as $utilisateur) {
35
			foreach ($utilisateurs as $utilisateur) {
32
				$liste_utilisateurs[] = $utilisateur;
36
				$liste_utilisateurs[] = $utilisateur;
Line 33... Line 37...
33
			}
37
			}
34
		}
38
		}
35
		usort($liste_utilisateurs, 'trierUtilisateurs');
39
		usort($liste_utilisateurs, array($this, 'trierUtilisateurs'));
Line -... Line 40...
-
 
40
 
-
 
41
		$this->envoyerJson($liste_utilisateurs);
-
 
42
		return true;
-
 
43
	}
-
 
44
 
-
 
45
	public function trierUtilisateurs($val1, $val2) {
-
 
46
		if (strstr($val1['courriel'], '@')) {
-
 
47
			if (strstr($val2['courriel'], '@')) {
-
 
48
				return strcmp($val1['courriel'], $val2['courriel']);
-
 
49
			} else {
-
 
50
				return -1;
-
 
51
			}
-
 
52
		} else {
-
 
53
			if (strstr($val2['courriel'], '@')) {
-
 
54
				return 1;
-
 
55
			} else {
36
 
56
				return strcmp($val1['courriel'], $val2['courriel']);
37
		$this->envoyerJson($liste_utilisateurs);
57
			}
38
		return true;
58
		}
39
	}
59
	}
40
 
60
 
Line 51... Line 71...
51
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
71
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
52
			$condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%');
72
			$condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%');
53
		}
73
		}
54
		return $condition;
74
		return $condition;
55
	}
75
	}
56
}
-
 
57
 
-
 
58
function trierUtilisateurs($val1, $val2) {
-
 
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
	}
-
 
72
}
-
 
73
?>
-
 
74
76
}
-
 
77
75
78