Subversion Repositories eFlore/Applications.cel

Rev

Rev 1425 | Rev 2143 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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