/** * Get all settings with the correct input field * * @return array */ protected function getSettingsInputs() { $settings = array(); /** @var $setting srCertificateDefinitionSetting */ foreach ($this->definition->getSettings() as $setting) { $identifier = $setting->getIdentifier(); $value = $setting->getValue(); if ($identifier == srCertificateTypeSetting::IDENTIFIER_VALIDITY) { continue; } // Validity itself is set depending on the validity type and displayed as subitem switch ($identifier) { case srCertificateTypeSetting::IDENTIFIER_DEFAULT_LANG: // Select contains all available languages defined in the type $input = $this->getDefaultLangInput(); $input->setValue($value); break; case srCertificateTypeSetting::IDENTIFIER_VALIDITY_TYPE: $input = $this->getValidityInput($setting); $input->setValue($value); break; case srCertificateTypeSetting::IDENTIFIER_GENERATION: $input = new ilRadioGroupInputGUI($this->pl->txt('setting_id_generation'), $identifier); $input->setRequired(true); $option = new ilRadioOption($this->pl->txt('setting_generation_auto'), srCertificateTypeSetting::GENERATION_AUTO); $input->addOption($option); $option = new ilRadioOption($this->pl->txt('setting_generation_manually'), srCertificateTypeSetting::GENERATION_MANUAL); $input->addOption($option); $input->setValue($value); break; case srCertificateTypeSetting::IDENTIFIER_DOWNLOADABLE: case srCertificateTypeSetting::IDENTIFIER_NOTIFICATION_USER: case srCertificateTypeSetting::IDENTIFIER_SCORM_TIMING: $input = new ilCheckboxInputGUI($this->pl->txt("setting_id_{$identifier}"), $identifier); $input->setInfo($this->pl->txt("setting_id_{$identifier}_info")); $input->setValue(1); if ($setting->getValue()) { $input->setChecked(true); } break; default: $input = new ilTextInputGUI($this->pl->txt("setting_id_{$identifier}"), $identifier); $input->setInfo($this->pl->txt("setting_id_{$identifier}_info")); $input->setValue($value); break; } $input->setDisabled(!$setting->isEditable()); $settings[$identifier] = $input; } return $settings; }