/** * Create the settings inheriting default values defined in the type * */ protected function createSettings() { $type_settings = $this->type->getSettings(); /** @var srCertificateTypeSetting $type_setting */ foreach ($type_settings as $type_setting) { $setting = srCertificateDefinitionSetting::where(array('definition_id' => $this->getId(), 'identifier' => $type_setting->getIdentifier()))->first(); if (!$setting) { $setting = new srCertificateDefinitionSetting(); $setting->create(); } $setting->setIdentifier($type_setting->getIdentifier()); $setting->setDefinitionId($this->getId()); $setting->setValue($type_setting->getValue()); $setting->update(); $this->settings[] = $setting; } foreach ($this->type->getCustomSettings() as $custom_setting) { $setting = srCertificateCustomDefinitionSetting::where(array('definition_id' => $this->getId(), 'identifier' => $type_setting->getIdentifier()))->first(); if (!$setting) { $setting = new srCertificateCustomDefinitionSetting(); $setting->create(); } $setting->setDefinitionId($this->getId()); $setting->setValue($custom_setting->getValue()); $setting->setIdentifier($custom_setting->getIdentifier()); $setting->update(); $this->custom_settings[] = $setting; } }
/** * Get settings */ protected function buildData() { $data = array(); /** @var $setting srCertificateTypeSetting */ foreach ($this->type->getSettings() as $setting) { $row = array(); $row['identifier'] = $setting->getIdentifier(); $row['setting'] = $this->pl->txt("setting_id_" . $setting->getIdentifier()); $row['editable_in'] = implode(',', $setting->getEditableIn()); $default_value = $setting->getValue(); switch ($setting->getIdentifier()) { case srCertificateTypeSetting::IDENTIFIER_VALIDITY_TYPE: $default_value = $this->pl->txt("setting_validity_{$default_value}"); break; case srCertificateTypeSetting::IDENTIFIER_VALIDITY: $validity_type = $this->type->getSettingByIdentifier(srCertificateTypeSetting::IDENTIFIER_VALIDITY_TYPE)->getValue(); if ($default_value && $validity_type == srCertificateTypeSetting::VALIDITY_TYPE_DATE_RANGE) { $date_data = json_decode($default_value); $default_value = sprintf($this->pl->txt('validity_date_range'), $date_data->m, $date_data->d); } break; } $row['default_value'] = $default_value; $data[] = $row; } $this->setData($data); }