Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1765 Rev 2143
Line 1... Line 1...
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
-
 
3
/**
2
/**
-
 
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
4
* PHP Version 5
6
 * out : utf8
5
*
7
 *
6
* @category  PHP
8
 * @category	PHP
7
* @package   jrest
9
 * @package		jrest
8
* @author    Aurélien Peronnet <aurelien@tela-botanica.org>
10
 * @author		Aurélien Peronnet <aurelien@tela-botanica.org>
9
* @copyright 2010 Tela-Botanica
11
 * @copyright	© 2010-2014 Tela-Botanica
10
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @version   SVN: <svn_id>
-
 
12
* @link      /doc/jrest/
-
 
13
*/
-
 
14
 
-
 
15
/**
-
 
16
* 
-
 
17
* Liste des utilisateurs du cel, par défaut les 50 premiers
-
 
18
* ou bien commencant par la chaine fournie en paramètre
-
 
19
* 
-
 
20
* in=utf8
-
 
21
* out utf8
-
 
22
* 
-
 
23
**/ 
13
 */
24
class InventoryUserList extends Cel {
14
class InventoryUserList extends Cel {
Line 25... Line 15...
25
 
15
 
26
    function getElement($uid){
-
 
27
        
16
	function getElement($uid) {
28
        $this->controleUtilisateur($uid[0]);
17
		$this->controleUtilisateur($uid[0]);
29
 
18
 
30
        $requete_utilisateurs ='SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '.
19
		$requete_utilisateurs ='SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '.
31
       						   $this->construireRequeteConditionTableUtilisateurs($uid).' '.
20
			$this->construireRequeteConditionTableUtilisateurs($uid).' '.
32
                               'UNION '.
21
			'UNION '.
33
                               'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
22
			'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
34
                               'FROM cel_obs '.
23
			'FROM cel_obs '.
35
        					   $this->construireRequeteConditionTableObs($uid).' '.
24
			$this->construireRequeteConditionTableObs($uid).' '.
36
							   'LIMIT 0,50';
25
			'LIMIT 0,50';
37
                            
26
 
38
        $utilisateurs = Cel::db()->executerRequete($requete_utilisateurs);
27
		$utilisateurs = Cel::db()->requeter($requete_utilisateurs);
39
    
28
 
40
    	$liste_utilisateurs = array();
29
		$liste_utilisateurs = array();
41
        if (!$utilisateurs) {
-
 
42
        	
-
 
43
        } else {
30
		if ($utilisateurs) {
44
        	foreach ($utilisateurs as $utilisateur) {
31
			foreach ($utilisateurs as $utilisateur) {
45
        		$liste_utilisateurs[] = $utilisateur;
32
				$liste_utilisateurs[] = $utilisateur;
46
        	}
-
 
47
        }
33
			}
48
                
34
		}
49
        usort($liste_utilisateurs,'trierUtilisateurs');
35
		usort($liste_utilisateurs, 'trierUtilisateurs');
50
            
36
 
51
		$this->envoyerJson($liste_utilisateurs);			
37
		$this->envoyerJson($liste_utilisateurs);
52
		return true;	
38
		return true;
53
    }
39
	}
54
    
40
 
55
    private function construireRequeteConditionTableUtilisateurs($params) {
-
 
56
    	
41
	private function construireRequeteConditionTableUtilisateurs($params) {
57
    	$condition = '';
-
 
58
    	
42
		$condition = '';
59
    	if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
43
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
60
        	$condition .= ' WHERE courriel LIKE '.Cel::db()->proteger($params[1].'%');
-
 
61
        } 
44
			$condition .= ' WHERE courriel LIKE '.Cel::db()->proteger($params[1].'%');
62
        
45
		}
63
        return $condition;
46
		return $condition;
64
    }
47
	}
65
    
48
 
66
    private function construireRequeteConditionTableObs($params) {
-
 
67
    	 
49
	private function construireRequeteConditionTableObs($params) {
68
    	$condition = '';
-
 
69
    	 
50
		$condition = '';
70
    	if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
51
		if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
71
    		$condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%');
52
			$condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%');
72
    	}
-
 
73
    
53
		}
74
    	return $condition;
54
		return $condition;
75
    }
55
	}
Line 76... Line 56...
76
}
56
}
77
 
-
 
78
function trierUtilisateurs($val1, $val2) {
57
 
79
        
-
 
80
	if (strstr($val1['courriel'],'@')) {
58
function trierUtilisateurs($val1, $val2) {
81
            
59
	if (strstr($val1['courriel'], '@')) {
82
    	if (strstr($val2['courriel'],'@')) { 
-
 
83
        	return strcmp($val1['courriel'],$val2['courriel']);
-
 
84
        }
60
		if (strstr($val2['courriel'], '@')) {
85
        else
61
			return strcmp($val1['courriel'], $val2['courriel']);
86
        {
-
 
87
        	return -1 ;
62
		} else {
88
        }
63
			return -1;
89
    } 
-
 
90
    else
64
		}
91
    {
65
	} else {
92
    	if (strstr($val2['courriel'],'@')) { 
-
 
93
        	return 1 ;
-
 
94
        }
66
		if (strstr($val2['courriel'], '@')) {
95
        else
67
			return 1;
96
        {
68
		} else {
97
        	return strcmp($val1['courriel'],$val2['courriel']) ;
69
			return strcmp($val1['courriel'], $val2['courriel']);
98
        }
70
		}
99
    }    
71
	}
100
}
72
}