Subversion Repositories eFlore/Applications.cel

Rev

Rev 1014 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
/**
* PHP Version 5
*
* @category  PHP
* @package   jrest
* @author    Aurélien Peronnet <aurelien@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version   SVN: <svn_id>
* @link      /doc/jrest/
*/

/**
* 
* Liste des utilisateurs du cel, par défaut les 50 premiers
* ou bien commencant par la chaine fournie en paramètre
* 
* in=utf8
* out utf8
* 
**/ 
class InventoryUserList extends Cel {

    function getElement($uid){
        
        $this->controleUtilisateur($uid[0]);

        $requete_utilisateurs ='SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '.
                                                   $this->construireRequeteConditionTableUtilisateurs($uid).' '.
                               'UNION '.
                               'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '.
                               'FROM cel_obs '.
                                                   $this->construireRequeteConditionTableObs($uid).' '.
                                                           'LIMIT 0,50';
                            
        $utilisateurs = $this->executerRequete($requete_utilisateurs);
    
        $liste_utilisateurs = array();
        if (!$utilisateurs) {
                
        } else {
                foreach ($utilisateurs as $utilisateur) {
                        $liste_utilisateurs[] = $utilisateur;
                }
        }
                
        usort($liste_utilisateurs,'trierUtilisateurs');
            
                $this->envoyerJson($liste_utilisateurs);                        
                return true;    
    }
    
    private function construireRequeteConditionTableUtilisateurs($params) {
        
        $condition = '';
        
        if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
                $condition .= ' WHERE courriel LIKE '.$this->proteger($params[1].'%');
        } 
        
        return $condition;
    }
    
    private function construireRequeteConditionTableObs($params) {
         
        $condition = '';
         
        if (isset($params[1]) && $params[1] != null && $params[1] != '*') {
                $condition .= ' WHERE courriel_utilisateur LIKE '.$this->proteger($params[1].'%');
        }
    
        return $condition;
    }
}

function trierUtilisateurs($val1, $val2) {
        
        if (strstr($val1['courriel'],'@')) {
            
        if (strstr($val2['courriel'],'@')) { 
                return strcmp($val1['courriel'],$val2['courriel']);
        }
        else
        {
                return -1 ;
        }
    } 
    else
    {
        if (strstr($val2['courriel'],'@')) { 
                return 1 ;
        }
        else
        {
                return strcmp($val1['courriel'],$val2['courriel']) ;
        }
    }    
}
?>