[BUGFIX] Doctrine: Consider MySQL index subpart information in upgrade wizards
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / InterfaceState / ExtDirect / DataProvider.php
1 <?php
2 namespace TYPO3\CMS\Backend\InterfaceState\ExtDirect;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 /**
18 * ExtDirect DataProvider for State
19 */
20 class DataProvider
21 {
22 /**
23 * @var \TYPO3\CMS\Backend\Controller\UserSettingsController
24 */
25 protected $userSettingsController;
26
27 /**
28 * Constructor
29 */
30 public function __construct()
31 {
32 // All data is saved in BE_USER->uc
33 $this->userSettingsController = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
34 \TYPO3\CMS\Backend\Controller\UserSettingsController::class
35 );
36 }
37
38 /**
39 * Gets state for given key
40 *
41 * @param \stdClass $parameter
42 * @return array
43 */
44 public function getState($parameter)
45 {
46 $key = $parameter->params->key;
47 $data = $this->userSettingsController->process('get', $key);
48 return [
49 'success' => true,
50 'data' => $data
51 ];
52 }
53
54 /**
55 * Save the state for a given key
56 *
57 * @param \stdClass $parameter
58 * @return array
59 */
60 public function setState($parameter)
61 {
62 $key = $parameter->params->key;
63 $data = json_decode($parameter->params->data);
64 foreach ($data as $setting) {
65 $this->userSettingsController->process('set', $key . '.' . $setting->name, $setting->value);
66 }
67 return [
68 'success' => true,
69 'params' => $parameter
70 ];
71 }
72 }