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