예제 #1
0
 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);
 }