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;
}
}
?>