public function delete() { // Delete setting on all definitions foreach (srCertificateDefinition::where(array('type_id' => $this->getTypeId()))->get() as $definition) { /** @var srCertificateDefinition $setting */ $setting = srCertificateCustomDefinitionSetting::where(array('definition_id' => $definition->getId(), 'identifier' => $this->getIdentifier()))->first(); if ($setting) { $setting->delete(); } } parent::delete(); }
$cert->save(); } } ?> <#8> <?php if (!$ilDB->tableColumnExists('cert_type_setting', 'value')) { $ilDB->renameTableColumn('cert_type_setting', 'default_value', 'value'); } ?> <#9> <?php require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/CustomSetting/class.srCertificateCustomTypeSetting.php'; require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/CustomSetting/class.srCertificateCustomDefinitionSetting.php'; srCertificateCustomTypeSetting::installDB(); srCertificateCustomDefinitionSetting::installDB(); ?> <#10> <?php if (!$ilDB->tableColumnExists('uihkcertificate_c', 'value')) { $ilDB->renameTableColumn('uihkcertificate_c', 'config_value', 'value'); } if (!$ilDB->tableColumnExists('uihkcertificate_c', 'name')) { $ilDB->renameTableColumn('uihkcertificate_c', 'config_key', 'name'); } ?> <#11> <?php // We will add one default certificate definition for easier installation. require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Definition/class.srCertificateDefinition.php'; $type = new srCertificateType();
/** * @return array srCertificateCustomDefinitionSetting[] */ public function getCustomSettings() { if (is_null($this->custom_settings)) { $this->custom_settings = srCertificateCustomDefinitionSetting::where(array('definition_id' => $this->getId()))->get(); } return $this->custom_settings; }
/** * @return bool */ public function saveObject() { if (!$this->checkInput()) { return false; } try { $this->setting->setTypeId((int) $_GET['type_id']); $this->setting->setIdentifier($this->getInput('identifier')); $this->setting->setSettingTypeId($this->getInput('setting_type_id')); $this->setting->setData($this->getInput('data')); $this->setting->setValue($this->getInput('value')); $this->setting->setEditableIn($this->getInput('editable_in')); /** @var srCertificateType $type */ $type = srCertificateType::find($this->setting->getTypeId()); foreach ($type->getLanguages() as $lang_code) { $this->setting->setLabel($this->getInput("label_{$lang_code}"), $lang_code); } $this->setting->save(); // Check if existing definitions should be updated to own this setting if ($this->getInput('update_definitions')) { $definitions = srCertificateDefinition::where(array('type_id' => $type->getId()))->get(); /** @var $def srCertificateDefinition */ foreach ($definitions as $def) { $definition_setting = new srCertificateCustomDefinitionSetting(); $definition_setting->setDefinitionId($def->getId()); $definition_setting->setIdentifier($this->setting->getIdentifier()); $definition_setting->setValue($this->setting->getValue()); $definition_setting->save(); } } } catch (ilException $e) { ilUtil::sendFailure($e->getMessage()); return false; } return true; }