107 $this->tabs = $DIC[
'ilTabs'];
108 $this->access = $DIC[
'ilAccess'];
109 $this->lng = $DIC[
'lng'];
118 case self::TAB_ID_EXAM_DASHBOARD:
119 case self::TAB_ID_RESULTS:
121 $this->tabs->activateTab($tabId);
131 case self::SUBTAB_ID_FIXED_PARTICIPANTS:
132 case self::SUBTAB_ID_TIME_EXTENSION:
134 case self::SUBTAB_ID_PARTICIPANTS_RESULTS:
135 case self::SUBTAB_ID_MY_RESULTS:
136 case self::SUBTAB_ID_LO_RESULTS:
137 case self::SUBTAB_ID_HIGHSCORE:
138 case self::SUBTAB_ID_SKILL_RESULTS:
139 case self::SUBTAB_ID_MY_SOLUTIONS:
141 case self::SUBTAB_ID_QST_LIST_VIEW:
142 case self::SUBTAB_ID_QST_PAGE_VIEW:
144 $this->tabs->activateSubTab($subTabId);
217 $this->hiddenTabs = array();
275 require_once
'Services/Administration/classes/class.ilSettingsTemplate.php';
300 return $this->access->checkAccess(
'read',
'', $this->
getTestOBJ()->getRefId());
308 return $this->access->checkAccess(
'write',
'', $this->
getTestOBJ()->getRefId());
316 return $this->access->checkAccess(
'tst_statistics',
'', $this->
getTestOBJ()->getRefId());
324 return $this->access->checkAccess(
'edit_permission',
'', $this->
getTestOBJ()->getRefId());
332 include_once
'Services/Tracking/classes/class.ilLearningProgressAccess.php';
341 if ($this->testAccess->checkManageParticipantsAccess()) {
353 return $this->testAccess->checkScoreParticipantsAccess();
361 return $this->testAccess->checkStatisticsAccess();
377 if (preg_match(
'/^ass(.*?)gui$/i', $DIC->ctrl()->getNextClass($this))) {
381 if ($DIC->ctrl()->getNextClass($this) ==
'ilassquestionpagegui') {
385 if ($DIC->ctrl()->getCmdClass() ==
'iltestoutputgui') {
389 if ($DIC->ctrl()->getCmdClass() ==
'iltestevaluationgui') {
390 return in_array($DIC->ctrl()->getCmd(), array(
391 '',
'outUserResultsPassOverview',
'outUserListOfAnswerPasses',
'outEvaluation',
'eval_a',
'singleResults',
'detailedEvaluation' 406 switch ($DIC->ctrl()->getCmdClass()) {
407 case 'ilmarkschemagui':
408 case 'ilobjtestsettingsgeneralgui':
409 case 'ilobjtestsettingsscoringresultsgui':
418 switch ($DIC->ctrl()->getCmd()) {
423 case "directfeedback":
425 case "outCorrectSolution":
427 case "showAnswersOfUser":
428 case "backFromSummary":
432 case "confirmFinish":
433 case "outTestSummary":
434 case "outQuestionSummary":
436 case "selectImagemapRegion":
437 case "confirmSubmitAnswers":
438 case "finalSubmission":
440 case "outUserPassDetails":
441 case "checkPassword":
442 case "exportCertificate":
443 case "finishListOfAnswers":
444 case "backConfirmFinish":
445 case "showFinalStatement":
448 case "browseForQuestions":
451 case "resetTextFilter":
452 case "insertQuestions":
454 'iltestdashboardgui',
456 "illearningprogressgui" 458 if (!in_array($DIC->ctrl()->getNextClass($this), $classes)) {
465 case "certificateservice":
466 case "certificateImport":
467 case "certificateUpload":
468 case "certificateEditor":
469 case "certificateDelete":
470 case "certificateSave":
472 case "deleteDefaults":
474 case "applyDefaults":
475 case "inviteParticipants":
476 case "searchParticipants":
477 if ($this->
isWriteAccessGranted() && in_array($DIC->ctrl()->getCmdClass(), array(
'ilobjtestgui',
'ilcertificategui'))) {
486 case "detailedEvaluation":
487 case "outEvaluation":
488 case "singleResults":
489 case "exportEvaluation":
490 case "evalUserDetail":
491 case "outStatisticsResultsOverview":
492 case "statisticsPassDetails":
499 $force_active = (
$_GET[
"up"] !=
"" ||
$_GET[
"down"] !=
"")
502 if (!$force_active) {
503 if (
$_GET[
"browse"] == 1) {
504 $force_active =
true;
508 switch ($this->
getTestOBJ()->getQuestionSetType()) {
510 $target = $DIC->ctrl()->getLinkTargetByClass(
511 'ilTestExpresspageObjectGUI',
517 $target = $DIC->ctrl()->getLinkTargetByClass(
'ilTestRandomQuestionSetConfigGUI');
521 $target = $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestDynamicQuestionSetConfigGUI');
527 $this->tabs->addTarget(
530 array(
"questions",
"browseForQuestions",
"questionBrowser",
"createQuestion",
531 "randomselect",
"filter",
"resetFilter",
"insertQuestions",
532 "back",
"createRandomSelection",
"cancelRandomSelect",
533 "insertRandomSelection",
"removeQuestions",
"moveQuestions",
534 "insertQuestionsBefore",
"insertQuestionsAfter",
"confirmRemoveQuestions",
535 "cancelRemoveQuestions",
"executeCreateQuestion",
"cancelCreateQuestion",
536 "addQuestionpool",
"saveRandomQuestions",
"saveQuestionSelectionMode",
"print",
537 "addsource",
"removesource",
"randomQuestions"),
546 $this->tabs->addTarget(
548 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
'infoScreen'),
549 array(
"infoScreen",
"outIntroductionPage",
"showSummary",
550 "setAnonymousId",
"redirectToInfoScreen")
557 $settingsCommands = array(
558 "marks",
"showMarkSchema",
"addMarkStep",
"deleteMarkSteps",
"addSimpleMarkSchema",
"saveMarks",
559 "certificate",
"certificateEditor",
"certificateRemoveBackground",
"certificateSave",
560 "certificatePreview",
"certificateDelete",
"certificateUpload",
"certificateImport",
561 "scoring",
"defaults",
"addDefaults",
"deleteDefaults",
"applyDefaults",
562 "inviteParticipants",
"saveFixedParticipantsStatus",
"searchParticipants",
"addParticipants" 565 require_once
'Modules/Test/classes/class.ilObjTestSettingsGeneralGUI.php';
567 foreach ($reflection->getConstants() as
$name => $value) {
568 if (substr($name, 0, 4) ==
'CMD_') {
569 $settingsCommands[] = $value;
573 require_once
'Modules/Test/classes/class.ilObjTestSettingsScoringResultsGUI.php';
574 $reflection =
new ReflectionClass(
'ilObjTestSettingsScoringResultsGUI');
575 foreach ($reflection->getConstants() as $name => $value) {
576 if (substr($name, 0, 4) ==
'CMD_') {
577 $settingsCommands[] = $value;
581 $settingsCommands[] =
"";
583 $this->tabs->addTarget(
585 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestSettingsGeneralGUI'),
587 array(
"ilmarkschemagui",
"ilobjtestsettingsgeneralgui",
"ilobjtestsettingsscoringresultsgui",
"ilobjtestgui",
"ilcertificategui")
593 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php';
595 $link = $DIC->ctrl()->getLinkTargetByClass(
596 array(
'ilTestSkillAdministrationGUI',
'ilAssQuestionSkillAssignmentsGUI'),
600 $this->tabs->addTarget(
'tst_tab_competences', $link, array(), array());
606 self::TAB_ID_EXAM_DASHBOARD,
607 $DIC->language()->txt(
'dashboard_tab'),
614 self::TAB_ID_RESULTS,
615 $DIC->language()->txt(
'results_tab'),
621 $this->tabs->addTarget(
622 self::TAB_ID_LEARNING_PROGRESS,
623 $DIC->ctrl()->getLinkTargetByClass(array(
'illearningprogressgui'),
''),
625 array(
'illplistofobjectsgui',
'illplistofsettingsgui',
'illearningprogressgui',
'illplistofprogressgui')
630 include_once
"./Modules/Test/classes/class.ilObjAssessmentFolder.php";
632 if (count($scoring)) {
634 $this->tabs->addTarget(
635 self::TAB_ID_MANUAL_SCORING,
636 $DIC->ctrl()->getLinkTargetByClass(
'ilTestScoringByQuestionsGUI',
'showManScoringByQuestionParticipantsTable'),
638 'showManScoringParticipantsTable',
'applyManScoringParticipantsFilter',
'resetManScoringParticipantsFilter',
'showManScoringParticipantScreen',
639 'showManScoringByQuestionParticipantsTable',
'applyManScoringByQuestionFilter',
'resetManScoringByQuestionFilter',
'saveManScoringByQuestion' 649 $scoring_adjust_active = (bool) $setting->get(
'assessment_adjustments_enabled',
false);
652 self::TAB_ID_CORRECTION,
653 $DIC->language()->txt(self::TAB_ID_CORRECTION),
654 $DIC->ctrl()->getLinkTargetByClass(
'ilTestCorrectionsGUI')
660 $this->tabs->addTarget(
661 self::TAB_ID_STATISTICS,
662 $DIC->ctrl()->getLinkTargetByClass(
"iltestevaluationgui",
"outEvaluation"),
664 "statistics",
"outEvaluation",
"exportEvaluation",
"detailedEvaluation",
"eval_a",
"evalUserDetail",
665 "passDetails",
"outStatisticsResultsOverview",
"statisticsPassDetails",
"singleResults" 675 $this->tabs->addTarget(
676 self::TAB_ID_HISTORY,
677 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
'history'),
685 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
687 $mdtab = $mdgui->getTab();
689 $this->tabs->addTarget(
690 self::TAB_ID_META_DATA,
700 $this->tabs->addTarget(
702 $DIC->ctrl()->getLinkTargetByClass(
'iltestexportgui',
''),
704 array(
'iltestexportgui')
710 $this->tabs->addTarget(
711 self::TAB_ID_PERMISSIONS,
712 $DIC->ctrl()->getLinkTargetByClass(array(
'ilObjTestGUI',
'ilpermissiongui'),
"perm"),
713 array(
"perm",
"info",
"owner"),
721 foreach ($hideTabs as $tabId) {
722 $this->tabs->removeTab($tabId);
732 $DIC->ctrl()->saveParameterByClass($DIC->ctrl()->getCmdClass(),
'q_id');
734 $this->tabs->setBackTarget($this->lng->txt(
"backtocallingtest"), $DIC->ctrl()->getLinkTargetByClass($DIC->ctrl()->getCmdClass(),
"questions"));
735 $this->tabs->addTarget(
736 "tst_browse_for_questions",
737 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
"browseForQuestions"),
738 array(
"browseForQuestions",
"filter",
"resetFilter",
"resetTextFilter",
"insertQuestions"),
752 $this->tabs->setBackTarget($this->lng->txt(
"backtocallingtest"), $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
"questions"));
753 $this->tabs->addTarget(
755 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
"randomQuestions"),
756 array(
"randomQuestions"),
767 $this->tabs->activateTab(self::TAB_ID_QUESTIONS);
770 $this->tabs->addSubTab(
771 self::SUBTAB_ID_QST_PAGE_VIEW,
772 $DIC->language()->txt(
'questions_per_page_view'),
773 $DIC->ctrl()->getLinkTargetByClass(
'iltestexpresspageobjectgui',
'showPage')
776 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
780 $this->tabs->addSubTab(
781 self::SUBTAB_ID_QST_LIST_VIEW,
782 $DIC->language()->txt(
'edit_test_questions'),
783 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
'questions')
789 $this->tabs->addSubTabTarget(
791 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
'print'),
795 $DIC->ctrl()->getCmd() ==
'print' 797 $this->tabs->addSubTabTarget(
799 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
'review'),
803 $DIC->ctrl()->getCmd() ==
'review' 813 $this->tabs->addSubTabTarget(
815 $DIC->ctrl()->getLinkTargetByClass(
"iltestevaluationgui",
"outEvaluation"),
816 array(
"outEvaluation",
"detailedEvaluation",
"exportEvaluation",
"evalUserDetail",
"passDetails",
817 "outStatisticsResultsOverview",
"statisticsPassDetails"),
822 $this->tabs->addSubTabTarget(
823 "tst_results_aggregated",
824 $DIC->ctrl()->getLinkTargetByClass(
"iltestevaluationgui",
"eval_a"),
831 $this->tabs->addSubTabTarget(
832 "tst_single_results",
833 $DIC->ctrl()->getLinkTargetByClass(
"iltestevaluationgui",
"singleResults"),
834 array(
"singleResults"),
845 $this->tabs->addSubTabTarget(
847 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestSettingsGeneralGUI'),
849 array(
'ilobjtestsettingsgeneralgui')
853 $this->tabs->addSubTabTarget(
855 $DIC->ctrl()->getLinkTargetByClass(
'ilmarkschemagui',
'showMarkSchema'),
857 array(
'ilmarkschemagui')
862 $this->tabs->addSubTabTarget(
864 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestSettingsScoringResultsGUI'),
866 array(
'ilobjtestsettingsscoringresultsgui')
870 include_once
"Services/Certificate/classes/class.ilCertificate.php";
872 $this->tabs->addSubTabTarget(
874 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
'certificate'),
875 array(
"certificate",
"certificateEditor",
"certificateRemoveBackground",
"certificateSave",
876 "certificatePreview",
"certificateDelete",
"certificateUpload",
"certificateImport"),
877 array(
"",
"ilobjtestgui",
"ilcertificategui")
883 $this->tabs->addSubTabTarget(
884 "tst_default_settings",
885 $DIC->ctrl()->getLinkTargetByClass(
'ilObjTestGUI',
"defaults"),
886 array(
"defaults",
"deleteDefaults",
"addDefaults",
"applyDefaults"),
887 array(
"",
"ilobjtestgui",
"ilcertificategui")
892 if ($lti_settings->hasSettingsAccess()) {
893 $this->tabs->addSubTabTarget(
895 $DIC->ctrl()->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class),
897 [ilLTIProviderObjectSettingGUI::class]
907 if ($this->
isHiddenTab(self::TAB_ID_EXAM_DASHBOARD)) {
923 if (!($this->
getTestOBJ()->getProcessingTimeInSeconds() > 0)) {
927 if ($this->
getTestOBJ()->getNrOfTries() != 1) {
945 return $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestDashboardGUI',
'ilTestParticipantsGUI'));
952 if (!$this->testAccess->checkManageParticipantsAccess()) {
956 $this->tabs->addSubTab(
957 self::SUBTAB_ID_FIXED_PARTICIPANTS,
959 $DIC->ctrl()->getLinkTargetByClass(
'ilTestParticipantsGUI')
963 $this->tabs->addSubTab(
964 self::SUBTAB_ID_TIME_EXTENSION,
965 $DIC->language()->txt(
'timing'),
966 $DIC->ctrl()->getLinkTargetByClass(
'ilTestParticipantsTimeExtensionGUI')
975 if ($this->
getTestOBJ()->getFixedParticipants()) {
976 return $DIC->language()->txt(
'fixedparticipants_subtab');
979 return $DIC->language()->txt(
'autoparticipants_subtab');
998 return $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilParticipantsTestResultsGUI'));
1002 return $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilTestEvalObjectiveOrientedGUI'));
1006 return $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilMyTestResultsGUI',
'ilTestEvaluationGUI'));
1010 return $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilMyTestSolutionsGUI',
'ilTestEvaluationGUI'));
1013 return $DIC->ctrl()->getLinkTargetByClass(
'ilTestResultsGUI');
1033 return $this->objectiveParent->isObjectiveOrientedPresentationRequired();
1041 if ($this->testAccess->checkManageParticipantsAccess()) {
1045 if ($this->testAccess->checkParticipantsResultsAccess()) {
1061 return $this->
getTestOBJ()->getHighscoreEnabled();
1073 return $this->
getTestOBJ()->isSkillServiceToBeConsidered();
1086 $this->tabs->addSubTab(
1087 self::SUBTAB_ID_PARTICIPANTS_RESULTS,
1088 $DIC->language()->txt(
'participants_results_subtab'),
1089 $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilParticipantsTestResultsGUI'))
1094 $this->tabs->addSubTab(
1095 self::SUBTAB_ID_LO_RESULTS,
1096 $DIC->language()->txt(
'tst_tab_results_objective_oriented'),
1097 $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilTestEvalObjectiveOrientedGUI'))
1102 $myResultsLabel = $DIC->language()->txt(
'tst_show_results');
1105 $myResultsLabel = $DIC->language()->txt(
'tst_tab_results_pass_oriented');
1108 $this->tabs->addSubTab(
1109 self::SUBTAB_ID_MY_RESULTS,
1111 $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilMyTestResultsGUI',
'ilTestEvaluationGUI'))
1117 $this->tabs->addSubTab(
1118 self::SUBTAB_ID_SKILL_RESULTS,
1119 $DIC->language()->txt(
'tst_show_comp_results'),
1120 $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilTestSkillEvaluationGUI'))
1125 $this->tabs->addSubTab(
1126 self::SUBTAB_ID_HIGHSCORE,
1127 $DIC->language()->txt(
'tst_show_toplist'),
1128 $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilTestToplistGUI'),
'outResultsToplist')
1133 $this->tabs->addSubTab(
1134 self::SUBTAB_ID_MY_SOLUTIONS,
1135 $DIC->language()->txt(
'tst_list_of_answers_show'),
1136 $DIC->ctrl()->getLinkTargetByClass(array(
'ilTestResultsGUI',
'ilMyTestSolutionsGUI',
'ilTestEvaluationGUI'))
static getSettingsTemplateConfig()
isStatisticsAccessGranted()
const SUBTAB_ID_FIXED_PARTICIPANTS
setTestQuestionSetConfig(ilTestQuestionSetConfig $testQuestionSetConfig)
const QUESTION_SET_TYPE_RANDOM
type setting value for random question set
needsParticipantsResultsSubTab()
isTabsConfigSetupRequired()
__construct(ilTestAccess $testAccess, ilTestObjectiveOrientedContainer $objectiveParent)
ilTestTabsManager constructor.
const TAB_ID_QUESTIONS
(Sub-)Tab ID constants
const TAB_ID_EXAM_DASHBOARD
const TAB_ID_MANUAL_SCORING
setParentBackHref($parentBackHref)
activateSubTab($subTabId)
setTestOBJ(ilObjTest $testOBJ)
const SUBTAB_ID_PARTICIPANTS_RESULTS
isPermissionsAccessGranted()
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
getDashbardParticipantsSubTabLabel()
GUI class for LTI provider object settings.
checkStatisticsTabAccess()
getBrowseForQuestionsTab()
const SUBTAB_ID_MY_RESULTS
static isSkillManagementGloballyActivated()
checkDashboardTabAccess()
const TAB_ID_LEARNING_PROGRESS
const SUBTAB_ID_HIGHSCORE
const SUBTAB_ID_SKILL_RESULTS
needsTimeExtensionSubTab()
const SUBTAB_ID_MY_SOLUTIONS
needsSkillResultsSubTab()
static _getManualScoring()
Retrieve the manual scoring settings.
const SUBTAB_ID_TIME_EXTENSION
const SUBTAB_ID_LO_RESULTS
const QUESTION_SET_TYPE_FIXED
type setting value for fixed question set
checkScoreParticipantsTabAccess()
setParentBackLabel($parentBackLabel)
setHiddenTabs($hiddenTabs)
const QUESTION_SET_TYPE_DYNAMIC
type setting value for dynamic question set (continues testing mode)
const SUBTAB_ID_QST_PAGE_VIEW
const CMD_SHOW_SKILL_QUEST_ASSIGNS
getTestQuestionSetConfig()
Settings template application class.
setTestSession($testSession)
const SUBTAB_ID_QST_LIST_VIEW