ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilCourseObjectivesGUI Class Reference

class ilobjcourseobjectivesgui More...

+ Collaboration diagram for ilCourseObjectivesGUI:

Public Member Functions

 __construct (int $a_course_id)
 
 executeCommand ()
 
 getSettings ()
 
 __initObjectivesObject (int $a_id=0)
 
 __initLMObject ($a_objective_id=0)
 
 __initQuestionObject ($a_objective_id=0)
 
 setSubTabs (string $a_active="")
 
 create (?ilPropertyFormGUI $form=null)
 

Data Fields

const MODE_UNDEFINED = 0
 
const MODE_CREATE = 1
 
const MODE_UPDATE = 2
 

Protected Member Functions

 initObjectiveIdFromQuery ()
 
 initObjectiveIdsFromPost ()
 
 initTestTypeFromQuery ()
 
 listObjectives ()
 
 questionOverview ()
 
 saveQuestionOverview ()
 
 __initCourseObject ()
 
 edit (?ilPropertyFormGUI $form=null)
 
 save ()
 
 materialAssignment ()
 
 updateMaterialAssignment ()
 
 selfAssessmentAssignment ()
 
 updateSelfAssessmentAssignment ()
 
 selfAssessmentLimits ()
 
 updateSelfAssessmentLimits ()
 
 finalTestAssignment ()
 
 isRandomTestType (int $a_tst_type=0)
 
 showRandomTestAssignment (?ilPropertyFormGUI $form=null)
 
 initFormRandom ()
 
 saveRandom ()
 
 updateFinalTestAssignment ()
 
 finalTestLimits ()
 
 updateFinalTestLimits ()
 
 initFormLimits (string $a_mode)
 
 initFormTitle (string $a_mode)
 
 initWizard (int $active_step)
 

Protected Attributes

const STEP_SETTINGS = 1
 
const STEP_MATERIAL_ASSIGNMENT = 2
 
const STEP_INITIAL_TEST_ASSIGNMENT = 3
 
const STEP_INITIAL_TEST_LIMIT = 4
 
const STEP_FINAL_TEST_ASSIGNMENT = 5
 
const STEP_FINAL_TEST_LIMIT = 6
 
ilObjCourse $course_obj
 
ilCourseObjective $objective = null
 
ilCourseObjective $objectives_obj = null
 
ilCourseObjectiveMaterials $objectives_lm_obj = null
 
ilCourseObjectiveQuestion $objectives_qst_obj = null
 
ilCourseObjectiveQuestion $questions = null
 
int $course_id
 
ilLOSettings $settings
 
int $test_type = 0
 
ilPropertyFormGUI $form = null
 
ilDBInterface $db
 
ilCtrlInterface $ctrl
 
ilErrorHandling $ilErr
 
ilLanguage $lng
 
ilGlobalTemplateInterface $tpl
 
ilTree $tree
 
ilTabsGUI $tabs
 
ilToolbarGUI $toolbar
 
ilAccessHandler $access
 
ilRbacSystem $rbacsystem
 
ilHelpGUI $help
 
ilObjectDataCache $objectDataCache
 
Workflow $workflow
 
UIRenderer $renderer
 
GlobalHttpState $http
 
Factory $refinery
 

Private Member Functions

 getIntArrayFromPost (string $key)
 
 getStringArrayFromPost (string $key)
 

Private Attributes

ilLogger $logger
 

Detailed Description

class ilobjcourseobjectivesgui

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e

Definition at line 31 of file class.ilCourseObjectivesGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilCourseObjectivesGUI::__construct ( int  $a_course_id)

Definition at line 73 of file class.ilCourseObjectivesGUI.php.

74 {
75 global $DIC;
76 $this->ctrl = $DIC->ctrl();
77 $this->db = $DIC->database();
78 $this->ctrl->saveParameter($this, array("ref_id"));
79
80 $this->logger = $DIC->logger()->crs();
81 $this->ilErr = $DIC['ilErr'];
82 $this->lng = $DIC->language();
83 $this->lng->loadLanguageModule('crs');
84 $this->tpl = $DIC->ui()->mainTemplate();
85 $this->tree = $DIC->repositoryTree();
86 $this->tabs = $DIC->tabs();
87 $this->access = $DIC->access();
88 $this->rbacsystem = $DIC->rbac()->system();
89 $this->toolbar = $DIC->toolbar();
90 $this->help = $DIC->help();
91 $this->objectDataCache = $DIC['ilObjDataCache'];
92 $this->workflow = $DIC->ui()->factory()->listing()->workflow();
93 $this->renderer = $DIC->ui()->renderer();
94 $this->http = $DIC->http();
95 $this->refinery = $DIC->refinery();
96
97 $this->course_id = $a_course_id;
98 $this->__initCourseObject();
99 $this->settings = ilLOSettings::getInstanceByObjId($this->course_obj->getId());
100 }
renderer()
static getInstanceByObjId(int $a_obj_id)
static http()
Fetches the global http state from ILIAS.
global $DIC
Definition: shib_login.php:26

References $DIC, __initCourseObject(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ilLOSettings\getInstanceByObjId(), ILIAS\Repository\help(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), ILIAS\Repository\objectDataCache(), ILIAS\Repository\refinery(), renderer(), ILIAS\Repository\settings(), ILIAS\Repository\tabs(), and ILIAS\Repository\toolbar().

+ Here is the call graph for this function:

Member Function Documentation

◆ __initCourseObject()

ilCourseObjectivesGUI::__initCourseObject ( )
protected

@noinspection PhpFieldAssignmentTypeMismatchInspection

Definition at line 258 of file class.ilCourseObjectivesGUI.php.

258 : void
259 {
261 if (!$this->course_obj = ilObjectFactory::getInstanceByRefId($this->course_id, false)) {
262 $this->logger->logStack(ilLogLevel::ERROR);
263 throw new RuntimeException('Course objectives GUI initialized without valid course instance');
264 }
265 }
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id

References ilLogLevel\ERROR, ilObjectFactory\getInstanceByRefId(), and ILIAS\Repository\logger().

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __initLMObject()

ilCourseObjectivesGUI::__initLMObject (   $a_objective_id = 0)

Definition at line 272 of file class.ilCourseObjectivesGUI.php.

273 {
274 return $this->objectives_lm_obj = new ilCourseObjectiveMaterials($a_objective_id);
275 }
class ilCourseObjectiveMaterials

Referenced by updateMaterialAssignment().

+ Here is the caller graph for this function:

◆ __initObjectivesObject()

ilCourseObjectivesGUI::__initObjectivesObject ( int  $a_id = 0)

Definition at line 267 of file class.ilCourseObjectivesGUI.php.

268 {
269 return $this->objectives_obj = new ilCourseObjective($this->course_obj, $a_id);
270 }
class ilcourseobjective

◆ __initQuestionObject()

ilCourseObjectivesGUI::__initQuestionObject (   $a_objective_id = 0)

Definition at line 277 of file class.ilCourseObjectivesGUI.php.

278 {
279 $this->objectives_qst_obj = new ilCourseObjectiveQuestion($a_objective_id);
281 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilCourseObjectiveQuestion $objectives_qst_obj

References $objectives_qst_obj.

Referenced by create(), edit(), finalTestAssignment(), finalTestLimits(), materialAssignment(), saveRandom(), selfAssessmentAssignment(), selfAssessmentLimits(), showRandomTestAssignment(), updateFinalTestAssignment(), updateFinalTestLimits(), updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

+ Here is the caller graph for this function:

◆ create()

ilCourseObjectivesGUI::create ( ?ilPropertyFormGUI  $form = null)

Definition at line 294 of file class.ilCourseObjectivesGUI.php.

294 : void
295 {
296 $this->setSubTabs("create_obj");
297 ilSession::set('objective_mode', self::MODE_CREATE);
298
299 $this->ctrl->saveParameter($this, 'objective_id');
300
301 if (!$this->objective instanceof ilCourseObjective) {
302 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
303 }
305 $this->initWizard(self::STEP_SETTINGS);
306 if (!$form instanceof ilPropertyFormGUI) {
307 $form = $this->initFormTitle('create');
308 }
309 $this->tpl->setContent($form->getHTML());
310 }
This class represents a property form user interface.
static set(string $a_var, $a_val)
Set a value.

References $form, __initQuestionObject(), ILIAS\Repository\ctrl(), ilPropertyFormGUI\getHTML(), initFormTitle(), initObjectiveIdFromQuery(), initWizard(), ilSession\set(), and setSubTabs().

Referenced by save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ edit()

ilCourseObjectivesGUI::edit ( ?ilPropertyFormGUI  $form = null)
protected

Definition at line 312 of file class.ilCourseObjectivesGUI.php.

312 : void
313 {
314 ilSession::set('objective_mode', self::MODE_UPDATE);
315 $this->setSubTabs("edit_obj");
316 $this->ctrl->setParameter($this, 'objective_id', $this->initObjectiveIdFromQuery());
317
318 if (!$this->initObjectiveIdFromQuery()) {
319 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
320 $this->ctrl->redirect($this, 'listObjectives');
321 }
322 if (!$this->objective instanceof ilCourseObjective) {
323 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
324 }
325
327 $this->initWizard(self::STEP_SETTINGS);
328 if (!$form instanceof ilPropertyFormGUI) {
329 $form = $this->initFormTitle('create');
330 }
331 $this->tpl->setContent($form->getHTML());
332 }

References $form, __initQuestionObject(), ILIAS\Repository\ctrl(), ilPropertyFormGUI\getHTML(), initFormTitle(), initObjectiveIdFromQuery(), initWizard(), ILIAS\Repository\lng(), ilSession\set(), and setSubTabs().

Referenced by save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilCourseObjectivesGUI::executeCommand ( )

Definition at line 102 of file class.ilCourseObjectivesGUI.php.

102 : void
103 {
104 $this->tabs->setTabActive('crs_objectives');
105
106 $cmd = $this->ctrl->getCmd();
107
108 if (!$cmd = $this->ctrl->getCmd()) {
109 $cmd = "list";
110 }
111
112 $this->$cmd();
113 }

References ILIAS\Repository\ctrl(), and ILIAS\Repository\tabs().

+ Here is the call graph for this function:

◆ finalTestAssignment()

ilCourseObjectivesGUI::finalTestAssignment ( )
protected

Definition at line 664 of file class.ilCourseObjectivesGUI.php.

664 : void
665 {
666 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
667 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
668 }
669 if (!$this->initObjectiveIdFromQuery()) {
670 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
671 $this->ctrl->redirect($this, 'listObjectives');
672 }
673
674 $this->setSubTabs("final_test_assign");
675
676 $this->ctrl->saveParameter($this, 'objective_id');
677 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
678
679 // begin-patch lok
680 $this->ctrl->setParameter($this, 'tt', ilLOSettings::TYPE_TEST_QUALIFIED);
681 $this->test_type = ilLOSettings::TYPE_TEST_QUALIFIED;
684 return;
685 }
686 // end-patch lok
687
689 $this,
690 $this->course_obj,
693 );
694
695 $table->setTitle(
696 $this->lng->txt('crs_objective_wiz_final'),
697 '',
698 $this->lng->txt('crs_objective')
699 );
700 $table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
702 $this->initWizard(self::STEP_FINAL_TEST_ASSIGNMENT);
703 $this->tpl->setContent($table->getHTML());
704 }
TableGUI for question assignments of course objectives.
static _getAssignableTests(int $a_container_ref_id)
showRandomTestAssignment(?ilPropertyFormGUI $form=null)

References __initQuestionObject(), ilCourseObjectiveQuestion\_getAssignableTests(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), initObjectiveIdFromQuery(), initWizard(), isRandomTestType(), ILIAS\Repository\lng(), setSubTabs(), showRandomTestAssignment(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, and ilLOSettings\TYPE_TEST_QUALIFIED.

Referenced by updateFinalTestAssignment(), updateMaterialAssignment(), updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ finalTestLimits()

ilCourseObjectivesGUI::finalTestLimits ( )
protected
Todo:
get rid of this form

Definition at line 946 of file class.ilCourseObjectivesGUI.php.

946 : void
947 {
948 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
949 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
950 }
951 if (!$this->initObjectiveIdFromQuery()) {
952 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
953 $this->ctrl->returnToParent($this);
954 }
955
956 $this->setSubTabs("final_test_limits");
957
958 $this->ctrl->saveParameter($this, 'objective_id');
959 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
960
962 $this->initWizard(self::STEP_FINAL_TEST_LIMIT);
963
964 $this->initFormLimits('final');
965 $this->tpl->setContent($this->form->getHTML());
966 }
form( $class_path, string $cmd, string $submit_caption="")

References __initQuestionObject(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\Repository\form(), initFormLimits(), initObjectiveIdFromQuery(), initWizard(), ILIAS\Repository\lng(), and setSubTabs().

Referenced by updateFinalTestAssignment(), and updateFinalTestLimits().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getIntArrayFromPost()

ilCourseObjectivesGUI::getIntArrayFromPost ( string  $key)
private
Returns
int[]

Definition at line 405 of file class.ilCourseObjectivesGUI.php.

405 : array
406 {
407 if ($this->http->wrapper()->post()->has($key)) {
408 return $this->http->wrapper()->post()->retrieve(
409 $key,
410 $this->refinery->kindlyTo()->listOf(
411 $this->refinery->kindlyTo()->int()
412 )
413 );
414 }
415 return [];
416 }

References ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

Referenced by updateMaterialAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSettings()

ilCourseObjectivesGUI::getSettings ( )

Definition at line 150 of file class.ilCourseObjectivesGUI.php.

151 {
152 return $this->settings;
153 }
Settings for LO courses.

References $settings.

Referenced by initWizard(), isRandomTestType(), saveRandom(), and updateMaterialAssignment().

+ Here is the caller graph for this function:

◆ getStringArrayFromPost()

ilCourseObjectivesGUI::getStringArrayFromPost ( string  $key)
private
Returns
string[]

Definition at line 421 of file class.ilCourseObjectivesGUI.php.

421 : array
422 {
423 if ($this->http->wrapper()->post()->has($key)) {
424 return $this->http->wrapper()->post()->retrieve(
425 $key,
426 $this->refinery->kindlyTo()->listOf(
427 $this->refinery->kindlyTo()->string()
428 )
429 );
430 }
431 return [];
432 }

References ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

Referenced by updateMaterialAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormLimits()

ilCourseObjectivesGUI::initFormLimits ( string  $a_mode)
protected

Definition at line 1009 of file class.ilCourseObjectivesGUI.php.

1010 {
1011 if (!is_object($this->form)) {
1012 $this->form = new ilPropertyFormGUI();
1013 }
1014 $this->form->setFormAction($this->ctrl->getFormAction($this));
1015 $this->form->setTableWidth('100%');
1016 //$this->form->setTitleIcon(ilUtil::getImagePath('standard/icon_lobj.svg'),$this->lng->txt('crs_objective'));
1017
1018 $tests = [];
1019 $max_points = 0;
1020 switch ($a_mode) {
1021 case 'selfAssessment':
1022 $this->form->setTitle($this->lng->txt('crs_objective_wiz_self_limit'));
1023 $this->form->addCommandButton('updateSelfAssessmentLimits', $this->lng->txt('crs_wiz_next'));
1024
1025 $tests = $this->objectives_qst_obj->getSelfAssessmentTests();
1026 $max_points = $this->objectives_qst_obj->getSelfAssessmentPoints();
1027
1028 break;
1029
1030 case 'final':
1031 $this->form->setTitle($this->lng->txt('crs_objective_wiz_final_limit'));
1032 $this->form->addCommandButton('updateFinalTestLimits', $this->lng->txt('crs_wiz_next'));
1033
1034 $tests = $this->objectives_qst_obj->getFinalTests();
1035 $max_points = $this->objectives_qst_obj->getFinalTestPoints();
1036
1037 break;
1038 }
1039
1040 $over = new ilCustomInputGUI($this->lng->txt('crs_objective_qst_summary'), '');
1041
1042 $tpl = new ilTemplate('tpl.crs_objective_qst_summary.html', true, true, 'components/ILIAS/Course');
1043
1044 $limit = 0;
1045
1046 foreach ($tests as $test) {
1047 $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': ' . print_r($test, true));
1048
1049 $limit = $test['limit'];
1050
1051 foreach ($this->objectives_qst_obj->getQuestionsOfTest($test['obj_id']) as $question) {
1052 $tpl->setCurrentBlock('qst');
1053 $tpl->setVariable('QST_TITLE', $question['title']);
1054 if (strlen($question['description'])) {
1055 $tpl->setVariable('QST_DESCRIPTION', $question['description']);
1056 }
1057 $tpl->setVariable('QST_POINTS', $question['points'] . ' ' .
1058 $this->lng->txt('crs_objective_points'));
1060 }
1061 $tpl->setCurrentBlock('tst');
1062 $tpl->setVariable('TST_TITLE', ilObject::_lookupTitle($test['obj_id']));
1063 if ($desc = ilObject::_lookupDescription($test['obj_id'])) {
1064 $tpl->setVariable('TST_DESC', $desc);
1065 }
1066 $tpl->setVariable('TST_TYPE_IMG', ilObject::_getIcon($test['obj_id'], 'tiny', 'tst'));
1067 $tpl->setVariable('TST_ALT_IMG', $this->lng->txt('obj_tst'));
1069 }
1070
1071 $tpl->setVariable('TXT_ALL_POINTS', $this->lng->txt('crs_objective_all_points'));
1072 $tpl->setVariable('TXT_POINTS', $this->lng->txt('crs_objective_points'));
1073 $tpl->setVariable('POINTS', $max_points);
1074
1075 $over->setHtml($tpl->get());
1076 $this->form->addItem($over);
1077
1078 // points
1079 $req = new ilNumberInputGUI($this->lng->txt('crs_loc_perc'), 'limit');
1080 $req->setValue($limit);
1081 $req->setSize(3);
1082 $req->setMinValue(1);
1083 $req->setMaxValue(100);
1084 $req->setRequired(true);
1085 switch ($a_mode) {
1086 case 'selfAssessment':
1087 $req->setInfo($this->lng->txt('crs_obj_initial_req_info'));
1088 break;
1089
1090 case 'final':
1091 $req->setInfo($this->lng->txt('crs_obj_final_req_info'));
1092 break;
1093 }
1094 $this->form->addItem($req);
1095 return $this->form;
1096 }
ilGlobalTemplateInterface $tpl
This class represents a custom property in a property form.
This class represents a number property in a property form.
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static _lookupTitle(int $obj_id)
static _lookupDescription(int $obj_id)
special template class to simplify handling of ITX/PEAR
setVariable(string $variable, $value='')
Sets the given variable to the given value.
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
catch(\Exception $e) $req
Definition: xapiproxy.php:91
$GLOBALS["DIC"]
Definition: wac.php:54

References $form, $GLOBALS, XapiProxy\$req, $tpl, ilObject\_getIcon(), ilObject\_lookupDescription(), ilObject\_lookupTitle(), ILIAS\Repository\ctrl(), ILIAS\Repository\form(), ILIAS\UICore\GlobalTemplate\get(), ILIAS\Repository\lng(), ILIAS\UICore\GlobalTemplate\parseCurrentBlock(), ILIAS\UICore\GlobalTemplate\setCurrentBlock(), and ILIAS\UICore\GlobalTemplate\setVariable().

Referenced by finalTestLimits(), and selfAssessmentLimits().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormRandom()

ilCourseObjectivesGUI::initFormRandom ( )
protected

Definition at line 743 of file class.ilCourseObjectivesGUI.php.

744 {
745 $form = new ilPropertyFormGUI();
746 $form->setFormAction($this->ctrl->getFormAction($this));
747
748 if ($this->test_type == ilLOSettings::TYPE_TEST_INITIAL) {
749 $form->setTitle($this->lng->txt('crs_loc_form_random_limits_it'));
750 } else {
751 $form->setTitle($this->lng->txt('crs_loc_form_random_limits_qt'));
752 }
753
754 $form->addCommandButton('saveRandom', $this->lng->txt('save'));
755
756 $options = new ilRadioGroupInputGUI($this->lng->txt('crs_loc_rand_assign_qpl'), 'type');
757 $options->setValue('1');
758 $options->setRequired(true);
759
760 $ass_qpl = new ilRadioOption($this->lng->txt('crs_loc_rand_assign_qpl'), '1');
761 $options->addOption($ass_qpl);
762
763 $qpl = new ilSelectInputGUI($this->lng->txt('crs_loc_rand_qpl'), 'qpl');
764 $qpl->setRequired(true);
765 $qpl->setMulti(true, false);
766 $qpl->setOptions($this->getRandomTestQplOptions());
767
769 $this->course_obj->getId(),
770 $this->initObjectiveIdFromQuery(),
771 ilObject::_lookupObjId($this->getSettings()->getTestByType($this->test_type)),
772 $this->test_type
773 );
774
775 $qpl->setValue((string) ($sequences[0] ?? ''));
776 $qpl->setMultiValues($sequences);
777 $ass_qpl->addSubItem($qpl);
778
779 // points
780 $per = new ilNumberInputGUI($this->lng->txt('crs_loc_perc'), 'per');
781 $per->setValue(
783 $this->course_obj->getId(),
784 $this->initObjectiveIdFromQuery(),
785 $this->test_type
786 )
787 );
788 $per->setSize(3);
789 $per->setMinValue(1);
790 $per->setMaxValue(100);
791 $per->setRequired(true);
792 $ass_qpl->addSubItem($per);
793 $form->addItem($options);
794 return $form;
795 }
setFormAction(string $a_formaction)
static lookupLimit(int $a_container_id, int $a_objective_id, int $a_test_type)
static lookupSequencesByType(int $a_container_id, int $a_objective_id, int $a_test_id, int $a_test_type)
static _lookupObjId(int $ref_id)
addCommandButton(string $a_cmd, string $a_text, string $a_id="")
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a selection list property in a property form.

References $form, ilObject\_lookupObjId(), ilPropertyFormGUI\addCommandButton(), ilPropertyFormGUI\addItem(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), ilLORandomTestQuestionPools\lookupLimit(), ilLORandomTestQuestionPools\lookupSequencesByType(), ilFormGUI\setFormAction(), ilPropertyFormGUI\setTitle(), and ilLOSettings\TYPE_TEST_INITIAL.

Referenced by saveRandom(), and showRandomTestAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormTitle()

ilCourseObjectivesGUI::initFormTitle ( string  $a_mode)
protected

Definition at line 1098 of file class.ilCourseObjectivesGUI.php.

1099 {
1100 $this->form = new ilPropertyFormGUI();
1101 $this->form->setFormAction($this->ctrl->getFormAction($this));
1102 //$this->form->setTitleIcon(ilUtil::getImagePath('standard/icon_lobj.svg'),$this->lng->txt('crs_objective'));
1103
1104 switch ($a_mode) {
1105 case 'create':
1106 $this->form->setTitle($this->lng->txt('crs_objective_wiz_title'));
1107 $this->form->addCommandButton('save', $this->lng->txt('crs_wiz_next'));
1108 // begin-patch lok
1109 #$this->form->addCommandButton('listObjectives',$this->lng->txt('cancel'));
1110 // end-patch lok
1111 break;
1112
1113 case 'update':
1114 break;
1115 }
1116
1117 $title = new ilTextInputGUI($this->lng->txt('title'), 'title');
1118 $title->setValue($this->objective->getTitle());
1119 $title->setRequired(true);
1120 $title->setSize(40);
1121 $title->setMaxLength(70);
1122 $this->form->addItem($title);
1123
1124 $desc = new ilTextAreaInputGUI($this->lng->txt('description'), 'description');
1125 $desc->setValue($this->objective->getDescription());
1126 $desc->setCols(40);
1127 $desc->setRows(5);
1128 $this->form->addItem($desc);
1129 return $this->form;
1130 }
This class represents a text area property in a property form.
This class represents a text property in a property form.

References $form, ILIAS\Repository\ctrl(), ILIAS\Repository\form(), and ILIAS\Repository\lng().

Referenced by create(), edit(), and save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initObjectiveIdFromQuery()

ilCourseObjectivesGUI::initObjectiveIdFromQuery ( )
protected

Definition at line 115 of file class.ilCourseObjectivesGUI.php.

115 : int
116 {
117 if ($this->http->wrapper()->query()->has('objective_id')) {
118 return $this->http->wrapper()->query()->retrieve(
119 'objective_id',
120 $this->refinery->kindlyTo()->int()
121 );
122 }
123 return 0;
124 }

References ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

Referenced by create(), edit(), finalTestAssignment(), finalTestLimits(), materialAssignment(), save(), saveRandom(), selfAssessmentAssignment(), selfAssessmentLimits(), showRandomTestAssignment(), updateFinalTestAssignment(), updateFinalTestLimits(), updateMaterialAssignment(), updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initObjectiveIdsFromPost()

ilCourseObjectivesGUI::initObjectiveIdsFromPost ( )
protected

Definition at line 126 of file class.ilCourseObjectivesGUI.php.

126 : array
127 {
128 if ($this->http->wrapper()->post()->has('objective')) {
129 return $this->http->wrapper()->post()->retrieve(
130 'objective',
131 $this->refinery->kindlyTo()->listOf(
132 $this->refinery->kindlyTo()->int()
133 )
134 );
135 }
136 return [];
137 }

References ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ initTestTypeFromQuery()

ilCourseObjectivesGUI::initTestTypeFromQuery ( )
protected

Definition at line 139 of file class.ilCourseObjectivesGUI.php.

139 : int
140 {
141 if ($this->http->wrapper()->query()->has('tt')) {
142 return $this->http->wrapper()->query()->retrieve(
143 'tt',
144 $this->refinery->kindlyTo()->int()
145 );
146 }
147 return 0;
148 }

References ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

Referenced by saveRandom(), and showRandomTestAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initWizard()

ilCourseObjectivesGUI::initWizard ( int  $active_step)
protected

Definition at line 1132 of file class.ilCourseObjectivesGUI.php.

1132 : void
1133 {
1134 $steps = [];
1135 $step_positions = [];
1136
1137 // 1 Settings
1138 $title = $this->lng->txt('crs_objective_wiz_title');
1139 $link = $this->ctrl->getLinkTarget($this, 'edit');
1140
1141 $steps[] = $this->workflow->step($title, "", $link);
1142 $step_positions[self::STEP_SETTINGS] = count($steps) - 1;
1143
1144 // 2 Material
1145 $title = $this->lng->txt('crs_objective_wiz_materials');
1146 $link = $this->ctrl->getLinkTarget($this, 'materialAssignment');
1147 $steps[] = $this->workflow->step($title, "", $link);
1148 $step_positions[self::STEP_MATERIAL_ASSIGNMENT] = count($steps) - 1;
1149
1150 if ($this->getSettings()->worksWithInitialTest() && !$this->getSettings()->hasSeparateInitialTests()) {
1151 // 3 initial
1152 $title = $this->lng->txt('crs_objective_wiz_self');
1153 $link = $this->getSettings()->worksWithInitialTest()
1154 ? $this->ctrl->getLinkTarget($this, 'selfAssessmentAssignment')
1155 : null;
1156
1157 $steps[] = $this->workflow->step($title, "", $link)
1158 ->withAvailability($link == null ? Step::NOT_AVAILABLE : Step::AVAILABLE);
1159 $step_positions[self::STEP_INITIAL_TEST_ASSIGNMENT] = count($steps) - 1;
1160
1162 // 4 initial limit
1163 $title = $this->lng->txt('crs_objective_wiz_self_limit');
1164 $link = count($this->objectives_qst_obj->getSelfAssessmentQuestions())
1165 && $this->getSettings()->worksWithInitialTest()
1166 ? $this->ctrl->getLinkTarget($this, 'selfAssessmentLimits')
1167 : null;
1168 $steps[] = $this->workflow->step($title, "", $link)
1169 ->withAvailability($link == null ? Step::NOT_AVAILABLE : Step::AVAILABLE);
1170 $step_positions[self::STEP_INITIAL_TEST_LIMIT] = count($steps) - 1;
1171 }
1172 }
1173
1174 if (!$this->getSettings()->hasSeparateQualifiedTests()) {
1175 // 5 final
1176 $title = $this->lng->txt('crs_objective_wiz_final');
1177 $link = $this->ctrl->getLinkTarget($this, 'finalTestAssignment');
1178 $steps[] = $this->workflow->step($title, "", $link);
1179 $step_positions[self::STEP_FINAL_TEST_ASSIGNMENT] = count($steps) - 1;
1180
1182 // 6 final limit
1183 $title = $this->lng->txt('crs_objective_wiz_final_limit');
1184 $link = count($this->objectives_qst_obj->getFinalTestQuestions())
1185 ? $this->ctrl->getLinkTarget($this, 'finalTestLimits')
1186 : null;
1187 $steps[] = $this->workflow->step($title, "", $link)
1188 ->withAvailability($link == null ? Step::NOT_AVAILABLE : Step::AVAILABLE);
1189 $step_positions[self::STEP_FINAL_TEST_LIMIT] = count($steps) - 1;
1190 }
1191 }
1192
1193 $list = $this->workflow->linear(
1194 $this->lng->txt('crs_checklist_objective'),
1195 $steps
1196 );
1197 if (!empty($step_positions[$active_step])) {
1198 $list = $list->withActive($step_positions[$active_step]);
1199 }
1200 $this->tpl->setRightContent($this->renderer->render($list));
1201 }

References ILIAS\Repository\ctrl(), getSettings(), isRandomTestType(), ILIAS\Repository\lng(), renderer(), STEP_FINAL_TEST_ASSIGNMENT, STEP_FINAL_TEST_LIMIT, STEP_INITIAL_TEST_ASSIGNMENT, STEP_INITIAL_TEST_LIMIT, STEP_MATERIAL_ASSIGNMENT, STEP_SETTINGS, ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

Referenced by create(), edit(), finalTestAssignment(), finalTestLimits(), materialAssignment(), selfAssessmentAssignment(), selfAssessmentLimits(), and showRandomTestAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isRandomTestType()

ilCourseObjectivesGUI::isRandomTestType ( int  $a_tst_type = 0)
protected

Definition at line 706 of file class.ilCourseObjectivesGUI.php.

706 : bool
707 {
708 if ($a_tst_type === 0) {
709 $a_tst_type = $this->test_type;
710 }
711
712 $tst_ref_id = $this->getSettings()->getTestByType($a_tst_type);
713 if ($tst_ref_id === 0) {
714 return false;
715 }
717 }
static _lookupRandomTest(int $obj_id)

References $test_type, ilObject\_lookupObjId(), ilObjTest\_lookupRandomTest(), and getSettings().

Referenced by finalTestAssignment(), initWizard(), and selfAssessmentAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ listObjectives()

ilCourseObjectivesGUI::listObjectives ( )
protected

Definition at line 155 of file class.ilCourseObjectivesGUI.php.

155 : void
156 {
157 ilSession::set('objective_mode', self::MODE_UNDEFINED);
158 if (!$this->access->checkAccess("write", '', $this->course_obj->getRefId())) {
159 $this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilErr->MESSAGE);
160 }
161 $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.crs_objectives.html', 'components/ILIAS/Course');
162 $this->toolbar->addButton(
163 $this->lng->txt('crs_add_objective'),
164 $this->ctrl->getLinkTarget($this, "'create")
165 );
166
167 $table = new ilCourseObjectivesTableGUI($this, $this->course_obj);
168 $table->setTitle($this->lng->txt('crs_objectives'), '', $this->lng->txt('crs_objectives'));
169 $table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId(), false));
170
171 $this->tpl->setVariable('OBJECTIVES_TABLE', $table->getHTML());
172 }
static _getObjectiveIds(int $course_id, bool $a_activated_only=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References ilCourseObjective\_getObjectiveIds(), ILIAS\Repository\access(), ILIAS\Repository\lng(), ilSession\set(), and ILIAS\Repository\toolbar().

+ Here is the call graph for this function:

◆ materialAssignment()

ilCourseObjectivesGUI::materialAssignment ( )
protected

Definition at line 372 of file class.ilCourseObjectivesGUI.php.

372 : void
373 {
374 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
375 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
376 }
377 if (!$this->initObjectiveIdFromQuery()) {
378 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
379 $this->ctrl->redirect($this, 'listObjectives');
380 }
381
382 $this->setSubTabs("materials");
383 $this->ctrl->saveParameter($this, 'objective_id');
384 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
385
387 $this,
388 $this->course_obj,
390 );
391 $table->setTitle(
392 $this->lng->txt('crs_objective_wiz_materials'),
393 '',
394 $this->lng->txt('crs_objectives')
395 );
396 $table->parse(ilCourseObjectiveMaterials::_getAssignableMaterials($this->course_obj->getRefId()));
398 $this->initWizard(self::STEP_MATERIAL_ASSIGNMENT);
399 $this->tpl->setContent($table->getHTML());
400 }
TableGUI for material assignments of course objectives.
static _getAssignableMaterials(int $a_container_id)
Get an array of course material ids that can be assigned to learning objectives No tst,...

References __initQuestionObject(), ilCourseObjectiveMaterials\_getAssignableMaterials(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), initObjectiveIdFromQuery(), initWizard(), ILIAS\Repository\lng(), and setSubTabs().

+ Here is the call graph for this function:

◆ questionOverview()

ilCourseObjectivesGUI::questionOverview ( )
protected

Definition at line 174 of file class.ilCourseObjectivesGUI.php.

174 : void
175 {
176 $this->tabs->setSubTabActive('crs_objective_overview_question_assignment');
177
178 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
179 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
180 }
181
182 $table = new ilCourseObjectiveQuestionsTableGUI($this, $this->course_obj);
183 $table->setTitle(
184 $this->lng->txt('crs_objectives_edit_question_assignments'),
185 '',
186 $this->lng->txt('crs_objectives')
187 );
188 $table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId(), false));
189 $this->tpl->setContent($table->getHTML());
190 }

References ilCourseObjective\_getObjectiveIds(), ILIAS\Repository\access(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

Referenced by saveQuestionOverview().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save()

ilCourseObjectivesGUI::save ( )
protected

Definition at line 334 of file class.ilCourseObjectivesGUI.php.

334 : void
335 {
336 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
337 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
338 }
339
340 $this->ctrl->saveParameter($this, 'objective_id');
341 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
342 $form = $this->initFormTitle('create');
343 if ($form->checkInput()) {
344 $this->objective->setTitle($form->getInput('title'));
345 $this->objective->setDescription($form->getInput('description'));
346 $this->objective->setPasses(0);
347
348 if (!$this->initObjectiveIdFromQuery()) {
349 $objective_id = $this->objective->add();
350 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_added_objective'), true);
351 } else {
352 $this->objective->update();
353 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_objective_modified'), true);
354 $objective_id = $this->initObjectiveIdFromQuery();
355 }
356 } elseif ($this->initObjectiveIdFromQuery()) {
358 $this->edit($form);
359 return;
360 } else {
362 $this->create($form);
363 return;
364 }
365 if (ilSession::get('objective_mode') != self::MODE_CREATE) {
366 $this->ctrl->returnToParent($this);
367 }
368 $this->ctrl->setParameter($this, 'objective_id', $objective_id);
369 $this->ctrl->redirect($this, 'materialAssignment');
370 }
create(?ilPropertyFormGUI $form=null)
edit(?ilPropertyFormGUI $form=null)
getInput(string $a_post_var, bool $ensureValidation=true)
Returns the input of an item, if item provides getInput method and as fallback the value of the HTTP-...
static get(string $a_var)

References $form, ILIAS\Repository\access(), ilPropertyFormGUI\checkInput(), create(), ILIAS\Repository\ctrl(), edit(), ilSession\get(), ilPropertyFormGUI\getInput(), initFormTitle(), initObjectiveIdFromQuery(), ILIAS\Repository\lng(), and ilPropertyFormGUI\setValuesByPost().

+ Here is the call graph for this function:

◆ saveQuestionOverview()

ilCourseObjectivesGUI::saveQuestionOverview ( )
protected

Definition at line 192 of file class.ilCourseObjectivesGUI.php.

192 : void
193 {
194 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
195 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
196 }
197
198 $post_self_limit = [];
199 if ($this->http->wrapper()->post()->has('self')) {
200 $post_self_limit = $this->http->wrapper()->post()->retrieve(
201 'self',
202 $this->refinery->kindlyTo()->dictOf(
203 $this->refinery->kindlyTo()->float()
204 )
205 );
206 }
207 $post_final_limit = [];
208 if ($this->http->wrapper()->post()->has('final')) {
209 $post_final_limit = $this->http->wrapper()->post()->retrieve(
210 'final',
211 $this->refinery->kindlyTo()->dictOf(
212 $this->refinery->kindlyTo()->float()
213 )
214 );
215 }
216
217 foreach ($post_self_limit as $objective_id => $limit) {
218 $qst = new ilCourseObjectiveQuestion($objective_id);
219 $max_points = $qst->getSelfAssessmentPoints();
220
221 if ($limit < 0 || $limit > $max_points) {
222 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_objective_limit_err'));
223 $this->questionOverview();
224 return;
225 }
226 }
227 foreach ($post_final_limit as $objective_id => $limit) {
228 $qst = new ilCourseObjectiveQuestion($objective_id);
229 $max_points = $qst->getFinalTestPoints();
230
231 if ($limit < 0 || $limit > $max_points) {
232 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_objective_limit_err'));
233 $this->questionOverview();
234 return;
235 }
236 }
237
238 foreach ($post_self_limit as $objective_id => $limit) {
240 $objective_id,
242 $limit
243 );
244 }
245
246 foreach ($post_final_limit as $objective_id => $limit) {
248 $objective_id,
250 $limit
251 );
252 }
253
254 $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'));
255 $this->questionOverview();
256 }
static _updateTestLimits(int $a_objective_id, int $a_status, int $a_limit)

References ilCourseObjectiveQuestion\_updateTestLimits(), ILIAS\Repository\access(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), questionOverview(), ILIAS\Repository\refinery(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

+ Here is the call graph for this function:

◆ saveRandom()

ilCourseObjectivesGUI::saveRandom ( )
protected

Definition at line 836 of file class.ilCourseObjectivesGUI.php.

836 : void
837 {
838 $this->ctrl->saveParameter($this, 'objective_id');
839 $this->ctrl->setParameter($this, 'tt', $this->initTestTypeFromQuery());
840 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
841 $this->test_type = $this->initTestTypeFromQuery();
842
843 $form = $this->initFormRandom();
844 if ($form->checkInput()) {
846 $this->course_obj->getId(),
847 $this->initObjectiveIdFromQuery(),
848 $this->test_type
849 );
850
851 $qst = $this->__initQuestionObject($this->initObjectiveIdFromQuery());
852 $qst->deleteByTestType(
853 ($this->test_type == ilLOSettings::TYPE_TEST_INITIAL) ?
856 );
857 $ref_id = $this->getSettings()->getTestByType($this->test_type);
858 foreach (array_unique((array) $form->getInput('qpl')) as $qpl_id) {
860 $this->course_obj->getId(),
861 $this->initObjectiveIdFromQuery(),
862 $this->test_type,
863 $qpl_id
864 );
865 $rnd->setLimit($form->getInput('per'));
866 $rnd->setTestId(ilObject::_lookupObjId($ref_id));
867 $rnd->create();
868 }
869 } else {
871 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('err_check_input'));
873 return;
874 }
875
876 $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'), true);
877 if (
878 $this->test_type == ilLOSettings::TYPE_TEST_QUALIFIED ||
879 $this->getSettings()->hasSeparateQualifiedTests()
880 ) {
881 $this->ctrl->returnToParent($this);
882 } else {
883 $this->ctrl->redirect($this, 'finalTestAssignment');
884 }
885 }
static deleteForObjectiveAndTestType(int $a_course_id, int $a_objective_id, int $a_tst_type)
$ref_id
Definition: ltiauth.php:66

References $form, $ref_id, __initQuestionObject(), ilObject\_lookupObjId(), ilPropertyFormGUI\checkInput(), ILIAS\Repository\ctrl(), ilLORandomTestQuestionPools\deleteForObjectiveAndTestType(), ilPropertyFormGUI\getInput(), getSettings(), initFormRandom(), initObjectiveIdFromQuery(), initTestTypeFromQuery(), ILIAS\Repository\lng(), ilPropertyFormGUI\setValuesByPost(), showRandomTestAssignment(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT, ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

+ Here is the call graph for this function:

◆ selfAssessmentAssignment()

ilCourseObjectivesGUI::selfAssessmentAssignment ( )
protected

Definition at line 498 of file class.ilCourseObjectivesGUI.php.

498 : void
499 {
500 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
501 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
502 }
503 if (!$this->initObjectiveIdFromQuery()) {
504 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
505 $this->ctrl->redirect($this, 'listObjectives');
506 }
507
508 $this->setSubTabs("self_ass_assign");
509
510 $this->ctrl->saveParameter($this, 'objective_id');
511
512 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
513
514 // begin-patch lok
515 $this->ctrl->setParameter($this, 'tt', ilLOSettings::TYPE_TEST_INITIAL);
516 $this->test_type = ilLOSettings::TYPE_TEST_INITIAL;
519 return;
520 }
521 // end-patch lok
523 $this,
524 $this->course_obj,
527 );
528 $table->setTitle(
529 $this->lng->txt('crs_objective_wiz_self'),
530 '',
531 $this->lng->txt('crs_objective')
532 );
533 $table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
534
536 $this->initWizard(self::STEP_INITIAL_TEST_ASSIGNMENT);
537 $this->tpl->setContent($table->getHTML());
538 }

References __initQuestionObject(), ilCourseObjectiveQuestion\_getAssignableTests(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), initObjectiveIdFromQuery(), initWizard(), isRandomTestType(), ILIAS\Repository\lng(), setSubTabs(), showRandomTestAssignment(), ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT, and ilLOSettings\TYPE_TEST_INITIAL.

Referenced by updateMaterialAssignment(), and updateSelfAssessmentAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ selfAssessmentLimits()

ilCourseObjectivesGUI::selfAssessmentLimits ( )
protected

Definition at line 602 of file class.ilCourseObjectivesGUI.php.

602 : void
603 {
604 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
605 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
606 }
607 if (!$this->initObjectiveIdFromQuery()) {
608 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
609 $this->ctrl->redirect($this, 'listObjectives');
610 }
611
612 $this->setSubTabs("self_ass_limits");
613
614 $this->ctrl->saveParameter($this, 'objective_id');
615 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
616
618 $this->initWizard(self::STEP_INITIAL_TEST_LIMIT);
619
620 $this->initFormLimits('selfAssessment');
621 $this->tpl->setContent($this->form->getHTML());
622 }

References __initQuestionObject(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\Repository\form(), initFormLimits(), initObjectiveIdFromQuery(), initWizard(), ILIAS\Repository\lng(), and setSubTabs().

Referenced by updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setSubTabs()

ilCourseObjectivesGUI::setSubTabs ( string  $a_active = "")

Definition at line 285 of file class.ilCourseObjectivesGUI.php.

285 : void
286 {
287 if ($a_active != "") {
288 $this->help->setScreenIdComponent("crs");
289 $this->help->setScreenId("crs_objective");
290 $this->help->setSubScreenId($a_active);
291 }
292 }

References ILIAS\Repository\help().

Referenced by create(), edit(), finalTestAssignment(), finalTestLimits(), materialAssignment(), selfAssessmentAssignment(), selfAssessmentLimits(), and showRandomTestAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showRandomTestAssignment()

ilCourseObjectivesGUI::showRandomTestAssignment ( ?ilPropertyFormGUI  $form = null)
protected

Definition at line 719 of file class.ilCourseObjectivesGUI.php.

719 : void
720 {
721 $this->ctrl->saveParameter($this, 'objective_id');
722 $this->objective = new ilCourseObjective($this->course_obj, $this->initObjectiveIdFromQuery());
723 if ($this->test_type === ilLOSettings::TYPE_TEST_UNDEFINED) {
724 $this->test_type = $this->initTestTypeFromQuery();
725 }
726 $this->ctrl->setParameter($this, 'tt', $this->test_type);
727 $this->setSubTabs("rand_test_assign");
728
729 if (!$form instanceof ilPropertyFormGUI) {
730 $form = $this->initFormRandom();
731 }
732
734 if ($this->test_type === ilLOSettings::TYPE_TEST_INITIAL) {
735 $this->initWizard(self::STEP_INITIAL_TEST_ASSIGNMENT);
736 } else {
737 $this->initWizard(self::STEP_FINAL_TEST_ASSIGNMENT);
738 }
739
740 $this->tpl->setContent($form->getHTML());
741 }

References $form, __initQuestionObject(), ILIAS\Repository\ctrl(), ilPropertyFormGUI\getHTML(), initFormRandom(), initObjectiveIdFromQuery(), initTestTypeFromQuery(), initWizard(), setSubTabs(), ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_UNDEFINED.

Referenced by finalTestAssignment(), saveRandom(), and selfAssessmentAssignment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateFinalTestAssignment()

ilCourseObjectivesGUI::updateFinalTestAssignment ( )
protected

Definition at line 887 of file class.ilCourseObjectivesGUI.php.

887 : void
888 {
889 $checked_questions = [];
890 if ($this->http->wrapper()->post()->has('questions')) {
891 $checked_questions = $this->http->wrapper()->post()->retrieve(
892 'questions',
893 $this->refinery->kindlyTo()->dictOf(
894 $this->refinery->kindlyTo()->string()
895 )
896 );
897 }
898
899 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
900 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
901 }
902 if (!$this->initObjectiveIdFromQuery()) {
903 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
904 $this->ctrl->redirect($this, 'listObjectives');
905 }
906
908
909 // Delete unchecked
910 foreach ($this->objectives_qst_obj->getFinalTestQuestions() as $question) {
911 $id = $question['ref_id'] . '_' . $question['question_id'];
912 if (!in_array($id, $checked_questions)) {
913 $this->objectives_qst_obj->delete($question['qst_ass_id']);
914 }
915 }
916 // Add checked
917 foreach ($checked_questions as $question_id) {
918 list($test_ref_id, $qst_id) = explode('_', $question_id);
919 $test_obj_id = $this->objectDataCache->lookupObjId((int) $test_ref_id);
920
921 if ($this->objectives_qst_obj->isFinalTestQuestion($qst_id)) {
922 continue;
923 }
924
925 $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
926 $this->objectives_qst_obj->setTestRefId($test_ref_id);
927 $this->objectives_qst_obj->setTestObjId($test_obj_id);
928 $this->objectives_qst_obj->setQuestionId($qst_id);
929 $this->objectives_qst_obj->add();
930 }
931
932 // TODO: not nice
933 $this->questions = new ilCourseObjectiveQuestion($this->initObjectiveIdFromQuery());
934 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_objectives_assigned_lm'));
935
936 if ($checked_questions) {
937 $this->finalTestLimits();
938 return;
939 }
940 $this->finalTestAssignment();
941 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23

References $id, __initQuestionObject(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), finalTestAssignment(), finalTestLimits(), ILIAS\FileDelivery\http(), initObjectiveIdFromQuery(), ILIAS\Repository\lng(), ILIAS\Repository\objectDataCache(), ILIAS\Repository\refinery(), and ilCourseObjectiveQuestion\TYPE_FINAL_TEST.

+ Here is the call graph for this function:

◆ updateFinalTestLimits()

ilCourseObjectivesGUI::updateFinalTestLimits ( )
protected

Definition at line 968 of file class.ilCourseObjectivesGUI.php.

968 : void
969 {
970 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
971 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
972 }
973 if (!$this->initObjectiveIdFromQuery()) {
974 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
975 $this->ctrl->redirect($this, 'listObjectives');
976 }
977 $objective_id = $this->initObjectiveIdFromQuery();
978 $this->__initQuestionObject($objective_id);
979
980 $limit = 0;
981 if ($this->http->wrapper()->post()->has('limit')) {
982 $limit = $this->http->wrapper()->post()->retrieve(
983 'limit',
984 $this->refinery->kindlyTo()->int()
985 );
986 }
987
988 if ($limit < 1 || $limit > 100) {
989 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_objective_err_limit'));
990 $this->finalTestLimits();
991 return;
992 }
993
994 foreach ($this->objectives_qst_obj->getFinalTests() as $test) {
995 $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
996 $this->objectives_qst_obj->setTestSuggestedLimit($limit);
997 $this->objectives_qst_obj->updateTest($test['test_objective_id']);
999 }
1000
1001 if (ilSession::get('objective_mode') != self::MODE_CREATE) {
1002 $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'), true);
1003 } else {
1004 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_added_objective'), true);
1005 }
1006 $this->ctrl->returnToParent($this);
1007 }
static updateResultLimit(int $a_objective_id, int $a_test_type, int $a_limit)

References __initQuestionObject(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), finalTestLimits(), ilSession\get(), ILIAS\FileDelivery\http(), initObjectiveIdFromQuery(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, ilLOUserResults\TYPE_QUALIFIED, and ilLOUserResults\updateResultLimit().

+ Here is the call graph for this function:

◆ updateMaterialAssignment()

ilCourseObjectivesGUI::updateMaterialAssignment ( )
protected

Definition at line 434 of file class.ilCourseObjectivesGUI.php.

434 : void
435 {
436 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
437 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
438 }
439 if (!$this->initObjectiveIdFromQuery()) {
440 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
441 $this->ctrl->redirect($this, 'listObjectives');
442 }
443
445
446 $visibleMaterials = $this->getIntArrayFromPost('visible_materials');
447 $visibleChapters = $this->getStringArrayFromPost('visible_chapters');
448 $materials = $this->getIntArrayFromPost('materials');
449 $chapters = $this->getStringArrayFromPost('chapters');
450
451 foreach ($visibleMaterials as $node_id) {
452 $obj_id = $this->objectDataCache->lookupObjId((int) $node_id);
453 if (!in_array($node_id, $materials)) {
454 $this->objectives_lm_obj->deleteMaterial($node_id, $obj_id);
455 continue;
456 }
457 if ($this->objectives_lm_obj->isMaterialAssigned($node_id, $obj_id)) {
458 continue;
459 }
460 $this->objectives_lm_obj->setLMRefId($node_id);
461 $this->objectives_lm_obj->setLMObjId($obj_id);
462 $this->objectives_lm_obj->setType($this->objectDataCache->lookupType($obj_id));
463 $this->objectives_lm_obj->add();
464 }
465
466 foreach ($visibleChapters as $chapter) {
467 list($ref_id, $chapter_id) = explode('_', $chapter);
468 if (!in_array($chapter, $chapters)) {
469 $this->objectives_lm_obj->deleteMaterial($ref_id, $chapter_id);
470 continue;
471 }
472 if ($this->objectives_lm_obj->isMaterialAssigned($ref_id, $chapter_id)) {
473 continue;
474 }
475 $this->objectives_lm_obj->setLMRefId($ref_id);
476 $this->objectives_lm_obj->setLMObjId($chapter_id);
477 $this->objectives_lm_obj->setType(ilLMObject::_lookupType($chapter_id));
478 $this->objectives_lm_obj->add();
479 }
480
481 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_objectives_assigned_lm'));
482 if (ilSession::get('objective_mode') != self::MODE_CREATE) {
483 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_objectives_assigned_lm'), true);
484 $this->ctrl->returnToParent($this);
485 }
486 if (
487 $this->getSettings()->worksWithInitialTest() &&
488 !$this->getSettings()->hasSeparateInitialTests()
489 ) {
491 } elseif (!$this->getSettings()->hasSeparateQualifiedTests()) {
492 $this->finalTestAssignment();
493 } else {
494 $this->ctrl->redirectByClass(ilLOEditorGUI::class);
495 }
496 }
static _lookupType(int $a_obj_id, int $a_lm_id=0)

References $ref_id, __initLMObject(), ilLMObject\_lookupType(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), finalTestAssignment(), ilSession\get(), getIntArrayFromPost(), getSettings(), getStringArrayFromPost(), initObjectiveIdFromQuery(), ILIAS\Repository\lng(), ILIAS\Repository\objectDataCache(), and selfAssessmentAssignment().

+ Here is the call graph for this function:

◆ updateSelfAssessmentAssignment()

ilCourseObjectivesGUI::updateSelfAssessmentAssignment ( )
protected

Definition at line 540 of file class.ilCourseObjectivesGUI.php.

540 : void
541 {
542 $checked_questions = [];
543 if ($this->http->wrapper()->post()->has('questions')) {
544 $checked_questions = $this->http->wrapper()->post()->retrieve(
545 'questions',
546 $this->refinery->kindlyTo()->dictOf(
547 $this->refinery->kindlyTo()->string()
548 )
549 );
550 }
551
552 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
553 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
554 }
555 if (!$this->initObjectiveIdFromQuery()) {
556 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
557 $this->ctrl->redirect($this, 'listObjectives');
558 }
560
561 // Delete unchecked
562 foreach ($this->objectives_qst_obj->getSelfAssessmentQuestions() as $question) {
563 $id = $question['ref_id'] . '_' . $question['question_id'];
564 if (!in_array($id, $checked_questions)) {
565 $this->objectives_qst_obj->delete($question['qst_ass_id']);
566 }
567 }
568 // Add checked
569 foreach ($checked_questions as $question_id) {
570 list($test_ref_id, $qst_id) = explode('_', $question_id);
571 $test_obj_id = $this->objectDataCache->lookupObjId((int) $test_ref_id);
572
573 if ($this->objectives_qst_obj->isSelfAssessmentQuestion($qst_id)) {
574 continue;
575 }
576 $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
577 $this->objectives_qst_obj->setTestRefId($test_ref_id);
578 $this->objectives_qst_obj->setTestObjId($test_obj_id);
579 $this->objectives_qst_obj->setQuestionId($qst_id);
580 $this->objectives_qst_obj->add();
581 }
582
583 // TODO: not nice
584 $this->questions = new ilCourseObjectiveQuestion($this->initObjectiveIdFromQuery());
585
586 if ($checked_questions) {
587 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_objectives_assigned_lm'));
588 $this->selfAssessmentLimits();
589 } else {
590 switch (ilSession::get('objective_mode')) {
592 $this->finalTestAssignment();
593 return;
594
597 $this->tpl->setOnScreenMessage('success', $this->lng->txt('crs_objectives_assigned_lm'));
598 }
599 }
600 }

References $id, __initQuestionObject(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), finalTestAssignment(), ilSession\get(), ILIAS\FileDelivery\http(), initObjectiveIdFromQuery(), ILIAS\Repository\lng(), MODE_CREATE, MODE_UPDATE, ILIAS\Repository\objectDataCache(), ILIAS\Repository\refinery(), selfAssessmentAssignment(), selfAssessmentLimits(), and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

+ Here is the call graph for this function:

◆ updateSelfAssessmentLimits()

ilCourseObjectivesGUI::updateSelfAssessmentLimits ( )
protected

Definition at line 624 of file class.ilCourseObjectivesGUI.php.

624 : void
625 {
626 if (!$this->access->checkAccess('write', '', $this->course_obj->getRefId())) {
627 $this->ilErr->raiseError($this->lng->txt('permission_denied'), $this->ilErr->WARNING);
628 }
629 if (!$this->initObjectiveIdFromQuery()) {
630 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_no_objective_selected'), true);
631 $this->ctrl->redirect($this, 'listObjectives');
632 }
633 $objective_id = $this->initObjectiveIdFromQuery();
634 $this->__initQuestionObject($objective_id);
635
636 $limit = $this->http->wrapper()->post()->retrieve(
637 'limit',
638 $this->refinery->byTrying([
639 $this->refinery->kindlyTo()->int(),
640 $this->refinery->always(0)
641 ])
642 );
643 if ($limit < 1 || $limit > 100) {
644 $this->tpl->setOnScreenMessage('failure', $this->lng->txt('crs_objective_err_limit'));
645 $this->selfAssessmentLimits();
646 return;
647 }
648
649 foreach ($this->objectives_qst_obj->getSelfAssessmentTests() as $test) {
650 $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
651 $this->objectives_qst_obj->setTestSuggestedLimit($limit);
652 $this->objectives_qst_obj->updateTest($test['test_objective_id']);
654 }
655
656 $this->tpl->setOnScreenMessage('success', $this->lng->txt('settings_saved'), true);
657 if (!$this->settings->hasSeparateQualifiedTests()) {
658 $this->finalTestAssignment();
659 return;
660 }
661 $this->ctrl->returnToParent($this);
662 }

References __initQuestionObject(), ILIAS\Repository\access(), ILIAS\Repository\ctrl(), finalTestAssignment(), ILIAS\FileDelivery\http(), initObjectiveIdFromQuery(), ILIAS\Repository\lng(), ILIAS\Repository\refinery(), selfAssessmentLimits(), ILIAS\Repository\settings(), ilLOUserResults\TYPE_INITIAL, ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT, and ilLOUserResults\updateResultLimit().

+ Here is the call graph for this function:

Field Documentation

◆ $access

ilAccessHandler ilCourseObjectivesGUI::$access
protected

Definition at line 64 of file class.ilCourseObjectivesGUI.php.

◆ $course_id

int ilCourseObjectivesGUI::$course_id
protected

Definition at line 50 of file class.ilCourseObjectivesGUI.php.

◆ $course_obj

ilObjCourse ilCourseObjectivesGUI::$course_obj
protected

Definition at line 44 of file class.ilCourseObjectivesGUI.php.

◆ $ctrl

ilCtrlInterface ilCourseObjectivesGUI::$ctrl
protected

Definition at line 57 of file class.ilCourseObjectivesGUI.php.

◆ $db

ilDBInterface ilCourseObjectivesGUI::$db
protected

Definition at line 56 of file class.ilCourseObjectivesGUI.php.

◆ $form

ilPropertyFormGUI ilCourseObjectivesGUI::$form = null
protected

◆ $help

ilHelpGUI ilCourseObjectivesGUI::$help
protected

Definition at line 66 of file class.ilCourseObjectivesGUI.php.

◆ $http

GlobalHttpState ilCourseObjectivesGUI::$http
protected

Definition at line 70 of file class.ilCourseObjectivesGUI.php.

◆ $ilErr

ilErrorHandling ilCourseObjectivesGUI::$ilErr
protected

Definition at line 58 of file class.ilCourseObjectivesGUI.php.

◆ $lng

ilLanguage ilCourseObjectivesGUI::$lng
protected

Definition at line 59 of file class.ilCourseObjectivesGUI.php.

◆ $logger

ilLogger ilCourseObjectivesGUI::$logger
private

Definition at line 55 of file class.ilCourseObjectivesGUI.php.

◆ $objectDataCache

ilObjectDataCache ilCourseObjectivesGUI::$objectDataCache
protected

Definition at line 67 of file class.ilCourseObjectivesGUI.php.

◆ $objective

ilCourseObjective ilCourseObjectivesGUI::$objective = null
protected

Definition at line 45 of file class.ilCourseObjectivesGUI.php.

◆ $objectives_lm_obj

ilCourseObjectiveMaterials ilCourseObjectivesGUI::$objectives_lm_obj = null
protected

Definition at line 47 of file class.ilCourseObjectivesGUI.php.

◆ $objectives_obj

ilCourseObjective ilCourseObjectivesGUI::$objectives_obj = null
protected

Definition at line 46 of file class.ilCourseObjectivesGUI.php.

◆ $objectives_qst_obj

ilCourseObjectiveQuestion ilCourseObjectivesGUI::$objectives_qst_obj = null
protected

Definition at line 48 of file class.ilCourseObjectivesGUI.php.

Referenced by __initQuestionObject().

◆ $questions

ilCourseObjectiveQuestion ilCourseObjectivesGUI::$questions = null
protected

Definition at line 49 of file class.ilCourseObjectivesGUI.php.

◆ $rbacsystem

ilRbacSystem ilCourseObjectivesGUI::$rbacsystem
protected

Definition at line 65 of file class.ilCourseObjectivesGUI.php.

◆ $refinery

Factory ilCourseObjectivesGUI::$refinery
protected

Definition at line 71 of file class.ilCourseObjectivesGUI.php.

◆ $renderer

UIRenderer ilCourseObjectivesGUI::$renderer
protected

Definition at line 69 of file class.ilCourseObjectivesGUI.php.

◆ $settings

ilLOSettings ilCourseObjectivesGUI::$settings
protected

Definition at line 51 of file class.ilCourseObjectivesGUI.php.

Referenced by getSettings().

◆ $tabs

ilTabsGUI ilCourseObjectivesGUI::$tabs
protected

Definition at line 62 of file class.ilCourseObjectivesGUI.php.

◆ $test_type

int ilCourseObjectivesGUI::$test_type = 0
protected

Definition at line 52 of file class.ilCourseObjectivesGUI.php.

Referenced by isRandomTestType().

◆ $toolbar

ilToolbarGUI ilCourseObjectivesGUI::$toolbar
protected

Definition at line 63 of file class.ilCourseObjectivesGUI.php.

◆ $tpl

ilGlobalTemplateInterface ilCourseObjectivesGUI::$tpl
protected

Definition at line 60 of file class.ilCourseObjectivesGUI.php.

Referenced by initFormLimits().

◆ $tree

ilTree ilCourseObjectivesGUI::$tree
protected

Definition at line 61 of file class.ilCourseObjectivesGUI.php.

◆ $workflow

Workflow ilCourseObjectivesGUI::$workflow
protected

Definition at line 68 of file class.ilCourseObjectivesGUI.php.

◆ MODE_CREATE

const ilCourseObjectivesGUI::MODE_CREATE = 1

Definition at line 34 of file class.ilCourseObjectivesGUI.php.

Referenced by updateSelfAssessmentAssignment().

◆ MODE_UNDEFINED

const ilCourseObjectivesGUI::MODE_UNDEFINED = 0

◆ MODE_UPDATE

const ilCourseObjectivesGUI::MODE_UPDATE = 2

Definition at line 35 of file class.ilCourseObjectivesGUI.php.

Referenced by updateSelfAssessmentAssignment().

◆ STEP_FINAL_TEST_ASSIGNMENT

const ilCourseObjectivesGUI::STEP_FINAL_TEST_ASSIGNMENT = 5
protected

Definition at line 41 of file class.ilCourseObjectivesGUI.php.

Referenced by initWizard().

◆ STEP_FINAL_TEST_LIMIT

const ilCourseObjectivesGUI::STEP_FINAL_TEST_LIMIT = 6
protected

Definition at line 42 of file class.ilCourseObjectivesGUI.php.

Referenced by initWizard().

◆ STEP_INITIAL_TEST_ASSIGNMENT

const ilCourseObjectivesGUI::STEP_INITIAL_TEST_ASSIGNMENT = 3
protected

Definition at line 39 of file class.ilCourseObjectivesGUI.php.

Referenced by initWizard().

◆ STEP_INITIAL_TEST_LIMIT

const ilCourseObjectivesGUI::STEP_INITIAL_TEST_LIMIT = 4
protected

Definition at line 40 of file class.ilCourseObjectivesGUI.php.

Referenced by initWizard().

◆ STEP_MATERIAL_ASSIGNMENT

const ilCourseObjectivesGUI::STEP_MATERIAL_ASSIGNMENT = 2
protected

Definition at line 38 of file class.ilCourseObjectivesGUI.php.

Referenced by initWizard().

◆ STEP_SETTINGS

const ilCourseObjectivesGUI::STEP_SETTINGS = 1
protected

Definition at line 37 of file class.ilCourseObjectivesGUI.php.

Referenced by initWizard().


The documentation for this class was generated from the following file: