52 $this->toolbar = $ilToolbar;
62 $cmd = $this->ctrl->getCmd(
'showMarkSchema');
71 if (!$this->
object->canEditMarks()) {
73 $this->ctrl->redirect($this,
'showMarkSchema');
82 if (!$this->
object->canEditEctsGrades()) {
84 $this->ctrl->redirect($this,
'showMarkSchema');
96 $this->
object->getMarkSchema()->addMarkStep();
105 $this->
object->getMarkSchema()->flush();
107 if (preg_match(
'/mark_short_(\d+)/',
$key, $matches)) {
108 $this->
object->getMarkSchema()->addMarkStep(
125 $this->
object->getMarkSchema()->createSimpleSchema(
126 $this->lng->txt(
'failed_short'),
127 $this->lng->txt(
'failed_official'),
130 $this->lng->txt(
'passed_short'),
131 $this->lng->txt(
'passed_official'),
145 if (!isset(
$_POST[
'marks']) || !is_array(
$_POST[
'marks'])) {
151 $delete_mark_steps =
array();
152 foreach (
$_POST[
'marks'] as $mark_step_id) {
153 $delete_mark_steps[] = $mark_step_id;
156 if (count($delete_mark_steps)) {
157 $this->
object->getMarkSchema()->deleteMarkSteps($delete_mark_steps);
174 $result = $this->
object->checkMarks();
176 $result = $this->lng->txt(
'mark_schema_invalid');
182 $this->
object->getMarkSchema()->saveToDb($this->
object->getMarkSchemaForeignId());
183 $this->
object->onMarkSchemaSaved();
187 $this->ctrl->redirect($this);
195 require_once
'Modules/Test/interfaces/interface.ilEctsGradesEnabled.php';
205 if (!$this->
object->canEditMarks()) {
209 $this->toolbar->setFormAction($this->ctrl->getFormAction($this,
'showMarkSchema'));
211 require_once
'Modules/Test/classes/tables/class.ilMarkSchemaTableGUI.php';
214 if ($this->
object->canEditMarks()) {
215 require_once
'Services/UIComponent/Button/classes/class.ilSubmitButton.php';
217 $create_simple_mark_schema_button->setCaption($this->lng->txt(
'tst_mark_create_simple_mark_schema'),
false);
218 $create_simple_mark_schema_button->setCommand(
'addSimpleMarkSchema');
219 $this->toolbar->addButtonInstance($create_simple_mark_schema_button);
221 require_once
'Services/UIComponent/Button/classes/class.ilButton.php';
223 $create_new_mark_step_button->setCaption($this->lng->txt(
'tst_mark_create_new_mark_step'),
false);
225 $create_new_mark_step_button->setForm(
'form_' . $mark_schema_table->getId());
226 $create_new_mark_step_button->setName(
'addMarkStep');
227 $this->toolbar->addButtonInstance($create_new_mark_step_button);
231 $content_parts =
array($mark_schema_table->getHTML());
238 $content_parts[] = $ects_form->getHTML();
241 $this->tpl->setContent(implode(
'<br />', $content_parts));
251 $data[
'ectcs_status'] = $this->
object->getECTSOutput();
252 $data[
'use_ects_fx'] = preg_match(
'/\d+/', $this->
object->getECTSFX());
253 $data[
'ects_fx_threshold'] = $this->
object->getECTSFX();
255 $ects_grades = $this->
object->getECTSGrades();
256 for (
$i = ord(
'a');
$i <= ord(
'e');
$i++) {
258 $data[
'ects_grade_' . $mark] = $ects_grades[chr(
$i - 32)];
269 require_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
271 $disabled = !$this->
object->canEditEctsGrades();
274 $form->setFormAction($this->ctrl->getFormAction($this,
'saveEctsForm'));
275 $form->setTitle($this->lng->txt(
'ects_output_of_ects_grades'));
277 $allow_ects_marks =
new ilCheckboxInputGUI($this->lng->txt(
'ects_allow_ects_grades'),
'ectcs_status');
279 for (
$i = ord(
'a');
$i <= ord(
'e');
$i++) {
284 $this->lng->txt(
'ects_grade_desc_prefix') .
' ' . $this->lng->txt(
'ects_grade_' . $mark .
'_desc')
286 $mark_step->setSize(5);
287 $mark_step->allowDecimals(
true);
288 $mark_step->setMinValue(0,
true);
289 $mark_step->setMaxValue(100,
true);
290 $mark_step->setSuffix($this->lng->txt(
'percentile'));
291 $mark_step->setRequired(
true);
292 $mark_step->setDisabled($disabled);
293 $allow_ects_marks->addSubItem($mark_step);
298 $this->lng->txt(
'ects_grade_desc_prefix') .
' ' . $this->lng->txt(
'ects_grade_f_desc')
300 $allow_ects_marks->addSubItem($mark_step);
304 $allow_ects_marks->addSubItem($use_ects_fx);
308 $this->lng->txt(
'ects_grade_desc_prefix') .
' ' . $this->lng->txt(
'ects_grade_fx_desc')
310 $use_ects_fx->addSubItem($mark_step);
312 $threshold =
new ilNumberInputGUI($this->lng->txt(
'ects_fx_threshold'),
'ects_fx_threshold');
313 $threshold->
setInfo($this->lng->txt(
'ects_fx_threshold_info'));
314 $threshold->setSuffix($this->lng->txt(
'percentile'));
315 $threshold->allowDecimals(
true);
316 $threshold->setSize(5);
317 $threshold->setRequired(
true);
318 $threshold->setDisabled($disabled);
319 $use_ects_fx->addSubItem($threshold);
322 $form->addItem($allow_ects_marks);
325 $form->addCommandButton(
'saveEctsForm', $this->lng->txt(
'save'));
339 if (!$ects_form->checkInput()) {
340 $ects_form->setValuesByPost();
346 for (
$i = ord(
'a');
$i <= ord(
'e');
$i++) {
348 $grades[chr(
$i - 32)] = $ects_form->getInput(
'ects_grade_' . $mark);
351 $this->
object->setECTSGrades($grades);
352 $this->
object->setECTSOutput((
int) $ects_form->getInput(
'ectcs_status'));
353 $this->
object->setECTSFX(
354 $ects_form->getInput(
'use_ects_fx') && preg_match(
'/\d+/', $ects_form->getInput(
'ects_fx_threshold')) ?
355 $ects_form->getInput(
'ects_fx_threshold'):
359 $this->
object->saveECTSStatus();
362 $ects_form->setValuesByPost();
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
ensureEctsGradesCanBeEdited()
executeCommand()
Controller method.
deleteMarkSteps()
Delete selected mark steps.
objectSupportsEctsGrades()
saveMarkSchemaFormData()
Save the mark schema POST data when the form was submitted.
addMarkStep()
Add a new mark step to the tests marks.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
showMarkSchema(ilPropertyFormGUI $ects_form=null)
Display mark schema.
if(isset($_POST['submit'])) $form
addSimpleMarkSchema()
Add a simple mark schema to the tests marks.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
saveMarks()
Save the mark schema.
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
ensureMarkSchemaCanBeEdited()
populateEctsForm(ilPropertyFormGUI $form)
This class represents a non editable value in a property form.
Create new PHPExcel object
obj_idprivate