Subversion Repositories eFlore/Applications.cel

Rev

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

<?php
class CelValidationObservation extends Cel {
        
        /**
        * Méthode appelée avec une requête de type POST avec un identifiant d'obs.
        * Modifie le taxon associé à une observation avec les informations envoyées
        *
        * @param int $uid[0] identifiant observation
        * @param pairs array tableau contenant les valeurs à modifier
        */
        public function updateElement($uid,$pairs)
        {
                // ce service est uniquement destiné à être appelé en local, 
                // depuis le serveur lui même 
                // en particulier par l'application identiplante
                $this->controleAppelIpAutorisee();
                $this->verifierParametresObligatoires($uid, $pairs);
                $id = $uid[0];

                $gestion_observation = new GestionObservation($this->config);
                $utilisateur = $pairs['ce_utilisateur'];
                unset($pairs['ce_utilisateur']);
                $modification = $gestion_observation->modifierObservationPublique($utilisateur, $id, $pairs);
                
                if($modification !== false) {
                        $resultat = 'ok';
                        $this->envoyer($resultat);
                        exit;
                } else {
                        $info = array();
                        $info = 'Impossible de modifier l\'observation associée à cet identifiant ';
                        $this->envoyer($info, 'text/html', 'utf-8', false);
                        exit;
                }
        }
        
        private function verifierParametresObligatoires($uid ,$params) {
                $params_obligatoires = array('id_observation',
                                                         'ce_utilisateur',
                                                         'nom_sel');
                $info = array();
                
                if(!isset($uid[0]) || !is_numeric($uid[0])) {
                        $info .= 'l\' identifiant doit être un entier ';
                }
                
                foreach($params_obligatoires as $param) {
                        if(!isset($params[$param]) || trim($params[$param]) == "") {
                                $info = 'le paramètre '.$param.' doit exister et ne peut pas être vide ';
                        }
                }
                
                if(!empty($info)) {
                        $this->envoyer($info, 'text/html', 'utf-8', false);
                        exit;
                }
        }
}
?>