protected function actionSaveState($params) { //close writing to session so other concurrent requests won't be locked out. GO::session()->closeWriting(); if (isset($params['values'])) { $values = json_decode($params['values'], true); if (!is_array($values)) { trigger_error("Invalid value for Core::actionSaveState: " . var_export($params, true), E_USER_NOTICE); } else { foreach ($values as $name => $value) { $state = \GO\Base\Model\State::model()->findByPk(array('name' => $name, 'user_id' => GO::user()->id)); if (!$state) { $state = new \GO\Base\Model\State(); $state->name = $name; } $state->value = $value; $state->save(); } } } $response['success'] = true; echo json_encode($response); }