ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilContainerObjectiveGUI Class Reference

GUI class for course objective view. More...

+ Inheritance diagram for ilContainerObjectiveGUI:
+ Collaboration diagram for ilContainerObjectiveGUI:

Public Member Functions

 __construct ($a_container_gui)
 Constructor. More...
 
 getTestAssignments ()
 Get test assignments object. More...
 
 getSettings ()
 
 getDetailsLevel ($a_objective_id)
 get details level More...
 
 getMainContent ()
 Impementation of abstract method getMainContent. More...
 
 showStatus ($tpl)
 show status More...
 
 showObjectives ($a_tpl, $a_is_order=false)
 show objectives More...
 
 addFooterRow ()
 add footer row More...
 
 showMaterials ($a_tpl, $a_mode=null, $a_is_manage=false, $a_as_accordion=false)
 Show all other (no assigned tests, no assigned materials) materials. More...
 
- Public Member Functions inherited from ilContainerContentGUI
 __construct (&$container_gui_obj)
 Constructor. More...
 
 getContainerObject ()
 Get container object. More...
 
 getContainerGUI ()
 Get container GUI object. More...
 
 setOutput ()
 Sets view output into column layout. More...
 
 getMainContent ()
 Get content HTML for main column, this one must be overwritten in derived classes. More...
 
 determinePageEmbeddedBlocks ($a_container_page_html)
 Determine all blocks that are embedded in the container page. More...
 
 addEmbeddedBlock ($block_type, $block_parameter)
 Add embedded block. More...
 
 getEmbeddedBlocks ()
 Get page embedded blocks. More...
 
 renderPageEmbeddedBlocks ()
 Render Page Embedded Blocks. More...
 
 renderItem ($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
 Render an item. More...
 
 renderCard ($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
 Render card. More...
 
 insertPageEmbeddedBlocks ($a_output_html)
 Insert blocks into container page. More...
 
 getSingleTypeBlockAsynch ($type)
 Render single block. More...
 
 getGroupedObjTypes ()
 Get grouped repository object types. More...
 
 getIntroduction ()
 Get introduction. More...
 
 getItemGroupsHTML ($a_pos=0)
 Get item groups HTML. More...
 
 renderItemGroup ($a_itgr)
 Render item group. More...
 

Static Public Member Functions

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) More...
 
static renderProgressMeter ( $a_perc_result=null, $a_perc_limit=null, $a_compare_value=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, $a_main_text='', $a_required_text='')
 Render progress bar(s) More...
 
static getObjectiveResultSummary ($a_has_initial_test, $a_objective_id, $a_lo_result)
 Get objective result summary. More...
 
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. More...
 

Data Fields

const MATERIALS_TESTS = 1
 
const MATERIALS_OTHER = 2
 
- Data Fields inherited from ilContainerContentGUI
const DETAILS_DEACTIVATED = 0
 
const DETAILS_TITLE = 1
 
const DETAILS_ALL = 2
 
const VIEW_MODE_LIST = 0
 
const VIEW_MODE_TILE = 1
 
 $container_gui
 
 $container_obj
 

Protected Member Functions

 renderTest ($a_test_ref_id, $a_objective_id, $a_is_initial=false, $a_add_border=false, $a_lo_result=array())
 
 buildObjectiveMap ()
 
 addItemDetails (ilObjectListGUI $a_item_list_gui, array $a_item)
 
 updateResult ($a_res, $a_item_ref_id, $a_objective_id, $a_user_id)
 
 renderObjective ($a_objective_id, &$a_has_lo_page, ilAccordionGUI $a_accordion=null, array $a_lo_result=null)
 render objective More...
 
 initDetails ()
 init details More...
 
 initTestAssignments ()
 
 parseLOUserResults ()
 Parse learning objective results. More...
 
 buildAccordionTitle (ilCourseObjective $a_objective, array $a_lo_result=null)
 
 buildAccordionContent (array $a_items)
 
 showButton ($a_cmd, $a_text, $a_target='', $a_id="")
 show action button More...
 
- Protected Member Functions inherited from ilContainerContentGUI
 getViewMode ()
 Get view mode. More...
 
 getDetailsLevel ($a_item_id)
 get details level More...
 
 getRightColumnHTML ()
 Get HTML for right column. More...
 
 getCenterColumnHTML ()
 Get HTML for center column. More...
 
 initRenderer ()
 Init container renderer. More...
 
 clearAdminCommandsDetermination ()
 cleaer administration commands determination More...
 
 determineAdminCommands ($a_ref_id, $a_admin_com_included_in_list=false)
 determin admin commands More...
 
 getItemGUI ($item_data, $a_show_path=false)
 Get ListGUI object for item. More...
 

Protected Attributes

 $tabs
 
 $toolbar
 
 $force_details = 0
 
 $loc_settings
 
- Protected Attributes inherited from ilContainerContentGUI
 $tpl
 
 $ctrl
 
 $user
 
 $lng
 
 $access
 
 $plugin_admin
 
 $db
 
 $rbacsystem
 
 $settings
 
 $obj_definition
 
 $details_level = self::DETAILS_DEACTIVATED
 
 $renderer
 
 $log
 
 $view_mode
 

Private Attributes

 $logger = null
 
 $output_html = ''
 
 $test_assignments = null
 

Detailed Description

GUI class for course objective view.

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

Definition at line 14 of file class.ilContainerObjectiveGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilContainerObjectiveGUI::__construct (   $a_container_gui)

Constructor.

@access public

Parameters
objectcontainer gui object
Returns

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

54 {
55 global $DIC;
56
57 $this->tabs = $DIC->tabs();
58 $this->access = $DIC->access();
59 $this->user = $DIC->user();
60 $this->settings = $DIC->settings();
61 $this->ctrl = $DIC->ctrl();
62 $this->toolbar = $DIC->toolbar();
63 $lng = $DIC->language();
64
65 $this->logger = $DIC->logger()->crs();
66
67 $this->lng = $lng;
68 parent::__construct($a_container_gui);
69
70 $this->initDetails();
71 $this->initTestAssignments();
72 }
user()
Definition: user.php:4
global $DIC
Definition: saml.php:7
settings()
Definition: settings.php:2

References $DIC, ilContainerContentGUI\$lng, initDetails(), initTestAssignments(), settings(), and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ addFooterRow()

ilContainerObjectiveGUI::addFooterRow ( )

add footer row

@access public

Parameters

return

Definition at line 355 of file class.ilContainerObjectiveGUI.php.

356 {
357 // no details
358 return;
359
360 /*
361 $ilCtrl = $this->ctrl;
362
363 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $this->getContainerObject()->getRefId());
364 $ilCtrl->setParameterByClass("ilrepositorygui", "details_level", "1");
365 $url = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "");
366 $this->renderer->addDetailsLevel(2, $url, ($this->details_level == self::DETAILS_TITLE));
367
368 $ilCtrl->setParameterByClass("ilrepositorygui", "details_level", "2");
369 $url = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "");
370 $this->renderer->addDetailsLevel(3, $url, ($this->details_level == self::DETAILS_ALL));
371
372 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
373 */
374 }

Referenced by showObjectives().

+ Here is the caller graph for this function:

◆ addItemDetails()

ilContainerObjectiveGUI::addItemDetails ( ilObjectListGUI  $a_item_list_gui,
array  $a_item 
)
protected

Definition at line 583 of file class.ilContainerObjectiveGUI.php.

584 {
588
589 $item_ref_id = $a_item["ref_id"];
590
591 if (is_array($this->objective_map)) {
592 $details = array();
593 if (isset($this->objective_map["material"][$item_ref_id])) {
594 // #12965
595 foreach ($this->objective_map["material"][$item_ref_id] as $objective_id) {
596 $ilCtrl->setParameterByClass('ilcourseobjectivesgui', 'objective_id', $objective_id);
597 $url = $ilCtrl->getLinkTargetByClass(array('illoeditorgui', 'ilcourseobjectivesgui'), 'edit');
598 $ilCtrl->setParameterByClass('ilcourseobjectivesgui', 'objective_id', '');
599
600 $details[] = array(
601 'desc' => $lng->txt('crs_loc_tab_materials') . ': ',
602 'target' => '_top',
603 'link' => $url,
604 'name' => $this->objective_map["names"][$objective_id]
605 );
606 }
607 }
608 if ($this->objective_map["test_i"] == $item_ref_id) {
609 $ilCtrl->setParameterByClass('illoeditorgui', 'tt', 1);
610 $details[] = array(
611 'desc' => '',
612 'target' => '_top',
613 'link' => $ilCtrl->getLinkTargetByClass('illoeditorgui', 'testOverview'),
614 'name' => $lng->txt('crs_loc_tab_itest')
615 );
616 $ilCtrl->setParameterByClass('illoeditorgui', 'tt', 0);
617 }
618 if ($this->objective_map["test_q"] == $item_ref_id) {
619 $ilCtrl->setParameterByClass('illoeditorgui', 'tt', 2);
620 $details[] = array(
621 'desc' => '',
622 'target' => '_top',
623 'link' => $ilCtrl->getLinkTargetByClass('illoeditorgui', 'testOverview'),
624 'name' => $lng->txt('crs_loc_tab_qtest')
625 );
626 $ilCtrl->setParameterByClass('illoeditorgui', 'tt', 0);
627 }
628
629 // #15367
630 if (is_array($this->objective_map["test_ass"][$item_ref_id])) {
631 foreach ($this->objective_map["test_ass"][$item_ref_id] as $type => $items) {
633 $caption = $lng->txt('crs_loc_tab_itest');
634 $ilCtrl->setParameterByClass('illoeditorgui', 'tt', 1);
635 } else {
636 $caption = $lng->txt('crs_loc_tab_qtest');
637 $ilCtrl->setParameterByClass('illoeditorgui', 'tt', 2);
638 }
639 foreach ($items as $objtv_title) {
640 $details[] = array(
641 'desc' => '',
642 'target' => '_top',
643 'link' => $ilCtrl->getLinkTargetByClass('illoeditorgui', 'testsOverview'),
644 'name' => $caption . " (" . $this->lng->txt("crs_loc_learning_objective") . ": " . $objtv_title . ")"
645 );
646 }
647 $ilCtrl->setParameterByClass('illoeditorgui', 'tt', 0);
648 }
649 }
650
651 if (sizeof($details)) {
652 $a_item_list_gui->enableItemDetailLinks(true);
653 $a_item_list_gui->setItemDetailLinks($details, $lng->txt('crs_loc_settings_tbl') . ': ');
654 } else {
655 $a_item_list_gui->enableItemDetailLinks(false);
656 }
657 }
658
659 // order
660 if ($this->getContainerGUI()->isActiveOrdering()) {
661 $a_item_list_gui->enableCommands(true, true);
662 $a_item_list_gui->enableProperties(false);
663 }
664 // view
665 elseif (!$this->getContainerGUI()->isActiveAdministrationPanel()) {
666 $a_item_list_gui->enableCommands(true, true);
667 $a_item_list_gui->enableProperties(false);
668 }
669
670 if ($a_item['objective_id']) {
671 $a_item_list_gui->setDefaultCommandParameters(array('objective_id' => $a_item['objective_id']));
672
673
674 if ($this->loc_settings->getQualifiedTest() == $a_item['ref_id']) {
675 $a_item_list_gui->setConditionTarget($this->getContainerObject()->getRefId(), $a_item['objective_id'], 'lobj');
676 // check conditions of target
677 include_once './Services/Conditions/classes/class.ilConditionHandler.php';
678 $fullfilled = ilConditionHandler::_checkAllConditionsOfTarget($this->getContainerObject()->getRefId(), $a_item['objective_id'], 'lobj');
679 if (!$fullfilled || $a_item['objective_status']) {
680 $a_item_list_gui->disableTitleLink(true);
681 }
682 }
683 include_once './Modules/Course/classes/Objectives/class.ilLOUserResults.php';
685 $this->getContainerObject()->getId(),
686 $ilUser->getId(),
687 $a_item['objective_id'],
689 );
690
691 $res = $this->updateResult($res, $a_item['ref_id'], $a_item['objective_id'], $ilUser->getId());
692
693 if ($res['is_final']) {
694 $a_item_list_gui->disableTitleLink(true);
695 $a_item_list_gui->enableProperties(true);
696 $a_item_list_gui->addCustomProperty(
697 $this->lng->txt('crs_loc_passes_reached'),
698 '',
699 true
700 );
701 } elseif ($this->loc_settings->getQualifiedTest() == $a_item['ref_id']) {
702 include_once './Modules/Course/classes/class.ilCourseObjective.php';
703 $poss_pass = ilCourseObjective::lookupMaxPasses($a_item['objective_id']);
704
705 if ($poss_pass) {
706 $a_item_list_gui->enableProperties(true);
707 $a_item_list_gui->addCustomProperty(
708 $this->lng->txt('crs_loc_passes_left'),
709 (($poss_pass - $res['tries']) > 0) ? ($poss_pass - $res['tries']) : 1,
710 false
711 );
712 }
713 }
714 }
715 }
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
getContainerObject()
Get container object.
getContainerGUI()
Get container GUI object.
updateResult($a_res, $a_item_ref_id, $a_objective_id, $a_user_id)
static lookupMaxPasses($a_objective_id)
static lookupResult($a_course_obj_id, $a_user_id, $a_objective_id, $a_tst_type)
Lookup user result.
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.
enableItemDetailLinks($a_status)
enable item detail links E.g Direct links to chapters or pages
addCustomProperty( $a_property="", $a_value="", $a_alert=false, $a_newline=false)
add custom property
setItemDetailLinks($a_detail_links, $a_intro_txt='')
set items detail links
global $ilCtrl
Definition: ilias.php:18
$type
$url
foreach($_POST as $key=> $value) $res
$ilUser
Definition: imgupload.php:18

References ilContainerContentGUI\$ctrl, $ilCtrl, $ilUser, ilContainerContentGUI\$lng, $res, $type, $url, ilContainerContentGUI\$user, ilConditionHandler\_checkAllConditionsOfTarget(), ilObjectListGUI\addCustomProperty(), ilObjectListGUI\disableTitleLink(), ilObjectListGUI\enableCommands(), ilObjectListGUI\enableItemDetailLinks(), ilObjectListGUI\enableProperties(), ilContainerContentGUI\getContainerGUI(), ilContainerContentGUI\getContainerObject(), ilCourseObjective\lookupMaxPasses(), ilLOUserResults\lookupResult(), ilObjectListGUI\setConditionTarget(), ilObjectListGUI\setDefaultCommandParameters(), ilObjectListGUI\setItemDetailLinks(), ilLOUserResults\TYPE_QUALIFIED, ilLOSettings\TYPE_TEST_INITIAL, and updateResult().

+ Here is the call graph for this function:

◆ buildAccordionContent()

ilContainerObjectiveGUI::buildAccordionContent ( array  $a_items)
protected

Definition at line 1527 of file class.ilContainerObjectiveGUI.php.

1528 {
1529 $tpl = new ilTemplate("tpl.objective_accordion_content.html", true, true, "Services/Container");
1530 foreach ($a_items as $item) {
1531 $tpl->setCurrentBlock("items_bl");
1532 $tpl->setVariable("ITEM", $item);
1533 $tpl->parseCurrentBlock();
1534 }
1535 return $tpl->get();
1536 }
special template class to simplify handling of ITX/PEAR

References ilContainerContentGUI\$tpl.

Referenced by renderObjective(), and showMaterials().

+ Here is the caller graph for this function:

◆ buildAccordionTitle()

ilContainerObjectiveGUI::buildAccordionTitle ( ilCourseObjective  $a_objective,
array  $a_lo_result = null 
)
protected
Parameters
\ilCourseObjective$a_objective
array | null$a_lo_result
Returns
string
Exceptions

ilTemplateException

Definition at line 1394 of file class.ilContainerObjectiveGUI.php.

1395 {
1396 global $DIC;
1397
1398 $renderer = $DIC->ui()->renderer();
1399 $ui_factory = $DIC->ui()->factory();
1400
1401 $tpl = new ilTemplate("tpl.objective_accordion_title.html", true, true, "Services/Container");
1402
1403 if ($a_lo_result) {
1404 $tpl->setVariable(
1405 "PROGRESS_BAR",
1406 self::buildObjectiveProgressBar(
1407 (bool) $this->loc_settings->worksWithInitialTest(),
1408 $a_objective->getObjectiveId(),
1409 $a_lo_result
1410 )
1411 );
1412 }
1413
1414 $tpl->setVariable("TITLE", $this->lng->txt("crs_loc_learning_objective") . ": " . trim($a_objective->getTitle()));
1415 $tpl->setVariable("DESCRIPTION", nl2br(trim($a_objective->getDescription())));
1416
1417 $this->logger->dump($a_lo_result);
1418
1419 $initial_res = null;
1420 $initial_lim = null;
1421 if ($this->loc_settings->worksWithInitialTest()) {
1422 if (array_key_exists('initial', $a_lo_result)) {
1423 $initial_res = (int) $a_lo_result['initial']['result_perc'];
1424 $initial_lim = (int) $a_lo_result['initial']['limit_perc'];
1425 }
1426 if (
1427 $a_lo_result['type'] == ilLOUserResults::TYPE_INITIAL &&
1428 isset($a_lo_result['result_perc'])
1429 ) {
1430 $initial_res = (int) $a_lo_result['result_perc'];
1431 $initial_lim = (int) $a_lo_result['limit_perc'];
1432 }
1433 }
1434
1435 if ($initial_res !== null) {
1437 $a_lo_result["itest"],
1438 $a_lo_result["user_id"]
1439 );
1440
1441 if (strlen($link)) {
1442 $tpl->setCurrentBlock('i_with_link');
1443 $tpl->setVariable(
1444 'IBTN',
1445 $renderer->render(
1446 $ui_factory->button()->shy(
1447 $this->lng->txt('crs_objective_result_details'),
1448 $link
1449 )
1450 )
1451 );
1452 $tpl->parseCurrentBlock();
1453 }
1454
1455
1456 $tpl->setCurrentBlock('res_initial');
1457 $tpl->setVariable(
1458 'IRESULT',
1459 sprintf(
1460 $this->lng->txt('crs_objective_result_summary_initial'),
1461 (int) $initial_res . '%',
1462 (int) $initial_lim . '%'
1463 )
1464 );
1465 $tpl->parseCurrentBlock();
1466 }
1467
1468 $qual_res = null;
1469 $qual_lim = null;
1470
1471 if ($a_lo_result['type'] == ilLOUserResults::TYPE_QUALIFIED) {
1472 $qual_res = (int) $a_lo_result['result_perc'];
1473 $qual_lim = (int) $a_lo_result['limit_perc'];
1474 }
1475
1476 if ($qual_res !== null) {
1478 $a_lo_result["qtest"],
1479 $a_lo_result["user_id"]
1480 );
1481
1482 if (strlen($link)) {
1483 $tpl->setCurrentBlock('q_with_link');
1484 $tpl->setVariable(
1485 'QBTN',
1486 $renderer->render(
1487 $ui_factory->button()->shy(
1488 $this->lng->txt('crs_objective_result_details'),
1489 $link
1490 )
1491 )
1492 );
1493 $tpl->parseCurrentBlock();
1494 }
1495 $tpl->setCurrentBlock('res_qualifying');
1496 $tpl->setVariable(
1497 'QRESULT',
1498 sprintf(
1499 $this->lng->txt('crs_objective_result_summary_qualifying'),
1500 (int) $qual_res . '%',
1501 (int) $qual_lim . '%'
1502 )
1503 );
1504 $tpl->parseCurrentBlock();
1505 }
1506
1507 $this->logger->dump($a_lo_result);
1508
1509
1511 (bool) $this->loc_settings->worksWithInitialTest(),
1512 $a_objective->getObjectiveId(),
1513 $a_lo_result
1514 );
1515 if (strlen($summary)) {
1516 $tpl->setCurrentBlock('objective_summary');
1517 $tpl->setVariable('SUMMARY_TXT', $summary);
1518 $tpl->parseCurrentBlock();
1519 }
1520
1521 // #15510
1522 $tpl->setVariable("ANCHOR_ID", "objtv_acc_" . $a_objective->getObjectiveId());
1523
1524 return $tpl->get();
1525 }
static getObjectiveResultSummary($a_has_initial_test, $a_objective_id, $a_lo_result)
Get objective result summary.
static getTestResultLinkForUser($a_test_ref_id, $a_user_id)
$summary
Definition: cron.php:24

References $DIC, ilContainerContentGUI\$renderer, $summary, ilContainerContentGUI\$tpl, ilCourseObjective\getDescription(), ilCourseObjective\getObjectiveId(), getObjectiveResultSummary(), ilLOUtils\getTestResultLinkForUser(), ilCourseObjective\getTitle(), ilLOUserResults\TYPE_INITIAL, and ilLOUserResults\TYPE_QUALIFIED.

Referenced by renderObjective().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildObjectiveMap()

ilContainerObjectiveGUI::buildObjectiveMap ( )
protected

Definition at line 537 of file class.ilContainerObjectiveGUI.php.

538 {
539 $objective_map = array();
540 include_once './Modules/Course/classes/class.ilCourseObjective.php';
541 // begin-patch lok
542 if (count($objective_ids = ilCourseObjective::_getObjectiveIds($this->getContainerObject()->getId(), true))) {
543 // end-patch lok
544 include_once('./Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
545 foreach ($objective_ids as $objective_id) {
546 foreach (ilCourseObjectiveMaterials::_getAssignedMaterials($objective_id) as $mat_ref_id) {
547 $objective_map["material"][$mat_ref_id][] = $objective_id;
548
549 if (!isset($objective_map["names"][$objective_id])) {
550 $objective = new ilCourseObjective($this->getContainerObject(), $objective_id);
551 $objective_map["names"][$objective_id] = $objective->getTitle();
552 }
553 }
554 }
555
556 // initial/qualifying test
557 $tst = $this->loc_settings->getInitialTest();
558 if ($tst) {
559 $objective_map["test_i"] = $tst;
560 }
561 $tst = $this->loc_settings->getQualifiedTest();
562 if ($tst) {
563 $objective_map["test_q"] = $tst;
564 }
565
566 // objective test assignments
567 include_once 'Modules/Course/classes/Objectives/class.ilLOSettings.php';
568 include_once 'Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
569 $ass_test = new ilLOTestAssignments($this->getContainerObject()->getId());
570 foreach ($ass_test->getAssignmentsByType(ilLOSettings::TYPE_TEST_INITIAL) as $ass) {
571 $title = ilCourseObjective::lookupObjectiveTitle($ass->getObjectiveId());
572 $objective_map["test_ass"][$ass->getTestRefId()][$ass->getAssignmentType()][] = $title;
573 }
574 foreach ($ass_test->getAssignmentsByType(ilLOSettings::TYPE_TEST_QUALIFIED) as $ass) {
575 $title = ilCourseObjective::lookupObjectiveTitle($ass->getObjectiveId());
576 $objective_map["test_ass"][$ass->getTestRefId()][$ass->getAssignmentType()][] = $title;
577 }
578 }
579
580 return $objective_map;
581 }
static _getAssignedMaterials($a_objective_id)
get assigned materials
class ilcourseobjective
static lookupObjectiveTitle($a_objective_id, $a_add_description=false)
static _getObjectiveIds($course_id, $a_activated_only=false)
Settings for LO courses.

References $title, ilCourseObjectiveMaterials\_getAssignedMaterials(), ilCourseObjective\_getObjectiveIds(), ilContainerContentGUI\getContainerObject(), ilCourseObjective\lookupObjectiveTitle(), ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

Referenced by showMaterials().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildObjectiveProgressBar()

static ilContainerObjectiveGUI::buildObjectiveProgressBar (   $a_has_initial_test,
  $a_objective_id,
array  $a_lo_result,
  $a_list_mode = false,
  $a_sub = false,
  $a_tt_suffix = null 
)
static

Render progressbar(s) for given objective and result data.

Parameters
bool$a_has_initial_test
int$a_objective_id
bool$a_lo_result
bool$a_list_mode
bool$a_sub
mixed$a_tt_suffix
Returns
string

Definition at line 1275 of file class.ilContainerObjectiveGUI.php.

1276 {
1277 global $DIC;
1278
1279 $lng = $DIC->language();
1280 $lng->loadLanguageModule('crs');
1281
1282 // tooltip (has to be unique!)
1283
1284 $tooltip_id = "crsobjtvusr_" . $a_objective_id . "_" . $a_lo_result["type"] . "_" . ((int) $a_sub);
1285 if ($a_tt_suffix !== null) {
1286 $tooltip_id .= "_" . $a_tt_suffix;
1287 }
1288
1289 $tt_txt = sprintf(
1290 $lng->txt("crs_loc_tt_info"),
1291 $a_lo_result["result_perc"],
1292 $a_lo_result["limit_perc"]
1293 );
1294
1295
1296 include_once './Modules/Course/classes/Objectives/class.ilLOUtils.php';
1297 include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php';
1298
1299 $is_qualified = ($a_lo_result["type"] == ilLOUserResults::TYPE_QUALIFIED);
1300 $is_qualified_initial = ($a_lo_result['type'] == ilLOUserResults::TYPE_INITIAL &&
1301 ilLOSettings::getInstanceByObjId($a_lo_result['course_id'])->isInitialTestQualifying());
1302 $has_completed = ($a_lo_result["status"] == ilLOUserResults::STATUS_COMPLETED);
1303
1304 $next_step = $progress_txt = $bar_color = $test_url = $initial_sub = null;
1305
1306 $compare_value = null;
1307
1308 if ($is_qualified ||
1309 $is_qualified_initial) {
1310 $progress_txt = $lng->txt("crs_loc_progress_result_qtest");
1311 $tt_txt = $lng->txt("crs_loc_tab_qtest") . ": " . $tt_txt;
1312
1313 if ($has_completed) {
1314 $next_step = $lng->txt("crs_loc_progress_objective_complete");
1315 $bar_color = "ilCourseObjectiveProgressBarCompleted";
1316
1317 // render 2nd progressbar if there is also an initial test
1318 if ($is_qualified &&
1319 $a_has_initial_test &&
1320 is_array($a_lo_result["initial"])) {
1321 $a_lo_result["initial"]["itest"] = $a_lo_result["itest"];
1322
1323 // force list mode to get rid of next step
1324 #$initial_sub = self::buildObjectiveProgressBar(true, $a_objective_id, $a_lo_result["initial"], true, true, $a_tt_suffix);
1325 $compare_value = $a_lo_result['initial']['result_perc'];
1326 }
1327 } else {
1328 $next_step = $lng->txt("crs_loc_progress_do_qualifying_again");
1329 $bar_color = "ilCourseObjectiveProgressBarFailed";
1330 }
1331 }
1332 // initial test
1333 else {
1334 if ($a_lo_result["status"]) {
1335 $progress_txt = $lng->txt("crs_loc_progress_result_itest");
1336 $tt_txt = $lng->txt("crs_loc_tab_itest") . ": " . $tt_txt;
1337
1338 $bar_color = "ilCourseObjectiveProgressBarNeutral";
1339 $next_step = $has_completed
1340 ? $lng->txt("crs_loc_progress_do_qualifying")
1341 : $lng->txt("crs_loc_suggested");
1342 }
1343 // not attempted: no progress bar
1344 else {
1345 $next_step = (bool) $a_has_initial_test
1346 ? $lng->txt("crs_loc_progress_no_result_do_initial")
1347 : $lng->txt("crs_loc_progress_no_result_no_initial");
1348 }
1349 }
1350
1351 // link to test results
1352 // - first try to fetch a link for qualifying test results
1353 if ($a_lo_result["qtest"]) {
1354 $test_url = ilLOUtils::getTestResultLinkForUser($a_lo_result["qtest"], $a_lo_result["user_id"]);
1355 }
1356 // - when no qualifiying test results link was fetched, try for initial test
1357 if (!$test_url && $a_lo_result["itest"]) {
1358 $test_url = ilLOUtils::getTestResultLinkForUser($a_lo_result["itest"], $a_lo_result["user_id"]);
1359 }
1360
1361 $main_text = $lng->txt('crs_loc_itest_info');
1362 if ($a_lo_result['type'] == ilLOSettings::TYPE_TEST_QUALIFIED) {
1363 $main_text = $lng->txt('crs_loc_qtest_info');
1364 }
1365
1366
1367
1369 $a_lo_result["result_perc"],
1370 $a_lo_result["limit_perc"],
1371 $compare_value,
1372 $progress_txt,
1373 $test_url,
1374 $tooltip_id,
1375 $tt_txt,
1376 $a_list_mode
1377 ? null
1378 : $next_step,
1379 $initial_sub,
1380 $a_list_mode
1381 ? 30
1382 : 10,
1383 $main_text,
1384 $lng->txt('crs_lobj_pm_min_goal')
1385 );
1386 }
static renderProgressMeter( $a_perc_result=null, $a_perc_limit=null, $a_compare_value=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, $a_main_text='', $a_required_text='')
Render progress bar(s)
static getInstanceByObjId($a_obj_id)
get singleton instance

References $DIC, ilContainerContentGUI\$lng, ilLOSettings\getInstanceByObjId(), ilLOUtils\getTestResultLinkForUser(), renderProgressMeter(), ilLOUserResults\STATUS_COMPLETED, ilLOUserResults\TYPE_INITIAL, ilLOUserResults\TYPE_QUALIFIED, and ilLOSettings\TYPE_TEST_QUALIFIED.

Referenced by ilPortfolioPageGUI\renderMyCourses(), and ilTestLearningObjectivesStatusGUI\renderStatus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDetailsLevel()

ilContainerObjectiveGUI::getDetailsLevel (   $a_objective_id)

get details level

@access public

Parameters

return

Reimplemented from ilContainerContentGUI.

Definition at line 100 of file class.ilContainerObjectiveGUI.php.

101 {
102 // no details anymore
103 return self::DETAILS_ALL;
104 }

References ilContainerContentGUI\DETAILS_ALL.

Referenced by renderObjective().

+ Here is the caller graph for this function:

◆ getMainContent()

ilContainerObjectiveGUI::getMainContent ( )

Impementation of abstract method getMainContent.

@access public

Returns

Reimplemented from ilContainerContentGUI.

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

113 {
115 $ilTabs = $this->tabs;
116 $ilAccess = $this->access;
119
120 // see bug #7452
121 // $ilTabs->setSubTabActive($this->getContainerObject()->getType().'_content');
122
123
124 include_once 'Services/Object/classes/class.ilObjectListGUIFactory.php';
125
126 $tpl = new ilTemplate("tpl.container_page.html", true, true, "Services/Container");
127
128 if ($ilAccess->checkAccess('write', '', $this->getContainerObject()->getRefId())) {
129 // check for results
130 include_once './Modules/Course/classes/Objectives/class.ilLOUserResults.php';
131 if (ilLOUserResults::hasResults($this->getContainerObject()->getId(), $ilUser->getId())) {
132 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
133 $ilToolbar = new ilToolbarGUI();
134 $ilToolbar->addButton(
135 $lng->txt('crs_reset_results'),
136 $ilCtrl->getLinkTargetByClass(get_class($this->getContainerGUI()), 'reset')
137 );
138 }
139 }
140
141 // Feedback
142 // @todo
143 // $this->__showFeedBack();
144
145 $this->items = $this->getContainerObject()->getSubItems($this->getContainerGUI()->isActiveAdministrationPanel());
146
147 $is_manage = $this->getContainerGUI()->isActiveAdministrationPanel();
148 $is_order = $this->getContainerGUI()->isActiveOrdering();
149
150 include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php';
151 $this->loc_settings = ilLOSettings::getInstanceByObjId($this->getContainerObject()->getId());
152
153 $this->initRenderer();
154
155 if (!$is_manage && !$is_order) {
156 // currently inactive
157 // $this->showStatus($tpl);
158 }
159 if (!$is_manage) {
160 $this->showObjectives($tpl, $is_order);
161
162 // $this->showMaterials($tpl,self::MATERIALS_TESTS, false, !$is_order);
163
164 // check for results
165 include_once './Modules/Course/classes/Objectives/class.ilLOUserResults.php';
166 $has_results = ilLOUserResults::hasResults($this->getContainerObject()->getId(), $ilUser->getId());
167
168 include_once './Modules/Test/classes/class.ilObjTestAccess.php';
169 $tst_obj_id = ilObject::_lookupObjId($this->loc_settings->getInitialTest());
170
171 if (
172 $this->loc_settings->getInitialTest() &&
173 $this->loc_settings->isGeneralInitialTestVisible() &&
174 !$this->loc_settings->isInitialTestStart() &&
176 ) {
177 $this->output_html .= $this->renderTest($this->loc_settings->getInitialTest(), null, true, true);
178 } elseif (
179 $this->loc_settings->getQualifiedTest() &&
180 $this->loc_settings->isGeneralQualifiedTestVisible()
181 ) {
182 $this->output_html .= $this->renderTest($this->loc_settings->getQualifiedTest(), null, false, true);
183 }
184
185 $this->showMaterials($tpl, self::MATERIALS_OTHER, false, !$is_order);
186 } else {
187 $this->showMaterials($tpl, null, $is_manage);
188 }
189
190 // reset results by setting or for admins
191 include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php';
192 if (
193 ilLOSettings::getInstanceByObjId($this->getContainerObject()->getId())->isResetResultsEnabled() or
194 $ilAccess->checkAccess('write', '', $this->getContainerObject()->getRefId())
195 ) {
196 if ($has_results) {
197 if (!$is_manage && !$is_order) {
198 $this->showButton('askReset', $lng->txt('crs_reset_results'));
199 }
200 }
201 }
202
203 $tpl->setVariable('CONTAINER_PAGE_CONTENT', $this->output_html);
204
205 return $tpl->get();
206 }
initRenderer()
Init container renderer.
showButton($a_cmd, $a_text, $a_target='', $a_id="")
show action button
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
static hasResults($a_container_id, $a_user_id)
static checkCondition($a_obj_id, $a_operator, $a_value, $a_usr_id)
check condition
static _lookupObjId($a_id)

References ilContainerContentGUI\$access, ilContainerContentGUI\$ctrl, $ilCtrl, $ilUser, ilContainerContentGUI\$lng, $tabs, ilContainerContentGUI\$tpl, ilContainerContentGUI\$user, ilObject\_lookupObjId(), ilObjTestAccess\checkCondition(), ilContainerContentGUI\getContainerGUI(), ilContainerContentGUI\getContainerObject(), ilLOSettings\getInstanceByObjId(), ilLOUserResults\hasResults(), ilContainerContentGUI\initRenderer(), ilConditionHandler\OPERATOR_FINISHED, renderTest(), showButton(), showMaterials(), and showObjectives().

+ Here is the call graph for this function:

◆ getObjectiveResultSummary()

static ilContainerObjectiveGUI::getObjectiveResultSummary (   $a_has_initial_test,
  $a_objective_id,
  $a_lo_result 
)
static

Get objective result summary.

Parameters
bool
int
array
Todo:
refactor to presentation class

Definition at line 1220 of file class.ilContainerObjectiveGUI.php.

1221 {
1222 global $DIC;
1223
1224 $lng = $DIC->language();
1225 $lng->loadLanguageModule('crs');
1226
1227 $is_qualified =
1228 ($a_lo_result["type"] == ilLOUserResults::TYPE_QUALIFIED);
1229 $is_qualified_initial =
1230 (
1231 $a_lo_result['type'] == ilLOUserResults::TYPE_INITIAL &&
1232 ilLOSettings::getInstanceByObjId($a_lo_result['course_id'])->isInitialTestQualifying()
1233 );
1234 $has_completed =
1235 ($a_lo_result["status"] == ilLOUserResults::STATUS_COMPLETED);
1236
1237 $next_step = $progress_txt = $bar_color = $test_url = $initial_sub = null;
1238
1239 if (
1240 $is_qualified ||
1241 $is_qualified_initial) {
1242 if ($has_completed) {
1243 $next_step = $lng->txt("crs_loc_progress_objective_complete");
1244 } else {
1245 $next_step = $lng->txt("crs_loc_progress_do_qualifying_again");
1246 }
1247 }
1248 // initial test
1249 else {
1250 if ($a_lo_result["status"]) {
1251 $next_step =
1252 $has_completed ?
1253 $lng->txt("crs_loc_progress_do_qualifying") :
1254 $lng->txt("crs_loc_suggested");
1255 } else {
1256 $next_step = (bool) $a_has_initial_test ?
1257 $lng->txt("crs_loc_progress_no_result_do_initial") :
1258 $lng->txt("crs_loc_progress_no_result_no_initial");
1259 }
1260 }
1261 return $next_step;
1262 }

References $DIC, ilContainerContentGUI\$lng, ilLOSettings\getInstanceByObjId(), ilLOUserResults\STATUS_COMPLETED, ilLOUserResults\TYPE_INITIAL, and ilLOUserResults\TYPE_QUALIFIED.

Referenced by buildAccordionTitle().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSettings()

ilContainerObjectiveGUI::getSettings ( )
Returns
\ilLOSettings

Definition at line 86 of file class.ilContainerObjectiveGUI.php.

References $loc_settings.

Referenced by renderObjective().

+ Here is the caller graph for this function:

◆ getTestAssignments()

ilContainerObjectiveGUI::getTestAssignments ( )

Get test assignments object.

Returns
ilLOTestAssignments

Definition at line 78 of file class.ilContainerObjectiveGUI.php.

References $test_assignments.

Referenced by renderObjective().

+ Here is the caller graph for this function:

◆ initDetails()

ilContainerObjectiveGUI::initDetails ( )
protected

init details

@access protected

Parameters

return

Definition at line 965 of file class.ilContainerObjectiveGUI.php.

966 {
968
969 // no details
970 return;
971 }

References $ilUser, and ilContainerContentGUI\$user.

Referenced by __construct().

+ Here is the caller graph for this function:

◆ initTestAssignments()

ilContainerObjectiveGUI::initTestAssignments ( )
protected

Definition at line 973 of file class.ilContainerObjectiveGUI.php.

974 {
975 include_once './Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
976 $this->test_assignments = ilLOTestAssignments::getInstance($this->getContainerObject()->getId());
977 }
static getInstance($a_container_id)
Get instance by container id.

References ilContainerContentGUI\getContainerObject(), and ilLOTestAssignments\getInstance().

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parseLOUserResults()

ilContainerObjectiveGUI::parseLOUserResults ( )
protected

Parse learning objective results.

Returns
type

Definition at line 983 of file class.ilContainerObjectiveGUI.php.

984 {
986
987 $res = array();
988
989 include_once "Modules/Course/classes/Objectives/class.ilLOTestAssignments.php";
990 $lo_ass = ilLOTestAssignments::getInstance($this->getContainerObject()->getId());
991
992 include_once "Modules/Course/classes/Objectives/class.ilLOUserResults.php";
993 $lur = new ilLOUserResults($this->getContainerObject()->getId(), $ilUser->getId());
994 foreach ($lur->getCourseResultsForUserPresentation() as $objective_id => $types) {
995 // show either initial or qualified for objective
996 if (isset($types[ilLOUserResults::TYPE_INITIAL])) {
997 $initial_status = $types[ilLOUserResults::TYPE_INITIAL]["status"];
998 }
999
1000 // qualified test has priority
1001 if (isset($types[ilLOUserResults::TYPE_QUALIFIED])) {
1004 $result["initial"] = $types[ilLOUserResults::TYPE_INITIAL];
1005 } else {
1008 }
1009
1010 $result["initial_status"] = $initial_status;
1011
1012 $result["itest"] = $lo_ass->getTestByObjective($objective_id, ilLOSettings::TYPE_TEST_INITIAL);
1013 $result["qtest"] = $lo_ass->getTestByObjective($objective_id, ilLOSettings::TYPE_TEST_QUALIFIED);
1014
1015 $res[$objective_id] = $result;
1016 }
1017
1018 return $res;
1019 }
$result

References $ilUser, $res, $result, ilContainerContentGUI\$user, ilContainerContentGUI\getContainerObject(), ilLOTestAssignments\getInstance(), ilLOUserResults\TYPE_INITIAL, ilLOUserResults\TYPE_QUALIFIED, ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

Referenced by showObjectives().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderObjective()

ilContainerObjectiveGUI::renderObjective (   $a_objective_id,
$a_has_lo_page,
ilAccordionGUI  $a_accordion = null,
array  $a_lo_result = null 
)
protected

render objective

@access protected

Parameters
intobjective id
boolco page status
ilAccordionGUI$a_accordion
array$a_lo_result
Returns
string html

Definition at line 753 of file class.ilContainerObjectiveGUI.php.

754 {
757
758 include_once('./Modules/Course/classes/class.ilCourseObjective.php');
759 $objective = new ilCourseObjective($this->getContainerObject(), $a_objective_id);
760
761 include_once('./Services/Container/classes/class.ilContainerSorting.php');
762 include_once('./Services/Object/classes/class.ilObjectActivation.php');
763 $items = ilObjectActivation::getItemsByObjective($a_objective_id);
764
765 // sorting is handled by ilCourseObjectiveMaterials
766 // $items = ilContainerSorting::_getInstance($this->getContainerObject()->getId())->sortSubItems('lobj',$a_objective_id,$items);
767
768 include_once('./Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
769 $objectives_lm_obj = new ilCourseObjectiveMaterials($a_objective_id);
770
771 // #13381 - map material assignment to position
772 $sort_map = array();
773 foreach ($objectives_lm_obj->getMaterials() as $item) {
774 $sort_map[$item["lm_ass_id"]] = $item["position"];
775 }
776
777 $is_manage = $this->getContainerGUI()->isActiveAdministrationPanel();
778 $is_order = $this->getContainerGUI()->isActiveOrdering();
779
780 $sort_content = array();
781
782 foreach ($items as $item) {
783 if ($this->getDetailsLevel($a_objective_id) < self::DETAILS_ALL) {
784 continue;
785 }
786
787 $item_list_gui2 = $this->getItemGUI($item);
788 $item_list_gui2->enableIcon(true);
789
790 if ($is_order || $a_accordion) {
791 $item_list_gui2->enableCommands(true, true);
792 $item_list_gui2->enableProperties(false);
793 }
794
795 $chapters = $objectives_lm_obj->getChapters();
796 if (count($chapters)) {
797 $has_sections = false;
798 foreach ($chapters as $chapter) {
799 if ($chapter['ref_id'] != $item['child']) {
800 continue;
801 }
802 $has_sections = true;
803
804 include_once './Modules/LearningModule/classes/class.ilLMObject.php';
805 $title = $item['title'] .
806 " &rsaquo; " . ilLMObject::_lookupTitle($chapter['obj_id']) .
807 " (" . $lng->txt('obj_' . $chapter['type']) . ")";
808
809 $item_list_gui2->setDefaultCommandParameters(array(
810 "obj_id" => $chapter['obj_id'],
811 "focus_id" => $chapter['obj_id'],
812 "focus_return" => $this->container_obj->getRefId()));
813
814 if ($is_order) {
815 $item_list_gui2->setPositionInputField(
816 "[lobj][" . $a_objective_id . "][" . $chapter['lm_ass_id'] . "]",
817 sprintf('%d', $chapter['position'] * 10)
818 );
819 }
820
821 $sub_item_html = $item_list_gui2->getListItemHTML(
822 $item['ref_id'],
823 $item['obj_id'],
824 $title,
825 $item['description']
826 );
827
828 // #13381 - use materials order
829 $sort_key = str_pad($chapter['position'], 5, 0, STR_PAD_LEFT) . "_" . strtolower($title) . "_" . $chapter['lm_ass_id'];
830 $sort_content[$sort_key] = $sub_item_html;
831 }
832 }
833
834 $this->rendered_items[$item['child']] = true;
835
836 if ($lm_ass_id = $objectives_lm_obj->isAssigned($item['ref_id'], true)) {
837 if ($is_order) {
838 $item_list_gui2->setPositionInputField(
839 "[lobj][" . $a_objective_id . "][" . $lm_ass_id . "]",
840 sprintf('%d', $sort_map[$lm_ass_id] * 10)
841 );
842 }
843
844 $sub_item_html = $item_list_gui2->getListItemHTML(
845 $item['ref_id'],
846 $item['obj_id'],
847 $item['title'],
848 $item['description']
849 );
850
851 // #13381 - use materials order
852 $sort_key = str_pad($sort_map[$lm_ass_id], 5, 0, STR_PAD_LEFT) . "_" . strtolower($item['title']) . "_" . $lm_ass_id;
853 $sort_content[$sort_key] = $sub_item_html;
854 }
855 }
856
857 if ($this->getDetailsLevel($a_objective_id) == self::DETAILS_ALL) {
858 $this->objective_list_gui->enableCommands(false);
859 } else {
860 $this->objective_list_gui->enableCommands(true);
861 }
862
863 if ($is_order) {
864 $this->objective_list_gui->setPositionInputField(
865 "[lobj][" . $a_objective_id . "][0]",
866 $objective->__getPosition() * 10
867 );
868 }
869
870 ksort($sort_content);
871
872 if (!$a_accordion) {
873 foreach ($sort_content as $sub_item_html) {
874 $this->objective_list_gui->addSubItemHTML($sub_item_html);
875 }
876
877 return $this->objective_list_gui->getObjectiveListItemHTML(
878 0,
879 $a_objective_id,
880 $objective->getTitle(),
881 $objective->getDescription(),
882 ($is_manage || $is_order)
883 );
884 } else {
885 $acc_content = $sort_content;
886
887 $initial_shown = false;
888 $initial_test_ref_id = $this->getTestAssignments()->getTestByObjective($a_objective_id, ilLOSettings::TYPE_TEST_INITIAL);
889 $initial_test_obj_id = ilObject::_lookupObjId($initial_test_ref_id);
890 include_once './Modules/Test/classes/class.ilObjTestAccess.php';
891
892 if (
893 $initial_test_obj_id &&
894 $this->getSettings()->hasSeparateInitialTests() &&
896 ) {
897 $acc_content[] = $this->renderTest(
898 $this->getTestAssignments()->getTestByObjective($a_objective_id, ilLOSettings::TYPE_TEST_INITIAL),
899 $a_objective_id,
900 true,
901 false,
902 $a_lo_result
903 );
904 $initial_shown = true;
905 } elseif ($this->getSettings()->hasSeparateQualifiedTests()) {
906 $acc_content[] = $this->renderTest(
907 $this->getTestAssignments()->getTestByObjective($a_objective_id, ilLOSettings::TYPE_TEST_QUALIFIED),
908 $a_objective_id,
909 false,
910 false,
911 $a_lo_result
912 );
913 }
914
915
916 /*
917 if($this->loc_settings->getInitialTest() &&
918 $this->loc_settings->getType() == ilLOSettings::LOC_INITIAL_SEL &&
919 !$a_lo_risult["initial_status"])
920 {
921 $acc_content[] = $this->renderTest($this->loc_settings->getInitialTest(), $a_objective_id, true, false, $a_lo_result);
922 $initial_shown = true;
923 }
924 if(!$initial_shown &&
925 $this->loc_settings->getQualifiedTest() &&
926 $this->loc_settings->isQualifiedTestPerObjectiveVisible())
927 {
928 $acc_content[] = $this->renderTest($this->loc_settings->getQualifiedTest(), $a_objective_id, false, false, $a_lo_result);
929 }
930 */
931
932 $co_page = null;
933 include_once("./Services/COPage/classes/class.ilPageUtil.php");
934 if (ilPageUtil::_existsAndNotEmpty("lobj", $objective->getObjectiveId())) {
935 $a_has_lo_page = true;
936
937 include_once 'Modules/Course/classes/Objectives/class.ilLOPageGUI.php';
938 $page_gui = new ilLOPageGUI($objective->getObjectiveId());
939
940 include_once("./Services/Style/Content/classes/class.ilObjStyleSheet.php");
941 $page_gui->setStyleId(ilObjStyleSheet::getEffectiveContentStyleId(0));
942 $page_gui->setPresentationTitle("");
943 $page_gui->setTemplateOutput(false);
944 $page_gui->setHeader("");
945
946 $co_page = "<div class='ilContObjectiveIntro'>" . $page_gui->showPage() . "</div>";
947 }
948
949 $a_accordion->addItem(
950 $this->buildAccordionTitle($objective, $a_lo_result),
951 $co_page .
952 $this->buildAccordionContent($acc_content),
953 (isset($_GET["oobj"]) && (int) $_GET["oobj"] == $objective->getObjectiveId())
954 );
955 }
956 }
$_GET["client_id"]
addItem($a_header, $a_content, $a_force_open=false)
Add item.
getItemGUI($item_data, $a_show_path=false)
Get ListGUI object for item.
buildAccordionTitle(ilCourseObjective $a_objective, array $a_lo_result=null)
getDetailsLevel($a_objective_id)
get details level
getTestAssignments()
Get test assignments object.
class ilCourseObjectiveMaterials
static _lookupTitle($a_obj_id)
Lookup title.
(Course) learning objective page GUI class
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
static getItemsByObjective($a_objective_id)
Get objective items.
static _existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages)

References $_GET, $ilUser, ilContainerContentGUI\$lng, $title, ilContainerContentGUI\$user, ilPageUtil\_existsAndNotEmpty(), ilObject\_lookupObjId(), ilLMObject\_lookupTitle(), buildAccordionContent(), buildAccordionTitle(), ilObjTestAccess\checkCondition(), ilContainerContentGUI\getContainerGUI(), ilContainerContentGUI\getContainerObject(), getDetailsLevel(), ilObjStyleSheet\getEffectiveContentStyleId(), ilContainerContentGUI\getItemGUI(), ilObjectActivation\getItemsByObjective(), getSettings(), getTestAssignments(), ilConditionHandler\OPERATOR_FINISHED, renderTest(), ilLOSettings\TYPE_TEST_INITIAL, and ilLOSettings\TYPE_TEST_QUALIFIED.

Referenced by showObjectives().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderProgressBar()

static ilContainerObjectiveGUI::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 
)
static

Render progress bar(s)

Parameters
int$a_perc_result
int$a_perc_limit
string$a_css
string$a_caption
string$a_url
string$a_tt_id
string$a_tt_txt
string$a_next_step
string$a_sub(html)
int$a_sub_style
Returns
type

Definition at line 1036 of file class.ilContainerObjectiveGUI.php.

1047 {
1048 global $DIC;
1049
1050 $tpl = new ilTemplate("tpl.objective_progressbar.html", true, true, "Services/Container");
1051
1052 if ($a_perc_result !== null) {
1053 $tpl->setCurrentBlock("statusbar_bl");
1054 $tpl->setVariable("PERC_STATUS", $a_perc_result);
1055 $tpl->setVariable("PERC_WIDTH", $a_perc_result);
1056 $tpl->setVariable("PERC_COLOR", $a_css);
1057 if ($a_perc_limit) {
1058 // :TODO: magic?
1059 $limit_pos = (99 - (int) $a_perc_limit) * -1;
1060 $tpl->setVariable("LIMIT_POS", $limit_pos);
1061 }
1062 if ($a_tt_txt &&
1063 $a_tt_id) {
1064 $tpl->setVariable("TT_ID", $a_tt_id);
1065 }
1066 $tpl->parseCurrentBlock();
1067 }
1068
1069 if ($a_caption) {
1070 if ($a_url) {
1071 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1072 $button = ilLinkButton::getInstance();
1073 $button->setCaption($a_caption, false);
1074 $button->setUrl($a_url);
1075
1076 $tpl->setCurrentBlock("statustxt_bl");
1077 $tpl->setVariable("TXT_PROGRESS_STATUS", $button->render());
1078 $tpl->parseCurrentBlock();
1079 } else {
1080 $tpl->setCurrentBlock("statustxt_no_link_bl");
1081 $tpl->setVariable("TXT_PROGRESS_STATUS_NO_LINK", $a_caption);
1082 $tpl->parseCurrentBlock();
1083 }
1084 }
1085
1086
1087 if ($a_next_step) {
1088 $tpl->setCurrentBlock("nstep_bl");
1089 $tpl->setVariable("TXT_NEXT_STEP", $a_next_step);
1090 $tpl->parseCurrentBlock();
1091 }
1092
1093 if ($a_tt_id &&
1094 $a_tt_txt) {
1095 include_once("./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
1096 ilTooltipGUI::addTooltip($a_tt_id, $a_tt_txt);
1097 }
1098
1099 if ($a_sub) {
1100 $tpl->setVariable("SUB_STYLE", ' style="padding-left: ' . $a_sub_style . 'px;"');
1101 $tpl->setVariable("SUB_INIT", $a_sub);
1102 }
1103
1104 return $tpl->get();
1105 }
static getInstance()
Factory.
static addTooltip( $a_el_id, $a_text, $a_container="", $a_my="bottom center", $a_at="top center", $a_use_htmlspecialchars=true)
Adds a tooltip to an HTML element.

References $DIC, ilContainerContentGUI\$tpl, ilTooltipGUI\addTooltip(), and ilLinkButton\getInstance().

Referenced by ilStudyProgrammeProgressListGUI\buildProgressBar().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderProgressMeter()

static ilContainerObjectiveGUI::renderProgressMeter (   $a_perc_result = null,
  $a_perc_limit = null,
  $a_compare_value = 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,
  $a_main_text = '',
  $a_required_text = '' 
)
static

Render progress bar(s)

Parameters
int$a_perc_result
int$a_perc_limit
int$a_compare_value
string$a_caption
string$a_url
string$a_tt_id
string$a_tt_txt
string$a_next_step
string$a_sub(html)
int$a_sub_style
string$a_main_text
string$a_required_text
Returns
type

Definition at line 1124 of file class.ilContainerObjectiveGUI.php.

1137 {
1138 global $DIC;
1139
1140 $tpl = new ilTemplate("tpl.objective_progressmeter.html", true, true, "Services/Container");
1141
1142 $lng = $DIC->language();
1143 $lng->loadLanguageModule('crs');
1144
1145
1146
1147 if (is_numeric($a_perc_result)) {
1148 $uiFactory = $DIC->ui()->factory();
1149 $uiRenderer = $DIC->ui()->renderer();
1150
1151 /*
1152 $pMeter = $uiFactory->chart()->progressMeter()->standard(
1153 100,
1154 (int) $a_perc_result,
1155 (int) $a_perc_limit
1156 );
1157 */
1158
1159 $pMeter = $uiFactory->chart()->progressMeter()->standard(
1160 100,
1161 (int) $a_perc_result,
1162 (int) $a_perc_limit,
1163 (int) $a_compare_value
1164 );
1165
1166 if (strlen($a_main_text)) {
1167 #$pMeter = $pMeter->withMainText($a_main_text);
1168 }
1169 if (strlen($a_required_text)) {
1170 #$pMeter = $pMeter->withRequiredText($a_required_text);
1171 }
1172 $tpl->setVariable('PROGRESS_METER', $uiRenderer->render($pMeter));
1173 }
1174
1175 /*
1176 if($a_caption)
1177 {
1178 if($a_url)
1179 {
1180 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1181 $button = ilLinkButton::getInstance();
1182 $button->setCaption($a_caption, false);
1183 $button->setUrl($a_url);
1184
1185 $tpl->setCurrentBlock("statustxt_bl");
1186 $tpl->setVariable("TXT_PROGRESS_STATUS", $button->render());
1187 $tpl->parseCurrentBlock();
1188 }
1189 else
1190 {
1191 $tpl->setCurrentBlock("statustxt_no_link_bl");
1192 $tpl->setVariable("TXT_PROGRESS_STATUS_NO_LINK", $a_caption);
1193 $tpl->parseCurrentBlock();
1194 }
1195 }
1196 */
1197
1198 if ($a_tt_id &&
1199 $a_tt_txt) {
1200 include_once("./Services/UIComponent/Tooltip/classes/class.ilTooltipGUI.php");
1201 ilTooltipGUI::addTooltip($a_tt_id, $a_tt_txt);
1202 }
1203
1204 if ($a_sub) {
1205 $tpl->setVariable("SUB_STYLE", ' style="padding-left: ' . $a_sub_style . 'px;"');
1206 $tpl->setVariable("SUB_INIT", $a_sub);
1207 }
1208
1209 return $tpl->get();
1210 }

References $DIC, ilContainerContentGUI\$lng, ilContainerContentGUI\$tpl, and ilTooltipGUI\addTooltip().

Referenced by buildObjectiveProgressBar().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderTest()

ilContainerObjectiveGUI::renderTest (   $a_test_ref_id,
  $a_objective_id,
  $a_is_initial = false,
  $a_add_border = false,
  $a_lo_result = array() 
)
protected

Definition at line 376 of file class.ilContainerObjectiveGUI.php.

377 {
378 global $DIC;
379
380 $tree = $DIC->repositoryTree();
381
382 $node_data = [];
383 if ($a_test_ref_id) {
384 $node_data = $tree->getNodeData($a_test_ref_id);
385 }
386 if (!$node_data['child']) {
387 return '';
388 }
389
390 // update ti
391 if ($a_objective_id) {
392 if ($a_is_initial) {
393 $title = sprintf($this->lng->txt('crs_loc_itst_for_objective'), ilCourseObjective::lookupObjectiveTitle($a_objective_id));
394 } else {
395 $title = sprintf($this->lng->txt('crs_loc_qtst_for_objective'), ilCourseObjective::lookupObjectiveTitle($a_objective_id));
396 }
397 $node_data['objective_id'] = $a_objective_id;
398 $node_data['objective_status'] =
399 (
400 $a_lo_result['status'] == ilLOUserResults::STATUS_COMPLETED ?
401 false :
402 false
403 );
404 } else {
405 $obj_id = ilObject::_lookupObjId($a_test_ref_id);
407
408 $title .= (
409 ' (' .
410 (
411 $a_is_initial
412 ? $this->lng->txt('crs_loc_itest_info')
413 : $this->lng->txt('crs_loc_qtest_info')
414 ) .
415 ')'
416 );
417 $node_data['objective_id'] = 0;
418 }
419
420 $node_data['title'] = $title;
421
422 return "<div class='ilContObjectivesViewTestItem'>" . $this->renderItem($node_data) . "</div>";
423 }
renderItem($a_item_data, $a_position=0, $a_force_icon=false, $a_pos_prefix="")
Render an item.
static _lookupTitle($a_id)
lookup object title

References $DIC, $title, $tree, ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilCourseObjective\lookupObjectiveTitle(), ilContainerContentGUI\renderItem(), and ilLOUserResults\STATUS_COMPLETED.

Referenced by getMainContent(), and renderObjective().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showButton()

ilContainerObjectiveGUI::showButton (   $a_cmd,
  $a_text,
  $a_target = '',
  $a_id = "" 
)
protected

show action button

@access protected

Parameters

return

Definition at line 1545 of file class.ilContainerObjectiveGUI.php.

1546 {
1547 $ilToolbar = $this->toolbar;
1549
1550 // #11842
1551 $ilToolbar->addButton(
1552 $a_text,
1553 $ilCtrl->getLinkTarget($this->getContainerGUI(), $a_cmd),
1554 $a_target,
1555 "",
1556 '',
1557 $a_id
1558 );
1559 }

References ilContainerContentGUI\$ctrl, $ilCtrl, and $toolbar.

Referenced by getMainContent(), and showObjectives().

+ Here is the caller graph for this function:

◆ showMaterials()

ilContainerObjectiveGUI::showMaterials (   $a_tpl,
  $a_mode = null,
  $a_is_manage = false,
  $a_as_accordion = false 
)

Show all other (no assigned tests, no assigned materials) materials.

@access public

Parameters
object$tpltemplate object
Returns
void

Definition at line 432 of file class.ilContainerObjectiveGUI.php.

433 {
434 $ilAccess = $this->access;
436
438
439 if (is_array($this->items["_all"])) {
440 $this->objective_map = $this->buildObjectiveMap();
441
442 // all rows
443 $item_r = array();
444
445 $position = 1;
446 foreach ($this->items["_all"] as $k => $item_data) {
447 if ($a_mode == self::MATERIALS_TESTS and $item_data['type'] != 'tst') {
448 continue;
449 }
450 if ($item_data['type'] == 'itgr') {
451 continue;
452 }
453 if (!$a_is_manage) {
454 // if test object is qualified or initial do not show here
455 include_once './Modules/Course/classes/Objectives/class.ilLOTestAssignments.php';
456 include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php';
457 $assignments = ilLOTestAssignments::getInstance($this->getContainerObject()->getId());
458 if ($assignments->getTypeByTest($item_data['child']) != ilLOSettings::TYPE_TEST_UNDEFINED) {
459 continue;
460 }
461 }
462
463 if ($this->rendered_items[$item_data["child"]] !== true &&
464 !$this->renderer->hasItem($item_data["child"])) {
465 $this->rendered_items[$item_data['child']] = true;
466
467 // TODO: Position (DONE ?)
468 $html = $this->renderItem($item_data, $position++, $a_mode == self::MATERIALS_TESTS ? false : true);
469 if ($html != "") {
470 $item_r[] = array("html" => $html, "id" => $item_data["child"], "type" => $item_data["type"]);
471 }
472 }
473 }
474
475 // if we have at least one item, output the block
476 if (count($item_r) > 0) {
477 if (!$a_as_accordion) {
478 $pos = 0;
479
480 switch ($a_mode) {
482 $block_id = "tst";
483 $this->renderer->addTypeBlock($block_id);
484 break;
485
487 $block_id = "oth";
488 $this->renderer->addCustomBlock($block_id, $lng->txt('crs_other_resources'));
489 break;
490
491 // manage
492 default:
493 $block_id = "all";
494 $this->renderer->addCustomBlock($block_id, $lng->txt('content'));
495 break;
496 }
497
498 // :TODO:
499 if ($a_mode != self::MATERIALS_TESTS) {
500 $pos = $this->getItemGroupsHTML();
501 }
502
503 foreach ($item_r as $h) {
504 if (!$this->renderer->hasItem($h["id"])) {
505 $this->renderer->addItemToBlock($block_id, $h["type"], $h["id"], $h["html"]);
506 }
507 }
508
509 $this->output_html .= $this->renderer->getHTML();
510 } else {
511 switch ($a_mode) {
513 $txt = $lng->txt('objs_tst');
514 break;
515
517 $txt = $lng->txt('crs_other_resources');
518 break;
519 }
520
521 include_once "Services/Accordion/classes/class.ilAccordionGUI.php";
522 $acc = new ilAccordionGUI();
523 $acc->setId("crsobjtvmat" . $a_mode . "_" . $this->container_obj->getId());
524
525 $acc_content = array();
526 foreach ($item_r as $h) {
527 $acc_content[] = $h["html"];
528 }
529 $acc->addItem($txt, $this->buildAccordionContent($acc_content));
530
531 $this->output_html .= $acc->getHTML();
532 }
533 }
534 }
535 }
Accordion user interface class.
getItemGroupsHTML($a_pos=0)
Get item groups HTML.
clearAdminCommandsDetermination()
cleaer administration commands determination
$txt
Definition: error.php:11
$html
Definition: example_001.php:87
$h

References ilContainerContentGUI\$access, $h, $html, ilContainerContentGUI\$lng, $txt, buildAccordionContent(), buildObjectiveMap(), ilContainerContentGUI\clearAdminCommandsDetermination(), ilContainerContentGUI\getContainerObject(), ilLOTestAssignments\getInstance(), ilContainerContentGUI\getItemGroupsHTML(), MATERIALS_OTHER, MATERIALS_TESTS, ilContainerContentGUI\renderItem(), and ilLOSettings\TYPE_TEST_UNDEFINED.

Referenced by getMainContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showObjectives()

ilContainerObjectiveGUI::showObjectives (   $a_tpl,
  $a_is_order = false 
)

show objectives

@access public

Parameters
object$tpltemplate object
Returns

Definition at line 239 of file class.ilContainerObjectiveGUI.php.

240 {
244
246
247 // get embedded blocks
248 $has_container_page = false;
249 if (!$a_is_order) {
250 $output_html = $this->getContainerGUI()->getContainerPageHTML();
251 if ($output_html != "") {
252 $has_container_page = true;
253 $this->output_html .= $this->insertPageEmbeddedBlocks($output_html);
254 }
255 unset($output_html);
256 }
257
258 // All objectives
259 include_once './Modules/Course/classes/class.ilCourseObjective.php';
260 if (!count($objective_ids = ilCourseObjective::_getObjectiveIds($this->getContainerObject()->getId(), true))) {
261 return false;
262 }
263
264 include_once('./Modules/Course/classes/class.ilCourseObjectiveListGUI.php');
265 $this->objective_list_gui = new ilCourseObjectiveListGUI();
266 $this->objective_list_gui->setContainerObject($this->getContainerGUI());
267 if ($ilSetting->get("icon_position_in_lists") == "item_rows") {
268 $this->objective_list_gui->enableIcon(true);
269 }
270
271 $acc = null;
272 if (!$a_is_order) {
273 include_once "Services/Accordion/classes/class.ilAccordionGUI.php";
274 $acc = new ilAccordionGUI();
275 $acc->setUseSessionStorage(true);
276 $acc->setAllowMultiOpened(true);
277 $acc->setBehaviour(ilAccordionGUI::FIRST_OPEN);
278 $acc->setId("crsobjtv_" . $this->container_obj->getId());
279 } else {
280 $this->renderer->addCustomBlock('lobj', $lng->txt('crs_objectives'));
281 }
282
283 $lur_data = $this->parseLOUserResults();
284
285 $has_initial = ilLOSettings::getInstanceByObjId($this->container_obj->getId())->worksWithInitialTest();
286
287 $has_lo_page = false;
288 $obj_cnt = 0;
289 foreach ($objective_ids as $objective_id) {
290 include_once './Modules/Course/classes/Objectives/class.ilLOUtils.php';
291 if (
292 $has_initial &&
293 (
294 !isset($lur_data[$objective_id]) or
296 $this->container_obj->getId(),
297 ilLOSettings::getInstanceByObjId($this->container_obj->getId())->getInitialTest(),
298 $objective_id
299 )
300 )
301 ) {
302 $lur_data[$objective_id] = array("type" => ilLOSettings::TYPE_TEST_INITIAL);
303 }
304
305 if ($html = $this->renderObjective($objective_id, $has_lo_page, $acc, $lur_data[$objective_id])) {
306 $this->renderer->addItemToBlock('lobj', 'lobj', $objective_id, $html);
307 }
308 $obj_cnt++;
309 }
310
311 // buttons for showing/hiding all objectives
312 if (!$a_is_order && $obj_cnt > 1) {
313 $this->showButton("", $lng->txt("crs_show_all_obj"), "", "crs_show_all_obj_btn");
314 $this->showButton("", $lng->txt("crs_hide_all_obj"), "", "crs_hide_all_obj_btn");
315 $acc->setShowAllElement("crs_show_all_obj_btn");
316 $acc->setHideAllElement("crs_hide_all_obj_btn");
317 }
318
319 if (!$has_container_page && $has_lo_page) {
320 // add core co page css
321 include_once("./Services/Style/Content/classes/class.ilObjStyleSheet.php");
322 $tpl->setVariable(
323 "LOCATION_CONTENT_STYLESHEET",
325 );
326 $tpl->setCurrentBlock("SyntaxStyle");
327 $tpl->setVariable(
328 "LOCATION_SYNTAX_STYLESHEET",
330 );
331 $tpl->parseCurrentBlock();
332 }
333
334 // order/block
335 if ($a_is_order) {
336 $this->addFooterRow();
337
338 $this->output_html .= $output_html . $this->renderer->getHTML();
339
340 $this->renderer->resetDetails();
341 }
342 // view/accordion
343 else {
344 $this->output_html .= "<div class='ilCrsObjAcc'>" . $acc->getHTML() . "</div>";
345 }
346 }
insertPageEmbeddedBlocks($a_output_html)
Insert blocks into container page.
renderObjective($a_objective_id, &$a_has_lo_page, ilAccordionGUI $a_accordion=null, array $a_lo_result=null)
render objective
parseLOUserResults()
Parse learning objective results.
List gui for course objectives.
static hasActiveRun($a_container_id, $a_test_ref_id, $a_objective_id)
static getSyntaxStylePath()
get syntax style path
static getContentStylePath($a_style_id, $add_random=true)
get content style path
global $ilSetting
Definition: privfeed.php:17

References $html, $ilSetting, ilContainerContentGUI\$lng, $output_html, ilContainerContentGUI\$settings, ilContainerContentGUI\$tpl, ilCourseObjective\_getObjectiveIds(), addFooterRow(), ilContainerContentGUI\clearAdminCommandsDetermination(), ilAccordionGUI\FIRST_OPEN, ilContainerContentGUI\getContainerGUI(), ilContainerContentGUI\getContainerObject(), ilObjStyleSheet\getContentStylePath(), ilLOSettings\getInstanceByObjId(), ilObjStyleSheet\getSyntaxStylePath(), ilLOUtils\hasActiveRun(), ilContainerContentGUI\insertPageEmbeddedBlocks(), parseLOUserResults(), renderObjective(), showButton(), and ilLOSettings\TYPE_TEST_INITIAL.

Referenced by getMainContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showStatus()

ilContainerObjectiveGUI::showStatus (   $tpl)

show status

@access public

Parameters

return

Definition at line 215 of file class.ilContainerObjectiveGUI.php.

216 {
219
220 include_once('./Modules/Course/classes/class.ilCourseObjectiveResultCache.php');
221
222 $status = ilCourseObjectiveResultCache::getStatus($ilUser->getId(), $this->getContainerObject()->getId());
223 if ($status == IL_OBJECTIVE_STATUS_EMPTY) {
224 return;
225 }
226 $info_tpl = new ilTemplate('tpl.crs_objectives_view_info_table.html', true, true, 'Modules/Course');
227 $info_tpl->setVariable("INFO_STRING", $lng->txt('crs_objectives_info_' . $status));
228
229 $this->output_html .= $info_tpl->get();
230 }
const IL_OBJECTIVE_STATUS_EMPTY
static getStatus($a_usr_id, $a_crs_id)
get status of user

References $ilUser, ilContainerContentGUI\$lng, ilContainerContentGUI\$user, ilCourseObjectiveResultCache\getStatus(), and IL_OBJECTIVE_STATUS_EMPTY.

+ Here is the call graph for this function:

◆ updateResult()

ilContainerObjectiveGUI::updateResult (   $a_res,
  $a_item_ref_id,
  $a_objective_id,
  $a_user_id 
)
protected

Definition at line 717 of file class.ilContainerObjectiveGUI.php.

718 {
719 if ($this->loc_settings->getQualifiedTest() == $a_item_ref_id) {
720 // Check for existing test run, and decrease tries, reset final if run exists
721 include_once './Modules/Test/classes/class.ilObjTest.php';
722 include_once './Modules/Course/classes/Objectives/class.ilLOSettings.php';
724 $a_item_ref_id,
725 $a_user_id
726 );
727
728 if ($active) {
729 include_once './Modules/Course/classes/Objectives/class.ilLOTestRun.php';
731 ilObject::_lookupObjId($a_item_ref_id),
732 $a_objective_id,
733 $a_user_id
734 )) {
735 ($a_res['tries'] > 0) ? --$a_res['tries'] : 0;
736 $a_res['is_final'] = 0;
737 }
738 }
739 }
740 return $a_res;
741 }
static lookupRunExistsForObjective($a_test_id, $a_objective_id, $a_user_id)
@global type $ilDB
static isParticipantsLastPassActive($testRefId, $userId)

References ilObject\_lookupObjId(), ilObjTest\isParticipantsLastPassActive(), and ilLOTestRun\lookupRunExistsForObjective().

Referenced by addItemDetails().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $force_details

ilContainerObjectiveGUI::$force_details = 0
protected

Definition at line 32 of file class.ilContainerObjectiveGUI.php.

◆ $loc_settings

ilContainerObjectiveGUI::$loc_settings
protected

Definition at line 37 of file class.ilContainerObjectiveGUI.php.

Referenced by getSettings().

◆ $logger

ilContainerObjectiveGUI::$logger = null
private

Definition at line 19 of file class.ilContainerObjectiveGUI.php.

◆ $output_html

ilContainerObjectiveGUI::$output_html = ''
private

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

Referenced by showObjectives().

◆ $tabs

ilContainerObjectiveGUI::$tabs
protected

Definition at line 25 of file class.ilContainerObjectiveGUI.php.

Referenced by getMainContent().

◆ $test_assignments

ilContainerObjectiveGUI::$test_assignments = null
private

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

Referenced by getTestAssignments().

◆ $toolbar

ilContainerObjectiveGUI::$toolbar
protected

Definition at line 30 of file class.ilContainerObjectiveGUI.php.

Referenced by showButton().

◆ MATERIALS_OTHER

const ilContainerObjectiveGUI::MATERIALS_OTHER = 2

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

Referenced by showMaterials().

◆ MATERIALS_TESTS

const ilContainerObjectiveGUI::MATERIALS_TESTS = 1

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

Referenced by showMaterials().


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