25include_once(
"./Services/Container/classes/class.ilContainerContentGUI.php");
 
   59                parent::__construct($a_container_gui);
 
  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)
 
  503                                                        $this->renderer->addTypeBlock($block_id);                                               
 
  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();
 
  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);
 
  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"];               
 
 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"])
 
 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);
 
sprintf('%.4f', $callTime)
An exception for terminatinating execution or to throw for unit testing.
const IL_OBJECTIVE_STATUS_EMPTY
Accordion user interface class.
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
Parent class of all container content GUIs.
initRenderer()
Init container renderer.
getContainerObject()
Get container object.
getContainerGUI()
Get container GUI object.
renderItem($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render an item.
insertPageEmbeddedBlocks($a_output_html)
Insert blocks into container page.
getItemGroupsHTML($a_pos=0)
Get item groups HTML.
getItemGUI($item_data, $a_show_path=false)
Get ListGUI object for item.
clearAdminCommandsDetermination()
cleaer administration commands determination
GUI class for course objective view.
renderObjective($a_objective_id, &$a_has_lo_page, ilAccordionGUI $a_accordion=null, array $a_lo_result=null)
render objective
parseLOUserResults()
Parse learning objective results.
buildAccordionTitle(ilCourseObjective $a_objective, array $a_lo_result=null)
showButton($a_cmd, $a_text, $a_target='', $a_id="")
show action button
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.
addItemDetails(ilObjectListGUI $a_item_list_gui, array $a_item)
addFooterRow()
add footer row
buildAccordionContent(array $a_items)
__construct($a_container_gui)
Constructor.
getDetailsLevel($a_objective_id)
get details level
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.
renderTest($a_test_ref_id, $a_objective_id, $a_is_initial=false, $a_add_border=false, $a_lo_result=array())
showObjectives($a_tpl, $a_is_order=false)
show objectives
getMainContent()
Impementation of abstract method getMainContent.
showStatus($tpl)
show status
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)
initDetails()
init details
getTestAssignments()
Get test assignments object.
List gui for course objectives.
class ilCourseObjectiveMaterials
static _getAssignedMaterials($a_objective_id)
get assigned materials
static getStatus($a_usr_id, $a_crs_id)
get status of user
static lookupObjectiveTitle($a_objective_id, $a_add_description=false)
static lookupMaxPasses($a_objective_id)
static _getObjectiveIds($course_id, $a_activated_only=false)
(Course) learning objective page GUI class
const TYPE_TEST_QUALIFIED
const TYPE_TEST_UNDEFINED
static getInstanceByObjId($a_obj_id)
get singleton instance
static getInstance($a_container_id)
Get instance by container id.
static lookupRunExistsForObjective($a_test_id, $a_objective_id, $a_user_id)
@global type $ilDB
static hasResults($a_container_id, $a_user_id)
static lookupResult($a_course_obj_id, $a_user_id, $a_objective_id, $a_tst_type)
Lookup user result.
static hasActiveRun($a_container_id, $a_test_ref_id, $a_objective_id)
static getTestResultLinkForUser($a_test_ref_id, $a_user_id)
static getSyntaxStylePath()
get syntax style path
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
static getContentStylePath($a_style_id)
get content style path
static checkCondition($a_obj_id, $a_operator, $a_value, $a_usr_id)
check condition
static isParticipantsLastPassActive($testRefId, $userId)
static getItemsByObjective($a_objective_id)
Get objective items.
setConditionTarget($a_ref_id, $a_obj_id, $a_target_type)
enableCommands($a_status, $a_std_only=false)
En/disable commands.
setDefaultCommandParameters(array $a_params)
enableProperties($a_status)
En/disable properties.
addCustomProperty($a_property="", $a_value="", $a_alert=false, $a_newline=false)
add custom property
disableTitleLink($a_status)
enableItemDetailLinks($a_status)
enable item detail links E.g Direct links to chapters or pages
setItemDetailLinks($a_detail_links, $a_intro_txt='')
set items detail links
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages)
special template class to simplify handling of ITX/PEAR
$GLOBALS['loaded']
Global hash that tracks already loaded includes.