ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilCourseObjectivesGUI Class Reference

class ilobjcourseobjectivesgui More...

+ Inheritance diagram for ilCourseObjectivesGUI:
+ Collaboration diagram for ilCourseObjectivesGUI:

Public Member Functions

 ilCourseObjectivesGUI ($a_course_id)
 
executeCommand ()
 execute command More...
 
 getSettings ()
 Get settings. More...
 
 askDeleteObjective ()
 
 deleteObjectives ()
 
 __initCourseObject ()
 
 __initObjectivesObject ($a_id=0)
 
 __initLMObject ($a_objective_id=0)
 
 __initQuestionObject ($a_objective_id=0)
 
 setSubTabs ($a_active="")
 set sub tabs More...
 
 create ()
 create objective More...
 

Data Fields

const MODE_UNDEFINED = 0
 
const MODE_CREATE = 1
 
const MODE_UPDATE = 2
 
 $ctrl
 
 $ilias
 
 $ilErr
 
 $lng
 
 $tpl
 
 $course_obj
 
 $course_id
 

Protected Member Functions

 listObjectives ()
 list objectives More...
 
 saveSorting ()
 save position More...
 
 questionOverview ()
 question overiew More...
 
 saveQuestionOverview ()
 update question overview More...
 
 edit ()
 edit objective More...
 
 save ()
 save More...
 
 materialAssignment ()
 material assignment More...
 
 updateMaterialAssignment ()
 update material assignment More...
 
 selfAssessmentAssignment ()
 self assessment assignemnt More...
 
 updateSelfAssessmentAssignment ()
 update self assessment assignment More...
 
 selfAssessmentLimits ()
 self assessment limits More...
 
 updateSelfAssessmentLimits ()
 update self assessment limits More...
 
 finalTestAssignment ()
 final test assignment More...
 
 isRandomTestType ($a_tst_type=0)
 
 showRandomTestAssignment (ilPropertyFormGUI $form=null)
 
 initFormRandom ()
 show random test More...
 
 getRandomTestQplOptions ()
 
 saveRandom ()
 Save random test settings. More...
 
 updateFinalTestAssignment ()
 update self assessment assignment More...
 
 finalSeparatedTestAssignment (ilPropertyFormGUI $form=null)
 Show test assignment form. More...
 
 finalTestLimits ()
 self assessment limits More...
 
 updateFinalTestLimits ()
 update self assessment limits More...
 
 initFormLimits ($a_mode)
 init limit form More...
 
 initFormTitle ($a_mode, $a_step_number)
 init form title More...
 
 initWizard ($a_step_number)
 init wizard More...
 

Protected Attributes

 $settings
 
 $test_type = 0
 

Detailed Description

class ilobjcourseobjectivesgui

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

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

Member Function Documentation

◆ __initCourseObject()

ilCourseObjectivesGUI::__initCourseObject ( )

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

References exit, and ilObjectFactory\getInstanceByRefId().

Referenced by ilCourseObjectivesGUI().

380  {
381  if(!$this->course_obj =& ilObjectFactory::getInstanceByRefId($this->course_id,false))
382  {
383  $this->ilErr->raiseError("ilCourseObjectivesGUI: cannot create course object",$this->ilErr->MESSAGE);
384  exit;
385  }
386  return true;
387  }
exit
Definition: login.php:54
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
+ 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 394 of file class.ilCourseObjectivesGUI.php.

Referenced by updateMaterialAssignment().

395  {
396  include_once './Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
397  $this->objectives_lm_obj =& new ilCourseObjectiveMaterials($a_objective_id);
398 
399  return true;
400  }
class ilCourseObjectiveMaterials
+ Here is the caller graph for this function:

◆ __initObjectivesObject()

ilCourseObjectivesGUI::__initObjectivesObject (   $a_id = 0)

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

Referenced by askDeleteObjective(), and deleteObjectives().

390  {
391  return $this->objectives_obj = new ilCourseObjective($this->course_obj,$a_id);
392  }
class ilcourseobjective
+ Here is the caller graph for this function:

◆ __initQuestionObject()

ilCourseObjectivesGUI::__initQuestionObject (   $a_objective_id = 0)
Parameters
type$a_objective_id
Returns
ilCourseObjectiveQuestion

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

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

409  {
410  include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
411  $this->objectives_qst_obj =& new ilCourseObjectiveQuestion($a_objective_id);
412 
413  return $this->objectives_qst_obj;
414  }
class ilcourseobjectiveQuestion
+ Here is the caller graph for this function:

◆ askDeleteObjective()

ilCourseObjectivesGUI::askDeleteObjective ( )

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

References $_GET, $_POST, $_SESSION, $tbl, __initObjectivesObject(), ilUtil\getImagePath(), listObjectives(), ilUtil\sendFailure(), ilUtil\sendQuestion(), and ilUtil\switchColor().

172  {
173  global $rbacsystem;
174 
175  // MINIMUM ACCESS LEVEL = 'write'
176  if(!$rbacsystem->checkAccess("write", $this->course_obj->getRefId()))
177  {
178  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
179  }
180  if(!count($_POST['objective']))
181  {
182  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
183  $this->listObjectives();
184 
185  return true;
186  }
187 
188  $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.crs_objectives.html",'Modules/Course');
189 
190  ilUtil::sendQuestion($this->lng->txt('crs_delete_objectve_sure'));
191 
192  $tpl =& new ilTemplate("tpl.table.html", true, true);
193  $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.crs_objectives_delete_row.html",'Modules/Course');
194 
195  $counter = 0;
196  foreach($_POST['objective'] as $objective_id)
197  {
198  $objective_obj = $this->__initObjectivesObject($objective_id);
199 
200  $tpl->setCurrentBlock("tbl_content");
201  $tpl->setVariable("ROWCOL",ilUtil::switchColor(++$counter,"tblrow2","tblrow1"));
202  $tpl->setVariable("TITLE",$objective_obj->getTitle());
203  $tpl->setVariable("DESCRIPTION",$objective_obj->getDescription());
204  $tpl->parseCurrentBlock();
205  }
206 
207  $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
208 
209  // Show action row
210  $tpl->setCurrentBlock("tbl_action_btn");
211  $tpl->setVariable("BTN_NAME",'deleteObjectives');
212  $tpl->setVariable("BTN_VALUE",$this->lng->txt('delete'));
213  $tpl->parseCurrentBlock();
214 
215  $tpl->setCurrentBlock("tbl_action_btn");
216  $tpl->setVariable("BTN_NAME",'listObjectives');
217  $tpl->setVariable("BTN_VALUE",$this->lng->txt('cancel'));
218  $tpl->parseCurrentBlock();
219 
220  $tpl->setCurrentBlock("tbl_action_row");
221  $tpl->setVariable("COLUMN_COUNTS",1);
222  $tpl->setVariable("IMG_ARROW",ilUtil::getImagePath('arrow_downright.svg'));
223  $tpl->parseCurrentBlock();
224 
225 
226  // create table
227  $tbl = new ilTableGUI();
228  $tbl->setStyle('table','std');
229 
230  // title & header columns
231  $tbl->setTitle($this->lng->txt("crs_objectives"),"",$this->lng->txt("crs_objectives"));
232 
233  $tbl->setHeaderNames(array($this->lng->txt("title")));
234  $tbl->setHeaderVars(array("title"),
235  array("ref_id" => $this->course_obj->getRefId(),
236  "cmdClass" => "ilcourseobjectivesgui",
237  "cmdNode" => $_GET["cmdNode"]));
238  $tbl->setColumnWidth(array("50%"));
239 
240  $tbl->setLimit($_GET["limit"]);
241  $tbl->setOffset($_GET["offset"]);
242  $tbl->setMaxCount(count($_POST['objective']));
243 
244  // footer
245  $tbl->disable("footer");
246  $tbl->disable('sort');
247 
248  // render table
249  $tbl->setTemplate($tpl);
250  $tbl->render();
251 
252  $this->tpl->setVariable("OBJECTIVES_TABLE", $tpl->get());
253 
254 
255  // Save marked objectives
256  $_SESSION['crs_delete_objectives'] = $_POST['objective'];
257 
258  return true;
259  }
$_POST['username']
Definition: cron.php:12
$_SESSION["AccountId"]
$_GET["client_id"]
$tbl
Definition: example_048.php:81
Class ilTableGUI.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
special template class to simplify handling of ITX/PEAR
redirection script todo: (a better solution should control the processing via a xml file) ...
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static switchColor($a_num, $a_css1, $a_css2)
switches style sheets for each even $a_num (used for changing colors of different result rows) ...
+ Here is the call graph for this function:

◆ create()

ilCourseObjectivesGUI::create ( )

create objective

public

Parameters

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

References $_GET, $_SESSION, $GLOBALS, $tpl, __initQuestionObject(), initFormTitle(), initWizard(), and setSubTabs().

466  {
467  global $tpl;
468 
469  $this->setSubTabs("create_obj");
470 
471  $_SESSION['objective_mode'] = self::MODE_CREATE;
472 
473  $this->ctrl->saveParameter($this,'objective_id');
474 
475  if(!is_object($this->objective))
476  {
477  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
478  }
479  $this->__initQuestionObject((int) $_GET['objective_id']);
480  $this->initWizard(1);
481 
482  $this->initFormTitle('create',1);
483  $GLOBALS['tpl']->setContent($this->form->getHtml());
484  #$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
485  #$tpl->setContent($w_tpl->get());
486  }
initFormTitle($a_mode, $a_step_number)
init form title
$_SESSION["AccountId"]
initWizard($a_step_number)
init wizard
$_GET["client_id"]
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:

◆ deleteObjectives()

ilCourseObjectivesGUI::deleteObjectives ( )

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

References $_SESSION, __initObjectivesObject(), listObjectives(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

262  {
263  global $rbacsystem;
264 
265  // MINIMUM ACCESS LEVEL = 'write'
266  if(!$rbacsystem->checkAccess("write", $this->course_obj->getRefId()))
267  {
268  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
269  }
270  if(!count($_SESSION['crs_delete_objectives']))
271  {
272  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
273  $this->listObjectives();
274 
275  return true;
276  }
277 
278  foreach($_SESSION['crs_delete_objectives'] as $objective_id)
279  {
280  $objective_obj =& $this->__initObjectivesObject($objective_id);
281  $objective_obj->delete();
282  }
283 
284  ilUtil::sendSuccess($this->lng->txt('crs_objectives_deleted'));
285  $this->listObjectives();
286 
287  return true;
288  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_SESSION["AccountId"]
redirection script todo: (a better solution should control the processing via a xml file) ...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ edit()

ilCourseObjectivesGUI::edit ( )
protected

edit objective

protected

Returns

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

References $_REQUEST, $_SESSION, $GLOBALS, $tpl, __initQuestionObject(), initFormTitle(), initWizard(), ilUtil\sendFailure(), and setSubTabs().

Referenced by save().

495  {
496  global $tpl;
497 
498  $_SESSION['objective_mode'] = self::MODE_UPDATE;
499 
500  $this->setSubTabs("edit_obj");
501 
502  $this->ctrl->setParameter($this,'objective_id',(int) $_REQUEST['objective_id']);
503 
504  if(!$_REQUEST['objective_id'])
505  {
506  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
507  $this->ctrl->redirect($this,'listObjectives');
508  }
509 
510  if(!is_object($this->objective))
511  {
512  $this->objective = new ilCourseObjective($this->course_obj,(int) $_REQUEST['objective_id']);
513  }
514 
515  $this->__initQuestionObject((int) $_REQUEST['objective_id']);
516  $this->initWizard(1);
517  $this->initFormTitle('create',1);
518  $GLOBALS['tpl']->setContent($this->form->getHtml());
519  #$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
520  #$tpl->setContent($w_tpl->get());
521  }
initFormTitle($a_mode, $a_step_number)
init form title
$_SESSION["AccountId"]
initWizard($a_step_number)
init wizard
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

& ilCourseObjectivesGUI::executeCommand ( )

execute command

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

References $cmd.

86  {
87  global $ilTabs;
88 
89  $ilTabs->setTabActive('crs_objectives');
90 
91  $cmd = $this->ctrl->getCmd();
92 
93 
94  if (!$cmd = $this->ctrl->getCmd())
95  {
96  $cmd = "list";
97  }
98 
99  $this->$cmd();
100  }
$cmd
Definition: sahs_server.php:35

◆ finalSeparatedTestAssignment()

ilCourseObjectivesGUI::finalSeparatedTestAssignment ( ilPropertyFormGUI  $form = null)
protected

Show test assignment form.

Parameters
ilPropertyFormGUI$form

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

References $_GET, $GLOBALS, $ilErr, initWizard(), and ilUtil\sendFailure().

1219  {
1220  global $ilAccess, $ilErr;
1221 
1222  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
1223  {
1224  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
1225  }
1226  if(!$_GET['objective_id'])
1227  {
1228  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
1229  $this->ctrl->returnToParent($this);
1230  }
1231  $this->ctrl->saveParameter($this,'objective_id');
1232  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
1233 
1234  $this->initWizard(6);
1235  $form = $this->initFormTestAssignment();
1236  $GLOBALS['tpl']->setContent($form->getHtml());
1237  }
initWizard($a_step_number)
init wizard
$_GET["client_id"]
class ilcourseobjective
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:

◆ finalTestAssignment()

ilCourseObjectivesGUI::finalTestAssignment ( )
protected

final test assignment

protected

Parameters

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

References $_GET, $_REQUEST, $GLOBALS, $ilErr, $tpl, __initQuestionObject(), ilCourseObjectiveQuestion\_getAssignableTests(), initWizard(), isRandomTestType(), ilUtil\sendFailure(), setSubTabs(), showRandomTestAssignment(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, and ilLOSettings\TYPE_TEST_QUALIFIED.

Referenced by updateMaterialAssignment(), and updateSelfAssessmentAssignment().

905  {
906  global $ilAccess,$ilErr,$tpl;
907 
908  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
909  {
910  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
911  }
912  if(!$_GET['objective_id'])
913  {
914  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
915  $this->ctrl->redirect($this,'listObjectives');
916  }
917 
918  $this->setSubTabs("final_test_assign");
919 
920  $this->ctrl->saveParameter($this,'objective_id');
921  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
922 
923  // begin-patch lok
924  $this->ctrl->setParameter($this,'tt',ilLOSettings::TYPE_TEST_QUALIFIED);
925  $this->test_type = $_REQUEST['tt'] = ilLOSettings::TYPE_TEST_QUALIFIED;
927  {
928  return $this->showRandomTestAssignment();
929  }
930  // end-patch lok
931 
932  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionAssignmentTableGUI.php');
934  $this->course_obj,
935  (int) $_GET['objective_id'],
937 
938  $table->setTitle($this->lng->txt('crs_objective_wiz_final'),
939  '',$this->lng->txt('crs_objective'));
940  $table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
941 
942  $this->__initQuestionObject((int) $_GET['objective_id']);
943  $this->initWizard(5);
944  $GLOBALS['tpl']->setContent($table->getHTML());
945  #$w_tpl->setVariable('WIZ_CONTENT',$table->getHTML());
946  #$tpl->setContent($w_tpl->get());
947  }
initWizard($a_step_number)
init wizard
$_GET["client_id"]
showRandomTestAssignment(ilPropertyFormGUI $form=null)
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
TableGUI for question assignments of course objectives.
static _getAssignableTests($a_container_ref_id)
Get assignable tests.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ finalTestLimits()

ilCourseObjectivesGUI::finalTestLimits ( )
protected

self assessment limits

protected

Parameters

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

References $_GET, $GLOBALS, $ilErr, $tpl, __initQuestionObject(), initFormLimits(), initWizard(), ilUtil\sendFailure(), and setSubTabs().

Referenced by updateFinalTestAssignment(), and updateFinalTestLimits().

1247  {
1248  global $ilAccess,$ilErr,$tpl;
1249 
1250  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
1251  {
1252  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
1253  }
1254  if(!$_GET['objective_id'])
1255  {
1256  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
1257  $this->ctrl->returnToParent($this);
1258  }
1259 
1260  $this->setSubTabs("final_test_limits");
1261 
1262  $this->ctrl->saveParameter($this,'objective_id');
1263  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
1264 
1265  $this->__initQuestionObject((int) $_GET['objective_id']);
1266  $this->initWizard(6);
1267 
1268  $this->initFormLimits('final');
1269  $GLOBALS['tpl']->setContent($this->form->getHtml());
1270 
1271  #$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
1272  #$tpl->setContent($w_tpl->get());
1273  }
initWizard($a_step_number)
init wizard
$_GET["client_id"]
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
initFormLimits($a_mode)
init limit form
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRandomTestQplOptions()

ilCourseObjectivesGUI::getRandomTestQplOptions ( )
protected

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

References $GLOBALS, $options, ilObjectFactory\getInstanceByRefId(), and getSettings().

Referenced by initFormRandom().

1053  {
1054  include_once './Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionFactory.php';
1055  include_once './Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionList.php';
1056 
1057  $tst_ref_id = $this->getSettings()->getTestByType($this->test_type);
1058  if($tst_ref_id)
1059  {
1060  $tst = ilObjectFactory::getInstanceByRefId($tst_ref_id,false);
1061  }
1062  if(!$tst instanceof ilObjTest)
1063  {
1064  return array();
1065  }
1067  $GLOBALS['ilDB'],
1068  $tst,
1070  $GLOBALS['ilDB'],
1071  $tst
1072  )
1073  );
1074 
1075  $list->loadDefinitions();
1076 
1077  include_once './Modules/Test/classes/class.ilTestTaxonomyFilterLabelTranslater.php';
1078  $translater = new ilTestTaxonomyFilterLabelTranslater($GLOBALS['ilDB']);
1079  $translater->loadLabels($list);
1080 
1081  $options[0] = $this->lng->txt('select_one');
1082  foreach ($list as $definition)
1083  {
1084  $title = $definition->getPoolTitle();
1085  $tax_id = $definition->getMappedFilterTaxId();
1086  if($tax_id)
1087  {
1088  $title .= (' -> '. $translater->getTaxonomyTreeLabel($tax_id));
1089  }
1090  $tax_node = $definition->getMappedFilterTaxNodeId();
1091  if($tax_node)
1092  {
1093  $title .= (' -> ' .$translater->getTaxonomyNodeLabel($tax_node));
1094  }
1095  $options[$definition->getId()] = $title;
1096  }
1097  return $options;
1098  }
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
if(!is_array($argv)) $options
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSettings()

ilCourseObjectivesGUI::getSettings ( )

Get settings.

Returns
ilLOSettings

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

References $settings.

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

+ Here is the caller graph for this function:

◆ ilCourseObjectivesGUI()

ilCourseObjectivesGUI::ilCourseObjectivesGUI (   $a_course_id)

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

References $ilCtrl, $ilErr, $ilias, $lng, $tpl, __initCourseObject(), and ilLOSettings\getInstanceByObjId().

58  {
59  include_once './Modules/Course/classes/class.ilCourseObjective.php';
60 
61  global $ilCtrl,$lng,$ilErr,$ilias,$tpl,$tree,$ilTabs;
62 
63  $this->ctrl =& $ilCtrl;
64  $this->ctrl->saveParameter($this,array("ref_id"));
65 
66  $this->ilErr =& $ilErr;
67  $this->lng =& $lng;
68  $this->lng->loadLanguageModule('crs');
69  $this->tpl =& $tpl;
70  $this->tree =& $tree;
71  $this->tabs_gui =& $ilTabs;
72 
73  $this->course_id = $a_course_id;
74  $this->__initCourseObject();
75 
76  // begin-patch lok
77  $this->settings = ilLOSettings::getInstanceByObjId($this->course_obj->getId());
78  // end-patch lok
79 
80  }
static getInstanceByObjId($a_obj_id)
get singleton instance
global $ilCtrl
Definition: ilias.php:18
+ Here is the call graph for this function:

◆ initFormLimits()

ilCourseObjectivesGUI::initFormLimits (   $a_mode)
protected

init limit form

protected

Parameters
stringmode selfAssessment or final
Returns

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

References $GLOBALS, $test, $tests, ilObject\_lookupDescription(), ilObject\_lookupTitle(), ilUtil\getTypeIconPath(), ilCustomInputGUI\setHtml(), and ilNumberInputGUI\setValue().

Referenced by finalTestLimits(), and selfAssessmentLimits().

1331  {
1332  if(!is_object($this->form))
1333  {
1334  include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
1335  $this->form = new ilPropertyFormGUI();
1336  }
1337  $this->form->setFormAction($this->ctrl->getFormAction($this));
1338  $this->form->setTableWidth('100%');
1339  //$this->form->setTitleIcon(ilUtil::getImagePath('icon_lobj.svg'),$this->lng->txt('crs_objective'));
1340 
1341  switch($a_mode)
1342  {
1343  case 'selfAssessment':
1344  $this->form->setTitle($this->lng->txt('crs_objective_wiz_self_limit'));
1345  $this->form->addCommandButton('updateSelfAssessmentLimits',$this->lng->txt('crs_wiz_next'));
1346  $this->form->addCommandButton('selfAssessmentAssignment',$this->lng->txt('crs_wiz_back'));
1347 
1348  $tests = $this->objectives_qst_obj->getSelfAssessmentTests();
1349  $max_points = $this->objectives_qst_obj->getSelfAssessmentPoints();
1350 
1351  break;
1352 
1353  case 'final':
1354  $this->form->setTitle($this->lng->txt('crs_objective_wiz_final_limit'));
1355  $this->form->addCommandButton('updateFinalTestLimits',$this->lng->txt('crs_wiz_next'));
1356  $this->form->addCommandButton('finalTestAssignment',$this->lng->txt('crs_wiz_back'));
1357 
1358  $tests = $this->objectives_qst_obj->getFinalTests();
1359  $max_points = $this->objectives_qst_obj->getFinalTestPoints();
1360 
1361  break;
1362  }
1363 
1364  $over = new ilCustomInputGUI($this->lng->txt('crs_objective_qst_summary'),'');
1365 
1366  $tpl = new ilTemplate('tpl.crs_objective_qst_summary.html',true,true,'Modules/Course');
1367 
1368 
1369  $limit = 0;
1370 
1371  foreach($tests as $test)
1372  {
1373  $GLOBALS['ilLog']->write(__METHOD__.': '.print_r($test,TRUE));
1374 
1375  $limit = $test['limit'];
1376 
1377  foreach($this->objectives_qst_obj->getQuestionsOfTest($test['obj_id']) as $question)
1378  {
1379  $tpl->setCurrentBlock('qst');
1380  $tpl->setVariable('QST_TITLE',$question['title']);
1381  if(strlen($question['description']))
1382  {
1383  $tpl->setVariable('QST_DESCRIPTION',$question['description']);
1384  }
1385  $tpl->setVariable('QST_POINTS',$question['points'].' '.
1386  $this->lng->txt('crs_objective_points'));
1387  $tpl->parseCurrentBlock();
1388  }
1389  $tpl->setCurrentBlock('tst');
1390  $tpl->setVariable('TST_TITLE',ilObject::_lookupTitle($test['obj_id']));
1391  if($desc = ilObject::_lookupDescription($test['obj_id']))
1392  {
1393  $tpl->setVariable('TST_DESC',$desc);
1394  }
1395  $tpl->setVariable('TST_TYPE_IMG',ilUtil::getTypeIconPath('tst',$test['obj_id'],'tiny'));
1396  $tpl->setVariable('TST_ALT_IMG',$this->lng->txt('obj_tst'));
1397  $tpl->parseCurrentBlock();
1398  }
1399 
1400  $tpl->setVariable('TXT_ALL_POINTS',$this->lng->txt('crs_objective_all_points'));
1401  $tpl->setVariable('TXT_POINTS',$this->lng->txt('crs_objective_points'));
1402  $tpl->setVariable('POINTS',$max_points);
1403 
1404  $over->setHtml($tpl->get());
1405  $this->form->addItem($over);
1406 
1407  // points
1408  $req = new ilNumberInputGUI($this->lng->txt('crs_loc_perc'),'limit');
1409  $req->setValue($limit);
1410  $req->setSize(3);
1411  $req->setMinValue(1);
1412  $req->setMaxValue(100);
1413  $req->setRequired(true);
1414  switch($a_mode)
1415  {
1416  case 'selfAssessment':
1417  $req->setInfo($this->lng->txt('crs_obj_initial_req_info'));
1418  break;
1419 
1420  case 'final':
1421  $req->setInfo($this->lng->txt('crs_obj_final_req_info'));
1422  break;
1423  }
1424  $this->form->addItem($req);
1425  }
setHtml($a_html)
Set Html.
setValue($a_value)
Set Value.
This class represents a property form user interface.
static _lookupTitle($a_id)
lookup object title
static getTypeIconPath($a_type, $a_obj_id, $a_size='small')
Get type icon path path Return image path for icon_xxx.pngs Or (if enabled) path to custom icon Depre...
This class represents a number property in a property form.
static _lookupDescription($a_id)
lookup object description
special template class to simplify handling of ITX/PEAR
This class represents a custom property in a property form.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
$test
Definition: Utf8Test.php:85
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormRandom()

ilCourseObjectivesGUI::initFormRandom ( )
protected

show random test

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

References $_REQUEST, $options, getRandomTestQplOptions(), ilSelectInputGUI\setOptions(), ilNumberInputGUI\setValue(), and ilLOSettings\TYPE_TEST_INITIAL.

Referenced by saveRandom(), and showRandomTestAssignment().

997  {
998  include_once './Modules/Course/classes/Objectives/class.ilLORandomTestQuestionPools.php';
999  $rnd = new ilLORandomTestQuestionPools(
1000  $this->course_obj->getId(),
1001  (int) $_REQUEST['objective_id'],
1002  $this->test_type
1003  );
1004 
1005  include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
1006  $form = new ilPropertyFormGUI();
1007  $form->setFormAction($this->ctrl->getFormAction($this));
1008 
1009  if($this->test_type == ilLOSettings::TYPE_TEST_INITIAL)
1010  {
1011  $form->setTitle($this->lng->txt('crs_loc_form_random_limits_it'));
1012  }
1013  else
1014  {
1015  $form->setTitle($this->lng->txt('crs_loc_form_random_limits_qt'));
1016  }
1017 
1018  $form->addCommandButton('saveRandom', $this->lng->txt('save'));
1019 
1020  $options = new ilRadioGroupInputGUI($this->lng->txt('crs_loc_rand_assign_qpl'),'type');
1021  $options->setValue(1);
1022  $options->setRequired(true);
1023 
1024  $ass_qpl = new ilRadioOption($this->lng->txt('crs_loc_rand_assign_qpl'),1);
1025  $options->addOption($ass_qpl);
1026 
1027  $qpl = new ilSelectInputGUI($this->lng->txt('crs_loc_rand_qpl'),'qpl');
1028  $qpl->setOptions($this->getRandomTestQplOptions());
1029  $qpl->setValue($rnd->getQplSequence());
1030  $ass_qpl->addSubItem($qpl);
1031 
1032  #$num = new ilNumberInputGUI($this->lng->txt('crs_loc_num_qst'),'num_qst');
1033  #$num->setSize(3);
1034  #$num->setMinValue(1);
1035  #$num->setRequired(true);
1036  #$ass_qpl->addSubItem($num);
1037 
1038  // points
1039  $per = new ilNumberInputGUI($this->lng->txt('crs_loc_perc'),'per');
1040  $per->setValue($rnd->getLimit());
1041  $per->setSize(3);
1042  $per->setMinValue(1);
1043  $per->setMaxValue(100);
1044  $per->setRequired(true);
1045  $ass_qpl->addSubItem($per);
1046 
1047  $form->addItem($options);
1048  return $form;
1049  }
This class represents an option in a radio group.
setValue($a_value)
Set Value.
This class represents a selection list property in a property form.
This class represents a property form user interface.
This class represents a property in a property form.
if(!is_array($argv)) $options
This class represents a number property in a property form.
setOptions($a_options)
Set Options.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFormTitle()

ilCourseObjectivesGUI::initFormTitle (   $a_mode,
  $a_step_number 
)
protected

init form title

protected

Returns

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

References ilTextInputGUI\setValue(), and ilTextAreaInputGUI\setValue().

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

1435  {
1436  include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
1437  if($this->form instanceof ilPropertyFormGUI)
1438  {
1439  return;
1440  }
1441 
1442  $this->form = new ilPropertyFormGUI();
1443  $this->form->setFormAction($this->ctrl->getFormAction($this));
1444  //$this->form->setTitleIcon(ilUtil::getImagePath('icon_lobj.svg'),$this->lng->txt('crs_objective'));
1445 
1446  switch($a_mode)
1447  {
1448  case 'create':
1449  $this->form->setTitle($this->lng->txt('crs_objective_wiz_title'));
1450  $this->form->addCommandButton('save',$this->lng->txt('crs_wiz_next'));
1451  // begin-patch lok
1452  #$this->form->addCommandButton('listObjectives',$this->lng->txt('cancel'));
1453  // end-patch lok
1454  break;
1455 
1456  case 'update':
1457  break;
1458  }
1459 
1460  $title = new ilTextInputGUI($this->lng->txt('title'),'title');
1461  $title->setValue($this->objective->getTitle());
1462  $title->setRequired(true);
1463  $title->setSize(40);
1464  $title->setMaxLength(70);
1465  $this->form->addItem($title);
1466 
1467  $desc = new ilTextAreaInputGUI($this->lng->txt('description'),'description');
1468  $desc->setValue($this->objective->getDescription());
1469  $desc->setCols(40);
1470  $desc->setRows(5);
1471  $this->form->addItem($desc);
1472 
1473  }
This class represents a property form user interface.
setValue($a_value)
Set Value.
This class represents a text property in a property form.
This class represents a text area property in a property form.
setValue($a_value)
Set Value.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initWizard()

ilCourseObjectivesGUI::initWizard (   $a_step_number)
protected

init wizard

protected

Parameters
stringmode 'create' or 'edit'
Returns

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

References $_SESSION, $GLOBALS, $info, $options, getSettings(), isRandomTestType(), ilChecklistGUI\STATUS_NO_STATUS, ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

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

1484  {
1485  $options = array(
1486  1 => $this->lng->txt('crs_objective_wiz_title'),
1487  2 => $this->lng->txt('crs_objective_wiz_materials'),
1488  3 => $this->lng->txt('crs_objective_wiz_self'),
1489  4 => $this->lng->txt('crs_objective_wiz_self_limit'),
1490  5 => $this->lng->txt('crs_objective_wiz_final'),
1491  6 => $this->lng->txt('crs_objective_wiz_final_limit'));
1492 
1493  $info = array(
1494  1 => $this->lng->txt('crs_objective_wiz_title_info'),
1495  2 => $this->lng->txt('crs_objective_wiz_materials_info'),
1496  3 => $this->lng->txt('crs_objective_wiz_self_info'),
1497  4 => $this->lng->txt('crs_objective_wiz_self_limit_info'),
1498  5 => $this->lng->txt('crs_objective_wiz_final_info'),
1499  6 => $this->lng->txt('crs_objective_wiz_final_limit_info'));
1500 
1501  $links = array(
1502  1 => $this->ctrl->getLinkTarget($this,'edit'),
1503  2 => $this->ctrl->getLinkTarget($this,'materialAssignment'),
1504  3 => $this->ctrl->getLinkTarget($this,'selfAssessmentAssignment'),
1505  4 => $this->ctrl->getLinkTarget($this,'selfAssessmentLimits'),
1506  5 => $this->ctrl->getLinkTarget($this,'finalTestAssignment'),
1507  6 => $this->ctrl->getLinkTarget($this,'finalTestLimits'));
1508 
1509 
1510 
1511 
1512  // checklist gui start
1513  include_once("./Services/UIComponent/Checklist/classes/class.ilChecklistGUI.php");
1514  $check_list = new ilChecklistGUI();
1515  // checklist gui end
1516 
1517  if($_SESSION['objective_mode'] == self::MODE_CREATE)
1518  {
1519  // checklist gui start
1520  $check_list->setHeading($this->lng->txt('crs_checklist_objective'));
1521  // checklist gui end
1522  }
1523  else
1524  {
1525  // checklist gui start
1526  $check_list->setHeading($this->lng->txt('crs_checklist_objective'));
1527  // checklist gui end
1528  }
1529 
1530  // end-patch lok
1531  $num = 0;
1532  foreach($options as $step => $title)
1533  {
1534  // checklist gui start
1535  $item_link = "";
1536  // checklist gui end
1537 
1538  // begin-patch lok
1539  if($step == 3 and (!$this->getSettings()->worksWithInitialTest() or $this->getSettings()->hasSeparateInitialTests()))
1540  {
1541  continue;
1542  }
1543  if($step == 4 and (!$this->getSettings()->worksWithInitialTest() or $this->getSettings()->hasSeparateInitialTests()))
1544  {
1545  continue;
1546  }
1547  if($step == 5 and $this->getSettings()->hasSeparateQualifiedTests())
1548  {
1549  continue;
1550  }
1551  if($step == 6 and $this->getSettings()->hasSeparateQualifiedTests())
1552  {
1553  continue;
1554  }
1555  if($step == 4 and $this->isRandomTestType(ilLOSettings::TYPE_TEST_INITIAL))
1556  {
1557  continue;
1558  }
1559  if($step == 6 and $this->isRandomTestType(ilLOSettings::TYPE_TEST_QUALIFIED))
1560  {
1561  continue;
1562  }
1563  $num++;
1564  // end-patch lok
1565 
1566  if($_SESSION['objective_mode'] == self::MODE_UPDATE)
1567  {
1568  $hide_link = false;
1569  if($step == 4 and !count($this->objectives_qst_obj->getSelfAssessmentQuestions()))
1570  {
1571  $hide_link = true;
1572  }
1573  if($step == 6 and !count($this->objectives_qst_obj->getFinalTestQuestions()))
1574  {
1575  $hide_link = true;
1576  }
1577  // begin-patch lok
1578  if($step == 3 and !$this->getSettings()->worksWithInitialTest())
1579  {
1580  $hide_link = true;
1581  }
1582  if($step == 4 and !$this->getSettings()->worksWithInitialTest())
1583  {
1584  $hide_link = true;
1585  }
1586  if(!$hide_link)
1587  {
1588  // checklist gui start
1589  $item_link = $links[$step];
1590  // checklist gui end
1591  }
1592  }
1593 
1594  // checklist gui start
1595  $check_list->addEntry($title, $item_link, ilChecklistGUI::STATUS_NO_STATUS, ($step == $a_step_number));
1596  // checklist gui end
1597  }
1598 
1599  // checklist gui start
1600  $GLOBALS["tpl"]->setRightContent($check_list->getHTML());
1601  // checklist gui end
1602 
1603  }
$_SESSION["AccountId"]
$info
Definition: example_052.php:80
if(!is_array($argv)) $options
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isRandomTestType()

ilCourseObjectivesGUI::isRandomTestType (   $a_tst_type = 0)
protected

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

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

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

951  {
952  if(!$a_tst_type)
953  {
954  $a_tst_type = $this->test_type;
955  }
956 
957  $tst_ref_id = $this->getSettings()->getTestByType($a_tst_type);
958  if(!$tst_ref_id)
959  {
960  return false;
961  }
962  include_once './Modules/Test/classes/class.ilObjTest.php';
964  }
static _lookupRandomTest($a_obj_id)
Returns the fact wether the test with passed obj id is a random questions test or not...
static _lookupObjId($a_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ listObjectives()

ilCourseObjectivesGUI::listObjectives ( )
protected

list objectives

protected

Parameters

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

References $_SESSION, $ilErr, and ilCourseObjective\_getObjectiveIds().

Referenced by askDeleteObjective(), deleteObjectives(), and saveSorting().

122  {
123  global $ilAccess,$ilErr,$ilObjDataCache,$ilToolbar;
124 
125  $_SESSION['objective_mode'] = self::MODE_UNDEFINED;
126  if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
127  {
128  $this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
129  }
130 
131  $this->tpl->addBlockFile('ADM_CONTENT','adm_content','tpl.crs_objectives.html','Modules/Course');
132 
133  $ilToolbar->addButton($this->lng->txt('crs_add_objective'),
134  $this->ctrl->getLinkTarget($this, "'create"));
135 
136  include_once('./Modules/Course/classes/class.ilCourseObjectivesTableGUI.php');
137  $table = new ilCourseObjectivesTableGUI($this,$this->course_obj);
138  $table->setTitle($this->lng->txt('crs_objectives'),'',$this->lng->txt('crs_objectives'));
139  $table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId(),false));
140 
141  $this->tpl->setVariable('OBJECTIVES_TABLE',$table->getHTML());
142  }
$_SESSION["AccountId"]
static _getObjectiveIds($course_id, $a_activated_only=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ materialAssignment()

ilCourseObjectivesGUI::materialAssignment ( )
protected

material assignment

protected

Returns

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

References $_GET, $GLOBALS, $ilErr, $tpl, __initQuestionObject(), ilCourseObjectiveMaterials\_getAssignableMaterials(), initWizard(), ilUtil\sendFailure(), and setSubTabs().

583  {
584  global $ilAccess,$ilErr,$tpl;
585 
586  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
587  {
588  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
589  }
590  if(!$_GET['objective_id'])
591  {
592  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
593  $this->ctrl->redirect($this,'listObjectives');
594  }
595 
596  $this->setSubTabs("materials");
597 
598  $this->ctrl->saveParameter($this,'objective_id');
599 
600  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
601 
602  include_once('./Modules/Course/classes/class.ilCourseObjectiveMaterialAssignmentTableGUI.php');
603  $table = new ilCourseObjectiveMaterialAssignmentTableGUI($this,$this->course_obj,(int) $_GET['objective_id']);
604  $table->setTitle($this->lng->txt('crs_objective_wiz_materials'),
605  '',$this->lng->txt('crs_objectives'));
606 
607  include_once('Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
608  $table->parse(ilCourseObjectiveMaterials::_getAssignableMaterials($this->course_obj->getRefId()));
609 
610  $this->__initQuestionObject((int) $_GET['objective_id']);
611  $this->initWizard(2);
612  #$w_tpl->setVariable('WIZ_CONTENT',$table->getHTML());
613  $GLOBALS['tpl']->setContent($table->getHTML());
614  #$tpl->setContent($w_tpl->get());
615  }
initWizard($a_step_number)
init wizard
$_GET["client_id"]
TableGUI for material assignments of course objectives.
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static _getAssignableMaterials($a_container_id)
Get an array of course material ids that can be assigned to learning objectives No tst...
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:

◆ questionOverview()

ilCourseObjectivesGUI::questionOverview ( )
protected

question overiew

protected

Returns

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

References $ilErr, and ilCourseObjective\_getObjectiveIds().

Referenced by saveQuestionOverview().

297  {
298  global $ilAccess,$ilErr,$ilTabs;
299 
300  $ilTabs->setSubTabActive('crs_objective_overview_question_assignment');
301 
302  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
303  {
304  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
305  }
306 
307  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionsTableGUI.php');
308  $table = new ilCourseObjectiveQuestionsTableGUI($this,$this->course_obj);
309  $table->setTitle($this->lng->txt('crs_objectives_edit_question_assignments'),'',$this->lng->txt('crs_objectives'));
310  // begin-patch lok
311  $table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId(),false));
312  // end-patch lok
313 
314  $this->tpl->setContent($table->getHTML());
315  }
static _getObjectiveIds($course_id, $a_activated_only=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ save()

ilCourseObjectivesGUI::save ( )
protected

save

protected

Returns

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

References $_GET, $_REQUEST, $_SESSION, $ilErr, edit(), initFormTitle(), and ilUtil\sendSuccess().

530  {
531  global $ilAccess,$ilErr;
532 
533  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
534  {
535  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
536  }
537 
538  $this->ctrl->saveParameter($this,'objective_id');
539 
540  $this->objective = new ilCourseObjective($this->course_obj,(int) $_REQUEST['objective_id']);
541  $this->initFormTitle('create', 1);
542  if($this->form->checkInput())
543  {
544  $this->objective->setTitle($this->form->getInput('title'));
545  $this->objective->setDescription($this->form->getInput('description'));
546  $this->objective->setPasses(0);
547 
548  if(!$_GET['objective_id'])
549  {
550  $objective_id = $this->objective->add();
551  ilUtil::sendSuccess($this->lng->txt('crs_added_objective'),true);
552  }
553  else
554  {
555  $this->objective->update();
556  ilUtil::sendSuccess($this->lng->txt('crs_objective_modified'),true);
557  $objective_id = $_GET['objective_id'];
558  }
559  }
560  else
561  {
562  $this->form->setValuesByPost();
563  return $this->edit();
564  }
565 
566  if($_SESSION['objective_mode'] != self::MODE_CREATE)
567  {
568  $this->ctrl->returnToParent($this);
569  }
570 
571  $this->ctrl->setParameter($this,'objective_id',$objective_id);
572  $this->ctrl->redirect($this,'materialAssignment');
573  return true;
574  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
initFormTitle($a_mode, $a_step_number)
init form title
$_SESSION["AccountId"]
$_GET["client_id"]
class ilcourseobjective
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ Here is the call graph for this function:

◆ saveQuestionOverview()

ilCourseObjectivesGUI::saveQuestionOverview ( )
protected

update question overview

protected

Returns

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

References $_POST, $ilErr, ilCourseObjectiveQuestion\_updateTestLimits(), questionOverview(), ilUtil\sendFailure(), ilUtil\sendSuccess(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

324  {
325  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestion.php');
326 
327  global $ilAccess,$ilErr;
328 
329  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
330  {
331  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
332  }
333  $error = false;
334 
335  $_POST['self'] = $_POST['self'] ? $_POST['self'] : array();
336  $_POST['final'] = $_POST['final'] ? $_POST['final'] : array();
337 
338  foreach($_POST['self'] as $objective_id => $limit)
339  {
340  $qst = new ilCourseObjectiveQuestion($objective_id);
341  $max_points = $qst->getSelfAssessmentPoints();
342 
343  if($limit < 0 or $limit > $max_points)
344  {
345  ilUtil::sendFailure($this->lng->txt('crs_objective_limit_err'));
346  $this->questionOverview();
347  return false;
348  }
349  }
350  foreach($_POST['final'] as $objective_id => $limit)
351  {
352  $qst = new ilCourseObjectiveQuestion($objective_id);
353  $max_points = $qst->getFinalTestPoints();
354 
355  if($limit < 0 or $limit > $max_points)
356  {
357  ilUtil::sendFailure($this->lng->txt('crs_objective_limit_err'));
358  $this->questionOverview();
359  return false;
360  }
361  }
362 
363  foreach($_POST['self'] as $objective_id => $limit)
364  {
366  }
367 
368  foreach($_POST['final'] as $objective_id => $limit)
369  {
371  }
372 
373  ilUtil::sendSuccess($this->lng->txt('settings_saved'));
374  $this->questionOverview();
375  return true;
376  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static _updateTestLimits($a_objective_id, $a_status, $a_limit)
update test limits
class ilcourseobjectiveQuestion
+ Here is the call graph for this function:

◆ saveRandom()

ilCourseObjectivesGUI::saveRandom ( )
protected

Save random test settings.

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

References $_GET, $_REQUEST, $ref_id, __initQuestionObject(), ilObject\_lookupObjId(), getSettings(), initFormRandom(), ilUtil\sendFailure(), ilUtil\sendSuccess(), showRandomTestAssignment(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT, ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

1104  {
1105  $this->ctrl->saveParameter($this,'objective_id');
1106  $this->ctrl->setParameter($this,'tt',(int) $_REQUEST['tt']);
1107  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
1108  $this->test_type = (int) $_REQUEST['tt'];
1109 
1110  $form = $this->initFormRandom();
1111  if($form->checkInput())
1112  {
1113  $qst = $this->__initQuestionObject((int) $_GET['objective_id']);
1114  $qst->deleteByTestType(
1115  ($this->test_type == ilLOSettings::TYPE_TEST_INITIAL) ?
1118  );
1119  $ref_id = $this->getSettings()->getTestByType($this->test_type);
1120 
1121  include_once './Modules/Course/classes/Objectives/class.ilLORandomTestQuestionPools.php';
1122  $rnd = new ilLORandomTestQuestionPools(
1123  $this->course_obj->getId(),
1124  (int) $_REQUEST['objective_id'],
1125  $this->test_type
1126  );
1127  $rnd->delete();
1128  $rnd->setLimit($form->getInput('per'));
1129  $rnd->setQplSequence($form->getInput('qpl'));
1130  $rnd->setTestId(ilObject::_lookupObjId($ref_id));
1131  $rnd->create();
1132  }
1133  else
1134  {
1135  $form->setValuesByPost();
1136  ilUtil::sendFailure($this->lng->txt('err_check_input'));
1137  return $this->showRandomTestAssignment();
1138  }
1139 
1140  ilUtil::sendSuccess($this->lng->txt('settings_saved'),true);
1141  if($this->test_type == ilLOSettings::TYPE_TEST_QUALIFIED)
1142  {
1143  $this->ctrl->returnToParent($this);
1144  }
1145  else
1146  {
1147  $this->ctrl->redirect($this,'finalTestAssignment');
1148  }
1149  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_GET["client_id"]
showRandomTestAssignment(ilPropertyFormGUI $form=null)
class ilcourseobjective
static _lookupObjId($a_id)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$ref_id
Definition: sahs_server.php:39
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ Here is the call graph for this function:

◆ saveSorting()

ilCourseObjectivesGUI::saveSorting ( )
protected

save position

protected

Returns

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

References $_POST, $ilErr, listObjectives(), and ilUtil\sendSuccess().

151  {
152  global $ilAccess,$ilErr,$ilObjDataCache;
153 
154  if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
155  {
156  $this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
157  }
158 
159  asort($_POST['position'],SORT_NUMERIC);
160 
161  $counter = 1;
162  foreach($_POST['position'] as $objective_id => $position)
163  {
164  $objective = new ilCourseObjective($this->course_obj,$objective_id);
165  $objective->writePosition($counter++);
166  }
167  ilUtil::sendSuccess($this->lng->txt('crs_objective_saved_sorting'));
168  $this->listObjectives();
169  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
class ilcourseobjective
+ Here is the call graph for this function:

◆ selfAssessmentAssignment()

ilCourseObjectivesGUI::selfAssessmentAssignment ( )
protected

self assessment assignemnt

protected

Returns

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

References $_GET, $_REQUEST, $GLOBALS, $ilErr, $tpl, __initQuestionObject(), ilCourseObjectiveQuestion\_getAssignableTests(), initWizard(), isRandomTestType(), ilUtil\sendFailure(), setSubTabs(), showRandomTestAssignment(), ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT, and ilLOSettings\TYPE_TEST_INITIAL.

Referenced by updateMaterialAssignment(), and updateSelfAssessmentAssignment().

696  {
697  global $ilAccess,$ilErr,$tpl;
698 
699  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
700  {
701  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
702  }
703  if(!$_GET['objective_id'])
704  {
705  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
706  $this->ctrl->redirect($this,'listObjectives');
707  }
708 
709  $this->setSubTabs("self_ass_assign");
710 
711  $this->ctrl->saveParameter($this,'objective_id');
712 
713  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
714 
715  // begin-patch lok
716  $this->ctrl->setParameter($this,'tt',ilLOSettings::TYPE_TEST_INITIAL);
717  $this->test_type = $_REQUEST['tt'] = ilLOSettings::TYPE_TEST_INITIAL;
719  {
720  return $this->showRandomTestAssignment();
721  }
722  // end-patch lok
723 
724  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionAssignmentTableGUI.php');
726  $this->course_obj,
727  (int) $_GET['objective_id'],
729  $table->setTitle($this->lng->txt('crs_objective_wiz_self'),
730  '',$this->lng->txt('crs_objective'));
731  $table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
732 
733  $this->__initQuestionObject((int) $_GET['objective_id']);
734  $this->initWizard(3);
735  $GLOBALS['tpl']->setContent($table->getHTML());
736  #$w_tpl->setVariable('WIZ_CONTENT',$table->getHTML());
737  #$tpl->setContent($w_tpl->get());
738  }
initWizard($a_step_number)
init wizard
$_GET["client_id"]
showRandomTestAssignment(ilPropertyFormGUI $form=null)
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
TableGUI for question assignments of course objectives.
static _getAssignableTests($a_container_ref_id)
Get assignable tests.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ selfAssessmentLimits()

ilCourseObjectivesGUI::selfAssessmentLimits ( )
protected

self assessment limits

protected

Parameters

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

References $_GET, $GLOBALS, $ilErr, $tpl, __initQuestionObject(), initFormLimits(), initWizard(), ilUtil\sendFailure(), and setSubTabs().

Referenced by updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

828  {
829  global $ilAccess,$ilErr,$tpl;
830 
831  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
832  {
833  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
834  }
835  if(!$_GET['objective_id'])
836  {
837  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
838  $this->ctrl->redirect($this,'listObjectives');
839  }
840 
841  $this->setSubTabs("self_ass_limits");
842 
843  $this->ctrl->saveParameter($this,'objective_id');
844  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
845 
846  $this->__initQuestionObject((int) $_GET['objective_id']);
847  $this->initWizard(4);
848 
849  $this->initFormLimits('selfAssessment');
850  $GLOBALS['tpl']->setContent($this->form->getHtml());
851  #$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
852  #$tpl->setContent($w_tpl->get());
853  }
initWizard($a_step_number)
init wizard
$_GET["client_id"]
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
initFormLimits($a_mode)
init limit form
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setSubTabs()

ilCourseObjectivesGUI::setSubTabs (   $a_active = "")

set sub tabs

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

References ilCourseObjectiveQuestion\_hasTests().

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

421  {
422  global $ilTabs, $ilHelp;
423 
424  if ($a_active != "")
425  {
426  $ilHelp->setScreenIdComponent("crs");
427  $ilHelp->setScreenId("crs_objective");
428  $ilHelp->setSubScreenId($a_active);
429  }
430 
431 
432  // begin-patch lok
433  // no subtabs here
434  return true;
435  // end-patch lok
436 
437 
438  $ilTabs->addSubTabTarget("crs_objective_overview_objectives",
439  $this->ctrl->getLinkTarget($this, "listObjectives"),
440  array("listObjectives", "moveObjectiveUp", "moveObjectiveDown", "listAssignedLM"),
441  array(),
442  '',
443  true);
444  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestion.php');
445 
446  if(ilCourseObjectiveQuestion::_hasTests($this->course_obj->getId()))
447  {
448  $ilTabs->addSubTabTarget("crs_objective_overview_question_assignment",
449  $this->ctrl->getLinkTarget($this, "questionOverview"),
450  "editQuestionAssignment",
451  array(),
452  '',
453  false);
454  }
455  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showRandomTestAssignment()

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

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

References $_GET, $_REQUEST, $GLOBALS, __initQuestionObject(), initFormRandom(), initWizard(), and setSubTabs().

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

971  {
972  $this->ctrl->saveParameter($this,'objective_id');
973  $this->ctrl->setParameter($this,'tt', (int) $_REQUEST['tt']);
974  $this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
975  $this->test_type = (int) $_REQUEST['tt'];
976 
977 
978  $this->setSubTabs("rand_test_assign");
979 
980  if(!$form instanceof ilPropertyFormGUI)
981  {
982  $form = $this->initFormRandom();
983  }
984 
985  $this->__initQuestionObject((int) $_GET['objective_id']);
986  $this->initWizard(5);
987  $GLOBALS['tpl']->setContent($form->getHTML());
988  #$w_tpl->setVariable('WIZ_CONTENT',$form->getHTML());
989 
990  #$GLOBALS['tpl']->setContent($w_tpl->get());
991  }
This class represents a property form user interface.
initWizard($a_step_number)
init wizard
$_GET["client_id"]
class ilcourseobjective
setSubTabs($a_active="")
set sub tabs
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateFinalTestAssignment()

ilCourseObjectivesGUI::updateFinalTestAssignment ( )
protected

update self assessment assignment

protected

Parameters

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

References $_GET, $_POST, $ilErr, __initQuestionObject(), finalTestLimits(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_FINAL_TEST.

1159  {
1160  global $ilAccess,$ilErr,$ilObjDataCache;
1161 
1162  $checked_questions = $_POST['questions'] ? $_POST['questions'] : array();
1163 
1164 
1165  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
1166  {
1167  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
1168  }
1169  if(!$_GET['objective_id'])
1170  {
1171  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
1172  $this->ctrl->redirect($this,'listObjectives');
1173  }
1174 
1175  $this->__initQuestionObject((int) $_GET['objective_id']);
1176 
1177  // Delete unchecked
1178  foreach($this->objectives_qst_obj->getFinalTestQuestions() as $question)
1179  {
1180  $id = $question['ref_id'].'_'.$question['question_id'];
1181  if(!in_array($id,$checked_questions))
1182  {
1183  $this->objectives_qst_obj->delete($question['qst_ass_id']);
1184  }
1185  }
1186  // Add checked
1187  foreach($checked_questions as $question_id)
1188  {
1189  list($test_ref_id,$qst_id) = explode('_',$question_id);
1190  $test_obj_id = $ilObjDataCache->lookupObjId($test_ref_id);
1191 
1192  if($this->objectives_qst_obj->isFinalTestQuestion($qst_id))
1193  {
1194  continue;
1195  }
1196 
1197  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
1198  $this->objectives_qst_obj->setTestRefId($test_ref_id);
1199  $this->objectives_qst_obj->setTestObjId($test_obj_id);
1200  $this->objectives_qst_obj->setQuestionId($qst_id);
1201  $this->objectives_qst_obj->add();
1202  }
1203 
1204  // TODO: not nice
1205  include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
1206  $this->questions = new ilCourseObjectiveQuestion((int) $_GET['objective_id']);
1207  // not required due to percentages
1208  //$this->questions->updateLimits();
1209 
1210  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
1211  $this->finalTestLimits();
1212  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
$_GET["client_id"]
finalTestLimits()
self assessment limits
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
class ilcourseobjectiveQuestion
+ Here is the call graph for this function:

◆ updateFinalTestLimits()

ilCourseObjectivesGUI::updateFinalTestLimits ( )
protected

update self assessment limits

protected

Parameters

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

References $_GET, $_POST, $_SESSION, $ilErr, $test, __initQuestionObject(), finalTestLimits(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_FINAL_TEST.

1283  {
1284  global $ilAccess,$ilErr,$ilObjDataCache;
1285 
1286  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
1287  {
1288  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
1289  }
1290  if(!$_GET['objective_id'])
1291  {
1292  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
1293  $this->ctrl->redirect($this,'listObjectives');
1294  }
1295 
1296  $this->__initQuestionObject((int) $_GET['objective_id']);
1297 
1298  if((int) $_POST['limit'] < 1 or (int) $_POST['limit'] > 100)
1299  {
1300  ilUtil::sendFailure($this->lng->txt('crs_objective_err_limit'));
1301  $this->finalTestLimits();
1302  return false;
1303  }
1304 
1305  foreach($this->objectives_qst_obj->getFinalTests() as $test)
1306  {
1307  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
1308  $this->objectives_qst_obj->setTestSuggestedLimit((int) $_POST['limit']);
1309  $this->objectives_qst_obj->updateTest($test['test_objective_id']);
1310  }
1311 
1312  if($_SESSION['objective_mode'] != self::MODE_CREATE)
1313  {
1314  ilUtil::sendSuccess($this->lng->txt('settings_saved'), TRUE);
1315  }
1316  else
1317  {
1318  ilUtil::sendSuccess($this->lng->txt('crs_added_objective'),TRUE);
1319  }
1320  $this->ctrl->returnToParent($this);
1321  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
$_SESSION["AccountId"]
$_GET["client_id"]
finalTestLimits()
self assessment limits
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$test
Definition: Utf8Test.php:85
+ Here is the call graph for this function:

◆ updateMaterialAssignment()

ilCourseObjectivesGUI::updateMaterialAssignment ( )
protected

update material assignment

protected

Parameters

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

References $_GET, $_POST, $_SESSION, $ilErr, $ref_id, __initLMObject(), ilLMObject\_lookupType(), finalTestAssignment(), getSettings(), selfAssessmentAssignment(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

625  {
626  global $ilAccess,$ilErr,$ilObjDataCache;
627 
628  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
629  {
630  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
631  }
632  if(!$_GET['objective_id'])
633  {
634  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
635  $this->ctrl->redirect($this,'listObjectives');
636  }
637 
638  $this->__initLMObject((int) $_GET['objective_id']);
639  $this->objectives_lm_obj->deleteAll();
640 
641  if(is_array($_POST['materials']))
642  {
643  foreach($_POST['materials'] as $node_id)
644  {
645  $obj_id = $ilObjDataCache->lookupObjId($node_id);
646  $type = $ilObjDataCache->lookupType($obj_id);
647 
648  $this->objectives_lm_obj->setLMRefId($node_id);
649  $this->objectives_lm_obj->setLMObjId($obj_id);
650  $this->objectives_lm_obj->setType($type);
651  $this->objectives_lm_obj->add();
652  }
653  }
654  if(is_array($_POST['chapters']))
655  {
656  foreach($_POST['chapters'] as $chapter)
657  {
658  include_once('./Modules/LearningModule/classes/class.ilLMObject.php');
659 
660  list($ref_id,$chapter_id) = explode('_',$chapter);
661 
662  $this->objectives_lm_obj->setLMRefId($ref_id);
663  $this->objectives_lm_obj->setLMObjId($chapter_id);
664  $this->objectives_lm_obj->setType(ilLMObject::_lookupType($chapter_id));
665  $this->objectives_lm_obj->add();
666  }
667  }
668  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
669 
670 
671  if($_SESSION['objective_mode'] != self::MODE_CREATE)
672  {
673  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'),true);
674  $this->ctrl->returnToParent($this);
675  }
676 
677  // begin-patch lok
678  if($this->getSettings()->worksWithInitialTest())
679  {
680  $this->selfAssessmentAssignment();
681  }
682  else
683  {
684  $this->finalTestAssignment();
685  }
686  // end-patch lok
687  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
selfAssessmentAssignment()
self assessment assignemnt
static _lookupType($a_obj_id, $a_lm_id=0)
Lookup type.
$_POST['username']
Definition: cron.php:12
$_SESSION["AccountId"]
$_GET["client_id"]
finalTestAssignment()
final test assignment
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$ref_id
Definition: sahs_server.php:39
+ Here is the call graph for this function:

◆ updateSelfAssessmentAssignment()

ilCourseObjectivesGUI::updateSelfAssessmentAssignment ( )
protected

update self assessment assignment

protected

Parameters

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

References $_GET, $_POST, $_SESSION, $ilErr, __initQuestionObject(), finalTestAssignment(), selfAssessmentAssignment(), selfAssessmentLimits(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

748  {
749  global $ilAccess,$ilErr,$ilObjDataCache;
750 
751  $checked_questions = $_POST['questions'] ? $_POST['questions'] : array();
752 
753 
754  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
755  {
756  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
757  }
758  if(!$_GET['objective_id'])
759  {
760  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
761  $this->ctrl->redirect($this,'listObjectives');
762  }
763 
764  $this->__initQuestionObject((int) $_GET['objective_id']);
765 
766  // Delete unchecked
767  foreach($this->objectives_qst_obj->getSelfAssessmentQuestions() as $question)
768  {
769  $id = $question['ref_id'].'_'.$question['question_id'];
770  if(!in_array($id,$checked_questions))
771  {
772  $this->objectives_qst_obj->delete($question['qst_ass_id']);
773  }
774  }
775  // Add checked
776  foreach($checked_questions as $question_id)
777  {
778  list($test_ref_id,$qst_id) = explode('_',$question_id);
779  $test_obj_id = $ilObjDataCache->lookupObjId($test_ref_id);
780 
781  if($this->objectives_qst_obj->isSelfAssessmentQuestion($qst_id))
782  {
783  continue;
784  }
785  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
786  $this->objectives_qst_obj->setTestRefId($test_ref_id);
787  $this->objectives_qst_obj->setTestObjId($test_obj_id);
788  $this->objectives_qst_obj->setQuestionId($qst_id);
789  $this->objectives_qst_obj->add();
790  }
791 
792  // TODO: not nice
793  include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
794  $this->questions = new ilCourseObjectiveQuestion((int) $_GET['objective_id']);
795  // not required due to percentages
796  //$this->questions->updateLimits();
797 
798  if($checked_questions)
799  {
800  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
801  $this->selfAssessmentLimits();
802  return true;
803  }
804  else
805  {
806  switch($_SESSION['objective_mode'])
807  {
808  case self::MODE_CREATE:
809  $this->finalTestAssignment();
810  return true;
811 
812  case self::MODE_UPDATE:
813  $this->selfAssessmentAssignment();
814  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
815  return true;
816  }
817  }
818  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
selfAssessmentAssignment()
self assessment assignemnt
$_POST['username']
Definition: cron.php:12
$_SESSION["AccountId"]
$_GET["client_id"]
finalTestAssignment()
final test assignment
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
class ilcourseobjectiveQuestion
selfAssessmentLimits()
self assessment limits
+ Here is the call graph for this function:

◆ updateSelfAssessmentLimits()

ilCourseObjectivesGUI::updateSelfAssessmentLimits ( )
protected

update self assessment limits

protected

Parameters

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

References $_GET, $_POST, $ilErr, $test, __initQuestionObject(), selfAssessmentLimits(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

863  {
864  global $ilAccess,$ilErr,$ilObjDataCache;
865 
866  if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
867  {
868  $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
869  }
870  if(!$_GET['objective_id'])
871  {
872  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
873  $this->ctrl->redirect($this,'listObjectives');
874  }
875 
876  $this->__initQuestionObject((int) $_GET['objective_id']);
877 
878  if((int) $_POST['limit'] < 1 or (int) $_POST['limit'] > 100)
879  {
880  ilUtil::sendFailure($this->lng->txt('crs_objective_err_limit'));
881  $this->selfAssessmentLimits();
882  return false;
883  }
884 
885  foreach($this->objectives_qst_obj->getSelfAssessmentTests() as $test)
886  {
887  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
888  $this->objectives_qst_obj->setTestSuggestedLimit((int) $_POST['limit']);
889  $this->objectives_qst_obj->updateTest($test['test_objective_id']);
890  }
891 
892  ilUtil::sendSuccess($this->lng->txt('settings_saved'),true);
893  $this->ctrl->returnToParent($this);
894  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
$_GET["client_id"]
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
selfAssessmentLimits()
self assessment limits
$test
Definition: Utf8Test.php:85
+ Here is the call graph for this function:

Field Documentation

◆ $course_id

ilCourseObjectivesGUI::$course_id

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

◆ $course_obj

ilCourseObjectivesGUI::$course_obj

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

◆ $ctrl

ilCourseObjectivesGUI::$ctrl

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

◆ $ilErr

◆ $ilias

ilCourseObjectivesGUI::$ilias

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

Referenced by ilCourseObjectivesGUI().

◆ $lng

ilCourseObjectivesGUI::$lng

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

Referenced by ilCourseObjectivesGUI().

◆ $settings

ilCourseObjectivesGUI::$settings
protected

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

Referenced by getSettings().

◆ $test_type

ilCourseObjectivesGUI::$test_type = 0
protected

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

Referenced by isRandomTestType().

◆ $tpl

◆ MODE_CREATE

const ilCourseObjectivesGUI::MODE_CREATE = 1

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

◆ MODE_UNDEFINED

const ilCourseObjectivesGUI::MODE_UNDEFINED = 0

◆ MODE_UPDATE

const ilCourseObjectivesGUI::MODE_UPDATE = 2

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


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