36 include_once
'Modules/Course/classes/class.ilCourseObjectiveResult.php';
59 $this->tabs_gui =& $ilTabs;
61 $this->container_gui =& $container_gui;
62 $this->container_obj =& $this->container_gui->object;
73 $next_class = $this->ctrl->getNextClass();
77 $cmd = $this->ctrl->getCmd();
78 if (!
$cmd = $this->ctrl->getCmd())
100 $ilBench->start(
'Objectives',
'Objectives_view');
102 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.crs_objective_view.html",
'Modules/Course');
103 $this->
__showButton(
'askReset',$this->lng->txt(
'crs_reset_results'));
107 $ilBench->stop(
'Objectives',
'Objectives_read');
113 $ilBench->start(
'Objectives',
'Objectives_objectives');
115 $ilBench->stop(
'Objectives',
'Objectives_objectives');
118 $ilBench->start(
'Objectives',
'Objectives_lms');
120 $ilBench->stop(
'Objectives',
'Objectives_lms');
123 $ilBench->start(
'Objectives',
'Objectives_tests');
125 $ilBench->stop(
'Objectives',
'Objectives_tests');
129 $ilBench->start(
'Objectives',
'Objectives_or');
131 $ilBench->stop(
'Objectives',
'Objectives_or');
133 $ilBench->stop(
'Objectives',
'Objectives_view');
143 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.crs_objectives_ask_reset.html",
'Modules/Course');
145 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
146 $this->tpl->setVariable(
"INFO_STRING",$this->lng->txt(
'crs_objectives_reset_sure'));
147 $this->tpl->setVariable(
"TXT_CANCEL",$this->lng->txt(
'cancel'));
148 $this->tpl->setVariable(
"TXT_RESET",$this->lng->txt(
'reset'));
157 include_once
'./Modules/Course/classes/class.ilCourseObjectiveResult.php';
160 ilObjUser::_writePref($ilUser->getId(),
'crs_objectives_force_details_'.$this->course_obj->getId(),0);
164 $tmp_obj_res->
reset($this->course_obj->getId());
175 $this->tpl->addBlockfile(
"BUTTONS",
"buttons",
"tpl.buttons.html");
178 $this->tpl->setCurrentBlock(
"btn_cell");
179 $this->tpl->setVariable(
"BTN_LINK",$this->ctrl->getLinkTarget($this,$a_cmd));
180 $this->tpl->setVariable(
"BTN_TXT",$a_text);
184 $this->tpl->setVariable(
"BTN_TARGET",$a_target);
187 $this->tpl->parseCurrentBlock();
192 $this->objective_result_obj->readStatus($this->course_obj->getId());
193 $this->accomplished = $this->objective_result_obj->getAccomplished($this->course_obj->getId());
194 $this->status = $this->objective_result_obj->getStatus($this->course_obj->getId());
195 $this->suggested = $this->objective_result_obj->getSuggested($this->course_obj->getId(),$this->status);
200 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
207 $this->tpl->addBlockfile(
'INFO_BLOCK',
'info_block',
'tpl.crs_objectives_view_info_table.html',
'Modules/Course');
208 $this->tpl->setVariable(
"INFO_STRING",$this->lng->txt(
'crs_objectives_info_'.$this->status));
215 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
225 $this->details_id =
$_SESSION[
'crs_details_id'] ?
$_SESSION[
'crs_details_id'] : $objective_ids[0];
228 switch($this->status)
231 $status = $this->lng->txt(
'crs_objective_accomplished');
235 case 'pretest_non_suggest':
236 $status = $this->lng->txt(
'crs_objective_pretest');
240 $status = $this->lng->txt(
'crs_objective_result');
244 $this->tpl->addBlockfile(
'OBJECTIVE_BLOCK',
'objective_block',
'tpl.crs_objectives_view_table.html',
'Modules/Course');
246 $this->tpl->setVariable(
"TBL_TITLE_OBJECTIVES",$this->lng->txt(
'crs_objectives'));
250 if(isset(
$_SESSION[
'crs_hide_objectives']))
255 $this->tpl->setVariable(
'TBL_HEADER_NAME_OBJECTIVES_A',$this->lng->txt(
'type'));
257 $this->tpl->setVariable(
'TBL_HEADER_NAME_OBJECTIVES_B',$this->lng->txt(
'description'));
259 $this->tpl->setVariable(
'TBL_HEADER_NAME_OBJECTIVES_C',$status);
263 $max = count($objective_ids);
264 for($i = 0; $i < $max; ++$i)
268 $this->tpl->setCurrentBlock(
"objective_row");
270 if($this->details_id == $objective_ids[$i])
272 $this->tpl->setVariable(
"OBJ_CLASS_1_OBJECTIVES",
'option_value_details');
273 $this->tpl->setVariable(
"OBJ_CLASS_1_CENTER_OBJECTIVES",
'option_value_center_details');
277 $this->tpl->setVariable(
"OBJ_CLASS_1_OBJECTIVES",
'option_value');
278 $this->tpl->setVariable(
"OBJ_CLASS_1_CENTER_OBJECTIVES",
'option_value_center');
280 $this->tpl->setVariable(
"OBJ_NR_1_OBJECTIVES",($i + 1).
'.');
282 $this->ctrl->setParameter($this,
'details',$objective_ids[$i]);
283 $this->tpl->setVariable(
"OBJ_LINK_1_OBJECTIVES",$this->ctrl->getLinkTarget($this,
'view'));
284 $this->tpl->setVariable(
"OBJ_TITLE_1_OBJECTIVES",$tmp_objective->getTitle());
286 $img = !in_array($objective_ids[$i],$this->suggested) ?
290 $txt = !in_array($objective_ids[$i],$this->suggested) ?
291 $this->lng->txt(
'crs_objective_accomplished') :
292 $this->lng->txt(
'crs_objective_not_accomplished');
294 $this->tpl->setVariable(
"OBJ_STATUS_IMG_1_OBJECTIVES",
$img);
295 $this->tpl->setVariable(
"OBJ_STATUS_ALT_1_OBJECTIVES",$txt);
298 if(isset($objective_ids[$i + $max / 2]))
300 $tmp_objective =&
new ilCourseObjective($this->course_obj,$objective_ids[$i + $max / 2]);
302 $this->tpl->setCurrentBlock(
"objective_row");
303 if($this->details_id == $objective_ids[$i + $max / 2])
305 $this->tpl->setVariable(
"OBJ_CLASS_2_OBJECTIVES",
'option_value_details');
306 $this->tpl->setVariable(
"OBJ_CLASS_2_CENTER_OBJECTIVES",
'option_value_center_details');
310 $this->tpl->setVariable(
"OBJ_CLASS_2_OBJECTIVES",
'option_value');
311 $this->tpl->setVariable(
"OBJ_CLASS_2_CENTER_OBJECTIVES",
'option_value_center');
313 $this->tpl->setVariable(
"OBJ_NR_2_OBJECTIVES",($i + $max / 2 + 1).
'.');
314 $this->ctrl->setParameter($this,
'details',$objective_ids[$i + $max / 2]);
315 $this->tpl->setVariable(
"OBJ_LINK_2_OBJECTIVES",$this->ctrl->getLinkTarget($this,
'view'));
316 $this->tpl->setVariable(
"OBJ_TITLE_2_OBJECTIVES",$tmp_objective->getTitle());
319 $objective_id = $objective_ids[$i + $max / 2];
321 $img = !in_array($objective_id,$this->suggested) ?
325 $txt = !in_array($objective_id,$this->suggested) ?
326 $this->lng->txt(
'crs_objective_accomplished') :
327 $this->lng->txt(
'crs_objective_not_accomplished');
329 $this->tpl->setVariable(
"OBJ_STATUS_IMG_2_OBJECTIVES",
$img);
330 $this->tpl->setVariable(
"OBJ_STATUS_ALT_2_OBJECTIVES",$txt);
333 $this->tpl->parseCurrentBlock();
334 unset($tmp_objective);
336 $this->ctrl->setParameter($this,
'details',
'');
341 global $rbacsystem,
$ilias,$ilUser,$ilObjDataCache;
343 include_once
'./Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
344 include_once
'./Services/Repository/classes/class.ilRepositoryExplorer.php';
345 include_once
'./Modules/Course/classes/class.ilCourseLMHistory.php';
351 if($this->details_id)
356 $lm_continue =&
new ilCourseLMHistory($this->course_obj->getRefId(),$ilUser->getId());
359 $this->tpl->addBlockfile(
'LM_BLOCK',
'lm_block',
'tpl.crs_objectives_view_lm_table.html',
'Modules/Course');
360 $this->tpl->setVariable(
"TBL_TITLE_LMS",$this->lng->txt(
'crs_learning_materials'));
370 $this->tpl->setVariable(
"TBL_HEADER_LMS_TYPE",$this->lng->txt(
'type'));
371 $this->tpl->setVariable(
"TBL_HEADER_NAME_LMS",$this->lng->txt(
'description'));
374 foreach($lms as $lm_id)
376 $obj_id = $ilObjDataCache->lookupObjId($lm_id);
377 $obj_type = $ilObjDataCache->lookupType(
$obj_id);
383 $obj_frame = $obj_frame ? $obj_frame :
'';
388 $this->tpl->setCurrentBlock(
"lm_read");
389 $this->tpl->setVariable(
"READ_TITLE_LMS",$ilObjDataCache->lookupTitle(
$obj_id));
390 $this->tpl->setVariable(
"READ_TARGET_LMS",$obj_frame);
391 $this->tpl->setVariable(
"READ_LINK_LMS", $obj_link);
392 $this->tpl->parseCurrentBlock();
396 $this->tpl->setCurrentBlock(
"lm_visible");
397 $this->tpl->setVariable(
"VISIBLE_LINK_LMS",$ilObjDataCache->lookupTitle(
$obj_id));
398 $this->tpl->parseCurrentBlock();
401 if(!$ilUser->isDesktopItem($lm_id,$obj_type) and
402 ($this->course_obj->getAboStatus() == $this->course_obj->ABO_ENABLED))
404 if ($rbacsystem->checkAccess(
'read',$lm_id))
406 $this->tpl->setCurrentBlock(
"lm_desklink");
407 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'item_ref_id',$lm_id);
408 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'item_id',$lm_id);
409 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'type',$obj_type);
411 $this->tpl->setVariable(
"DESK_LINK_LMS",$this->ctrl->getLinkTarget($this->container_gui,
'addToDesk'));
412 $this->tpl->setVariable(
"TXT_DESK_LMS", $this->lng->txt(
"to_desktop"));
413 $this->tpl->parseCurrentBlock();
418 if(isset($continue_data[$lm_id]))
420 $this->tpl->setCurrentBlock(
"lm_continuelink");
421 $this->tpl->setVariable(
"CONTINUE_LINK_LMS",
'ilias.php?baseClass=ilLMPresentationGUI&ref_id='.$lm_id.
'&obj_id='.
422 $continue_data[$lm_id][
'lm_page_id']);
425 $this->tpl->setVariable(
"CONTINUE_LINK_TARGET",$obj_frame);
426 $this->tpl->setVariable(
"TXT_CONTINUE_LMS",$this->lng->txt(
'continue_work'));
427 $this->tpl->parseCurrentBlock();
431 if(strlen($ilObjDataCache->lookupDescription(
$obj_id)))
433 $this->tpl->setCurrentBlock(
"lms_description");
434 $this->tpl->setVariable(
"DESCRIPTION_LMS",$ilObjDataCache->lookupDescription(
$obj_id));
435 $this->tpl->parseCurrentBlock();
438 if(isset($continue_data[
"$lm_id"]))
440 $this->tpl->setVariable(
"TEXT_INFO_LMS",$this->lng->txt(
'last_access'));
446 $this->tpl->setVariable(
"INFO_LMS",$this->lng->txt(
'not_accessed'));
449 if($this->details_id)
451 $objectives_lm_obj->setLMRefId($lm_id);
452 if($objectives_lm_obj->checkExists())
458 foreach($objectives_lm_obj->getChapters() as $lm_obj_data)
460 if($lm_obj_data[
'ref_id'] != $lm_id)
465 include_once
'./Modules/LearningModule/classes/class.ilLMObject.php';
468 $this->tpl->setCurrentBlock(
"chapters");
470 if($lm_obj_data[
'type'] ==
'st')
472 $this->tpl->setVariable(
"TXT_CHAPTER",$this->lng->txt(
'chapter'));
476 $this->tpl->setVariable(
"TXT_CHAPTER",$this->lng->txt(
'page'));
478 $this->tpl->setVariable(
"CHAPTER_LINK_LMS",
"ilias.php?baseClass=ilLMPresentationGUI&ref_id=".
479 $lm_obj_data[
'ref_id'].
480 '&obj_id='.$lm_obj_data[
'obj_id']);
481 $this->tpl->setVariable(
"CHAPTER_LINK_TARGET_LMS",$obj_frame);
483 $this->tpl->parseCurrentBlock();
486 $this->tpl->setVariable(
"OBJ_CLASS_CENTER_LMS",
'option_value_center_details');
487 $this->tpl->setVariable(
"OBJ_CLASS_LMS",
'option_value_details');
491 $this->tpl->setVariable(
"OBJ_CLASS_CENTER_LMS",
'option_value_center');
492 $this->tpl->setVariable(
"OBJ_CLASS_LMS",
'option_value');
497 $this->tpl->setVariable(
"OBJ_CLASS_CENTER_LMS",
'option_value_center');
498 $this->tpl->setVariable(
"OBJ_CLASS_LMS",
'option_value');
500 $this->tpl->setCurrentBlock(
"lm_row");
502 $this->tpl->setVariable(
'TXT_IMG_MAT',$this->lng->txt(
'obj_'.$obj_type));
503 $this->tpl->setVariable(
"OBJ_NR_LMS",$counter.
'.');
504 $this->tpl->parseCurrentBlock();
512 global
$ilias,$rbacsystem,$ilObjDataCache,$ilUser;
514 include_once
'./Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
521 $this->tpl->addBlockfile(
'TEST_BLOCK',
'test_block',
'tpl.crs_objectives_view_tst_table.html',
'Modules/Course');
522 $this->tpl->setVariable(
"TBL_TITLE_TST",$this->lng->txt(
'tests'));
532 $this->tpl->setVariable(
"TBL_HEADER_WIDTH_TST_1",
"75%");
533 $this->tpl->setVariable(
"TBL_HEADER_NAME_TST_1",$this->lng->txt(
'description'));
535 $this->tpl->setVariable(
"TBL_HEADER_WIDTH_TST",
"5%");
536 $this->tpl->setVariable(
"TBL_HEADER_NAME_TST",$this->lng->txt(
'crs_nr'));
538 $this->tpl->setVariable(
"TBL_HEADER_WIDTH_TST_2",
"20%");
539 $this->tpl->setVariable(
"TBL_HEADER_NAME_TST_2",
'');
541 foreach(
$tests as $tst_id)
543 $obj_id = $ilObjDataCache->lookupObjId($tst_id);
544 $obj_type = $ilObjDataCache->lookupType(
$obj_id);
549 $obj_link =
"ilias.php?baseClass=ilObjTestGUI&ref_id=".$tst_id.
"&cmd=infoScreen";
554 $this->tpl->setCurrentBlock(
"tst_read");
555 $this->tpl->setVariable(
"READ_TITLE_TST",$ilObjDataCache->lookupTitle(
$obj_id));
556 $this->tpl->setVariable(
"READ_TARGET_TST",$obj_frame);
557 $this->tpl->setVariable(
"READ_LINK_TST", $obj_link.
'&crs_show_result='.$this->course_obj->getRefId());
558 $this->tpl->parseCurrentBlock();
562 $this->tpl->setCurrentBlock(
"tst_visible");
563 $this->tpl->setVariable(
"VISIBLE_LINK_TST",$ilObjDataCache->lookupTitle(
$obj_id));
564 $this->tpl->parseCurrentBlock();
567 if(!$ilUser->isDesktopItem($tst_id,$obj_type) and
568 ($this->course_obj->getAboStatus() == $this->course_obj->ABO_ENABLED))
570 if ($rbacsystem->checkAccess(
'read',$tst_id))
572 $this->tpl->setCurrentBlock(
"tst_desklink");
573 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'item_ref_id',$tst_id);
574 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'item_id',$tst_id);
575 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'type',$obj_type);
576 $this->tpl->setVariable(
"DESK_LINK_TST",$this->ctrl->getLinkTarget($this->container_gui,
'addToDesk'));
578 $this->tpl->setVariable(
"TXT_DESK_TST", $this->lng->txt(
"to_desktop"));
579 $this->tpl->parseCurrentBlock();
583 $this->tpl->setCurrentBlock(
"tst_row");
584 $this->tpl->setVariable(
"OBJ_TITLE_TST",$ilObjDataCache->lookupTitle(
$obj_id));
585 $this->tpl->setVariable(
"OBJ_NR_TST",$counter.
'.');
588 include_once(
'Modules/Course/classes/class.ilCourseObjectiveQuestion.php');
591 $this->tpl->setVariable(
"OBJ_CLASS_CENTER_TST",
'option_value_center_details');
592 $this->tpl->setVariable(
"OBJ_CLASS_TST",
'option_value_details');
596 $this->tpl->setVariable(
"OBJ_CLASS_CENTER_TST",
'option_value_center');
597 $this->tpl->setVariable(
"OBJ_CLASS_TST",
'option_value');
599 $this->tpl->parseCurrentBlock();
613 $this->tpl->addBlockfile(
'RESOURCES_BLOCK',
'resources_block',
'tpl.crs_objectives_view_or_table.html',
'Modules/Course');
614 $this->tpl->setVariable(
"TBL_TITLE_OR",$this->lng->txt(
'crs_other_resources'));
624 $this->tpl->setCurrentBlock(
"tbl_header_columns_or");
625 $this->tpl->setVariable(
"TBL_HEADER_WIDTH_OR",
"5%");
626 $this->tpl->setVariable(
"TBL_HEADER_NAME_OR",$this->lng->txt(
'type'));
627 $this->tpl->parseCurrentBlock();
629 $this->tpl->setCurrentBlock(
"tbl_header_columns_or");
630 $this->tpl->setVariable(
"TBL_HEADER_WIDTH_OR",
"75%");
631 $this->tpl->setVariable(
"TBL_HEADER_NAME_OR",$this->lng->txt(
'description'));
632 $this->tpl->parseCurrentBlock();
634 $this->tpl->setCurrentBlock(
"tbl_header_columns_or");
635 $this->tpl->setVariable(
"TBL_HEADER_WIDTH_OR",
"20%");
636 $this->tpl->setVariable(
"TBL_HEADER_NAME_OR",
'');
637 $this->tpl->parseCurrentBlock();
640 foreach($ors as $or_id)
642 $obj_id = $ilObjDataCache->lookupObjId($or_id);
643 $obj_type = $ilObjDataCache->lookupType(
$obj_id);
646 if ($objDefinition->isSideBlock($obj_type))
655 $obj_frame = $obj_frame ? $obj_frame :
'';
659 $this->tpl->setCurrentBlock(
"or_read");
660 $this->tpl->setVariable(
"READ_TITLE_OR",$ilObjDataCache->lookupTitle(
$obj_id));
661 $this->tpl->setVariable(
"READ_TARGET_OR",$obj_frame);
662 $this->tpl->setVariable(
"READ_LINK_OR", $obj_link);
663 $this->tpl->parseCurrentBlock();
667 $this->tpl->setCurrentBlock(
"or_visible");
668 $this->tpl->setVariable(
"VISIBLE_LINK_OR",$ilObjDataCache->lookupTitle(
$obj_id));
669 $this->tpl->parseCurrentBlock();
672 if(!$ilias->account->isDesktopItem($or_id,$obj_type) and
673 ($this->course_obj->getAboStatus() == $this->course_obj->ABO_ENABLED))
675 if ($rbacsystem->checkAccess(
'read',$or_id))
677 $this->tpl->setCurrentBlock(
"or_desklink");
678 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'item_ref_id',$or_id);
679 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'item_id',$or_id);
680 $this->ctrl->setParameterByClass(get_class($this->container_gui),
'type',$obj_type);
682 $this->tpl->setVariable(
"DESK_LINK_OR",$this->ctrl->getLinkTarget($this->container_gui,
'addToDesk'));
684 $this->tpl->setVariable(
"TXT_DESK_OR", $this->lng->txt(
"to_desktop"));
685 $this->tpl->parseCurrentBlock();
689 $this->tpl->setCurrentBlock(
"or_row");
690 $this->tpl->setVariable(
"OBJ_TITLE_OR",$ilObjDataCache->lookupTitle(
$obj_id));
692 $this->tpl->setVariable(
"TXT_IMG_OR",$this->lng->txt(
'obj_'.$obj_type));
693 $this->tpl->setVariable(
"OBJ_CLASS_CENTER_OR",
'option_value_center');
694 $this->tpl->setVariable(
"OBJ_CLASS_OR",
'option_value');
695 $this->tpl->parseCurrentBlock();
704 foreach($items = $this->course_obj->items_obj->getItems() as $node)
706 switch($node[
'type'])
709 $tests[] = $node[
'ref_id'];
718 include_once(
'Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
721 foreach($items = $this->course_obj->items_obj->getItems() as $node)
723 if(in_array($node[
'ref_id'],$assigned))
727 if($node[
'type'] ==
'tst')
731 $all_lms[] = $node[
'ref_id'];
733 return $all_lms ? $all_lms : array();
739 if(
$_GET[
'show_hide_'.$a_part] == 1)
743 if(
$_GET[
'show_hide_'.$a_part] == 2)
748 $this->ctrl->setParameter($this,
'show_hide_'.$a_part,
$_SESSION[
'crs_hide_'.$a_part] ? 1 : 2);
749 $this->tpl->setVariable(
"LINK_HIDE_SHOW_".strtoupper($a_part),$this->ctrl->getLinkTarget($this,
'view'));
750 $this->tpl->setVariable(
"TXT_HIDE_SHOW_".strtoupper($a_part),
$_SESSION[
'crs_hide_'.$a_part] ?
751 $this->lng->txt(
'crs_show_link_'.$a_part) :
752 $this->lng->txt(
'crs_hide_link_'.$a_part));
754 $this->ctrl->setParameter($this,
'show_hide_'.$a_part,
'');
756 $this->tpl->setVariable(
"HIDE_SHOW_IMG_".strtoupper($a_part),
$_SESSION[
'crs_hide_'.$a_part] ?
769 if($this->container_obj->getType() ==
'crs')
776 $course_ref_id = $tree->checkForParentType($this->container_obj->getRefId(),
'crs');
779 $this->course_obj->initCourseItemObject();