* @copyright 2010 Tela-Botanica * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @version SVN: * @link /doc/jrest/ */ /** * Liste les date de releves par utilisateur * * in=utf8 * out=utf8 * **/ class InventoryDateList extends Cel { private $correspondance_fonction = array(1 => 'year', 2 => 'month', 3 => 'day'); /** * @param int uid[0] : utilisateur obligatoire * @param int uid[1] : si absent : valeur 'all' (annee) * @param int uid[2] : si absent : valeur 'all' (mois) * @param int uid[3] : si absent : valeur 'all' (jour) */ function getElement($uid){ // Controle detournement utilisateur $this->controleUtilisateur($uid[0]); $condition_requete = $this->traiterParametresEtConstruireRequete($uid); $requete_liste_dates = 'SELECT DISTINCT '. 'date_observation AS id '. 'FROM cel_obs WHERE '.$condition_requete.' '. 'ORDER BY date_observation'; $liste_dates = Cel::db()->executerRequete($requete_liste_dates); $liste_dates = $this->formaterListeResultats($liste_dates); $this->envoyerJson($liste_dates); return true; } private function formaterListeResultats($liste_dates) { if (!$liste_dates) { $liste_dates = array(); } foreach($liste_dates as &$date) { $date_heures = explode(' ',$date['id']); if(count($date_heures) > 1) { $date = $date_heures[0]; } $date = $date; } return $liste_dates; } private function traiterParametresEtConstruireRequete($params) { $requete_condition = ' ce_utilisateur = '.Cel::db()->proteger($params[0]); $taille_tableau_parametres = count($params); for($i=1; $i < $taille_tableau_parametres; $i++) { if($this->estUnParametreDate($params[$i])) { $fonction_date = $this->correspondance_fonction[$i]; $requete_condition .= ' AND '.$fonction_date.'(date_observation) = '.Cel::db()->proteger($params[$i]); } } return $requete_condition; } private function estUnParametreDate($valeur) { return is_numeric($valeur) && $valeur != "all"; } } ?>