ILIAS  release_8 Revision v8.23
ilTestTabsManager Class Reference
+ Collaboration diagram for ilTestTabsManager:

Public Member Functions

 __construct (ilTestAccess $testAccess, ilTestObjectiveOrientedContainer $objectiveParent)
 ilTestTabsManager constructor. More...
 
 activateTab ($tabId)
 
 activateSubTab ($subTabId)
 
 getTestOBJ ()
 
 setTestOBJ (ilObjTest $testOBJ)
 
 getTestSession ()
 
 setTestSession ($testSession)
 
 getTestQuestionSetConfig ()
 
 setTestQuestionSetConfig (ilTestQuestionSetConfig $testQuestionSetConfig)
 
 getHiddenTabs ()
 
 setHiddenTabs ($hiddenTabs)
 
 resetHiddenTabs ()
 
 getParentBackLabel ()
 
 setParentBackLabel ($parentBackLabel)
 
 getParentBackHref ()
 
 setParentBackHref ($parentBackHref)
 
 hasParentBackLink ()
 
 initSettingsTemplate ()
 
 perform ()
 
 getQuestionsSubTabs ()
 
 getSettingsSubTabs ()
 
 getDashboardSubTabs ()
 
 needsMyResultsSubTab ()
 
 needsLoResultsSubTab ()
 
 needsParticipantsResultsSubTab ()
 
 needsHighSoreSubTab ()
 
 needsSkillResultsSubTab ()
 
 needsMySolutionsSubTab ()
 
 getResultsSubTabs ()
 

Data Fields

const TAB_ID_QUESTIONS = 'assQuestions'
 (Sub-)Tab ID constants More...
 
const SUBTAB_ID_QST_LIST_VIEW = 'qst_list_view'
 
const SUBTAB_ID_QST_PAGE_VIEW = 'qst_page_view'
 
const TAB_ID_INFOSCREEN = 'info_short'
 
const TAB_ID_SETTINGS = 'settings'
 
const SUBTAB_ID_GENERAL_SETTINGS = 'general'
 
const TAB_ID_LEARNING_PROGRESS = 'learning_progress'
 
const TAB_ID_MANUAL_SCORING = 'manscoring'
 
const TAB_ID_CORRECTION = 'scoringadjust'
 
const TAB_ID_STATISTICS = 'statistics'
 
const TAB_ID_HISTORY = 'history'
 
const TAB_ID_META_DATA = 'meta_data'
 
const TAB_ID_EXPORT = 'export'
 
const TAB_ID_PERMISSIONS = 'perm_settings'
 
const TAB_ID_EXAM_DASHBOARD = 'dashboard_tab'
 
const SUBTAB_ID_FIXED_PARTICIPANTS = 'fixedparticipants'
 
const SUBTAB_ID_TIME_EXTENSION = 'timeextension'
 
const TAB_ID_RESULTS = 'results'
 
const SUBTAB_ID_PARTICIPANTS_RESULTS = 'participantsresults'
 
const SUBTAB_ID_MY_RESULTS = 'myresults'
 
const SUBTAB_ID_LO_RESULTS = 'loresults'
 
const SUBTAB_ID_HIGHSCORE = 'highscore'
 
const SUBTAB_ID_SKILL_RESULTS = 'skillresults'
 
const SUBTAB_ID_MY_SOLUTIONS = 'mysolutions'
 

Protected Member Functions

 isHiddenTab ($tabId)
 
 isReadAccessGranted ()
 
 isWriteAccessGranted ()
 
 isStatisticsAccessGranted ()
 
 isPermissionsAccessGranted ()
 
 isLpAccessGranted ()
 
 checkDashboardTabAccess ()
 
 checkScoreParticipantsTabAccess ()
 
 checkStatisticsTabAccess ()
 
 isTabsConfigSetupRequired ()
 
 setupTabsGuiConfig ()
 
 getBrowseForQuestionsTab ()
 
 getRandomQuestionsTab ()
 
 getStatisticsSubTabs ()
 
 needsDashboardTab ()
 
 needsTimeExtensionSubTab ()
 
 getDashboardTabTarget ()
 
 getDashbardParticipantsSubTabLabel ()
 
 needsResultsTab ()
 
 getResultsTabTarget ()
 

Protected Attributes

 $tabs
 
 $access
 
 $testAccess
 
 $objectiveParent
 
 $lng
 
 $testOBJ
 
 $testSession
 
 $testQuestionSetConfig
 
 $parentBackHref
 
 $parentBackLabel
 
 $hiddenTabs
 

Private Attributes

ILIAS Test InternalRequestService $testrequest
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

ilTestTabsManager::__construct ( ilTestAccess  $testAccess,
ilTestObjectiveOrientedContainer  $objectiveParent 
)

ilTestTabsManager constructor.

Definition at line 118 of file class.ilTestTabsManager.php.

References $DIC, $objectiveParent, $testAccess, ILIAS\Repository\access(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

119  {
120  $this->testAccess = $testAccess;
121  $this->objectiveParent = $objectiveParent;
122 
123  global $DIC; /* @var ILIAS\DI\Container $DIC */
124  $this->testrequest = $DIC->test()->internal()->request();
125  $this->tabs = $DIC['ilTabs'];
126  $this->access = $DIC['ilAccess'];
127  $this->lng = $DIC['lng'];
128  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

Member Function Documentation

◆ activateSubTab()

ilTestTabsManager::activateSubTab (   $subTabId)
Parameters
string$subTabId

Definition at line 146 of file class.ilTestTabsManager.php.

References ILIAS\Repository\tabs().

147  {
148  switch ($subTabId) {
149  case self::SUBTAB_ID_FIXED_PARTICIPANTS:
150  case self::SUBTAB_ID_TIME_EXTENSION:
151 
152  case self::SUBTAB_ID_PARTICIPANTS_RESULTS:
153  case self::SUBTAB_ID_MY_RESULTS:
154  case self::SUBTAB_ID_LO_RESULTS:
155  case self::SUBTAB_ID_HIGHSCORE:
156  case self::SUBTAB_ID_SKILL_RESULTS:
157  case self::SUBTAB_ID_MY_SOLUTIONS:
158 
159  case self::SUBTAB_ID_QST_LIST_VIEW:
160  case self::SUBTAB_ID_QST_PAGE_VIEW:
161 
162  $this->tabs->activateSubTab($subTabId);
163  }
164  }
+ Here is the call graph for this function:

◆ activateTab()

ilTestTabsManager::activateTab (   $tabId)
Parameters
string$tabId

Definition at line 133 of file class.ilTestTabsManager.php.

References ILIAS\Repository\tabs().

134  {
135  switch ($tabId) {
136  case self::TAB_ID_EXAM_DASHBOARD:
137  case self::TAB_ID_RESULTS:
138 
139  $this->tabs->activateTab($tabId);
140  }
141  }
+ Here is the call graph for this function:

◆ checkDashboardTabAccess()

ilTestTabsManager::checkDashboardTabAccess ( )
protected
Returns
bool

Definition at line 357 of file class.ilTestTabsManager.php.

Referenced by needsDashboardTab().

357  : bool
358  {
359  if ($this->testAccess->checkManageParticipantsAccess()) {
360  return true;
361  }
362 
363  return false;
364  }
+ Here is the caller graph for this function:

◆ checkScoreParticipantsTabAccess()

ilTestTabsManager::checkScoreParticipantsTabAccess ( )
protected
Returns
bool

Definition at line 369 of file class.ilTestTabsManager.php.

Referenced by setupTabsGuiConfig().

369  : bool
370  {
371  return $this->testAccess->checkScoreParticipantsAccess();
372  }
+ Here is the caller graph for this function:

◆ checkStatisticsTabAccess()

ilTestTabsManager::checkStatisticsTabAccess ( )
protected
Returns
bool

Definition at line 377 of file class.ilTestTabsManager.php.

Referenced by setupTabsGuiConfig().

377  : bool
378  {
379  return $this->testAccess->checkStatisticsAccess();
380  }
+ Here is the caller graph for this function:

◆ getBrowseForQuestionsTab()

ilTestTabsManager::getBrowseForQuestionsTab ( )
protected

Definition at line 741 of file class.ilTestTabsManager.php.

References $DIC, isWriteAccessGranted(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

Referenced by setupTabsGuiConfig().

742  {
743  global $DIC; /* @var ILIAS\DI\Container $DIC */
744 
745  if ($this->isWriteAccessGranted()) {
746  $DIC->ctrl()->saveParameterByClass($DIC->ctrl()->getCmdClass(), 'q_id');
747  // edit page
748  $this->tabs->setBackTarget($this->lng->txt("backtocallingtest"), $DIC->ctrl()->getLinkTargetByClass($DIC->ctrl()->getCmdClass(), "questions"));
749  $this->tabs->addTarget(
750  "tst_browse_for_questions",
751  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', "browseForQuestions"),
752  array("browseForQuestions", "filter", "resetFilter", "resetTextFilter", "insertQuestions"),
753  "",
754  "",
755  true
756  );
757  }
758  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDashbardParticipantsSubTabLabel()

ilTestTabsManager::getDashbardParticipantsSubTabLabel ( )
protected

Definition at line 996 of file class.ilTestTabsManager.php.

References $DIC, and getTestOBJ().

Referenced by getDashboardSubTabs().

996  : string
997  {
998  global $DIC; /* @var \ILIAS\DI\Container $DIC */
999 
1000  if ($this->getTestOBJ()->getFixedParticipants()) {
1001  return $DIC->language()->txt('fixedparticipants_subtab');
1002  }
1003 
1004  return $DIC->language()->txt('autoparticipants_subtab');
1005  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDashboardSubTabs()

ilTestTabsManager::getDashboardSubTabs ( )

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

References $DIC, getDashbardParticipantsSubTabLabel(), needsTimeExtensionSubTab(), and ILIAS\Repository\tabs().

974  {
975  global $DIC; /* @var ILIAS\DI\Container $DIC */
976 
977  if (!$this->testAccess->checkManageParticipantsAccess()) {
978  return;
979  }
980 
981  $this->tabs->addSubTab(
982  self::SUBTAB_ID_FIXED_PARTICIPANTS,
984  $DIC->ctrl()->getLinkTargetByClass('ilTestParticipantsGUI')
985  );
986 
987  if ($this->needsTimeExtensionSubTab()) {
988  $this->tabs->addSubTab(
989  self::SUBTAB_ID_TIME_EXTENSION,
990  $DIC->language()->txt('timing'),
991  $DIC->ctrl()->getLinkTargetByClass('ilTestParticipantsTimeExtensionGUI')
992  );
993  }
994  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

◆ getDashboardTabTarget()

ilTestTabsManager::getDashboardTabTarget ( )
protected
Returns
string

Definition at line 966 of file class.ilTestTabsManager.php.

References $DIC.

Referenced by setupTabsGuiConfig().

966  : string
967  {
968  global $DIC; /* @var ILIAS\DI\Container $DIC */
969 
970  return $DIC->ctrl()->getLinkTargetByClass(array('ilTestDashboardGUI', 'ilTestParticipantsGUI'));
971  }
global $DIC
Definition: feed.php:28
+ Here is the caller graph for this function:

◆ getHiddenTabs()

ilTestTabsManager::getHiddenTabs ( )
Returns
array

Definition at line 217 of file class.ilTestTabsManager.php.

References $hiddenTabs.

Referenced by isHiddenTab().

217  : array
218  {
219  return $this->hiddenTabs;
220  }
+ Here is the caller graph for this function:

◆ getParentBackHref()

ilTestTabsManager::getParentBackHref ( )
Returns
null|string

Definition at line 257 of file class.ilTestTabsManager.php.

References $parentBackHref.

Referenced by hasParentBackLink(), and setupTabsGuiConfig().

257  : ?string
258  {
259  return $this->parentBackHref;
260  }
+ Here is the caller graph for this function:

◆ getParentBackLabel()

ilTestTabsManager::getParentBackLabel ( )
Returns
null|string

Definition at line 241 of file class.ilTestTabsManager.php.

References $parentBackLabel.

Referenced by hasParentBackLink(), and setupTabsGuiConfig().

241  : ?string
242  {
243  return $this->parentBackLabel;
244  }
+ Here is the caller graph for this function:

◆ getQuestionsSubTabs()

ilTestTabsManager::getQuestionsSubTabs ( )

Definition at line 777 of file class.ilTestTabsManager.php.

References $DIC, getTestOBJ(), isHiddenTab(), and ILIAS\Repository\tabs().

778  {
779  global $DIC; /* @var ILIAS\DI\Container $DIC */
780 
781  if ($this->testOBJ->isDynamicTest()) {
782  return;
783  }
784 
785  $this->tabs->activateTab(self::TAB_ID_QUESTIONS);
786 
787  /*
788  if (!$this->getTestOBJ()->isRandomTest()) {
789  $this->tabs->addSubTab(
790  self::SUBTAB_ID_QST_PAGE_VIEW,
791  $DIC->language()->txt('questions_per_page_view'),
792  $DIC->ctrl()->getLinkTargetByClass('iltestexpresspageobjectgui', 'showPage')
793  );
794  }
795  */
796 
797  //include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
798  //$template = new ilSettingsTemplate($this->getTestOBJ()->getTemplate(), ilObjAssessmentFolderGUI::getSettingsTemplateConfig());
799 
800  if (!$this->isHiddenTab('questions')) {
801  $this->tabs->addSubTab(
802  self::SUBTAB_ID_QST_LIST_VIEW,
803  $DIC->language()->txt('edit_test_questions'),
804  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', 'questions')
805  );
806  }
807 
808  // print view subtab
809  if (!$this->getTestOBJ()->isRandomTest()) {
810  $this->tabs->addSubTabTarget(
811  "print_view",
812  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', 'print'),
813  "print",
814  "",
815  "",
816  $DIC->ctrl()->getCmd() == 'print'
817  );
818  $this->tabs->addSubTabTarget(
819  'review_view',
820  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', 'review'),
821  'review',
822  '',
823  '',
824  $DIC->ctrl()->getCmd() == 'review'
825  );
826  }
827  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

◆ getRandomQuestionsTab()

ilTestTabsManager::getRandomQuestionsTab ( )
protected

Definition at line 760 of file class.ilTestTabsManager.php.

References $DIC, isWriteAccessGranted(), ILIAS\Repository\lng(), and ILIAS\Repository\tabs().

761  {
762  global $DIC; /* @var ILIAS\DI\Container $DIC */
763 
764  if ($this->isWriteAccessGranted()) {
765  // edit page
766  $this->tabs->setBackTarget($this->lng->txt("backtocallingtest"), $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', "questions"));
767  $this->tabs->addTarget(
768  "random_selection",
769  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', "randomQuestions"),
770  array("randomQuestions"),
771  "",
772  ""
773  );
774  }
775  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

◆ getResultsSubTabs()

ilTestTabsManager::getResultsSubTabs ( )

Definition at line 1102 of file class.ilTestTabsManager.php.

References $DIC, needsHighSoreSubTab(), needsLoResultsSubTab(), needsMyResultsSubTab(), needsMySolutionsSubTab(), needsParticipantsResultsSubTab(), needsSkillResultsSubTab(), and ILIAS\Repository\tabs().

1103  {
1104  global $DIC; /* @var ILIAS\DI\Container $DIC */
1105 
1106  if ($this->needsParticipantsResultsSubTab()) {
1107  $this->tabs->addSubTab(
1108  self::SUBTAB_ID_PARTICIPANTS_RESULTS,
1109  $DIC->language()->txt('participants_results_subtab'),
1110  $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilParticipantsTestResultsGUI'))
1111  );
1112  }
1113 
1114  if ($this->needsLoResultsSubTab()) {
1115  $this->tabs->addSubTab(
1116  self::SUBTAB_ID_LO_RESULTS,
1117  $DIC->language()->txt('tst_tab_results_objective_oriented'),
1118  $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilTestEvalObjectiveOrientedGUI'))
1119  );
1120  }
1121 
1122  if ($this->needsMyResultsSubTab()) {
1123  $myResultsLabel = $DIC->language()->txt('tst_show_results');
1124 
1125  if ($this->needsLoResultsSubTab()) {
1126  $myResultsLabel = $DIC->language()->txt('tst_tab_results_pass_oriented');
1127  }
1128 
1129  $this->tabs->addSubTab(
1130  self::SUBTAB_ID_MY_RESULTS,
1131  $myResultsLabel,
1132  $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilMyTestResultsGUI', 'ilTestEvaluationGUI'))
1133  // 'ilTestEvaluationGUI' => 'outUserResultsOverview'
1134  );
1135  }
1136 
1137  if ($this->needsSkillResultsSubTab()) {
1138  $this->tabs->addSubTab(
1139  self::SUBTAB_ID_SKILL_RESULTS,
1140  $DIC->language()->txt('tst_show_comp_results'),
1141  $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilTestSkillEvaluationGUI'))
1142  );
1143  }
1144 
1145  if ($this->needsHighSoreSubTab()) {
1146  $this->tabs->addSubTab(
1147  self::SUBTAB_ID_HIGHSCORE,
1148  $DIC->language()->txt('tst_show_toplist'),
1149  $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilTestToplistGUI'), 'outResultsToplist')
1150  );
1151  }
1152 
1153  if ($this->needsMySolutionsSubTab()) {
1154  $this->tabs->addSubTab(
1155  self::SUBTAB_ID_MY_SOLUTIONS,
1156  $DIC->language()->txt('tst_list_of_answers_show'),
1157  $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilMyTestSolutionsGUI', 'ilTestEvaluationGUI'))
1158  );
1159  }
1160  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:

◆ getResultsTabTarget()

ilTestTabsManager::getResultsTabTarget ( )
protected
Returns
string

Definition at line 1018 of file class.ilTestTabsManager.php.

References $DIC, needsLoResultsSubTab(), needsMyResultsSubTab(), needsMySolutionsSubTab(), and needsParticipantsResultsSubTab().

Referenced by setupTabsGuiConfig().

1018  : string
1019  {
1020  global $DIC; /* @var ILIAS\DI\Container $DIC */
1021 
1022  if ($this->needsParticipantsResultsSubTab()) {
1023  return $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilParticipantsTestResultsGUI'));
1024  }
1025 
1026  if ($this->needsLoResultsSubTab()) {
1027  return $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilTestEvalObjectiveOrientedGUI'));
1028  }
1029 
1030  if ($this->needsMyResultsSubTab()) {
1031  return $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilMyTestResultsGUI', 'ilTestEvaluationGUI'));
1032  }
1033 
1034  if ($this->needsMySolutionsSubTab()) {
1035  return $DIC->ctrl()->getLinkTargetByClass(array('ilTestResultsGUI', 'ilMyTestSolutionsGUI', 'ilTestEvaluationGUI'));
1036  }
1037 
1038  return $DIC->ctrl()->getLinkTargetByClass('ilTestResultsGUI');
1039  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSettingsSubTabs()

ilTestTabsManager::getSettingsSubTabs ( )

Definition at line 861 of file class.ilTestTabsManager.php.

References $DIC, isHiddenTab(), and ILIAS\Repository\tabs().

Referenced by setupTabsGuiConfig().

862  {
863  global $DIC; /* @var ILIAS\DI\Container $DIC */
864 
865  if ($this->testOBJ->isDynamicTest()) {
866  return;
867  }
868 
869  // general subtab
870  $this->tabs->addSubTabTarget(
871  'general',
872  $DIC->ctrl()->getLinkTargetByClass('ilObjTestSettingsGeneralGUI'),
873  '', // auto activation regardless from cmd
874  array('ilobjtestsettingsgeneralgui') // auto activation for ilObjTestSettingsGeneralGUI
875  );
876 
877  if (!$this->isHiddenTab('mark_schema')) {
878  $this->tabs->addSubTabTarget(
879  'mark_schema',
880  $DIC->ctrl()->getLinkTargetByClass('ilmarkschemagui', 'showMarkSchema'),
881  '',
882  array('ilmarkschemagui')
883  );
884  }
885 
886  // scoring subtab
887  $this->tabs->addSubTabTarget(
888  'scoring',
889  $DIC->ctrl()->getLinkTargetByClass('ilObjTestSettingsScoringResultsGUI'),
890  '', // auto activation regardless from cmd
891  array('ilobjtestsettingsscoringresultsgui') // auto activation for ilObjTestSettingsScoringResultsGUI
892  );
893 
894  // certificate subtab
895  $validator = new ilCertificateActiveValidator();
896  if (!$this->isHiddenTab('certificate') && true === $validator->validate()) {
897  $this->tabs->addSubTabTarget(
898  "certificate",
899  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', 'certificate'),
900  array("certificate", "certificateEditor", "certificateRemoveBackground", "certificateSave",
901  "certificatePreview", "certificateDelete", "certificateUpload", "certificateImport"),
902  array("", "ilobjtestgui", "ilcertificategui")
903  );
904  }
905 
906  if (!$this->isHiddenTab('defaults')) {
907  // defaults subtab
908  $this->tabs->addSubTabTarget(
909  "tst_default_settings",
910  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', "defaults"),
911  array("defaults", "deleteDefaults", "addDefaults", "applyDefaults"),
912  array("", "ilobjtestgui", "ilcertificategui")
913  );
914  }
915 
916  $lti_settings = new ilLTIProviderObjectSettingGUI($this->testOBJ->getRefId());
917  if ($lti_settings->hasSettingsAccess()) {
918  $this->tabs->addSubTabTarget(
919  'lti_provider',
920  $DIC->ctrl()->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class),
921  '',
922  [ilLTIProviderObjectSettingGUI::class]
923  );
924  }
925  }
global $DIC
Definition: feed.php:28
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getStatisticsSubTabs()

ilTestTabsManager::getStatisticsSubTabs ( )
protected

Definition at line 829 of file class.ilTestTabsManager.php.

References $DIC, and ILIAS\Repository\tabs().

Referenced by setupTabsGuiConfig().

830  {
831  global $DIC; /* @var ILIAS\DI\Container $DIC */
832 
833  // user results subtab
834  $this->tabs->addSubTabTarget(
835  "eval_all_users",
836  $DIC->ctrl()->getLinkTargetByClass("iltestevaluationgui", "outEvaluation"),
837  array("outEvaluation", "detailedEvaluation", "exportEvaluation", "evalUserDetail", "passDetails",
838  "outStatisticsResultsOverview", "statisticsPassDetails"),
839  ""
840  );
841 
842  // aggregated results subtab
843  $this->tabs->addSubTabTarget(
844  "tst_results_aggregated",
845  $DIC->ctrl()->getLinkTargetByClass("iltestevaluationgui", "eval_a"),
846  array("eval_a"),
847  "",
848  ""
849  );
850 
851  // question export
852  $this->tabs->addSubTabTarget(
853  "tst_single_results",
854  $DIC->ctrl()->getLinkTargetByClass("iltestevaluationgui", "singleResults"),
855  array("singleResults"),
856  "",
857  ""
858  );
859  }
global $DIC
Definition: feed.php:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTestOBJ()

◆ getTestQuestionSetConfig()

ilTestTabsManager::getTestQuestionSetConfig ( )
Returns
ilTestQuestionSetConfig

Definition at line 201 of file class.ilTestTabsManager.php.

References $testQuestionSetConfig.

Referenced by needsTimeExtensionSubTab(), and setupTabsGuiConfig().

+ Here is the caller graph for this function:

◆ getTestSession()

ilTestTabsManager::getTestSession ( )
Returns
ilTestSession

Definition at line 185 of file class.ilTestTabsManager.php.

References $testSession.

Referenced by needsMyResultsSubTab(), and needsMySolutionsSubTab().

+ Here is the caller graph for this function:

◆ hasParentBackLink()

ilTestTabsManager::hasParentBackLink ( )
Returns
null|string

Definition at line 273 of file class.ilTestTabsManager.php.

References getParentBackHref(), and getParentBackLabel().

Referenced by setupTabsGuiConfig().

274  {
275  if (!is_string($this->getParentBackHref()) || !strlen($this->getParentBackHref())) {
276  return false;
277  }
278 
279  if (!is_string($this->getParentBackLabel()) || !strlen($this->getParentBackLabel())) {
280  return false;
281  }
282 
283  return true;
284  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initSettingsTemplate()

ilTestTabsManager::initSettingsTemplate ( )

Definition at line 288 of file class.ilTestTabsManager.php.

References ilObjAssessmentFolderGUI\getSettingsTemplateConfig(), getTestOBJ(), resetHiddenTabs(), and setHiddenTabs().

289  {
290  $this->resetHiddenTabs();
291 
292  if ($this->getTestOBJ()->getTemplate()) {
293  require_once 'Services/Administration/classes/class.ilSettingsTemplate.php';
294 
295  $template = new ilSettingsTemplate(
296  $this->getTestOBJ()->getTemplate(),
298  );
299 
300  $this->setHiddenTabs($template->getHiddenTabs());
301  }
302  }
Settings template application class.
+ Here is the call graph for this function:

◆ isHiddenTab()

ilTestTabsManager::isHiddenTab (   $tabId)
protected
Parameters
string$tabId
Returns
bool

Definition at line 308 of file class.ilTestTabsManager.php.

References getHiddenTabs().

Referenced by getQuestionsSubTabs(), getSettingsSubTabs(), needsDashboardTab(), and setupTabsGuiConfig().

308  : bool
309  {
310  return in_array($tabId, $this->getHiddenTabs());
311  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isLpAccessGranted()

ilTestTabsManager::isLpAccessGranted ( )
protected
Returns
bool

Definition at line 348 of file class.ilTestTabsManager.php.

References ilLearningProgressAccess\checkAccess(), and getTestOBJ().

Referenced by setupTabsGuiConfig().

348  : bool
349  {
350  include_once 'Services/Tracking/classes/class.ilLearningProgressAccess.php';
351  return ilLearningProgressAccess::checkAccess($this->getTestOBJ()->getRefId());
352  }
static checkAccess(int $a_ref_id, bool $a_allow_only_read=true)
check access to learning progress
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isPermissionsAccessGranted()

ilTestTabsManager::isPermissionsAccessGranted ( )
protected
Returns
bool

Definition at line 340 of file class.ilTestTabsManager.php.

References ILIAS\Repository\access(), and getTestOBJ().

Referenced by setupTabsGuiConfig().

340  : bool
341  {
342  return $this->access->checkAccess('edit_permission', '', $this->getTestOBJ()->getRefId());
343  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isReadAccessGranted()

ilTestTabsManager::isReadAccessGranted ( )
protected
Returns
bool

Definition at line 316 of file class.ilTestTabsManager.php.

References ILIAS\Repository\access(), and getTestOBJ().

Referenced by setupTabsGuiConfig().

316  : bool
317  {
318  return $this->access->checkAccess('read', '', $this->getTestOBJ()->getRefId());
319  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isStatisticsAccessGranted()

ilTestTabsManager::isStatisticsAccessGranted ( )
protected
Returns
bool

Definition at line 332 of file class.ilTestTabsManager.php.

References ILIAS\Repository\access(), and getTestOBJ().

332  : bool
333  {
334  return $this->access->checkAccess('tst_statistics', '', $this->getTestOBJ()->getRefId());
335  }
+ Here is the call graph for this function:

◆ isTabsConfigSetupRequired()

ilTestTabsManager::isTabsConfigSetupRequired ( )
protected

Definition at line 391 of file class.ilTestTabsManager.php.

References $DIC.

Referenced by perform().

391  : bool
392  {
393  global $DIC; /* @var ILIAS\DI\Container $DIC */
394 
395  if (preg_match('/^ass(.*?)gui$/i', $DIC->ctrl()->getNextClass($this))) {
396  return false;
397  }
398 
399  if ($DIC->ctrl()->getNextClass($this) == 'ilassquestionpagegui') {
400  return false;
401  }
402 
403  if ($DIC->ctrl()->getCmdClass() == 'iltestoutputgui') {
404  return false;
405  }
406 
407  if ($DIC->ctrl()->getCmdClass() == 'iltestevaluationgui') {
408  return in_array($DIC->ctrl()->getCmd(), array(
409  '', 'outUserResultsPassOverview', 'outUserListOfAnswerPasses', 'outEvaluation', 'eval_a', 'singleResults', 'detailedEvaluation'
410  ));
411  }
412 
413  return true;
414  }
global $DIC
Definition: feed.php:28
+ Here is the caller graph for this function:

◆ isWriteAccessGranted()

ilTestTabsManager::isWriteAccessGranted ( )
protected
Returns
bool

Definition at line 324 of file class.ilTestTabsManager.php.

References ILIAS\Repository\access(), and getTestOBJ().

Referenced by getBrowseForQuestionsTab(), getRandomQuestionsTab(), and setupTabsGuiConfig().

324  : bool
325  {
326  return $this->access->checkAccess('write', '', $this->getTestOBJ()->getRefId());
327  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsDashboardTab()

ilTestTabsManager::needsDashboardTab ( )
protected
Returns
bool

Definition at line 930 of file class.ilTestTabsManager.php.

References checkDashboardTabAccess(), and isHiddenTab().

Referenced by setupTabsGuiConfig().

930  : bool
931  {
932  if ($this->isHiddenTab(self::TAB_ID_EXAM_DASHBOARD)) {
933  return false;
934  }
935 
936  if (!$this->checkDashboardTabAccess()) {
937  return false;
938  }
939 
940  return true;
941  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsHighSoreSubTab()

ilTestTabsManager::needsHighSoreSubTab ( )
Returns
bool

Definition at line 1076 of file class.ilTestTabsManager.php.

References getTestOBJ(), and needsMyResultsSubTab().

Referenced by getResultsSubTabs().

1076  : bool
1077  {
1078  if (!$this->needsMyResultsSubTab()) {
1079  return false;
1080  }
1081 
1082  return $this->getTestOBJ()->getHighscoreEnabled();
1083  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsLoResultsSubTab()

ilTestTabsManager::needsLoResultsSubTab ( )
Returns
bool

Definition at line 1052 of file class.ilTestTabsManager.php.

References needsMyResultsSubTab().

Referenced by getResultsSubTabs(), and getResultsTabTarget().

1052  : bool
1053  {
1054  if (!$this->needsMyResultsSubTab()) {
1055  return false;
1056  }
1057 
1058  return $this->objectiveParent->isObjectiveOrientedPresentationRequired();
1059  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsMyResultsSubTab()

ilTestTabsManager::needsMyResultsSubTab ( )
Returns
bool

Definition at line 1044 of file class.ilTestTabsManager.php.

References getTestOBJ(), and getTestSession().

Referenced by getResultsSubTabs(), getResultsTabTarget(), needsHighSoreSubTab(), needsLoResultsSubTab(), and needsSkillResultsSubTab().

1044  : bool
1045  {
1046  return $this->getTestSession()->reportableResultsAvailable($this->getTestOBJ());
1047  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsMySolutionsSubTab()

ilTestTabsManager::needsMySolutionsSubTab ( )

Definition at line 1097 of file class.ilTestTabsManager.php.

References getTestOBJ(), and getTestSession().

Referenced by getResultsSubTabs(), getResultsTabTarget(), and needsResultsTab().

1097  : bool
1098  {
1099  return $this->getTestOBJ()->canShowSolutionPrintview($this->getTestSession()->getUserId());
1100  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsParticipantsResultsSubTab()

ilTestTabsManager::needsParticipantsResultsSubTab ( )
Returns
bool

Definition at line 1064 of file class.ilTestTabsManager.php.

Referenced by getResultsSubTabs(), getResultsTabTarget(), and needsResultsTab().

1064  : bool
1065  {
1066  if ($this->testAccess->checkParticipantsResultsAccess()) {
1067  return true;
1068  }
1069 
1070  return false;
1071  }
+ Here is the caller graph for this function:

◆ needsResultsTab()

ilTestTabsManager::needsResultsTab ( )
protected
Returns
bool

Definition at line 1010 of file class.ilTestTabsManager.php.

References needsMySolutionsSubTab(), and needsParticipantsResultsSubTab().

Referenced by setupTabsGuiConfig().

1010  : bool
1011  {
1012  return $this->needsParticipantsResultsSubTab() || $this->testOBJ->isScoreReportingEnabled() || $this->needsMySolutionsSubTab();
1013  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsSkillResultsSubTab()

ilTestTabsManager::needsSkillResultsSubTab ( )
Returns
bool

Definition at line 1088 of file class.ilTestTabsManager.php.

References getTestOBJ(), and needsMyResultsSubTab().

Referenced by getResultsSubTabs().

1088  : bool
1089  {
1090  if (!$this->needsMyResultsSubTab()) {
1091  return false;
1092  }
1093 
1094  return $this->getTestOBJ()->isSkillServiceToBeConsidered();
1095  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ needsTimeExtensionSubTab()

ilTestTabsManager::needsTimeExtensionSubTab ( )
protected
Returns
bool

Definition at line 946 of file class.ilTestTabsManager.php.

References getTestOBJ(), and getTestQuestionSetConfig().

Referenced by getDashboardSubTabs().

946  : bool
947  {
948  if (!($this->getTestOBJ()->getProcessingTimeInSeconds() > 0)) {
949  return false;
950  }
951 
952  if ($this->getTestOBJ()->getNrOfTries() != 1) {
953  return false;
954  }
955 
956  if ($this->getTestQuestionSetConfig()->areDepenciesBroken()) {
957  return false;
958  }
959 
960  return true;
961  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ perform()

ilTestTabsManager::perform ( )

Definition at line 384 of file class.ilTestTabsManager.php.

References isTabsConfigSetupRequired(), and setupTabsGuiConfig().

385  {
386  if ($this->isTabsConfigSetupRequired()) {
387  $this->setupTabsGuiConfig();
388  }
389  }
+ Here is the call graph for this function:

◆ resetHiddenTabs()

ilTestTabsManager::resetHiddenTabs ( )
Parameters
array$hiddenTabs

Definition at line 233 of file class.ilTestTabsManager.php.

Referenced by initSettingsTemplate().

234  {
235  $this->hiddenTabs = array();
236  }
+ Here is the caller graph for this function:

◆ setHiddenTabs()

ilTestTabsManager::setHiddenTabs (   $hiddenTabs)
Parameters
array$hiddenTabs

Definition at line 225 of file class.ilTestTabsManager.php.

References $hiddenTabs.

Referenced by initSettingsTemplate().

226  {
227  $this->hiddenTabs = $hiddenTabs;
228  }
+ Here is the caller graph for this function:

◆ setParentBackHref()

ilTestTabsManager::setParentBackHref (   $parentBackHref)
Parameters
null | string$parentBackHref

Definition at line 265 of file class.ilTestTabsManager.php.

References $parentBackHref.

266  {
267  $this->parentBackHref = $parentBackHref;
268  }

◆ setParentBackLabel()

ilTestTabsManager::setParentBackLabel (   $parentBackLabel)
Parameters
null | string$parentBackLabel

Definition at line 249 of file class.ilTestTabsManager.php.

References $parentBackLabel.

250  {
251  $this->parentBackLabel = $parentBackLabel;
252  }

◆ setTestOBJ()

ilTestTabsManager::setTestOBJ ( ilObjTest  $testOBJ)
Parameters
ilObjTest$testOBJ

Definition at line 177 of file class.ilTestTabsManager.php.

References $testOBJ.

178  {
179  $this->testOBJ = $testOBJ;
180  }

◆ setTestQuestionSetConfig()

ilTestTabsManager::setTestQuestionSetConfig ( ilTestQuestionSetConfig  $testQuestionSetConfig)
Parameters
ilTestQuestionSetConfig$testQuestionSetConfig

Definition at line 209 of file class.ilTestTabsManager.php.

References $testQuestionSetConfig.

210  {
211  $this->testQuestionSetConfig = $testQuestionSetConfig;
212  }

◆ setTestSession()

ilTestTabsManager::setTestSession (   $testSession)
Parameters
ilTestSession$testSession

Definition at line 193 of file class.ilTestTabsManager.php.

References $testSession.

194  {
195  $this->testSession = $testSession;
196  }

◆ setupTabsGuiConfig()

ilTestTabsManager::setupTabsGuiConfig ( )
protected

Definition at line 416 of file class.ilTestTabsManager.php.

References $DIC, $name, ilObjAssessmentFolder\_getManualScoring(), checkScoreParticipantsTabAccess(), checkStatisticsTabAccess(), ilAssQuestionSkillAssignmentsGUI\CMD_SHOW_SKILL_QUEST_ASSIGNS, getBrowseForQuestionsTab(), getDashboardTabTarget(), getParentBackHref(), getParentBackLabel(), getResultsTabTarget(), getSettingsSubTabs(), getStatisticsSubTabs(), getTestOBJ(), getTestQuestionSetConfig(), hasParentBackLink(), isHiddenTab(), isLpAccessGranted(), isPermissionsAccessGranted(), isReadAccessGranted(), isWriteAccessGranted(), needsDashboardTab(), needsResultsTab(), and ILIAS\Repository\tabs().

Referenced by perform().

417  {
418  global $DIC; /* @var ILIAS\DI\Container $DIC */
419 
420  if ($this->hasParentBackLink()) {
421  $this->tabs->setBack2Target($this->getParentBackLabel(), $this->getParentBackHref());
422  }
423 
424  switch (strtolower($DIC->ctrl()->getCmdClass())) {
425  case 'ilmarkschemagui':
426  case 'ilobjtestsettingsgeneralgui':
427  case 'ilobjtestsettingsscoringresultsgui':
428 
429  if ($this->isWriteAccessGranted()) {
430  $this->getSettingsSubTabs();
431  }
432 
433  break;
434  }
435 
436  switch ($DIC->ctrl()->getCmd()) {
437  case "resume":
438  case "previous":
439  case "next":
440  case "summary":
441  case "directfeedback":
442  case "finishTest":
443  case "outCorrectSolution":
444  case "passDetails":
445  case "showAnswersOfUser":
446  case "backFromSummary":
447  case "show_answers":
448  case "setsolved":
449  case "resetsolved":
450  case "confirmFinish":
451  case "outTestSummary":
452  case "outQuestionSummary":
453  case "gotoQuestion":
454  case "selectImagemapRegion":
455  case "confirmSubmitAnswers":
456  case "finalSubmission":
457  case "postpone":
458  case "outUserPassDetails":
459  case "checkPassword":
460  case "exportCertificate":
461  case "finishListOfAnswers":
462  case "backConfirmFinish":
463  case "showFinalStatement":
464  return;
465  break;
466  case "browseForQuestions":
467  case "filter":
468  case "resetFilter":
469  case "resetTextFilter":
470  case "insertQuestions":
471  $classes = array(
472  'iltestdashboardgui',
473  'iltestresultsgui',
474  "illearningprogressgui" // #8497: resetfilter is also used in lp
475  );
476  if (!in_array($DIC->ctrl()->getNextClass($this), $classes)) {
477  $this->getBrowseForQuestionsTab();
478  return;
479  }
480  break;
481  case "scoring":
482  case "certificate":
483  case "certificateservice":
484  case "certificateImport":
485  case "certificateUpload":
486  case "certificateEditor":
487  case "certificateDelete":
488  case "certificateSave":
489  case "defaults":
490  case "deleteDefaults":
491  case "addDefaults":
492  case "applyDefaults":
493  case "inviteParticipants":
494  case "searchParticipants":
495  if ($this->isWriteAccessGranted() && in_array(strtolower($DIC->ctrl()->getCmdClass()), array('ilobjtestgui', 'ilcertificategui'))) {
496  $this->getSettingsSubTabs();
497  }
498  break;
499  case "export":
500  case "print":
501  break;
502  case "statistics":
503  case "eval_a":
504  case "detailedEvaluation":
505  case "outEvaluation":
506  case "singleResults":
507  case "exportEvaluation":
508  case "evalUserDetail":
509  case "outStatisticsResultsOverview":
510  case "statisticsPassDetails":
511  $this->getStatisticsSubTabs();
512  break;
513  }
514 
515  // questions tab
516  if ($this->isWriteAccessGranted() && !$this->isHiddenTab('assQuestions')) {
517  $force_active = ($this->testrequest->raw("up") != "" || $this->testrequest->raw("down") != "")
518  ? true
519  : false;
520  if (!$force_active) {
521  if ($this->testrequest->raw("browse") == 1) {
522  $force_active = true;
523  }
524  }
525 
526  if ($this->getTestOBJ()->isFixedTest()) {
527  $target = $DIC->ctrl()->getLinkTargetByClass(
528  'ilObjTestGUI',
529  'questions'
530  );
531  }
532 
533  if ($this->getTestOBJ()->isRandomTest()) {
534  $target = $DIC->ctrl()->getLinkTargetByClass('ilTestRandomQuestionSetConfigGUI');
535  }
536 
537  if ($this->getTestOBJ()->isDynamicTest()) {
538  $target = $DIC->ctrl()->getLinkTargetByClass('ilObjTestDynamicQuestionSetConfigGUI');
539  }
540 
541  $this->tabs->addTarget(
542  "assQuestions",
543  $target,
544  array("questions", "browseForQuestions", "questionBrowser", "createQuestion",
545  "randomselect", "filter", "resetFilter", "insertQuestions",
546  "back", "createRandomSelection", "cancelRandomSelect",
547  "insertRandomSelection", "removeQuestions", "moveQuestions",
548  "insertQuestionsBefore", "insertQuestionsAfter", "confirmRemoveQuestions",
549  "cancelRemoveQuestions", "executeCreateQuestion", "cancelCreateQuestion",
550  "addQuestionpool", "saveRandomQuestions", "saveQuestionSelectionMode", "print",
551  "addsource", "removesource", "randomQuestions"),
552  "",
553  "",
554  $force_active
555  );
556  }
557 
558  // info tab
559  if ($this->isReadAccessGranted() && !$this->isHiddenTab('info_short')) {
560  $this->tabs->addTarget(
561  "info_short",
562  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', 'infoScreen'),
563  array("infoScreen", "outIntroductionPage", "showSummary",
564  "setAnonymousId", "redirectToInfoScreen")
565  );
566  }
567 
568  // settings tab
569  if ($this->isWriteAccessGranted()) {
570  if (!$this->isHiddenTab('settings')) {
571  $settingsCommands = array(
572  "marks", "showMarkSchema","addMarkStep", "deleteMarkSteps", "resetToSimpleMarkSchema", "saveMarks",
573  "certificate", "certificateEditor", "certificateRemoveBackground", "certificateSave",
574  "certificatePreview", "certificateDelete", "certificateUpload", "certificateImport",
575  "scoring", "defaults", "addDefaults", "deleteDefaults", "applyDefaults",
576  "inviteParticipants", "saveFixedParticipantsStatus", "searchParticipants", "addParticipants" // ARE THEY RIGHT HERE
577  );
578 
579  require_once 'Modules/Test/classes/class.ilObjTestSettingsGeneralGUI.php';
580  $reflection = new ReflectionClass('ilObjTestSettingsGeneralGUI');
581  foreach ($reflection->getConstants() as $name => $value) {
582  if (substr($name, 0, 4) == 'CMD_') {
583  $settingsCommands[] = $value;
584  }
585  }
586 
587  require_once 'Modules/Test/classes/class.ilObjTestSettingsScoringResultsGUI.php';
588  $reflection = new ReflectionClass('ilObjTestSettingsScoringResultsGUI');
589  foreach ($reflection->getConstants() as $name => $value) {
590  if (substr($name, 0, 4) == 'CMD_') {
591  $settingsCommands[] = $value;
592  }
593  }
594 
595  $settingsCommands[] = ""; // DO NOT KNOW WHAT THIS IS DOING, BUT IT'S REQUIRED
596 
597  $this->tabs->addTarget(
598  "settings",
599  $DIC->ctrl()->getLinkTargetByClass('ilObjTestSettingsGeneralGUI'),
600  $settingsCommands,
601  array("ilmarkschemagui", "ilobjtestsettingsgeneralgui", "ilobjtestsettingsscoringresultsgui", "ilobjtestgui", "ilcertificategui")
602  );
603  }
604 
605  // skill service
606  if ($this->getTestOBJ()->isSkillServiceToBeConsidered()) {
607  require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionSkillAssignmentsGUI.php';
608 
609  $link = $DIC->ctrl()->getLinkTargetByClass(
610  array('ilTestSkillAdministrationGUI', 'ilAssQuestionSkillAssignmentsGUI'),
612  );
613 
614  $this->tabs->addTarget('tst_tab_competences', $link, array(), array());
615  }
616  }
617 
618  if ($this->needsDashboardTab()) {
619  $this->tabs->addTab(
620  self::TAB_ID_EXAM_DASHBOARD,
621  $DIC->language()->txt('dashboard_tab'),
622  $this->getDashboardTabTarget()
623  );
624  }
625 
626  if ($this->needsResultsTab()) {
627  $this->tabs->addTab(
628  self::TAB_ID_RESULTS,
629  $DIC->language()->txt('results_tab'),
630  $this->getResultsTabTarget()
631  );
632  }
633 
634  if ($this->isLpAccessGranted() && !$this->isHiddenTab(self::TAB_ID_LEARNING_PROGRESS)) {
635  $this->tabs->addTarget(
636  self::TAB_ID_LEARNING_PROGRESS,
637  $DIC->ctrl()->getLinkTargetByClass(array('illearningprogressgui'), ''),
638  '',
639  array('illplistofobjectsgui','illplistofsettingsgui','illearningprogressgui','illplistofprogressgui')
640  );
641  }
642 
643  if ($this->checkScoreParticipantsTabAccess() && !$this->isHiddenTab(self::TAB_ID_MANUAL_SCORING)) {
644  include_once "./Modules/Test/classes/class.ilObjAssessmentFolder.php";
646  if (count($scoring)) {
647  // scoring tab
648  $this->tabs->addTarget(
649  self::TAB_ID_MANUAL_SCORING,
650  $DIC->ctrl()->getLinkTargetByClass('ilTestScoringByQuestionsGUI', 'showManScoringByQuestionParticipantsTable'),
651  array(
652  'showManScoringParticipantsTable', 'applyManScoringParticipantsFilter', 'resetManScoringParticipantsFilter', 'showManScoringParticipantScreen',
653  'showManScoringByQuestionParticipantsTable', 'applyManScoringByQuestionFilter', 'resetManScoringByQuestionFilter', 'saveManScoringByQuestion'
654 
655  ),
656  ''
657  );
658  }
659  }
660 
661  // NEW CORRECTIONS TAB
662  $setting = new ilSetting('assessment');
663  $scoring_adjust_active = (bool) $setting->get('assessment_adjustments_enabled', '0');
664  if ($this->isWriteAccessGranted() && $scoring_adjust_active && !$this->isHiddenTab(self::TAB_ID_CORRECTION)) {
665  $this->tabs->addTab(
666  self::TAB_ID_CORRECTION,
667  $DIC->language()->txt(self::TAB_ID_CORRECTION),
668  $DIC->ctrl()->getLinkTargetByClass('ilTestCorrectionsGUI')
669  );
670  }
671 
672  if ($this->checkStatisticsTabAccess() && !$this->isHiddenTab(self::TAB_ID_STATISTICS)) {
673  // statistics tab
674  $this->tabs->addTarget(
675  self::TAB_ID_STATISTICS,
676  $DIC->ctrl()->getLinkTargetByClass([ilRepositoryGUI::class, ilObjTestGUI::class, ilTestEvaluationGUI::class], "outEvaluation"),
677  array(
678  "statistics", "outEvaluation", "exportEvaluation", "detailedEvaluation", "eval_a", "evalUserDetail",
679  "passDetails", "outStatisticsResultsOverview", "statisticsPassDetails", "singleResults"
680  ),
681  ""
682  );
683  }
684 
685  if ($this->isWriteAccessGranted()) {
686  if (!$this->isHiddenTab(self::TAB_ID_HISTORY)) {
687 
688  // history
689  $this->tabs->addTarget(
690  self::TAB_ID_HISTORY,
691  $DIC->ctrl()->getLinkTargetByClass('ilObjTestGUI', 'history'),
692  "history",
693  ""
694  );
695  }
696 
697  if (!$this->isHiddenTab(self::TAB_ID_META_DATA)) {
698  // meta data
699  include_once "Services/Object/classes/class.ilObjectMetaDataGUI.php";
700  $mdgui = new ilObjectMetaDataGUI($this->getTestOBJ());
701  $mdtab = $mdgui->getTab();
702  if ($mdtab) {
703  $this->tabs->addTarget(
704  self::TAB_ID_META_DATA,
705  $mdtab,
706  "",
707  "ilmdeditorgui"
708  );
709  }
710  }
711 
712  if (!$this->isHiddenTab(self::TAB_ID_EXPORT)) {
713  // export tab
714  $this->tabs->addTarget(
715  self::TAB_ID_EXPORT,
716  $DIC->ctrl()->getLinkTargetByClass('iltestexportgui', ''),
717  '',
718  array('iltestexportgui')
719  );
720  }
721  }
722 
723  if ($this->isPermissionsAccessGranted() && !$this->isHiddenTab(self::TAB_ID_PERMISSIONS)) {
724  $this->tabs->addTarget(
725  self::TAB_ID_PERMISSIONS,
726  $DIC->ctrl()->getLinkTargetByClass(array('ilObjTestGUI','ilpermissiongui'), "perm"),
727  array("perm","info","owner"),
728  'ilpermissiongui'
729  );
730  }
731 
732  if ($this->getTestQuestionSetConfig()->areDepenciesBroken()) {
733  $hideTabs = $this->getTestQuestionSetConfig()->getHiddenTabsOnBrokenDepencies();
734 
735  foreach ($hideTabs as $tabId) {
736  $this->tabs->removeTab($tabId);
737  }
738  }
739  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: feed.php:28
if($format !==null) $name
Definition: metadata.php:247
static _getManualScoring()
Retrieve the manual scoring settings.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $access

ilTestTabsManager::$access
protected

Definition at line 68 of file class.ilTestTabsManager.php.

◆ $hiddenTabs

ilTestTabsManager::$hiddenTabs
protected

Definition at line 113 of file class.ilTestTabsManager.php.

Referenced by getHiddenTabs(), and setHiddenTabs().

◆ $lng

ilTestTabsManager::$lng
protected

Definition at line 83 of file class.ilTestTabsManager.php.

◆ $objectiveParent

ilTestTabsManager::$objectiveParent
protected

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

Referenced by __construct().

◆ $parentBackHref

ilTestTabsManager::$parentBackHref
protected

Definition at line 103 of file class.ilTestTabsManager.php.

Referenced by getParentBackHref(), and setParentBackHref().

◆ $parentBackLabel

ilTestTabsManager::$parentBackLabel
protected

Definition at line 108 of file class.ilTestTabsManager.php.

Referenced by getParentBackLabel(), and setParentBackLabel().

◆ $tabs

ilTestTabsManager::$tabs
protected

Definition at line 63 of file class.ilTestTabsManager.php.

◆ $testAccess

ilTestTabsManager::$testAccess
protected

Definition at line 73 of file class.ilTestTabsManager.php.

Referenced by __construct().

◆ $testOBJ

ilTestTabsManager::$testOBJ
protected

Definition at line 88 of file class.ilTestTabsManager.php.

Referenced by getTestOBJ(), and setTestOBJ().

◆ $testQuestionSetConfig

ilTestTabsManager::$testQuestionSetConfig
protected

◆ $testrequest

ILIAS Test InternalRequestService ilTestTabsManager::$testrequest
private

Definition at line 58 of file class.ilTestTabsManager.php.

◆ $testSession

ilTestTabsManager::$testSession
protected

Definition at line 93 of file class.ilTestTabsManager.php.

Referenced by getTestSession(), and setTestSession().

◆ SUBTAB_ID_FIXED_PARTICIPANTS

const ilTestTabsManager::SUBTAB_ID_FIXED_PARTICIPANTS = 'fixedparticipants'

◆ SUBTAB_ID_GENERAL_SETTINGS

const ilTestTabsManager::SUBTAB_ID_GENERAL_SETTINGS = 'general'

◆ SUBTAB_ID_HIGHSCORE

const ilTestTabsManager::SUBTAB_ID_HIGHSCORE = 'highscore'

◆ SUBTAB_ID_LO_RESULTS

const ilTestTabsManager::SUBTAB_ID_LO_RESULTS = 'loresults'

◆ SUBTAB_ID_MY_RESULTS

const ilTestTabsManager::SUBTAB_ID_MY_RESULTS = 'myresults'

◆ SUBTAB_ID_MY_SOLUTIONS

const ilTestTabsManager::SUBTAB_ID_MY_SOLUTIONS = 'mysolutions'

◆ SUBTAB_ID_PARTICIPANTS_RESULTS

const ilTestTabsManager::SUBTAB_ID_PARTICIPANTS_RESULTS = 'participantsresults'

◆ SUBTAB_ID_QST_LIST_VIEW

◆ SUBTAB_ID_QST_PAGE_VIEW

const ilTestTabsManager::SUBTAB_ID_QST_PAGE_VIEW = 'qst_page_view'

◆ SUBTAB_ID_SKILL_RESULTS

const ilTestTabsManager::SUBTAB_ID_SKILL_RESULTS = 'skillresults'

◆ SUBTAB_ID_TIME_EXTENSION

const ilTestTabsManager::SUBTAB_ID_TIME_EXTENSION = 'timeextension'

◆ TAB_ID_CORRECTION

const ilTestTabsManager::TAB_ID_CORRECTION = 'scoringadjust'

◆ TAB_ID_EXAM_DASHBOARD

const ilTestTabsManager::TAB_ID_EXAM_DASHBOARD = 'dashboard_tab'

◆ TAB_ID_EXPORT

const ilTestTabsManager::TAB_ID_EXPORT = 'export'

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

Referenced by ilObjTestGUI\executeCommand().

◆ TAB_ID_HISTORY

const ilTestTabsManager::TAB_ID_HISTORY = 'history'

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

Referenced by ilObjTestGUI\historyObject().

◆ TAB_ID_INFOSCREEN

const ilTestTabsManager::TAB_ID_INFOSCREEN = 'info_short'

Definition at line 35 of file class.ilTestTabsManager.php.

Referenced by ilObjTestGUI\infoScreen().

◆ TAB_ID_LEARNING_PROGRESS

const ilTestTabsManager::TAB_ID_LEARNING_PROGRESS = 'learning_progress'

Definition at line 38 of file class.ilTestTabsManager.php.

Referenced by ilObjTestGUI\executeCommand().

◆ TAB_ID_MANUAL_SCORING

const ilTestTabsManager::TAB_ID_MANUAL_SCORING = 'manscoring'

◆ TAB_ID_META_DATA

const ilTestTabsManager::TAB_ID_META_DATA = 'meta_data'

Definition at line 43 of file class.ilTestTabsManager.php.

Referenced by ilObjTestGUI\executeCommand().

◆ TAB_ID_PERMISSIONS

const ilTestTabsManager::TAB_ID_PERMISSIONS = 'perm_settings'

Definition at line 45 of file class.ilTestTabsManager.php.

Referenced by ilObjTestGUI\executeCommand().

◆ TAB_ID_QUESTIONS

const ilTestTabsManager::TAB_ID_QUESTIONS = 'assQuestions'

(Sub-)Tab ID constants

Definition at line 31 of file class.ilTestTabsManager.php.

◆ TAB_ID_RESULTS

const ilTestTabsManager::TAB_ID_RESULTS = 'results'

◆ TAB_ID_SETTINGS

◆ TAB_ID_STATISTICS

const ilTestTabsManager::TAB_ID_STATISTICS = 'statistics'

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