Subversion Repositories eFlore/Applications.cel

Rev

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

<?php
// declare(encoding='UTF-8');
/**
 * Service fournissant des informations sur les widgets existants et permettant d'en créer d'autres.
 *
 * Format du service :
 * /CelWidgetExport/format
 * /CelWidgetExport/csv
 *
 * Les paramêtres :
 *  - "start" indique le numéro du premier item à afficher
 *  - "limit" nombre d'items à afficher
 *
 * @internal   Mininum PHP version : 5.2
 * @category   CEL
 * @package    Services
 * @subpackage Widget
 * @version    0.1
 * @author     Delphine CAUQUIL <delphine@tela-botanica.org>
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @copyright  1999-2017 Tela Botanica <accueil@tela-botanica.org>
 */


class CelWidgetManager extends Cel {

        // certains paramètres apparaissent plusieurs fois car ils ont des alias
        // dans certains widgets
        private $parametres_autorises = array(
                'projet' => 'projet',
                'type' => 'type',
                'esttype' => 'est_type',
                'langue' => 'langue',
                'order' => 'order'
        );

        public function getRessource() {
                return $this->getElement(array());
        }

        /**
         * Méthode appelée avec une requête de type GET.
         */
        public function getElement($params = array()) { 
                switch(@strtolower($params[0])) {
                case 'widget':
                        $this->getWidget();
                        break;


                default:
                        $this->getWidget();
                }
        }
        
        
        public function createElement($requeteDonnees) {
                unset($requeteDonnees['signup_submit']);
                $requeteDonnees['est_type'] = (isset($requeteDonnees['est_type']) && $requeteDonnees['est_type']== "on") ? '1' : '0';
                $manager = new GestionWidget($this->config);
                $retour = $manager->ajouterWidget($requeteDonnees);
                $this->envoyerJson($retour);

        }
        
        public function updateElement($uid,$params) {
                $retour = "";
                if (isset($params['projet']) && isset($params['langue'])) {
                        $manager = new GestionWidget($this->config);
                        $params['est_type'] = (isset($params['est_type']) && $params['est_type']== "on") ? '1' : '0';
                        $retour = $manager->modifierWidget($params['projet'], $params['langue'], $params);
                        
                }
                $this->envoyerJson($retour);
                return "ff";
                
        }

        private function getWidget() {
                $criteres = $this->traiterParametresAutorises($_GET);
                $manager = new GestionWidget($this->config);
                $liste = $manager->obtenirWidget($criteres);
        

                $this->envoyerJson($liste);
        }


        protected function traiterParametresAutorises(Array $parametres) {
                $parametres_traites = array();
                
                foreach($parametres as $cle => $valeur) {
                        if(is_string($valeur) && !trim($valeur)) continue;
                        if(isset($this->parametres_autorises[$cle])) {
                                $parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
                        }
                }
                return $parametres_traites;
        }


}
?>