ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilCourseObjectivesGUI Class Reference

class ilobjcourseobjectivesgui More...

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

Public Member Functions

 __construct ($a_course_id)
 Constructor. More...
 
 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...
 
 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 (int $active_step)
 init wizard protected More...
 

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
 
 $settings
 
 $test_type = 0
 

Private Attributes

 $logger = null
 

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 38 of file class.ilCourseObjectivesGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilCourseObjectivesGUI::__construct (   $a_course_id)

Constructor.

Parameters
int$a_course_id

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

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

77  {
78  include_once './Modules/Course/classes/class.ilCourseObjective.php';
79 
80  global $DIC;
81 
82  $ilCtrl = $DIC['ilCtrl'];
83  $lng = $DIC['lng'];
84  $ilErr = $DIC['ilErr'];
85  $ilias = $DIC['ilias'];
86  $tpl = $DIC['tpl'];
87  $tree = $DIC['tree'];
88  $ilTabs = $DIC['ilTabs'];
89 
90  $this->ctrl = $ilCtrl;
91  $this->ctrl->saveParameter($this, array("ref_id"));
92 
93  $this->logger = $GLOBALS['DIC']->logger()->crs();
94  $this->ilErr = $ilErr;
95  $this->lng = $lng;
96  $this->lng->loadLanguageModule('crs');
97  $this->tpl = $tpl;
98  $this->tree = $tree;
99  $this->tabs_gui = $ilTabs;
100 
101  $this->course_id = $a_course_id;
102  $this->__initCourseObject();
103 
104  // begin-patch lok
105  $this->settings = ilLOSettings::getInstanceByObjId($this->course_obj->getId());
106  // end-patch lok
107  }
static getInstanceByObjId($a_obj_id)
get singleton instance
settings()
Definition: settings.php:2
global $ilCtrl
Definition: ilias.php:18
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

Member Function Documentation

◆ __initCourseObject()

ilCourseObjectivesGUI::__initCourseObject ( )

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

References exit, and ilObjectFactory\getInstanceByRefId().

Referenced by __construct().

415  {
416  if (!$this->course_obj = &ilObjectFactory::getInstanceByRefId($this->course_id, false)) {
417  $this->ilErr->raiseError("ilCourseObjectivesGUI: cannot create course object", $this->ilErr->MESSAGE);
418  exit;
419  }
420  return true;
421  }
exit
Definition: login.php:29
static 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 428 of file class.ilCourseObjectivesGUI.php.

Referenced by updateMaterialAssignment().

429  {
430  include_once './Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
431  $this->objectives_lm_obj = new ilCourseObjectiveMaterials($a_objective_id);
432 
433  return true;
434  }
class ilCourseObjectiveMaterials
+ Here is the caller graph for this function:

◆ __initObjectivesObject()

ilCourseObjectivesGUI::__initObjectivesObject (   $a_id = 0)

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

Referenced by askDeleteObjective(), and deleteObjectives().

424  {
425  return $this->objectives_obj = new ilCourseObjective($this->course_obj, $a_id);
426  }
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 442 of file class.ilCourseObjectivesGUI.php.

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

443  {
444  include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
445  $this->objectives_qst_obj = new ilCourseObjectiveQuestion($a_objective_id);
446 
447  return $this->objectives_qst_obj;
448  }
class ilcourseobjectiveQuestion
+ Here is the caller graph for this function:

◆ askDeleteObjective()

ilCourseObjectivesGUI::askDeleteObjective ( )

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

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

208  {
209  global $DIC;
210 
211  $rbacsystem = $DIC['rbacsystem'];
212 
213  // MINIMUM ACCESS LEVEL = 'write'
214  if (!$rbacsystem->checkAccess("write", $this->course_obj->getRefId())) {
215  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilErr->MESSAGE);
216  }
217  if (!count($_POST['objective'])) {
218  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
219  $this->listObjectives();
220 
221  return true;
222  }
223 
224  $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.crs_objectives.html", 'Modules/Course');
225 
226  ilUtil::sendQuestion($this->lng->txt('crs_delete_objectve_sure'));
227 
228  $tpl = new ilTemplate("tpl.table.html", true, true);
229  $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.crs_objectives_delete_row.html", 'Modules/Course');
230 
231  $counter = 0;
232  foreach ($_POST['objective'] as $objective_id) {
233  $objective_obj = $this->__initObjectivesObject($objective_id);
234 
235  $tpl->setCurrentBlock("tbl_content");
236  $tpl->setVariable("ROWCOL", ilUtil::switchColor(++$counter, "tblrow2", "tblrow1"));
237  $tpl->setVariable("TITLE", $objective_obj->getTitle());
238  $tpl->setVariable("DESCRIPTION", $objective_obj->getDescription());
239  $tpl->parseCurrentBlock();
240  }
241 
242  $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
243 
244  // Show action row
245  $tpl->setCurrentBlock("tbl_action_btn");
246  $tpl->setVariable("BTN_NAME", 'deleteObjectives');
247  $tpl->setVariable("BTN_VALUE", $this->lng->txt('delete'));
248  $tpl->parseCurrentBlock();
249 
250  $tpl->setCurrentBlock("tbl_action_btn");
251  $tpl->setVariable("BTN_NAME", 'listObjectives');
252  $tpl->setVariable("BTN_VALUE", $this->lng->txt('cancel'));
253  $tpl->parseCurrentBlock();
254 
255  $tpl->setCurrentBlock("tbl_action_row");
256  $tpl->setVariable("COLUMN_COUNTS", 1);
257  $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath('arrow_downright.svg'));
258  $tpl->parseCurrentBlock();
259 
260 
261  // create table
262  $tbl = new ilTableGUI();
263  $tbl->setStyle('table', 'std');
264 
265  // title & header columns
266  $tbl->setTitle($this->lng->txt("crs_objectives"), "", $this->lng->txt("crs_objectives"));
267 
268  $tbl->setHeaderNames(array($this->lng->txt("title")));
269  $tbl->setHeaderVars(
270  array("title"),
271  array("ref_id" => $this->course_obj->getRefId(),
272  "cmdClass" => "ilcourseobjectivesgui",
273  "cmdNode" => $_GET["cmdNode"])
274  );
275  $tbl->setColumnWidth(array("50%"));
276 
277  $tbl->setLimit($_GET["limit"]);
278  $tbl->setOffset($_GET["offset"]);
279  $tbl->setMaxCount(count($_POST['objective']));
280 
281  // footer
282  $tbl->disable("footer");
283  $tbl->disable('sort');
284 
285  // render table
286  $tbl->setTemplate($tpl);
287  $tbl->render();
288 
289  $this->tpl->setVariable("OBJECTIVES_TABLE", $tpl->get());
290 
291 
292  // Save marked objectives
293  $_SESSION['crs_delete_objectives'] = $_POST['objective'];
294 
295  return true;
296  }
$_SESSION["AccountId"]
$_GET["client_id"]
Class ilTableGUI.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
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) ...
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ create()

ilCourseObjectivesGUI::create ( )

create objective

public

Parameters

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

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

Referenced by save().

505  {
506  global $DIC;
507 
508  $tpl = $DIC['tpl'];
509 
510  $this->setSubTabs("create_obj");
511 
512  $_SESSION['objective_mode'] = self::MODE_CREATE;
513 
514  $this->ctrl->saveParameter($this, 'objective_id');
515 
516  if (!is_object($this->objective)) {
517  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
518  }
519  $this->__initQuestionObject((int) $_GET['objective_id']);
520  $this->initWizard(self::STEP_SETTINGS);
521 
522  $this->initFormTitle('create', 1);
523  $GLOBALS['DIC']['tpl']->setContent($this->form->getHtml());
524  #$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
525  #$tpl->setContent($w_tpl->get());
526  }
initWizard(int $active_step)
init wizard protected
initFormTitle($a_mode, $a_step_number)
init form title
$_SESSION["AccountId"]
$_GET["client_id"]
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_active="")
set sub tabs
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteObjectives()

ilCourseObjectivesGUI::deleteObjectives ( )

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

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

299  {
300  global $DIC;
301 
302  $rbacsystem = $DIC['rbacsystem'];
303 
304  // MINIMUM ACCESS LEVEL = 'write'
305  if (!$rbacsystem->checkAccess("write", $this->course_obj->getRefId())) {
306  $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilErr->MESSAGE);
307  }
308  if (!count($_SESSION['crs_delete_objectives'])) {
309  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
310  $this->listObjectives();
311 
312  return true;
313  }
314 
315  foreach ($_SESSION['crs_delete_objectives'] as $objective_id) {
316  $objective_obj = &$this->__initObjectivesObject($objective_id);
317  $objective_obj->delete();
318  }
319 
320  ilUtil::sendSuccess($this->lng->txt('crs_objectives_deleted'));
321  $this->listObjectives();
322 
323  return true;
324  }
$_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.
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ edit()

ilCourseObjectivesGUI::edit ( )
protected

edit objective

protected

Returns

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

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

Referenced by save().

535  {
536  global $DIC;
537 
538  $tpl = $DIC['tpl'];
539 
540  $_SESSION['objective_mode'] = self::MODE_UPDATE;
541 
542  $this->setSubTabs("edit_obj");
543 
544  $this->ctrl->setParameter($this, 'objective_id', (int) $_REQUEST['objective_id']);
545 
546  if (!$_REQUEST['objective_id']) {
547  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
548  $this->ctrl->redirect($this, 'listObjectives');
549  }
550 
551  if (!is_object($this->objective)) {
552  $this->objective = new ilCourseObjective($this->course_obj, (int) $_REQUEST['objective_id']);
553  }
554 
555  $this->__initQuestionObject((int) $_REQUEST['objective_id']);
556  $this->initWizard(self::STEP_SETTINGS);
557  $this->initFormTitle('create', 1);
558  $GLOBALS['DIC']['tpl']->setContent($this->form->getHtml());
559  #$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
560  #$tpl->setContent($w_tpl->get());
561  }
initWizard(int $active_step)
init wizard protected
initFormTitle($a_mode, $a_step_number)
init form title
$_SESSION["AccountId"]
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_active="")
set sub tabs
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilCourseObjectivesGUI::executeCommand ( )

execute command

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

References $DIC.

113  {
114  global $DIC;
115 
116  $ilTabs = $DIC['ilTabs'];
117 
118  $ilTabs->setTabActive('crs_objectives');
119 
120  $cmd = $this->ctrl->getCmd();
121 
122 
123  if (!$cmd = $this->ctrl->getCmd()) {
124  $cmd = "list";
125  }
126 
127  $this->$cmd();
128  }
$DIC
Definition: xapitoken.php:46

◆ finalSeparatedTestAssignment()

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

Show test assignment form.

Parameters
ilPropertyFormGUI$form

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

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

1263  {
1264  global $DIC;
1265 
1266  $ilAccess = $DIC['ilAccess'];
1267  $ilErr = $DIC['ilErr'];
1268 
1269  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
1270  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
1271  }
1272  if (!$_GET['objective_id']) {
1273  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
1274  $this->ctrl->returnToParent($this);
1275  }
1276  $this->ctrl->saveParameter($this, 'objective_id');
1277  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
1278 
1279  $this->initWizard(self::STEP_FINAL_TEST_LIMIT);
1280  $form = $this->initFormTestAssignment();
1281  $GLOBALS['DIC']['tpl']->setContent($form->getHtml());
1282  }
initWizard(int $active_step)
init wizard protected
$_GET["client_id"]
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ finalTestAssignment()

ilCourseObjectivesGUI::finalTestAssignment ( )
protected

final test assignment

protected

Parameters

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

References $_GET, $DIC, $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().

942  {
943  global $DIC;
944 
945  $ilAccess = $DIC['ilAccess'];
946  $ilErr = $DIC['ilErr'];
947  $tpl = $DIC['tpl'];
948 
949  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
950  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
951  }
952  if (!$_GET['objective_id']) {
953  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
954  $this->ctrl->redirect($this, 'listObjectives');
955  }
956 
957  $this->setSubTabs("final_test_assign");
958 
959  $this->ctrl->saveParameter($this, 'objective_id');
960  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
961 
962  // begin-patch lok
963  $this->ctrl->setParameter($this, 'tt', ilLOSettings::TYPE_TEST_QUALIFIED);
964  $this->test_type = $_REQUEST['tt'] = ilLOSettings::TYPE_TEST_QUALIFIED;
966  return $this->showRandomTestAssignment();
967  }
968  // end-patch lok
969 
970  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionAssignmentTableGUI.php');
972  $this,
973  $this->course_obj,
974  (int) $_GET['objective_id'],
976  );
977 
978  $table->setTitle(
979  $this->lng->txt('crs_objective_wiz_final'),
980  '',
981  $this->lng->txt('crs_objective')
982  );
983  $table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
984 
985  $this->__initQuestionObject((int) $_GET['objective_id']);
986  $this->initWizard(self::STEP_FINAL_TEST_ASSIGNMENT);
987  $GLOBALS['DIC']['tpl']->setContent($table->getHTML());
988  }
initWizard(int $active_step)
init wizard protected
$_GET["client_id"]
showRandomTestAssignment(ilPropertyFormGUI $form=null)
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_active="")
set sub tabs
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
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 1291 of file class.ilCourseObjectivesGUI.php.

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

Referenced by updateFinalTestAssignment(), and updateFinalTestLimits().

1292  {
1293  global $DIC;
1294 
1295  $ilAccess = $DIC['ilAccess'];
1296  $ilErr = $DIC['ilErr'];
1297  $tpl = $DIC['tpl'];
1298 
1299  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
1300  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
1301  }
1302  if (!$_GET['objective_id']) {
1303  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
1304  $this->ctrl->returnToParent($this);
1305  }
1306 
1307  $this->setSubTabs("final_test_limits");
1308 
1309  $this->ctrl->saveParameter($this, 'objective_id');
1310  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
1311 
1312  $this->__initQuestionObject((int) $_GET['objective_id']);
1313  $this->initWizard(self::STEP_FINAL_TEST_LIMIT);
1314 
1315  $this->initFormLimits('final');
1316  $GLOBALS['DIC']['tpl']->setContent($this->form->getHtml());
1317  }
initWizard(int $active_step)
init wizard protected
$_GET["client_id"]
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_active="")
set sub tabs
initFormLimits($a_mode)
init limit form
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
+ 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 135 of file class.ilCourseObjectivesGUI.php.

References $settings.

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

+ Here is the caller graph for this function:

◆ initFormLimits()

ilCourseObjectivesGUI::initFormLimits (   $a_mode)
protected

init limit form

protected

Parameters
stringmode selfAssessment or final
Returns

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

References $GLOBALS, XapiProxy\$req, $test, $tpl, ilObject\_lookupDescription(), ilObject\_lookupTitle(), ilUtil\getTypeIconPath(), and ilCustomInputGUI\setHtml().

Referenced by finalTestLimits(), and selfAssessmentLimits().

1372  {
1373  if (!is_object($this->form)) {
1374  include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
1375  $this->form = new ilPropertyFormGUI();
1376  }
1377  $this->form->setFormAction($this->ctrl->getFormAction($this));
1378  $this->form->setTableWidth('100%');
1379  //$this->form->setTitleIcon(ilUtil::getImagePath('icon_lobj.svg'),$this->lng->txt('crs_objective'));
1380 
1381  switch ($a_mode) {
1382  case 'selfAssessment':
1383  $this->form->setTitle($this->lng->txt('crs_objective_wiz_self_limit'));
1384  $this->form->addCommandButton('updateSelfAssessmentLimits', $this->lng->txt('crs_wiz_next'));
1385 
1386  $tests = $this->objectives_qst_obj->getSelfAssessmentTests();
1387  $max_points = $this->objectives_qst_obj->getSelfAssessmentPoints();
1388 
1389  break;
1390 
1391  case 'final':
1392  $this->form->setTitle($this->lng->txt('crs_objective_wiz_final_limit'));
1393  $this->form->addCommandButton('updateFinalTestLimits', $this->lng->txt('crs_wiz_next'));
1394 
1395  $tests = $this->objectives_qst_obj->getFinalTests();
1396  $max_points = $this->objectives_qst_obj->getFinalTestPoints();
1397 
1398  break;
1399  }
1400 
1401  $over = new ilCustomInputGUI($this->lng->txt('crs_objective_qst_summary'), '');
1402 
1403  $tpl = new ilTemplate('tpl.crs_objective_qst_summary.html', true, true, 'Modules/Course');
1404 
1405 
1406  $limit = 0;
1407 
1408  foreach ($tests as $test) {
1409  $GLOBALS['DIC']['ilLog']->write(__METHOD__ . ': ' . print_r($test, true));
1410 
1411  $limit = $test['limit'];
1412 
1413  foreach ($this->objectives_qst_obj->getQuestionsOfTest($test['obj_id']) as $question) {
1414  $tpl->setCurrentBlock('qst');
1415  $tpl->setVariable('QST_TITLE', $question['title']);
1416  if (strlen($question['description'])) {
1417  $tpl->setVariable('QST_DESCRIPTION', $question['description']);
1418  }
1419  $tpl->setVariable('QST_POINTS', $question['points'] . ' ' .
1420  $this->lng->txt('crs_objective_points'));
1421  $tpl->parseCurrentBlock();
1422  }
1423  $tpl->setCurrentBlock('tst');
1424  $tpl->setVariable('TST_TITLE', ilObject::_lookupTitle($test['obj_id']));
1425  if ($desc = ilObject::_lookupDescription($test['obj_id'])) {
1426  $tpl->setVariable('TST_DESC', $desc);
1427  }
1428  $tpl->setVariable('TST_TYPE_IMG', ilUtil::getTypeIconPath('tst', $test['obj_id'], 'tiny'));
1429  $tpl->setVariable('TST_ALT_IMG', $this->lng->txt('obj_tst'));
1430  $tpl->parseCurrentBlock();
1431  }
1432 
1433  $tpl->setVariable('TXT_ALL_POINTS', $this->lng->txt('crs_objective_all_points'));
1434  $tpl->setVariable('TXT_POINTS', $this->lng->txt('crs_objective_points'));
1435  $tpl->setVariable('POINTS', $max_points);
1436 
1437  $over->setHtml($tpl->get());
1438  $this->form->addItem($over);
1439 
1440  // points
1441  $req = new ilNumberInputGUI($this->lng->txt('crs_loc_perc'), 'limit');
1442  $req->setValue($limit);
1443  $req->setSize(3);
1444  $req->setMinValue(1);
1445  $req->setMaxValue(100);
1446  $req->setRequired(true);
1447  switch ($a_mode) {
1448  case 'selfAssessment':
1449  $req->setInfo($this->lng->txt('crs_obj_initial_req_info'));
1450  break;
1451 
1452  case 'final':
1453  $req->setInfo($this->lng->txt('crs_obj_final_req_info'));
1454  break;
1455  }
1456  $this->form->addItem($req);
1457  }
setHtml($a_html)
Set Html.
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
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
This class represents a custom property in a property form.
$test
Definition: Utf8Test.php:84
+ 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 1031 of file class.ilCourseObjectivesGUI.php.

References $GLOBALS, ilObject\_lookupObjId(), ilObjectFactory\getInstanceByRefId(), getSettings(), ilLORandomTestQuestionPools\lookupLimit(), ilLORandomTestQuestionPools\lookupSequencesByType(), ilNumberInputGUI\setValue(), ilRadioGroupInputGUI\setValue(), and ilLOSettings\TYPE_TEST_INITIAL.

Referenced by saveRandom(), and showRandomTestAssignment().

1032  {
1033  include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
1034  $form = new ilPropertyFormGUI();
1035  $form->setFormAction($this->ctrl->getFormAction($this));
1036 
1037  if ($this->test_type == ilLOSettings::TYPE_TEST_INITIAL) {
1038  $form->setTitle($this->lng->txt('crs_loc_form_random_limits_it'));
1039  } else {
1040  $form->setTitle($this->lng->txt('crs_loc_form_random_limits_qt'));
1041  }
1042 
1043  $form->addCommandButton('saveRandom', $this->lng->txt('save'));
1044 
1045  $options = new ilRadioGroupInputGUI($this->lng->txt('crs_loc_rand_assign_qpl'), 'type');
1046  $options->setValue(1);
1047  $options->setRequired(true);
1048 
1049  $ass_qpl = new ilRadioOption($this->lng->txt('crs_loc_rand_assign_qpl'), 1);
1050  $options->addOption($ass_qpl);
1051 
1052  $qpl = new ilSelectInputGUI($this->lng->txt('crs_loc_rand_qpl'), 'qpl');
1053  $qpl->setRequired(true);
1054  $qpl->setMulti(true, false);
1055  $qpl->setOptions($this->getRandomTestQplOptions());
1056 
1058  $this->course_obj->getId(),
1059  (int) $_REQUEST['objective_id'],
1060  ilObject::_lookupObjId($this->getSettings()->getTestByType($this->test_type)),
1061  $this->test_type
1062  );
1063 
1064  $qpl->setValue($sequences[0]);
1065  $qpl->setMultiValues($sequences);
1066  $ass_qpl->addSubItem($qpl);
1067 
1068  // points
1069  $per = new ilNumberInputGUI($this->lng->txt('crs_loc_perc'), 'per');
1070  $per->setValue(
1072  $this->course_obj->getId(),
1073  (int) $_REQUEST['objective_id'],
1074  $this->test_type
1075  )
1076  );
1077  $per->setSize(3);
1078  $per->setMinValue(1);
1079  $per->setMaxValue(100);
1080  $per->setRequired(true);
1081  $ass_qpl->addSubItem($per);
1082 
1083  $form->addItem($options);
1084  return $form;
1085  }
This class represents an option in a radio group.
setValue($a_value)
Set Value.
This class represents a property form user interface.
This class represents a property in a property form.
This class represents a number property in a property form.
static _lookupObjId($a_id)
static lookupSequencesByType($a_container_id, $a_objective_id, $a_test_id, $a_test_type)
Lookup sequence ids type $ilDB.
static lookupLimit($a_container_id, $a_objective_id, $a_test_type)
lookup limit type $ilDB
+ 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 1466 of file class.ilCourseObjectivesGUI.php.

References ilTextAreaInputGUI\setValue().

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

1467  {
1468  include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
1469  if ($this->form instanceof ilPropertyFormGUI) {
1470  return;
1471  }
1472 
1473  $this->form = new ilPropertyFormGUI();
1474  $this->form->setFormAction($this->ctrl->getFormAction($this));
1475  //$this->form->setTitleIcon(ilUtil::getImagePath('icon_lobj.svg'),$this->lng->txt('crs_objective'));
1476 
1477  switch ($a_mode) {
1478  case 'create':
1479  $this->form->setTitle($this->lng->txt('crs_objective_wiz_title'));
1480  $this->form->addCommandButton('save', $this->lng->txt('crs_wiz_next'));
1481  // begin-patch lok
1482  #$this->form->addCommandButton('listObjectives',$this->lng->txt('cancel'));
1483  // end-patch lok
1484  break;
1485 
1486  case 'update':
1487  break;
1488  }
1489 
1490  $title = new ilTextInputGUI($this->lng->txt('title'), 'title');
1491  $title->setValue($this->objective->getTitle());
1492  $title->setRequired(true);
1493  $title->setSize(40);
1494  $title->setMaxLength(70);
1495  $this->form->addItem($title);
1496 
1497  $desc = new ilTextAreaInputGUI($this->lng->txt('description'), 'description');
1498  $desc->setValue($this->objective->getDescription());
1499  $desc->setCols(40);
1500  $desc->setRows(5);
1501  $this->form->addItem($desc);
1502  }
This class represents a property form user interface.
setValue($a_value)
Set Value.
This class represents a text area property in a property form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initWizard()

ilCourseObjectivesGUI::initWizard ( int  $active_step)
protected

init wizard protected

Parameters
int$a_step_number
Returns
void

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

References $DIC, $steps, getSettings(), isRandomTestType(), ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

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

1512  {
1513  global $DIC;
1514  $steps = [];
1515  $step_positions = [];
1516 
1517  $workflow = $DIC->ui()->factory()->listing()->workflow();
1518 
1519  // 1 Settings
1520  $title = $this->lng->txt('crs_objective_wiz_title');
1521  $link = $this->ctrl->getLinkTarget($this, 'edit');
1522 
1523  $steps[] = $workflow->step($title, "", $link);
1524  $step_positions[self::STEP_SETTINGS] = count($steps) - 1;
1525 
1526  // 2 Material
1527  $title = $this->lng->txt('crs_objective_wiz_materials');
1528  $link = $this->ctrl->getLinkTarget($this, 'materialAssignment');
1529  $steps[] = $workflow->step($title, "", $link);
1530  $step_positions[self::STEP_MATERIAL_ASSIGNMENT] = count($steps) - 1;
1531 
1532 
1533  if ($this->getSettings()->worksWithInitialTest() && !$this->getSettings()->hasSeparateInitialTests()) {
1534  // 3 initial
1535  $title = $this->lng->txt('crs_objective_wiz_self');
1536  $link = $this->getSettings()->worksWithInitialTest()
1537  ? $this->ctrl->getLinkTarget($this, 'selfAssessmentAssignment')
1538  : null;
1539 
1540  $steps[] = $workflow->step($title, "", $link)
1541  ->withAvailability($link == null ? Step::NOT_AVAILABLE : Step::AVAILABLE);
1542  $step_positions[self::STEP_INITIAL_TEST_ASSIGNMENT] = count($steps) - 1;
1543 
1545  // 4 initial limit
1546  $title = $this->lng->txt('crs_objective_wiz_self_limit');
1547  $link = count($this->objectives_qst_obj->getSelfAssessmentQuestions())
1548  && $this->getSettings()->worksWithInitialTest()
1549  ? $this->ctrl->getLinkTarget($this, 'selfAssessmentLimits')
1550  : null;
1551  $steps[] = $workflow->step($title, "", $link)
1552  ->withAvailability($link == null ? Step::NOT_AVAILABLE : Step::AVAILABLE);
1553  $step_positions[self::STEP_INITIAL_TEST_LIMIT] = count($steps) - 1;
1554  }
1555  }
1556 
1557  if (!$this->getSettings()->hasSeparateQualifiedTests()) {
1558  // 5 final
1559  $title = $this->lng->txt('crs_objective_wiz_final');
1560  $link = $this->ctrl->getLinkTarget($this, 'finalTestAssignment');
1561  $steps[] = $workflow->step($title, "", $link);
1562  $step_positions[self::STEP_FINAL_TEST_ASSIGNMENT] = count($steps) - 1;
1563 
1565  // 6 final limit
1566  $title = $this->lng->txt('crs_objective_wiz_final_limit');
1567  $link = count($this->objectives_qst_obj->getFinalTestQuestions())
1568  ? $this->ctrl->getLinkTarget($this, 'finalTestLimits')
1569  : null;
1570  $steps[] = $workflow->step($title, "", $link)
1571  ->withAvailability($link == null ? Step::NOT_AVAILABLE : Step::AVAILABLE);
1572  $step_positions[self::STEP_FINAL_TEST_LIMIT] = count($steps) - 1;
1573  }
1574  }
1575 
1576  $list = $workflow->linear(
1577  $this->lng->txt('crs_checklist_objective'),
1578  $steps
1579  );
1580  if(!empty($step_positions[$active_step])) {
1581  $list = $list->withActive($step_positions[$active_step]);
1582  }
1583 
1584  $renderer = $DIC->ui()->renderer();
1585 
1586  $DIC["tpl"]->setRightContent($renderer->render($list));
1587  }
$steps
Definition: latex.php:3
$DIC
Definition: xapitoken.php:46
+ 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 991 of file class.ilCourseObjectivesGUI.php.

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

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

992  {
993  if (!$a_tst_type) {
994  $a_tst_type = $this->test_type;
995  }
996 
997  $tst_ref_id = $this->getSettings()->getTestByType($a_tst_type);
998  if (!$tst_ref_id) {
999  return false;
1000  }
1001  include_once './Modules/Test/classes/class.ilObjTest.php';
1003  }
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 149 of file class.ilCourseObjectivesGUI.php.

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

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

150  {
151  global $DIC;
152 
153  $ilAccess = $DIC['ilAccess'];
154  $ilErr = $DIC['ilErr'];
155  $ilObjDataCache = $DIC['ilObjDataCache'];
156  $ilToolbar = $DIC['ilToolbar'];
157 
158  $_SESSION['objective_mode'] = self::MODE_UNDEFINED;
159  if (!$ilAccess->checkAccess("write", '', $this->course_obj->getRefId())) {
160  $this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilErr->MESSAGE);
161  }
162 
163  $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.crs_objectives.html', 'Modules/Course');
164 
165  $ilToolbar->addButton(
166  $this->lng->txt('crs_add_objective'),
167  $this->ctrl->getLinkTarget($this, "'create")
168  );
169 
170  include_once('./Modules/Course/classes/class.ilCourseObjectivesTableGUI.php');
171  $table = new ilCourseObjectivesTableGUI($this, $this->course_obj);
172  $table->setTitle($this->lng->txt('crs_objectives'), '', $this->lng->txt('crs_objectives'));
173  $table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId(), false));
174 
175  $this->tpl->setVariable('OBJECTIVES_TABLE', $table->getHTML());
176  }
$_SESSION["AccountId"]
static _getObjectiveIds($course_id, $a_activated_only=false)
$DIC
Definition: xapitoken.php:46
+ 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 622 of file class.ilCourseObjectivesGUI.php.

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

623  {
624  global $DIC;
625 
626  $ilAccess = $DIC['ilAccess'];
627  $ilErr = $DIC['ilErr'];
628  $tpl = $DIC['tpl'];
629 
630  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
631  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
632  }
633  if (!$_GET['objective_id']) {
634  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
635  $this->ctrl->redirect($this, 'listObjectives');
636  }
637 
638  $this->setSubTabs("materials");
639 
640  $this->ctrl->saveParameter($this, 'objective_id');
641 
642  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
643 
644  include_once('./Modules/Course/classes/class.ilCourseObjectiveMaterialAssignmentTableGUI.php');
645  $table = new ilCourseObjectiveMaterialAssignmentTableGUI($this, $this->course_obj, (int) $_GET['objective_id']);
646  $table->setTitle(
647  $this->lng->txt('crs_objective_wiz_materials'),
648  '',
649  $this->lng->txt('crs_objectives')
650  );
651 
652  include_once('Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
653  $table->parse(ilCourseObjectiveMaterials::_getAssignableMaterials($this->course_obj->getRefId()));
654 
655  $this->__initQuestionObject((int) $_GET['objective_id']);
656  $this->initWizard(self::STEP_MATERIAL_ASSIGNMENT);
657  $GLOBALS['DIC']['tpl']->setContent($table->getHTML());
658  }
initWizard(int $active_step)
init wizard protected
$_GET["client_id"]
TableGUI for material assignments of course objectives.
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
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...
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ questionOverview()

ilCourseObjectivesGUI::questionOverview ( )
protected

question overiew

protected

Returns

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

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

Referenced by saveQuestionOverview().

333  {
334  global $DIC;
335 
336  $ilAccess = $DIC['ilAccess'];
337  $ilErr = $DIC['ilErr'];
338  $ilTabs = $DIC['ilTabs'];
339 
340  $ilTabs->setSubTabActive('crs_objective_overview_question_assignment');
341 
342  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
343  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
344  }
345 
346  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionsTableGUI.php');
347  $table = new ilCourseObjectiveQuestionsTableGUI($this, $this->course_obj);
348  $table->setTitle($this->lng->txt('crs_objectives_edit_question_assignments'), '', $this->lng->txt('crs_objectives'));
349  // begin-patch lok
350  $table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId(), false));
351  // end-patch lok
352 
353  $this->tpl->setContent($table->getHTML());
354  }
static _getObjectiveIds($course_id, $a_activated_only=false)
$DIC
Definition: xapitoken.php:46
+ 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 569 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_SESSION, $DIC, $ilErr, create(), edit(), and initFormTitle().

570  {
571  global $DIC;
572 
573  $ilAccess = $DIC['ilAccess'];
574  $ilErr = $DIC['ilErr'];
575 
576  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
577  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
578  }
579 
580  $this->ctrl->saveParameter($this, 'objective_id');
581 
582  $this->objective = new ilCourseObjective($this->course_obj, (int) $_REQUEST['objective_id']);
583  $this->initFormTitle('create', 1);
584  if ($this->form->checkInput()) {
585  $this->objective->setTitle($this->form->getInput('title'));
586  $this->objective->setDescription($this->form->getInput('description'));
587  $this->objective->setPasses(0);
588 
589  if (!$_GET['objective_id']) {
590  $objective_id = $this->objective->add();
591  ilUtil::sendSuccess($this->lng->txt('crs_added_objective'), true);
592  } else {
593  $this->objective->update();
594  ilUtil::sendSuccess($this->lng->txt('crs_objective_modified'), true);
595  $objective_id = $_GET['objective_id'];
596  }
597  } else {
598  if ((int) $_GET['objective_id']) {
599  $this->form->setValuesByPost();
600  return $this->edit();
601  } else {
602  $this->form->setValuesByPost();
603  return $this->create();
604  }
605  }
606 
607  if ($_SESSION['objective_mode'] != self::MODE_CREATE) {
608  $this->ctrl->returnToParent($this);
609  }
610 
611  $this->ctrl->setParameter($this, 'objective_id', $objective_id);
612  $this->ctrl->redirect($this, 'materialAssignment');
613  return true;
614  }
initFormTitle($a_mode, $a_step_number)
init form title
$_SESSION["AccountId"]
$_GET["client_id"]
class ilcourseobjective
$DIC
Definition: xapitoken.php:46
+ Here is the call graph for this function:

◆ saveQuestionOverview()

ilCourseObjectivesGUI::saveQuestionOverview ( )
protected

update question overview

protected

Returns

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

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

363  {
364  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestion.php');
365 
366  global $DIC;
367 
368  $ilAccess = $DIC['ilAccess'];
369  $ilErr = $DIC['ilErr'];
370 
371  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
372  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
373  }
374  $error = false;
375 
376  $_POST['self'] = $_POST['self'] ? $_POST['self'] : array();
377  $_POST['final'] = $_POST['final'] ? $_POST['final'] : array();
378 
379  foreach ($_POST['self'] as $objective_id => $limit) {
380  $qst = new ilCourseObjectiveQuestion($objective_id);
381  $max_points = $qst->getSelfAssessmentPoints();
382 
383  if ($limit < 0 or $limit > $max_points) {
384  ilUtil::sendFailure($this->lng->txt('crs_objective_limit_err'));
385  $this->questionOverview();
386  return false;
387  }
388  }
389  foreach ($_POST['final'] as $objective_id => $limit) {
390  $qst = new ilCourseObjectiveQuestion($objective_id);
391  $max_points = $qst->getFinalTestPoints();
392 
393  if ($limit < 0 or $limit > $max_points) {
394  ilUtil::sendFailure($this->lng->txt('crs_objective_limit_err'));
395  $this->questionOverview();
396  return false;
397  }
398  }
399 
400  foreach ($_POST['self'] as $objective_id => $limit) {
402  }
403 
404  foreach ($_POST['final'] as $objective_id => $limit) {
406  }
407 
408  ilUtil::sendSuccess($this->lng->txt('settings_saved'));
409  $this->questionOverview();
410  return true;
411  }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
static _updateTestLimits($a_objective_id, $a_status, $a_limit)
update test limits
class ilcourseobjectiveQuestion
$_POST["username"]
+ Here is the call graph for this function:

◆ saveRandom()

ilCourseObjectivesGUI::saveRandom ( )
protected

Save random test settings.

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

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

1146  {
1147  $this->ctrl->saveParameter($this, 'objective_id');
1148  $this->ctrl->setParameter($this, 'tt', (int) $_REQUEST['tt']);
1149  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
1150  $this->test_type = (int) $_REQUEST['tt'];
1151 
1152  $form = $this->initFormRandom();
1153 
1154 
1155 
1156 
1157  if ($form->checkInput()) {
1159  $this->course_obj->getId(),
1160  (int) $_REQUEST['objective_id'],
1161  $this->test_type
1162  );
1163 
1164  $qst = $this->__initQuestionObject((int) $_GET['objective_id']);
1165  $qst->deleteByTestType(
1166  ($this->test_type == ilLOSettings::TYPE_TEST_INITIAL) ?
1169  );
1170  $ref_id = $this->getSettings()->getTestByType($this->test_type);
1171  foreach (array_unique((array) $form->getInput('qpl')) as $qpl_id) {
1172  include_once './Modules/Course/classes/Objectives/class.ilLORandomTestQuestionPools.php';
1173  $rnd = new ilLORandomTestQuestionPools(
1174  $this->course_obj->getId(),
1175  (int) $_REQUEST['objective_id'],
1176  $this->test_type,
1177  $qpl_id
1178  );
1179  $rnd->setLimit($form->getInput('per'));
1180  $rnd->setTestId(ilObject::_lookupObjId($ref_id));
1181  $rnd->create();
1182  }
1183  } else {
1184  $form->setValuesByPost();
1185  ilUtil::sendFailure($this->lng->txt('err_check_input'));
1186  return $this->showRandomTestAssignment();
1187  }
1188 
1189  ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
1190  if ($this->test_type == ilLOSettings::TYPE_TEST_QUALIFIED) {
1191  $this->ctrl->returnToParent($this);
1192  } else {
1193  $this->ctrl->redirect($this, 'finalTestAssignment');
1194  }
1195  }
$_GET["client_id"]
static deleteForObjectiveAndTestType($a_course_id, $a_objective_id, $a_tst_type)
Delete assignment for objective id and test type.
showRandomTestAssignment(ilPropertyFormGUI $form=null)
class ilcourseobjective
static _lookupObjId($a_id)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ saveSorting()

ilCourseObjectivesGUI::saveSorting ( )
protected

save position

protected

Returns

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

References $_POST, $DIC, $ilErr, and listObjectives().

185  {
186  global $DIC;
187 
188  $ilAccess = $DIC['ilAccess'];
189  $ilErr = $DIC['ilErr'];
190  $ilObjDataCache = $DIC['ilObjDataCache'];
191 
192  if (!$ilAccess->checkAccess("write", '', $this->course_obj->getRefId())) {
193  $this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilErr->MESSAGE);
194  }
195 
196  asort($_POST['position'], SORT_NUMERIC);
197 
198  $counter = 1;
199  foreach ($_POST['position'] as $objective_id => $position) {
200  $objective = new ilCourseObjective($this->course_obj, $objective_id);
201  $objective->writePosition($counter++);
202  }
203  ilUtil::sendSuccess($this->lng->txt('crs_objective_saved_sorting'));
204  $this->listObjectives();
205  }
class ilcourseobjective
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ selfAssessmentAssignment()

ilCourseObjectivesGUI::selfAssessmentAssignment ( )
protected

self assessment assignemnt

protected

Returns

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

References $_GET, $DIC, $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().

733  {
734  global $DIC;
735 
736  $ilAccess = $DIC['ilAccess'];
737  $ilErr = $DIC['ilErr'];
738  $tpl = $DIC['tpl'];
739 
740  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
741  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
742  }
743  if (!$_GET['objective_id']) {
744  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
745  $this->ctrl->redirect($this, 'listObjectives');
746  }
747 
748  $this->setSubTabs("self_ass_assign");
749 
750  $this->ctrl->saveParameter($this, 'objective_id');
751 
752  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
753 
754  // begin-patch lok
755  $this->ctrl->setParameter($this, 'tt', ilLOSettings::TYPE_TEST_INITIAL);
756  $this->test_type = $_REQUEST['tt'] = ilLOSettings::TYPE_TEST_INITIAL;
758  return $this->showRandomTestAssignment();
759  }
760  // end-patch lok
761 
762  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionAssignmentTableGUI.php');
764  $this,
765  $this->course_obj,
766  (int) $_GET['objective_id'],
768  );
769  $table->setTitle(
770  $this->lng->txt('crs_objective_wiz_self'),
771  '',
772  $this->lng->txt('crs_objective')
773  );
774  $table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
775 
776  $this->__initQuestionObject((int) $_GET['objective_id']);
777  $this->initWizard(self::STEP_INITIAL_TEST_ASSIGNMENT);
778  $GLOBALS['DIC']['tpl']->setContent($table->getHTML());
779  }
initWizard(int $active_step)
init wizard protected
$_GET["client_id"]
showRandomTestAssignment(ilPropertyFormGUI $form=null)
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_active="")
set sub tabs
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
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 862 of file class.ilCourseObjectivesGUI.php.

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

Referenced by updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

863  {
864  global $DIC;
865 
866  $ilAccess = $DIC['ilAccess'];
867  $ilErr = $DIC['ilErr'];
868  $tpl = $DIC['tpl'];
869 
870  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
871  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
872  }
873  if (!$_GET['objective_id']) {
874  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
875  $this->ctrl->redirect($this, 'listObjectives');
876  }
877 
878  $this->setSubTabs("self_ass_limits");
879 
880  $this->ctrl->saveParameter($this, 'objective_id');
881  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
882 
883  $this->__initQuestionObject((int) $_GET['objective_id']);
884  $this->initWizard(self::STEP_INITIAL_TEST_LIMIT);
885 
886  $this->initFormLimits('selfAssessment');
887  $GLOBALS['DIC']['tpl']->setContent($this->form->getHtml());
888  #$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
889  #$tpl->setContent($w_tpl->get());
890  }
initWizard(int $active_step)
init wizard protected
$_GET["client_id"]
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_active="")
set sub tabs
initFormLimits($a_mode)
init limit form
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
+ 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 454 of file class.ilCourseObjectivesGUI.php.

References $DIC, and ilCourseObjectiveQuestion\_hasTests().

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

455  {
456  global $DIC;
457 
458  $ilTabs = $DIC['ilTabs'];
459  $ilHelp = $DIC['ilHelp'];
460 
461  if ($a_active != "") {
462  $ilHelp->setScreenIdComponent("crs");
463  $ilHelp->setScreenId("crs_objective");
464  $ilHelp->setSubScreenId($a_active);
465  }
466 
467 
468  // begin-patch lok
469  // no subtabs here
470  return true;
471  // end-patch lok
472 
473 
474  $ilTabs->addSubTabTarget(
475  "crs_objective_overview_objectives",
476  $this->ctrl->getLinkTarget($this, "listObjectives"),
477  array("listObjectives", "moveObjectiveUp", "moveObjectiveDown", "listAssignedLM"),
478  array(),
479  '',
480  true
481  );
482  include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestion.php');
483 
484  if (ilCourseObjectiveQuestion::_hasTests($this->course_obj->getId())) {
485  $ilTabs->addSubTabTarget(
486  "crs_objective_overview_question_assignment",
487  $this->ctrl->getLinkTarget($this, "questionOverview"),
488  "editQuestionAssignment",
489  array(),
490  '',
491  false
492  );
493  }
494  }
$DIC
Definition: xapitoken.php:46
+ 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 1009 of file class.ilCourseObjectivesGUI.php.

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

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

1010  {
1011  $this->ctrl->saveParameter($this, 'objective_id');
1012  $this->ctrl->setParameter($this, 'tt', (int) $_REQUEST['tt']);
1013  $this->objective = new ilCourseObjective($this->course_obj, (int) $_GET['objective_id']);
1014  $this->test_type = (int) $_REQUEST['tt'];
1015 
1016 
1017  $this->setSubTabs("rand_test_assign");
1018 
1019  if (!$form instanceof ilPropertyFormGUI) {
1020  $form = $this->initFormRandom();
1021  }
1022 
1023  $this->__initQuestionObject((int) $_GET['objective_id']);
1024  $this->initWizard(self::STEP_FINAL_TEST_ASSIGNMENT);
1025  $GLOBALS['DIC']['tpl']->setContent($form->getHTML());
1026  }
initWizard(int $active_step)
init wizard protected
This class represents a property form user interface.
$_GET["client_id"]
class ilcourseobjective
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
setSubTabs($a_active="")
set sub tabs
+ 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 1204 of file class.ilCourseObjectivesGUI.php.

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

1205  {
1206  global $DIC;
1207 
1208  $ilAccess = $DIC['ilAccess'];
1209  $ilErr = $DIC['ilErr'];
1210  $ilObjDataCache = $DIC['ilObjDataCache'];
1211 
1212  $checked_questions = $_POST['questions'] ? $_POST['questions'] : array();
1213 
1214 
1215  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
1216  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
1217  }
1218  if (!$_GET['objective_id']) {
1219  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
1220  $this->ctrl->redirect($this, 'listObjectives');
1221  }
1222 
1223  $this->__initQuestionObject((int) $_GET['objective_id']);
1224 
1225  // Delete unchecked
1226  foreach ($this->objectives_qst_obj->getFinalTestQuestions() as $question) {
1227  $id = $question['ref_id'] . '_' . $question['question_id'];
1228  if (!in_array($id, $checked_questions)) {
1229  $this->objectives_qst_obj->delete($question['qst_ass_id']);
1230  }
1231  }
1232  // Add checked
1233  foreach ($checked_questions as $question_id) {
1234  list($test_ref_id, $qst_id) = explode('_', $question_id);
1235  $test_obj_id = $ilObjDataCache->lookupObjId($test_ref_id);
1236 
1237  if ($this->objectives_qst_obj->isFinalTestQuestion($qst_id)) {
1238  continue;
1239  }
1240 
1241  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
1242  $this->objectives_qst_obj->setTestRefId($test_ref_id);
1243  $this->objectives_qst_obj->setTestObjId($test_obj_id);
1244  $this->objectives_qst_obj->setQuestionId($qst_id);
1245  $this->objectives_qst_obj->add();
1246  }
1247 
1248  // TODO: not nice
1249  include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
1250  $this->questions = new ilCourseObjectiveQuestion((int) $_GET['objective_id']);
1251  // not required due to percentages
1252  //$this->questions->updateLimits();
1253 
1254  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
1255  $this->finalTestLimits();
1256  }
$_GET["client_id"]
finalTestLimits()
self assessment limits
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
class ilcourseobjectiveQuestion
$_POST["username"]
+ Here is the call graph for this function:

◆ updateFinalTestLimits()

ilCourseObjectivesGUI::updateFinalTestLimits ( )
protected

update self assessment limits

protected

Parameters

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

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

1327  {
1328  global $DIC;
1329 
1330  $ilAccess = $DIC['ilAccess'];
1331  $ilErr = $DIC['ilErr'];
1332  $ilObjDataCache = $DIC['ilObjDataCache'];
1333 
1334  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
1335  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
1336  }
1337  if (!$_GET['objective_id']) {
1338  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
1339  $this->ctrl->redirect($this, 'listObjectives');
1340  }
1341 
1342  $this->__initQuestionObject((int) $_GET['objective_id']);
1343 
1344  if ((int) $_POST['limit'] < 1 or (int) $_POST['limit'] > 100) {
1345  ilUtil::sendFailure($this->lng->txt('crs_objective_err_limit'));
1346  $this->finalTestLimits();
1347  return false;
1348  }
1349 
1350  foreach ($this->objectives_qst_obj->getFinalTests() as $test) {
1351  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
1352  $this->objectives_qst_obj->setTestSuggestedLimit((int) $_POST['limit']);
1353  $this->objectives_qst_obj->updateTest($test['test_objective_id']);
1354  }
1355 
1356  if ($_SESSION['objective_mode'] != self::MODE_CREATE) {
1357  ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
1358  } else {
1359  ilUtil::sendSuccess($this->lng->txt('crs_added_objective'), true);
1360  }
1361  $this->ctrl->returnToParent($this);
1362  }
$_SESSION["AccountId"]
$_GET["client_id"]
finalTestLimits()
self assessment limits
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
$_POST["username"]
$test
Definition: Utf8Test.php:84
+ Here is the call graph for this function:

◆ updateMaterialAssignment()

ilCourseObjectivesGUI::updateMaterialAssignment ( )
protected

update material assignment

protected

Parameters

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

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

668  {
669  global $DIC;
670 
671  $ilAccess = $DIC['ilAccess'];
672  $ilErr = $DIC['ilErr'];
673  $ilObjDataCache = $DIC['ilObjDataCache'];
674 
675  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
676  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
677  }
678  if (!$_GET['objective_id']) {
679  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
680  $this->ctrl->redirect($this, 'listObjectives');
681  }
682 
683  $this->__initLMObject((int) $_GET['objective_id']);
684  $this->objectives_lm_obj->deleteAll();
685 
686  if (is_array($_POST['materials'])) {
687  foreach ($_POST['materials'] as $node_id) {
688  $obj_id = $ilObjDataCache->lookupObjId($node_id);
689  $type = $ilObjDataCache->lookupType($obj_id);
690 
691  $this->objectives_lm_obj->setLMRefId($node_id);
692  $this->objectives_lm_obj->setLMObjId($obj_id);
693  $this->objectives_lm_obj->setType($type);
694  $this->objectives_lm_obj->add();
695  }
696  }
697  if (is_array($_POST['chapters'])) {
698  foreach ($_POST['chapters'] as $chapter) {
699  include_once('./Modules/LearningModule/classes/class.ilLMObject.php');
700 
701  list($ref_id, $chapter_id) = explode('_', $chapter);
702 
703  $this->objectives_lm_obj->setLMRefId($ref_id);
704  $this->objectives_lm_obj->setLMObjId($chapter_id);
705  $this->objectives_lm_obj->setType(ilLMObject::_lookupType($chapter_id));
706  $this->objectives_lm_obj->add();
707  }
708  }
709  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
710 
711 
712  if ($_SESSION['objective_mode'] != self::MODE_CREATE) {
713  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'), true);
714  $this->ctrl->returnToParent($this);
715  }
716 
717  // begin-patch lok
718  if ($this->getSettings()->worksWithInitialTest()) {
719  $this->selfAssessmentAssignment();
720  } else {
721  $this->finalTestAssignment();
722  }
723  // end-patch lok
724  }
selfAssessmentAssignment()
self assessment assignemnt
static _lookupType($a_obj_id, $a_lm_id=0)
Lookup type.
$_SESSION["AccountId"]
$type
$_GET["client_id"]
finalTestAssignment()
final test assignment
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
$_POST["username"]
+ Here is the call graph for this function:

◆ updateSelfAssessmentAssignment()

ilCourseObjectivesGUI::updateSelfAssessmentAssignment ( )
protected

update self assessment assignment

protected

Parameters

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

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

789  {
790  global $DIC;
791 
792  $ilAccess = $DIC['ilAccess'];
793  $ilErr = $DIC['ilErr'];
794  $ilObjDataCache = $DIC['ilObjDataCache'];
795 
796  $checked_questions = $_POST['questions'] ? $_POST['questions'] : array();
797 
798 
799  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
800  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
801  }
802  if (!$_GET['objective_id']) {
803  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
804  $this->ctrl->redirect($this, 'listObjectives');
805  }
806 
807  $this->__initQuestionObject((int) $_GET['objective_id']);
808 
809  // Delete unchecked
810  foreach ($this->objectives_qst_obj->getSelfAssessmentQuestions() as $question) {
811  $id = $question['ref_id'] . '_' . $question['question_id'];
812  if (!in_array($id, $checked_questions)) {
813  $this->objectives_qst_obj->delete($question['qst_ass_id']);
814  }
815  }
816  // Add checked
817  foreach ($checked_questions as $question_id) {
818  list($test_ref_id, $qst_id) = explode('_', $question_id);
819  $test_obj_id = $ilObjDataCache->lookupObjId($test_ref_id);
820 
821  if ($this->objectives_qst_obj->isSelfAssessmentQuestion($qst_id)) {
822  continue;
823  }
824  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
825  $this->objectives_qst_obj->setTestRefId($test_ref_id);
826  $this->objectives_qst_obj->setTestObjId($test_obj_id);
827  $this->objectives_qst_obj->setQuestionId($qst_id);
828  $this->objectives_qst_obj->add();
829  }
830 
831  // TODO: not nice
832  include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
833  $this->questions = new ilCourseObjectiveQuestion((int) $_GET['objective_id']);
834  // not required due to percentages
835  //$this->questions->updateLimits();
836 
837  if ($checked_questions) {
838  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
839  $this->selfAssessmentLimits();
840  return true;
841  } else {
842  switch ($_SESSION['objective_mode']) {
843  case self::MODE_CREATE:
844  $this->finalTestAssignment();
845  return true;
846 
847  case self::MODE_UPDATE:
848  $this->selfAssessmentAssignment();
849  ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
850  return true;
851  }
852  }
853  }
selfAssessmentAssignment()
self assessment assignemnt
$_SESSION["AccountId"]
$_GET["client_id"]
finalTestAssignment()
final test assignment
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
class ilcourseobjectiveQuestion
$_POST["username"]
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 899 of file class.ilCourseObjectivesGUI.php.

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

900  {
901  global $DIC;
902 
903  $ilAccess = $DIC['ilAccess'];
904  $ilErr = $DIC['ilErr'];
905  $ilObjDataCache = $DIC['ilObjDataCache'];
906 
907  if (!$ilAccess->checkAccess('write', '', $this->course_obj->getRefId())) {
908  $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->WARNING);
909  }
910  if (!$_GET['objective_id']) {
911  ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'), true);
912  $this->ctrl->redirect($this, 'listObjectives');
913  }
914 
915  $this->__initQuestionObject((int) $_GET['objective_id']);
916 
917  if ((int) $_POST['limit'] < 1 or (int) $_POST['limit'] > 100) {
918  ilUtil::sendFailure($this->lng->txt('crs_objective_err_limit'));
919  $this->selfAssessmentLimits();
920  return false;
921  }
922 
923  foreach ($this->objectives_qst_obj->getSelfAssessmentTests() as $test) {
924  $this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
925  $this->objectives_qst_obj->setTestSuggestedLimit((int) $_POST['limit']);
926  $this->objectives_qst_obj->updateTest($test['test_objective_id']);
927  }
928 
929  ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
930  $this->ctrl->returnToParent($this);
931  }
$_GET["client_id"]
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$DIC
Definition: xapitoken.php:46
$_POST["username"]
selfAssessmentLimits()
self assessment limits
$test
Definition: Utf8Test.php:84
+ Here is the call graph for this function:

Field Documentation

◆ $course_id

ilCourseObjectivesGUI::$course_id

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

◆ $course_obj

ilCourseObjectivesGUI::$course_obj

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

◆ $ctrl

ilCourseObjectivesGUI::$ctrl

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

◆ $ilErr

◆ $ilias

ilCourseObjectivesGUI::$ilias

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

Referenced by __construct().

◆ $lng

ilCourseObjectivesGUI::$lng

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

Referenced by __construct().

◆ $logger

ilCourseObjectivesGUI::$logger = null
private

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

◆ $settings

ilCourseObjectivesGUI::$settings
protected

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

Referenced by getSettings().

◆ $test_type

ilCourseObjectivesGUI::$test_type = 0
protected

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

Referenced by isRandomTestType().

◆ $tpl

◆ MODE_CREATE

const ilCourseObjectivesGUI::MODE_CREATE = 1

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

◆ MODE_UNDEFINED

const ilCourseObjectivesGUI::MODE_UNDEFINED = 0

◆ MODE_UPDATE

const ilCourseObjectivesGUI::MODE_UPDATE = 2

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

◆ STEP_FINAL_TEST_ASSIGNMENT

const ilCourseObjectivesGUI::STEP_FINAL_TEST_ASSIGNMENT = 5
protected

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

◆ STEP_FINAL_TEST_LIMIT

const ilCourseObjectivesGUI::STEP_FINAL_TEST_LIMIT = 6
protected

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

◆ STEP_INITIAL_TEST_ASSIGNMENT

const ilCourseObjectivesGUI::STEP_INITIAL_TEST_ASSIGNMENT = 3
protected

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

◆ STEP_INITIAL_TEST_LIMIT

const ilCourseObjectivesGUI::STEP_INITIAL_TEST_LIMIT = 4
protected

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

◆ STEP_MATERIAL_ASSIGNMENT

const ilCourseObjectivesGUI::STEP_MATERIAL_ASSIGNMENT = 2
protected

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

◆ STEP_SETTINGS

const ilCourseObjectivesGUI::STEP_SETTINGS = 1
protected

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


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