protected function saveSettings($data) { $componentPlaceUniqName = $data['componentId']; $entity = $data['entity']; $settings = $data['settings']; $componentId = $this->componentService->findComponentPlace($componentPlaceUniqName, $entity)->componentId; $componentClass = $this->componentService->findComponent($componentId)->className; try { $this->validateComponentSettingList($componentClass, $settings, $data['place'], $data); } catch (WidgetSettingValidateException $e) { return array('error' => array('message' => $e->getMessage(), 'field' => $e->getFieldName())); } $settings = $this->processSettingList($componentClass, $settings, $data['place'], false, $data); $this->componentService->saveComponentSettingList($componentPlaceUniqName, $entity, $settings); $componentSettings = $this->componentService->findSettingList($componentPlaceUniqName, $entity); $this->clearCache($data['place'], $entity); return array('settingList' => $componentSettings); }