Fixed bug #16738: Add ExtDirect Stateprovider for ExtJs States
[Packages/TYPO3.CMS.git] / t3lib / extjs / dataprovider / class.extdirect_dataprovider_state.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 2010 Steffen Kamper <steffen@typo3.org>
6 * All rights reserved
7 *
8 * This script is part of the TYPO3 project. The TYPO3 project is
9 * free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * The GNU General Public License can be found at
15 * http://www.gnu.org/copyleft/gpl.html.
16 * A copy is found in the textfile GPL.txt and important notices to the license
17 * from the author is found in LICENSE.txt distributed with these scripts.
18 *
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27
28 /**
29 * ExtDirect DataProvider for State
30 */
31 class extDirect_DataProvider_State {
32
33 /** @var extDirect_DataProvider_BackenduserSettings */
34 protected $userSettings;
35
36 /**
37 * Constructor
38 *
39 * @return void
40 */
41 public function __construct() {
42 //all data is saved in BE_USER->uc
43 $this->userSettings = t3lib_div::makeInstance('extDirect_DataProvider_BackenduserSettings');
44 }
45
46 /**
47 * Gets state for given key
48 *
49 * @param stdClass $parameter
50 * @return array
51 */
52 public function getState($parameter) {
53 $key = $parameter->params->key;
54 $data = $this->userSettings->get($key);
55
56 return array(
57 'success' => TRUE,
58 'data' => $data
59 );
60 }
61
62 /**
63 * Save the state for a given key
64 *
65 * @param stdClass $parameter
66 * @return array
67 */
68 public function setState($parameter) {
69 $key = $parameter->params->key;
70 $data = json_decode($parameter->params->data);
71
72 $this->userSettings->set($key . '.' . $data[0]->name, $data[0]->value);
73 return array(
74 'success' => TRUE,
75 'params' => $parameter
76 );
77 }
78
79
80 }
81
82 if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/extjs/dataprovider/class.extdirect_dataprovider_state.php'])) {
83 include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/extjs/dataprovider/class.extdirect_dataprovider_state.php']);
84 }
85
86 ?>