/** * @return bool */ public function saveObject() { if (!$this->fillObject()) { return false; } if ($this->placeholder->getId()) { $this->placeholder->update(); } else { $this->placeholder->create(); if ($this->getInput('update_definitions')) { $type = $this->placeholder->getCertificateType(); $definitions = srCertificateDefinition::where(array('type_id' => $type->getId()))->get(); /** @var $def srCertificateDefinition */ foreach ($definitions as $def) { $phv = srCertificatePlaceholderValue::where(array('definition_id' => $def->getId(), 'placeholder_id' => $this->placeholder->getId()))->first(); if (!is_null($phv)) { continue; // Extra check... should never be the case } $phv = new srCertificatePlaceholderValue(); $phv->setDefinitionId($def->getId()); $phv->setPlaceholderId($this->placeholder->getId()); foreach ($type->getLanguages() as $lang_code) { $phv->setValue($this->getInput("default_value_{$lang_code}"), $lang_code); } $phv->create(); } } } return true; }
<#2> <?php /* * Create tables */ require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Type/class.srCertificateType.php'; require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Definition/class.srCertificateDefinition.php'; require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Placeholder/class.srCertificatePlaceholder.php'; require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Placeholder/class.srCertificatePlaceholderValue.php'; require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Certificate/class.srCertificate.php'; require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Definition/class.srCertificateDefinitionSetting.php'; require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Type/class.srCertificateTypeSetting.php'; srCertificateType::installDB(); srCertificateDefinition::installDB(); srCertificatePlaceholder::installDB(); srCertificatePlaceholderValue::installDB(); srCertificate::installDB(); srCertificateTypeSetting::installDB(); srCertificateDefinitionSetting::installDB(); ?> <#3> <?php require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Certificate/class.srCertificate.php'; srCertificate::updateDB(); ?> <#4> <?php /* * Add new setting "notification_user" to certificate types and every existing definitions */ require_once './Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/Certificate/classes/Definition/class.srCertificateDefinition.php';
/** * @return array */ public function getPlaceholderValues() { if (is_null($this->placeholder_values)) { $this->placeholder_values = srCertificatePlaceholderValue::where(array('definition_id' => $this->getId()))->orderBy('placeholder_id')->get(); } return $this->placeholder_values; }
/** * @param srCertificatePlaceholderValue $placeholder_value * @param $lang * @return ilTextInputGUI */ protected function getInputField($placeholder_value, $lang) { // $label = $placeholder_value->getPlaceholder()->getLabel("en"); $placeholder = $placeholder_value->getPlaceholder(); //$postvar = "placeholder[" . $placeholder_value->getId(). "][" . $lang . "]"; $postvar = "placeholder_" . $placeholder_value->getId() . "_" . $lang; $label = mb_strtoupper($lang); if ($placeholder->getMaxCharactersValue() > self::MAX_CHARACTERS_TEXT) { $input = new ilTextAreaInputGUI($label, $postvar); } else { $input = new ilTextInputGUI($label, $postvar); $input->setMaxLength($placeholder->getMaxCharactersValue()); } // $input->setInfo("[[" . mb_strtoupper($placeholder_value->getPlaceholder()->getIdentifier()) . "]]"); $input->setDisabled(!$placeholder_value->isEditable()); $input->setValue($placeholder_value->getValue($lang)); $input->setRequired($placeholder->getIsMandatory()); return $input; }
public function delete() { // By deleting a placeholder, all placeholder values of existing definitions are deleted as well! foreach (srCertificatePlaceholderValue::where(array('placeholder_id' => $this->getId()))->get() as $value) { /** @var $value srCertificatePlaceholderValue */ $value->delete(); } parent::delete(); }