* @author Jean-Pascal MILCENT * @author Aurelien PERONNET * @license GPL v3 * @license CECILL v2 * @copyright 1999-2014 Tela Botanica */ class InventoryUserList extends Cel { public function getElement($uid) { $this->controleUtilisateur($uid[0]); $requete = '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 '. ' -- '.__FILE__.':'.__LINE__; $utilisateurs = Cel::db()->requeter($requete); $liste_utilisateurs = array(); if ($utilisateurs) { foreach ($utilisateurs as $utilisateur) { $liste_utilisateurs[] = $utilisateur; } } usort($liste_utilisateurs, array($this, 'trierUtilisateurs')); $this->envoyerJson($liste_utilisateurs); return true; } public 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']); } } } private function construireRequeteConditionTableUtilisateurs($params) { $condition = ''; if (isset($params[1]) && $params[1] != null && $params[1] != '*') { $condition .= ' WHERE courriel LIKE '.Cel::db()->proteger($params[1].'%'); } return $condition; } private function construireRequeteConditionTableObs($params) { $condition = ''; if (isset($params[1]) && $params[1] != null && $params[1] != '*') { $condition .= ' WHERE courriel_utilisateur LIKE '.Cel::db()->proteger($params[1].'%'); } return $condition; } }