Subversion Repositories eFlore/Applications.cel

Rev

Rev 2458 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
416 aurelien 1
<?php
2458 jpm 2
// declare(encoding='UTF-8');
887 aurelien 3
/**
2458 jpm 4
 * Liste des utilisateurs du cel, par défaut les 50 premiers ou bien commencant par la chaine fournie en paramètre
2143 jpm 5
 *
2458 jpm 6
 * @internal   Mininum PHP version : 5.2
7
 * @category   CEL
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>
13
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
14
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
15
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
16
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
2143 jpm 17
 */
754 aurelien 18
class InventoryUserList extends Cel {
416 aurelien 19
 
2458 jpm 20
	public function getElement($uid) {
2143 jpm 21
		$this->controleUtilisateur($uid[0]);
416 aurelien 22
 
2458 jpm 23
		$requete = 'SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '.
2143 jpm 24
			$this->construireRequeteConditionTableUtilisateurs($uid).' '.
25
			'UNION '.
26
			'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
27
			'FROM cel_obs '.
28
			$this->construireRequeteConditionTableObs($uid).' '.
2458 jpm 29
			'LIMIT 0,50 '.
30
			' -- '.__FILE__.':'.__LINE__;
31
		$utilisateurs = Cel::db()->requeter($requete);
2143 jpm 32
 
33
		$liste_utilisateurs = array();
34
		if ($utilisateurs) {
35
			foreach ($utilisateurs as $utilisateur) {
36
				$liste_utilisateurs[] = $utilisateur;
37
			}
38
		}
2458 jpm 39
		usort($liste_utilisateurs, array($this, 'trierUtilisateurs'));
2143 jpm 40
 
41
		$this->envoyerJson($liste_utilisateurs);
42
		return true;
43
	}
44
 
2458 jpm 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 {
56
				return strcmp($val1['courriel'], $val2['courriel']);
57
			}
58
		}
59
	}
60
 
2143 jpm 61
	private function construireRequeteConditionTableUtilisateurs($params) {
62
		$condition = '';
63
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
64
			$condition .= ' WHERE courriel LIKE '.Cel::db()->proteger($params[1].'%');
65
		}
66
		return $condition;
67
	}
68
 
69
	private function construireRequeteConditionTableObs($params) {
70
		$condition = '';
71
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
72
			$condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%');
73
		}
74
		return $condition;
75
	}
2458 jpm 76
}