. */ namespace SP\Modules\Web\Controllers; use SP\Http\JsonResponse; use SP\Http\Request; use SP\Modules\Web\Controllers\Traits\JsonTrait; use SP\Services\User\UserService; /** * Class UserSettingsGeneralController * @package SP\Modules\Web\Controllers */ class UserSettingsGeneralController extends SimpleControllerBase { use JsonTrait; /** * @var UserService */ protected $userService; /** * saveAction */ public function saveAction() { $userData = $this->session->getUserData(); $userPreferencesData = clone $userData->getPreferences(); $userPreferencesData->setUserId($userData->getId()); $userPreferencesData->setLang(Request::analyzeString('userlang')); $userPreferencesData->setTheme(Request::analyzeString('usertheme', 'material-blue')); $userPreferencesData->setResultsPerPage(Request::analyzeInt('resultsperpage', 12)); $userPreferencesData->setAccountLink(Request::analyzeBool('account_link', false)); $userPreferencesData->setSortViews(Request::analyzeBool('sort_views', false)); $userPreferencesData->setTopNavbar(Request::analyzeBool('top_navbar', false)); $userPreferencesData->setOptionalActions(Request::analyzeBool('optional_actions', false)); $userPreferencesData->setResultsAsCards(Request::analyzeBool('resultsascards', false)); try { $this->userService->updatePreferencesById($userData->getId(), $userPreferencesData); // Guardar las preferencias en la sesión $userData->setPreferences($userPreferencesData); $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Preferencias actualizadas')); } catch (\Exception $e) { processException($e); $this->returnJsonResponseException($e); } } /** * initialize */ protected function initialize() { $this->userService = $this->dic->get(UserService::class); } }