Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
3092 delphine 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Service fournissant des informations sur les widgets existants et permettant d'en créer d'autres.
5
 *
6
 * Format du service :
7
 * /CelWidgetExport/format
8
 * /CelWidgetExport/csv
9
 *
10
 * Les paramêtres :
11
 *  - "start" indique le numéro du premier item à afficher
12
 *  - "limit" nombre d'items à afficher
13
 *
14
 * @internal   Mininum PHP version : 5.2
15
 * @category   CEL
16
 * @package    Services
17
 * @subpackage Widget
18
 * @version    0.1
19
 * @author     Delphine CAUQUIL <delphine@tela-botanica.org>
20
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
21
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
22
 * @copyright  1999-2017 Tela Botanica <accueil@tela-botanica.org>
23
 */
24
 
25
 
26
class CelWidgetManager extends Cel {
27
 
28
	// certains paramètres apparaissent plusieurs fois car ils ont des alias
29
	// dans certains widgets
30
	private $parametres_autorises = array(
31
		'projet' => 'projet',
32
		'type' => 'type',
33
		'esttype' => 'est_type',
34
		'langue' => 'langue',
35
		'order' => 'order'
36
	);
37
 
38
	public function getRessource() {
39
		return $this->getElement(array());
40
	}
41
 
42
	/**
43
	 * Méthode appelée avec une requête de type GET.
44
	 */
45
	public function getElement($params = array()) {
46
		switch(@strtolower($params[0])) {
47
		case 'widget':
48
			$this->getWidget();
49
			break;
50
 
51
 
52
		default:
53
			$this->getWidget();
54
		}
55
	}
56
 
57
 
58
	public function createElement($requeteDonnees) {
59
		unset($requeteDonnees['signup_submit']);
60
		$requeteDonnees['est_type'] = (isset($requeteDonnees['est_type']) && $requeteDonnees['est_type']== "on") ? '1' : '0';
61
		$manager = new GestionWidget($this->config);
62
		$retour = $manager->ajouterWidget($requeteDonnees);
63
		$this->envoyerJson($retour);
64
 
65
	}
66
 
3121 delphine 67
	public function updateElement($uid,$params) {
68
		$retour = "";
69
		if (isset($params['projet']) && isset($params['langue'])) {
70
			$manager = new GestionWidget($this->config);
71
			$params['est_type'] = (isset($params['est_type']) && $params['est_type']== "on") ? '1' : '0';
72
			$retour = $manager->modifierWidget($params['projet'], $params['langue'], $params);
73
 
74
		}
75
		$this->envoyerJson($retour);
76
		return "ff";
3092 delphine 77
 
78
	}
79
 
80
	private function getWidget() {
81
		$criteres = $this->traiterParametresAutorises($_GET);
82
		$manager = new GestionWidget($this->config);
83
		$liste = $manager->obtenirWidget($criteres);
84
 
85
 
86
		$this->envoyerJson($liste);
87
	}
88
 
89
 
90
	protected function traiterParametresAutorises(Array $parametres) {
91
		$parametres_traites = array();
92
 
93
		foreach($parametres as $cle => $valeur) {
94
			if(is_string($valeur) && !trim($valeur)) continue;
95
			if(isset($this->parametres_autorises[$cle])) {
96
				$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
97
			}
98
		}
99
		return $parametres_traites;
100
	}
101
 
102
 
103
}
104
?>