25 include_once(
"./Services/Container/classes/class.ilContainerContentGUI.php");
59 parent::__construct($a_container_gui);
94 return self::DETAILS_ALL;
111 include_once
'Services/Object/classes/class.ilObjectListGUIFactory.php';
113 $tpl =
new ilTemplate(
"tpl.container_page.html",
true,
true,
"Services/Container");
118 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
121 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
123 $ilToolbar->addButton(
124 $lng->txt(
'crs_reset_results'),
140 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
145 if(!$is_manage && !$is_order)
157 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
160 include_once
'./Modules/Test/classes/class.ilObjTestAccess.php';
164 $this->loc_settings->getInitialTest() &&
165 $this->loc_settings->isGeneralInitialTestVisible() &&
166 !$this->loc_settings->isInitialTestStart() &&
170 $this->output_html .= $this->
renderTest($this->loc_settings->getInitialTest(), null,
true,
true);
173 $this->loc_settings->getQualifiedTest() &&
174 $this->loc_settings->isGeneralQualifiedTestVisible()
177 $this->output_html .= $this->
renderTest($this->loc_settings->getQualifiedTest(), null,
false,
true);
188 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
196 if (!$is_manage && !$is_order)
198 $this->
showButton(
'askReset',$lng->txt(
'crs_reset_results'));
203 $tpl->setVariable(
'CONTAINER_PAGE_CONTENT',$this->output_html);
219 include_once(
'./Modules/Course/classes/class.ilCourseObjectiveResultCache.php');
225 $info_tpl =
new ilTemplate(
'tpl.crs_objectives_view_info_table.html',
true,
true,
'Modules/Course');
226 $info_tpl->setVariable(
"INFO_STRING",$lng->txt(
'crs_objectives_info_'.$status));
228 $this->output_html .= $info_tpl->get();
245 $has_container_page =
false;
251 $has_container_page =
true;
258 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
264 include_once(
'./Modules/Course/classes/class.ilCourseObjectiveListGUI.php');
266 $this->objective_list_gui->setContainerObject($this->
getContainerGUI());
267 if ($ilSetting->get(
"icon_position_in_lists") ==
"item_rows")
269 $this->objective_list_gui->enableIcon(
true);
275 include_once
"Services/Accordion/classes/class.ilAccordionGUI.php";
277 $acc->setUseSessionStorage(
true);
278 $acc->setAllowMultiOpened(
true);
280 $acc->setId(
"crsobjtv_".$this->container_obj->getId());
284 $this->renderer->addCustomBlock(
'lobj',$lng->txt(
'crs_objectives'));
291 $has_lo_page =
false;
293 foreach($objective_ids as $objective_id)
295 include_once
'./Modules/Course/classes/Objectives/class.ilLOUtils.php';
299 !isset($lur_data[$objective_id])
or 301 $this->container_obj->getId(),
312 $this->renderer->addItemToBlock(
'lobj',
'lobj', $objective_id,
$html);
318 if (!$a_is_order && $obj_cnt > 1)
320 $this->
showButton(
"", $lng->txt(
"crs_show_all_obj"),
"",
"crs_show_all_obj_btn");
321 $this->
showButton(
"", $lng->txt(
"crs_hide_all_obj"),
"",
"crs_hide_all_obj_btn");
322 $acc->setShowAllElement(
"crs_show_all_obj_btn");
323 $acc->setHideAllElement(
"crs_hide_all_obj_btn");
326 if(!$has_container_page && $has_lo_page)
329 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
330 $GLOBALS[
"tpl"]->setVariable(
"LOCATION_CONTENT_STYLESHEET",
332 $GLOBALS[
"tpl"]->setCurrentBlock(
"SyntaxStyle");
333 $GLOBALS[
"tpl"]->setVariable(
"LOCATION_SYNTAX_STYLESHEET",
335 $GLOBALS[
"tpl"]->parseCurrentBlock();
343 $this->output_html .=
$output_html.$this->renderer->getHTML();
345 $this->renderer->resetDetails();
350 $this->output_html .=
"<div class='ilCrsObjAcc'>".$acc->getHTML().
"</div>";
382 protected function renderTest($a_test_ref_id, $a_objective_id, $a_is_initial =
false, $a_add_border =
false, $a_lo_result =
array())
387 $node_data =
$GLOBALS[
'tree']->getNodeData($a_test_ref_id);
389 if(!$node_data[
'child'])
405 $node_data[
'objective_id'] = $a_objective_id;
406 $node_data[
'objective_status'] =
422 ? $this->lng->txt(
'crs_loc_itest_info')
423 : $this->lng->txt(
'crs_loc_qtest_info')
427 $node_data[
'objective_id'] = 0;
430 $node_data[
'title'] =
$title;
432 return "<div class='ilContObjectivesViewTestItem'>".$this->renderItem($node_data).
"</div>";
442 public function showMaterials($a_tpl,$a_mode = null,$a_is_manage =
false,$a_as_accordion =
false)
444 global $ilAccess,
$lng;
448 if (is_array($this->items[
"_all"]))
456 foreach($this->items[
"_all"] as $k => $item_data)
458 if($a_mode == self::MATERIALS_TESTS
and $item_data[
'type'] !=
'tst')
462 if ($item_data[
'type'] ==
'itgr')
469 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
470 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
478 if($this->rendered_items[$item_data[
"child"]] !==
true &&
479 !$this->renderer->hasItem($item_data[
"child"]))
481 $this->rendered_items[$item_data[
'child']] =
true;
484 $html = $this->
renderItem($item_data,$position++,$a_mode == self::MATERIALS_TESTS ?
false :
true);
487 $item_r[] =
array(
"html" =>
$html,
"id" => $item_data[
"child"],
"type" => $item_data[
"type"]);
493 if (count($item_r) > 0)
501 case self::MATERIALS_TESTS:
503 $this->renderer->addTypeBlock($block_id);
506 case self::MATERIALS_OTHER:
508 $this->renderer->addCustomBlock($block_id, $lng->txt(
'crs_other_resources'));
514 $this->renderer->addCustomBlock($block_id, $lng->txt(
'content'));
519 if ($a_mode != self::MATERIALS_TESTS)
524 foreach($item_r as
$h)
526 if(!$this->renderer->hasItem($h[
"id"]))
528 $this->renderer->addItemToBlock($block_id, $h[
"type"], $h[
"id"], $h[
"html"]);
532 $this->output_html .= $this->renderer->getHTML();
538 case self::MATERIALS_TESTS:
539 $txt = $lng->txt(
'objs_tst');
542 case self::MATERIALS_OTHER:
543 $txt = $lng->txt(
'crs_other_resources');
547 include_once
"Services/Accordion/classes/class.ilAccordionGUI.php";
549 $acc->setId(
"crsobjtvmat".$a_mode.
"_".$this->container_obj->getId());
551 $acc_content =
array();
552 foreach($item_r as
$h)
554 $acc_content[] = $h[
"html"];
558 $this->output_html .= $acc->getHTML();
566 $objective_map =
array();
567 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
572 include_once(
'./Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
573 foreach($objective_ids as $objective_id)
577 $objective_map[
"material"][$mat_ref_id][] = $objective_id;
579 if(!isset($objective_map[
"names"][$objective_id]))
582 $objective_map[
"names"][$objective_id] = $objective->getTitle();
588 $tst = $this->loc_settings->getInitialTest();
591 $objective_map[
"test_i"] = $tst;
593 $tst = $this->loc_settings->getQualifiedTest();
596 $objective_map[
"test_q"] = $tst;
600 include_once
'Modules/Course/classes/Objectives/class.ilLOSettings.php';
601 include_once
'Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
606 $objective_map[
"test_ass"][$ass->getTestRefId()][$ass->getAssignmentType()][] =
$title;
611 $objective_map[
"test_ass"][$ass->getTestRefId()][$ass->getAssignmentType()][] =
$title;
615 return $objective_map;
622 $item_ref_id = $a_item[
"ref_id"];
624 if(is_array($this->objective_map))
627 if(isset($this->objective_map[
"material"][$item_ref_id]))
630 foreach($this->objective_map[
"material"][$item_ref_id] as $objective_id)
632 $ilCtrl->setParameterByClass(
'ilcourseobjectivesgui',
'objective_id', $objective_id);
633 $url = $ilCtrl->getLinkTargetByClass(
array(
'illoeditorgui',
'ilcourseobjectivesgui'),
'edit');
634 $ilCtrl->setParameterByClass(
'ilcourseobjectivesgui',
'objective_id',
'');
637 'desc' => $lng->txt(
'crs_loc_tab_materials').
': ',
640 'name' => $this->objective_map[
"names"][$objective_id]
644 if($this->objective_map[
"test_i"] == $item_ref_id)
646 $ilCtrl->setParameterByClass(
'illoeditorgui',
'tt', 1);
650 'link' => $ilCtrl->getLinkTargetByClass(
'illoeditorgui',
'testOverview'),
651 'name' => $lng->txt(
'crs_loc_tab_itest')
653 $ilCtrl->setParameterByClass(
'illoeditorgui',
'tt', 0);
655 if($this->objective_map[
"test_q"] == $item_ref_id)
657 $ilCtrl->setParameterByClass(
'illoeditorgui',
'tt', 2);
661 'link' => $ilCtrl->getLinkTargetByClass(
'illoeditorgui',
'testOverview'),
662 'name' => $lng->txt(
'crs_loc_tab_qtest')
664 $ilCtrl->setParameterByClass(
'illoeditorgui',
'tt', 0);
668 if(is_array($this->objective_map[
"test_ass"][$item_ref_id]))
670 foreach($this->objective_map[
"test_ass"][$item_ref_id] as $type => $items)
674 $caption = $lng->txt(
'crs_loc_tab_itest');
675 $ilCtrl->setParameterByClass(
'illoeditorgui',
'tt', 1);
679 $caption = $lng->txt(
'crs_loc_tab_qtest');
680 $ilCtrl->setParameterByClass(
'illoeditorgui',
'tt', 2);
682 foreach($items as $objtv_title)
687 'link' => $ilCtrl->getLinkTargetByClass(
'illoeditorgui',
'testsOverview'),
688 'name' => $caption.
" (".$this->lng->txt(
"crs_loc_learning_objective").
": ".$objtv_title.
")" 691 $ilCtrl->setParameterByClass(
'illoeditorgui',
'tt', 0);
698 $a_item_list_gui->
setItemDetailLinks($details, $lng->txt(
'crs_loc_settings_tbl').
': ');
719 if($a_item[
'objective_id'])
724 if($this->loc_settings->getQualifiedTest() == $a_item[
'ref_id'])
728 include_once
'./Services/AccessControl/classes/class.ilConditionHandler.php';
730 if(!$fullfilled || $a_item[
'objective_status'])
735 include_once
'./Modules/Course/classes/Objectives/class.ilLOUserResults.php';
739 $a_item[
'objective_id'],
749 $this->lng->txt(
'crs_loc_passes_reached'),
754 elseif($this->loc_settings->getQualifiedTest() == $a_item[
'ref_id'])
756 include_once
'./Modules/Course/classes/class.ilCourseObjective.php';
763 $this->lng->txt(
'crs_loc_passes_left'),
764 (($poss_pass -
$res[
'tries']) > 0) ? ($poss_pass -
$res[
'tries']) : 1,
772 protected function updateResult($a_res,$a_item_ref_id,$a_objective_id,$a_user_id)
775 if($this->loc_settings->getQualifiedTest() == $a_item_ref_id)
778 include_once
'./Modules/Test/classes/class.ilObjTest.php';
779 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
786 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestRun.php';
792 ($a_res[
'tries'] > 0) ? --$a_res[
'tries'] : 0;
793 $a_res[
'is_final'] = 0;
815 include_once(
'./Modules/Course/classes/class.ilCourseObjective.php');
818 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
819 include_once(
'./Services/Object/classes/class.ilObjectActivation.php');
825 include_once(
'./Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
830 foreach($objectives_lm_obj->getMaterials() as $item)
832 $sort_map[$item[
"lm_ass_id"]] = $item[
"position"];
838 $sort_content =
array();
840 foreach($items as $item)
848 $item_list_gui2->enableIcon(
true);
850 if($is_order || $a_accordion)
852 $item_list_gui2->enableCommands(
true,
true);
853 $item_list_gui2->enableProperties(
false);
856 $chapters = $objectives_lm_obj->getChapters();
859 $has_sections =
false;
860 foreach($chapters as $chapter)
862 if($chapter[
'ref_id'] != $item[
'child'])
866 $has_sections =
true;
868 include_once
'./Modules/LearningModule/classes/class.ilLMObject.php';
870 " › ".ilLMObject::_lookupTitle($chapter[
'obj_id']).
871 " (".$lng->txt(
'obj_'.$chapter[
'type']).
")";
873 $item_list_gui2->setDefaultCommandParameters(
array(
874 "obj_id" => $chapter[
'obj_id'],
875 "focus_id" => $chapter[
'obj_id'],
876 "focus_return" => $this->container_obj->getRefId()));
880 $item_list_gui2->setPositionInputField(
"[lobj][".$a_objective_id.
"][".$chapter[
'lm_ass_id'].
"]",
881 sprintf(
'%d', $chapter[
'position']*10));
884 $sub_item_html = $item_list_gui2->getListItemHTML($item[
'ref_id'],
885 $item[
'obj_id'],
$title, $item[
'description']);
888 $sort_key = str_pad($chapter[
'position'], 5, 0, STR_PAD_LEFT).
"_".strtolower(
$title).
"_".$chapter[
'lm_ass_id'];
889 $sort_content[$sort_key] = $sub_item_html;
893 $this->rendered_items[$item[
'child']] =
true;
895 if($lm_ass_id = $objectives_lm_obj->isAssigned($item[
'ref_id'],
true))
899 $item_list_gui2->setPositionInputField(
"[lobj][".$a_objective_id.
"][".$lm_ass_id.
"]",
900 sprintf(
'%d', $sort_map[$lm_ass_id]*10));
903 $sub_item_html = $item_list_gui2->getListItemHTML($item[
'ref_id'],
904 $item[
'obj_id'], $item[
'title'], $item[
'description']);
907 $sort_key = str_pad($sort_map[$lm_ass_id], 5, 0, STR_PAD_LEFT).
"_".strtolower($item[
'title']).
"_".$lm_ass_id;
908 $sort_content[$sort_key] = $sub_item_html;
914 $this->objective_list_gui->enableCommands(
false);
918 $this->objective_list_gui->enableCommands(
true);
923 $this->objective_list_gui->setPositionInputField(
"[lobj][".$a_objective_id.
"][0]",
924 $objective->__getPosition()*10);
927 ksort($sort_content);
931 foreach($sort_content as $sub_item_html)
933 $this->objective_list_gui->addSubItemHTML($sub_item_html);
936 return $this->objective_list_gui->getObjectiveListItemHTML(
939 $objective->getTitle(),
940 $objective->getDescription(),
941 ($is_manage || $is_order));
945 $acc_content = $sort_content;
947 $initial_shown =
false;
950 include_once
'./Modules/Test/classes/class.ilObjTestAccess.php';
953 $initial_test_obj_id &&
964 $initial_shown = TRUE;
966 elseif($this->
getSettings()->hasSeparateQualifiedTests())
994 include_once(
"./Services/COPage/classes/class.ilPageUtil.php");
997 $a_has_lo_page =
true;
999 include_once
'Modules/Course/classes/Objectives/class.ilLOPageGUI.php';
1000 $page_gui =
new ilLOPageGUI($objective->getObjectiveId());
1002 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1004 $page_gui->setPresentationTitle(
"");
1005 $page_gui->setTemplateOutput(
false);
1006 $page_gui->setHeader(
"");
1008 $co_page =
"<div class='ilContObjectiveIntro'>".$page_gui->showPage().
"</div>";
1011 $a_accordion->addItem(
1014 $this->buildAccordionContent($acc_content),
1015 (isset(
$_GET[
"oobj"]) && (int)
$_GET[
"oobj"] == $objective->getObjectiveId())
1038 include_once
'./Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
1053 include_once
"Modules/Course/classes/Objectives/class.ilLOTestAssignments.php";
1056 include_once
"Modules/Course/classes/Objectives/class.ilLOUserResults.php";
1058 foreach($lur->getCourseResultsForUserPresentation() as $objective_id => $types)
1079 $result[
"initial_status"] = $initial_status;
1105 public static function renderProgressBar($a_perc_result = null, $a_perc_limit = null, $a_css = null, $a_caption = null, $a_url = null, $a_tt_id = null, $a_tt_txt = null, $a_next_step = null, $a_sub =
false, $a_sub_style = 30)
1107 $tpl =
new ilTemplate(
"tpl.objective_progressbar.html",
true,
true,
"Services/Container");
1109 if($a_perc_result !== null)
1111 $tpl->setCurrentBlock(
"statusbar_bl");
1112 $tpl->setVariable(
"PERC_STATUS", $a_perc_result);
1113 $tpl->setVariable(
"PERC_WIDTH", $a_perc_result);
1114 $tpl->setVariable(
"PERC_COLOR", $a_css);
1118 $limit_pos = (99-(int)$a_perc_limit)*-1;
1119 $tpl->setVariable(
"LIMIT_POS", $limit_pos);
1124 $tpl->setVariable(
"TT_ID", $a_tt_id);
1126 $tpl->parseCurrentBlock();
1133 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1135 $button->setCaption($a_caption,
false);
1136 $button->setUrl($a_url);
1138 $tpl->setCurrentBlock(
"statustxt_bl");
1139 $tpl->setVariable(
"TXT_PROGRESS_STATUS", $button->render());
1140 $tpl->parseCurrentBlock();
1144 $tpl->setCurrentBlock(
"statustxt_no_link_bl");
1145 $tpl->setVariable(
"TXT_PROGRESS_STATUS_NO_LINK", $a_caption);
1146 $tpl->parseCurrentBlock();
1152 $tpl->setCurrentBlock(
"nstep_bl");
1153 $tpl->setVariable(
"TXT_NEXT_STEP", $a_next_step);
1154 $tpl->parseCurrentBlock();
1160 include_once(
"./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
1166 $tpl->setVariable(
"SUB_STYLE",
' style="padding-left: '.$a_sub_style.
'px;"');
1167 $tpl->setVariable(
"SUB_INIT", $a_sub);
1184 public static function buildObjectiveProgressBar($a_has_initial_test, $a_objective_id,
array $a_lo_result, $a_list_mode =
false, $a_sub =
false, $a_tt_suffix = null)
1190 $tooltip_id =
"crsobjtvusr_".$a_objective_id.
"_".$a_lo_result[
"type"].
"_".((int)$a_sub);
1191 if($a_tt_suffix !== null)
1193 $tooltip_id .=
"_".$a_tt_suffix;
1197 $lng->txt(
"crs_loc_tt_info"),
1198 $a_lo_result[
"result_perc"],
1199 $a_lo_result[
"limit_perc"]
1203 include_once
'./Modules/Course/classes/Objectives/class.ilLOUtils.php';
1204 include_once
'./Modules/Course/classes/Objectives/class.ilLOSettings.php';
1211 $next_step = $progress_txt = $bar_color = $test_url = $initial_sub = null;
1214 $is_qualified_initial)
1216 $progress_txt = $lng->txt(
"crs_loc_progress_result_qtest");
1217 $tt_txt = $lng->txt(
"crs_loc_tab_qtest").
": ".$tt_txt;
1221 $next_step = $lng->txt(
"crs_loc_progress_objective_complete");
1222 $bar_color =
"ilCourseObjectiveProgressBarCompleted";
1226 $a_has_initial_test &&
1227 is_array($a_lo_result[
"initial"]))
1229 $a_lo_result[
"initial"][
"itest"] = $a_lo_result[
"itest"];
1232 $initial_sub = self::buildObjectiveProgressBar(
true, $a_objective_id, $a_lo_result[
"initial"],
true,
true, $a_tt_suffix);
1237 $next_step = $lng->txt(
"crs_loc_progress_do_qualifying_again");
1238 $bar_color =
"ilCourseObjectiveProgressBarFailed";
1244 if($a_lo_result[
"status"])
1246 $progress_txt = $lng->txt(
"crs_loc_progress_result_itest");
1247 $tt_txt = $lng->txt(
"crs_loc_tab_itest").
": ".$tt_txt;
1249 $bar_color =
"ilCourseObjectiveProgressBarNeutral";
1250 $next_step = $has_completed
1251 ? $lng->txt(
"crs_loc_progress_do_qualifying")
1252 : $lng->txt(
"crs_loc_suggested");
1257 $next_step = (bool)$a_has_initial_test
1258 ? $lng->txt(
"crs_loc_progress_no_result_do_initial")
1259 : $lng->txt(
"crs_loc_progress_no_result_no_initial");
1265 if($a_lo_result[
"qtest"])
1270 if(!$test_url && $a_lo_result[
"itest"])
1275 return self::renderProgressBar(
1276 $a_lo_result[
"result_perc"],
1277 $a_lo_result[
"limit_perc"],
1295 $tpl =
new ilTemplate(
"tpl.objective_accordion_title.html",
true,
true,
"Services/Container");
1299 $tpl->setVariable(
"PROGRESS_BAR", self::buildObjectiveProgressBar(
1300 (
bool) $this->loc_settings->worksWithInitialTest(),
1308 $tpl->setVariable(
"TITLE", $this->lng->txt(
"crs_loc_learning_objective").
": ".trim($a_objective->
getTitle()));
1319 $tpl =
new ilTemplate(
"tpl.objective_accordion_content.html",
true,
true,
"Services/Container");
1320 foreach($a_items as $item)
1322 $tpl->setCurrentBlock(
"items_bl");
1323 $tpl->setVariable(
"ITEM", $item);
1324 $tpl->parseCurrentBlock();
1336 protected function showButton($a_cmd,$a_text,$a_target =
'', $a_id =
"")
1341 $ilToolbar->addButton($a_text,
1342 $ilCtrl->getLinkTarget($this->getContainerGUI(),$a_cmd),
1343 $a_target,
"",
'', $a_id);
static getInstanceByObjId($a_obj_id)
get singleton instance
setConditionTarget($a_ref_id, $a_obj_id, $a_target_type)
static getInstance($a_container_id)
Get instance by container id.
getMainContent()
Impementation of abstract method getMainContent.
static lookupObjectiveTitle($a_objective_id, $a_add_description=false)
addItemDetails(ilObjectListGUI $a_item_list_gui, array $a_item)
const IL_OBJECTIVE_STATUS_EMPTY
showObjectives($a_tpl, $a_is_order=false)
show objectives
disableTitleLink($a_status)
static lookupMaxPasses($a_objective_id)
static lookupRunExistsForObjective($a_test_id, $a_objective_id, $a_user_id)
type $ilDB
enableProperties($a_status)
En/disable properties.
static lookupResult($a_course_obj_id, $a_user_id, $a_objective_id, $a_tst_type)
Lookup user result.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
getItemGUI($item_data, $a_show_path=false)
Get ListGUI object for item.
static hasActiveRun($a_container_id, $a_test_ref_id, $a_objective_id)
static _getObjectiveIds($course_id, $a_activated_only=false)
__construct($a_container_gui)
Constructor.
initDetails()
init details
static _lookupTitle($a_id)
lookup object title
getItemGroupsHTML($a_pos=0)
Get item groups HTML.
initRenderer()
Init container renderer.
buildAccordionContent(array $a_items)
addFooterRow()
add footer row
insertPageEmbeddedBlocks($a_output_html)
Insert blocks into container page.
buildAccordionTitle(ilCourseObjective $a_objective, array $a_lo_result=null)
Parent class of all container content GUIs.
class ilCourseObjectiveMaterials
parseLOUserResults()
Parse learning objective results.
static _existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages) ...
getContainerGUI()
Get container GUI object.
static _lookupObjId($a_id)
special template class to simplify handling of ITX/PEAR
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
getContainerObject()
Get container object.
static getStatus($a_usr_id, $a_crs_id)
get status of user
static _checkAllConditionsOfTarget($a_target_ref_id, $a_target_id, $a_target_type="", $a_usr_id=0)
checks wether all conditions of a target object are fulfilled
static getSyntaxStylePath()
get syntax style path
renderItem($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render an item.
enableCommands($a_status, $a_std_only=false)
En/disable commands.
(Course) learning objective page GUI class
Create styles array
The data for the language used.
static _getAssignedMaterials($a_objective_id)
get assigned materials
clearAdminCommandsDetermination()
cleaer administration commands determination
static buildObjectiveProgressBar($a_has_initial_test, $a_objective_id, array $a_lo_result, $a_list_mode=false, $a_sub=false, $a_tt_suffix=null)
Render progressbar(s) for given objective and result data.
renderObjective($a_objective_id, &$a_has_lo_page, ilAccordionGUI $a_accordion=null, array $a_lo_result=null)
render objective
addCustomProperty($a_property="", $a_value="", $a_alert=false, $a_newline=false)
add custom property
showButton($a_cmd, $a_text, $a_target='', $a_id="")
show action button
static getContentStylePath($a_style_id)
get content style path
setDefaultCommandParameters(array $a_params)
setItemDetailLinks($a_detail_links, $a_intro_txt='')
set items detail links
renderTest($a_test_ref_id, $a_objective_id, $a_is_initial=false, $a_add_border=false, $a_lo_result=array())
enableItemDetailLinks($a_status)
enable item detail links E.g Direct links to chapters or pages
static getTestResultLinkForUser($a_test_ref_id, $a_user_id)
static getItemsByObjective($a_objective_id)
Get objective items.
showStatus($tpl)
show status
List gui for course objectives.
const TYPE_TEST_QUALIFIED
static renderProgressBar($a_perc_result=null, $a_perc_limit=null, $a_css=null, $a_caption=null, $a_url=null, $a_tt_id=null, $a_tt_txt=null, $a_next_step=null, $a_sub=false, $a_sub_style=30)
Render progress bar(s)
static checkCondition($a_obj_id, $a_operator, $a_value, $a_usr_id)
check condition
static isParticipantsLastPassActive($testRefId, $userId)
Accordion user interface class.
const TYPE_TEST_UNDEFINED
getTestAssignments()
Get test assignments object.
static hasResults($a_container_id, $a_user_id)
getDetailsLevel($a_objective_id)
get details level
GUI class for course objective view.
updateResult($a_res, $a_item_ref_id, $a_objective_id, $a_user_id)
showMaterials($a_tpl, $a_mode=null, $a_is_manage=false, $a_as_accordion=false)
Show all other (no assigned tests, no assigned materials) materials.