4 require_once
'Modules/Test/classes/class.ilTestPlayerAbstractGUI.php';
54 $ilPluginAdmin = $DIC[
'ilPluginAdmin'];
55 $ilTabs = $DIC[
'ilTabs'];
58 $ilTabs->clearTargets();
60 $this->ctrl->saveParameter($this,
"sequence");
61 $this->ctrl->saveParameter($this,
"active_id");
65 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(
67 $this->object->getKioskMode()
70 require_once
'Modules/Test/classes/class.ilObjTestDynamicQuestionSetConfig.php';
72 $this->dynamicQuestionSetConfig->loadFromDb();
82 $this->testSequence = $testSequenceFactory->getSequenceByTestSession($this->testSession);
83 $this->testSequence->loadFromDb();
85 if ($this->object->isInstantFeedbackAnswerFixationEnabled()) {
86 $this->testSequence->setPreventCheckedQuestionsFromComingUpEnabled(
true);
89 include_once
'Services/jQuery/classes/class.iljQueryUtil.php';
91 include_once
"./Services/YUI/classes/class.ilYuiUtil.php";
93 if ($this->object->getKioskMode()) {
94 include_once
'Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php';
100 $cmd = $this->ctrl->getCmd();
101 $nextClass = $this->ctrl->getNextClass($this);
103 switch ($nextClass) {
104 case 'ilassquestionpagegui':
106 $questionId = $this->testSession->getCurrentQuestionId();
108 require_once
"./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php";
110 $ret = $this->ctrl->forwardCommand($page_gui);
113 case 'ilassquestionhintrequestgui':
115 $this->ctrl->saveParameter($this,
'pmode');
117 $questionGUI = $this->
object->createQuestionGUI(
119 $this->testSession->getCurrentQuestionId()
122 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionHintTracking.php';
124 $questionGUI->object->getId(),
125 $this->testSession->getActiveId(),
126 $this->testSession->getPass()
129 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestGUI.php';
134 $questionHintTracking
140 $this->ctrl->forwardCommand($gui);
144 case 'ildynamicquestionsetstatistictablegui':
150 case 'iltestpasswordprotectiongui':
151 require_once
'Modules/Test/classes/class.ilTestPasswordProtectionGUI.php';
153 $ret = $this->ctrl->forwardCommand($gui);
159 $ret = &$this->$cmd();
171 return $this->testSession->getCurrentQuestionId();
179 if ($this->object->checkMaximumAllowedUsers() ==
false) {
185 if ($this->dynamicQuestionSetConfig->isAnyQuestionFilterEnabled()) {
194 $this->testSession->setCurrentQuestionId(null);
196 $this->testSession->saveToDb();
198 $this->ctrl->setParameter($this,
'active_id', $this->testSession->getActiveId());
200 assQuestion::_updateTestPassResults($this->testSession->getActiveId(), $this->testSession->getPass(),
false, null, $this->
object->id);
202 $_SESSION[
'active_time_id'] = $this->
object->startWorkingTime(
203 $this->testSession->getActiveId(),
204 $this->testSession->getPass()
207 $this->ctrl->saveParameter($this,
'tst_javascript');
209 if ($this->dynamicQuestionSetConfig->isAnyQuestionFilterEnabled()) {
220 $this->testSequence->loadQuestions(
221 $this->dynamicQuestionSetConfig,
222 $this->testSession->getQuestionSetFilterSelection()
225 $this->testSequence->cleanupQuestions($this->testSession);
227 $this->testSequence->saveToDb();
229 require_once
'Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
232 require_once
'Services/UIComponent/Button/classes/class.ilLinkButton.php';
236 $button->setPrimary(
true);
237 $toolbarGUI->addButtonInstance($button);
239 if ($this->object->getShowCancel()) {
241 $button->setUrl($this->ctrl->getLinkTarget(
245 $button->setCaption(
'cancel_test');
246 $toolbarGUI->addButtonInstance($button);
249 if ($this->object->isPassDeletionAllowed()) {
250 require_once
'Modules/Test/classes/confirmations/class.ilTestPassDeletionConfirmationGUI.php';
252 $toolbarGUI->addButton(
253 $this->lng->txt(
'tst_dyn_test_pass_deletion_button'),
259 $this->testSequence->getFilteredQuestionsData(),
260 $this->testSequence->getTrackedQuestionList()
261 )); #
vd($filteredData);
263 $filteredTableGUI->setData($filteredData);
266 $this->testSequence->getCompleteQuestionsData(),
267 $this->testSequence->getTrackedQuestionList()
268 )); #
vd($completeData);
270 $completeTableGUI->setData($completeData);
272 $content = $this->ctrl->getHTML($toolbarGUI);
273 $content .= $this->ctrl->getHTML($filteredTableGUI);
274 $content .= $this->ctrl->getHTML($completeTableGUI);
276 $this->tpl->setVariable(
'TABLE_LIST_OF_QUESTIONS', $content);
278 if ($this->object->getEnableProcessingTime()) {
286 $tableGUI->writeFilterToSession();
288 $taxFilterSelection = array();
291 foreach ($tableGUI->getFilterItems() as $item) {
292 if (strpos($item->getPostVar(),
'tax_') !==
false) {
293 $taxId = substr($item->getPostVar(), strlen(
'tax_'));
294 $taxFilterSelection[$taxId] = $item->getValue();
295 } elseif ($item->getPostVar() ==
'question_answer_status') {
296 $answerStatusFilterSelection = $item->getValue();
300 $this->testSession->getQuestionSetFilterSelection()->setTaxonomySelection($taxFilterSelection);
301 $this->testSession->getQuestionSetFilterSelection()->setAnswerStatusSelection($answerStatusFilterSelection);
302 $this->testSession->saveToDb();
304 $this->testSequence->resetTrackedQuestionList();
305 $this->testSequence->saveToDb();
314 $tableGUI->resetFilter();
316 $this->testSession->getQuestionSetFilterSelection()->setTaxonomySelection(array());
317 $this->testSession->getQuestionSetFilterSelection()->setAnswerStatusSelection(null);
318 $this->testSession->saveToDb();
320 $this->testSequence->resetTrackedQuestionList();
321 $this->testSequence->saveToDb();
340 $this->testSession->getActiveId(),
341 $this->testSession->getCurrentQuestionId(),
342 $this->testSession->getPass()
345 if (!$isWorkedThrough) {
346 $this->testSequence->setQuestionPostponed($this->testSession->getCurrentQuestionId());
347 $this->testSequence->saveToDb();
359 $this->
object->setQuestionSetSolved(1, $this->testSession->getCurrentQuestionId(),
$ilUser->getId());
368 $this->
object->setQuestionSetSolved(0, $this->testSession->getCurrentQuestionId(),
$ilUser->getId());
381 if ($this->object->isForceInstantFeedbackEnabled()) {
386 $questionId = $this->testSession->getCurrentQuestionId();
389 $this->testSession->getActiveId(),
390 $this->testSession->getPass()
395 $this->ctrl->setParameter($this,
'pmode',
'');
406 $questionId = $this->testSession->getCurrentQuestionId();
409 $this->testSession->getActiveId(),
410 $this->testSession->getPass()
415 if ($this->object->isForceInstantFeedbackEnabled()) {
416 $this->ctrl->setParameter($this,
'instresp', 1);
418 $this->testSequence->unsetQuestionPostponed($questionId);
419 $this->testSequence->setQuestionChecked($questionId);
420 $this->testSequence->saveToDb();
426 $this->ctrl->setParameter($this,
'pmode',
'');
445 $this->ctrl->saveParameter($this,
'sequence');
453 $questionId = $this->testSession->getCurrentQuestionId();
457 $currentQuestionOBJ->resetUsersAnswer(
458 $this->testSession->getActiveId(),
459 $this->testSession->getPass()
478 if ($this->testSession->getQuestionSetFilterSelection()->isAnswerStatusSelectionWrongAnswered()) {
479 $this->testSequence->loadQuestions(
480 $this->dynamicQuestionSetConfig,
481 $this->testSession->getQuestionSetFilterSelection()
484 if ($this->testSequence->hasFilteredQuestionListCheckedQuestions()) {
496 $this->testSequence->loadQuestions(
497 $this->dynamicQuestionSetConfig,
498 $this->testSession->getQuestionSetFilterSelection()
501 $this->testSequence->cleanupQuestions($this->testSession);
508 if ($this->testSequence->getQuestionSet()->getSelectionQuestionList()->isInList($this->
getQuestionIdParameter())) {
514 if (!$this->testSession->getCurrentQuestionId()) {
515 $upComingQuestionId = $this->testSequence->getUpcomingQuestionId();
517 $this->testSession->setCurrentQuestionId($upComingQuestionId);
527 $navigationToolbarGUI->setQuestionSelectionButtonEnabled(
true);
529 if ($this->testSession->getCurrentQuestionId()) {
531 $this->testSequence->setCurrentQuestionId($this->testSession->getCurrentQuestionId());
533 $questionGui->setQuestionCount(
534 $this->testSequence->getLastPositionIndex()
536 $questionGui->setSequenceNumber(
537 $this->testSequence->getCurrentPositionIndex($this->testSession->getCurrentQuestionId())
542 $this->testSession->getCurrentQuestionId(),
543 $this->testSession->getCurrentQuestionId()
548 $this->testSession->getActiveId(),
549 $this->testSession->getCurrentQuestionId(),
550 $this->testSession->getPass()
553 require_once
'Modules/Test/classes/class.ilTestQuestionHeaderBlockBuilder.php';
555 $headerBlockBuilder->setHeaderMode(
557 $this->object->getTitleOutput() == 2 ? 1 : $this->
object->getTitleOutput()
559 $headerBlockBuilder->setQuestionTitle($questionGui->object->getTitle());
560 $headerBlockBuilder->setQuestionPoints($questionGui->object->getPoints());
567 $headerBlockBuilder->setQuestionPostponed(
568 $this->testSequence->isPostponedQuestion(
569 $this->testSession->getCurrentQuestionId()
572 $headerBlockBuilder->setQuestionObligatory(
575 $questionGui->setQuestionHeaderBlockBuilder($headerBlockBuilder);
579 $instantResponse =
true;
583 if ($this->object->isInstantFeedbackAnswerFixationEnabled()) {
584 $instantResponse =
false;
594 $this->testSession->getCurrentQuestionId(),
595 $this->testSession->getCurrentQuestionId()
598 $this->ctrl->setParameter($this,
'sequence', $this->testSession->getCurrentQuestionId());
599 $this->ctrl->setParameter($this,
'pmode', $presentationMode);
602 switch ($presentationMode) {
606 $navigationToolbarGUI->setDisabledStateEnabled(
false);
608 $this->
showQuestionEditable($questionGui, $formAction, $isQuestionWorkedThrough, $instantResponse);
614 $this->
showQuestionViewable($questionGui, $formAction, $isQuestionWorkedThrough, $instantResponse);
620 require_once
'Modules/Test/exceptions/class.ilTestException.php';
624 $navigationToolbarGUI->build();
629 $this->testSession->getCurrentQuestionId(),
631 $this->
object->isForceInstantFeedbackEnabled()
635 if ($instantResponse) {
642 $this->testSession->getQuestionSetFilterSelection()->setForcedQuestionIds(array());
654 $navigationToolbarGUI->build();
660 $this->testSequence->saveToDb();
661 $this->testSession->saveToDb();
666 $questionId = $this->testSession->getCurrentQuestionId();
668 $filterSelection = $this->testSession->getQuestionSetFilterSelection();
670 $filterSelection->setForcedQuestionIds(array($this->testSession->getCurrentQuestionId()));
672 $this->testSequence->loadQuestions($this->dynamicQuestionSetConfig, $filterSelection);
673 $this->testSequence->cleanupQuestions($this->testSession);
674 $this->testSequence->saveToDb();
684 $this->testSequence->unsetQuestionPostponed($questionId);
685 $this->testSequence->setQuestionChecked($questionId);
686 $this->testSequence->saveToDb();
689 $this->ctrl->setParameter(
692 $this->testSession->getCurrentQuestionId()
695 $this->ctrl->setParameter($this,
'instresp', 1);
708 $questionId = $this->testSession->getCurrentQuestionId();
717 $this->ctrl->setParameter(
720 $this->testSession->getCurrentQuestionId()
723 $this->ctrl->saveParameter($this,
'pmode');
730 if ($this->testSequence->openQuestionExists()) {
731 $message = $this->lng->txt(
'tst_dyn_test_msg_currently_finished_selection');
733 $message = $this->lng->txt(
'tst_dyn_test_msg_currently_finished_completely');
734 $message .=
"<br /><br />{$this->buildFinishPagePassDeletionLink()}";
739 $tpl =
new ilTemplate(
'tpl.test_currently_finished_msg.html',
true,
true,
'Modules/Test');
740 $tpl->setVariable(
'TEST_CURRENTLY_FINISHED_MSG', $msgHtml);
742 $this->tpl->setVariable(
'QUESTION_OUTPUT',
$tpl->get());
747 return !$this->testSequence->trackedQuestionExists();
762 return !$this->
object->endingTimeReached();
772 $formtimestamp =
$_POST[
"formtimestamp"];
773 if (strlen($formtimestamp) == 0) {
774 $formtimestamp =
$_GET[
"formtimestamp"];
776 if ($formtimestamp !=
$_SESSION[
"formtimestamp"]) {
777 $_SESSION[
"formtimestamp"] = $formtimestamp;
785 $qId = $this->testSession->getCurrentQuestionId();
787 if (!$qId || $qId !=
$_GET[
"sequence"]) {
793 $this->saveResult =
false;
796 $questionGUI = $this->
object->createQuestionGUI(
"", $qId);
798 if ($this->object->getJavaScriptOutput()) {
802 $activeId = $this->testSession->getActiveId();
804 $this->saveResult = $questionGUI->object->persistWorkingState(
807 $this->object->areObligationsEnabled(),
811 if ($authorized && $this->object->isSkillServiceToBeConsidered()) {
816 if ($this->saveResult ==
false) {
817 $this->ctrl->setParameter($this,
"save_error",
"1");
826 $questionGUI = $this->
object->createQuestionGUI(
"", $questionId);
829 $maxPoints = $questionGUI->object->getMaximumPoints();
831 if ($reachedPoints < $maxPoints) {
842 foreach ($questions as $key => $value) {
843 $this->ctrl->setParameter($this,
'sequence', $value[
'question_id']);
844 $href = $this->ctrl->getLinkTarget($this,
'gotoQuestion');
845 $this->ctrl->setParameter($this,
'sequence',
'');
848 if ($this->object->getListOfQuestionsDescription()) {
849 $description = $value[
"description"];
853 if (count($marked_questions)) {
854 if (isset($marked_questions[$value[
"question_id"]])) {
855 if ($marked_questions[$value[
"question_id"]][
"solved"] == 1) {
861 array_push(
$data, array(
863 'title' => $this->object->getQuestionTitle($value[
"title"]),
864 'description' => $description,
865 'worked_through' => $this->testSequence->isAnsweredQuestion($value[
"question_id"]),
866 'postponed' => $this->testSequence->isPostponedQuestion($value[
"question_id"]),
876 $questionAnswerStats = array(
877 'total_all' => count($questions),
879 'non_answered_notseen' => 0,
880 'non_answered_skipped' => 0,
881 'wrong_answered' => 0,
882 'correct_answered' => 0
885 foreach ($questions as $key => $value) {
886 switch ($value[
'question_answer_status']) {
888 if (isset($trackedQuestions[$key])) {
889 $questionAnswerStats[
'non_answered_skipped']++;
891 $questionAnswerStats[
'non_answered_notseen']++;
893 $questionAnswerStats[
'total_open']++;
896 $questionAnswerStats[
'wrong_answered']++;
897 $questionAnswerStats[
'total_open']++;
900 $questionAnswerStats[
'correct_answered']++;
905 return $questionAnswerStats;
910 require_once
'Modules/Test/classes/tables/class.ilTestDynamicQuestionSetStatisticTableGUI.php';
915 $gui->initTitle(
'tst_dynamic_question_set_complete');
916 $gui->initColumns(
'tst_num_all_questions');
923 require_once
'Modules/Test/classes/tables/class.ilTestDynamicQuestionSetStatisticTableGUI.php';
928 $gui->initTitle(
'tst_dynamic_question_set_selection');
929 $gui->initColumns(
'tst_num_selected_questions');
931 require_once
'Services/Taxonomy/classes/class.ilObjTaxonomy.php';
933 $this->dynamicQuestionSetConfig->getSourceQuestionPoolId()
936 $gui->setTaxonomyFilterEnabled($this->dynamicQuestionSetConfig->isTaxonomyFilterEnabled());
937 $gui->setAnswerStatusFilterEnabled($this->dynamicQuestionSetConfig->isAnswerStatusFilterEnabled());
939 $gui->setFilterSelection($this->testSession->getQuestionSetFilterSelection());
941 $gui->setFilterCommand(
'filterQuestionSelection');
942 $gui->setResetCommand(
'resetQuestionSelection');
949 require_once
'Modules/Test/classes/tables/class.ilTestDynamicQuestionSetStatisticTableGUI.php';
963 if ($this->testSequence->trackedQuestionExists()) {
964 return 'tst_resume_dyn_test_with_cur_quest_sel';
967 return 'tst_start_dyn_test_with_cur_quest_sel';
972 $questionId = $this->testSession->getCurrentQuestionId();
973 $activeId = $this->testSession->getActiveId();
974 $pass = $this->testSession->getPass();
977 $this->testSequence->setQuestionAnsweredCorrect($questionId);
979 $this->testSequence->setQuestionAnsweredWrong($questionId);
982 $this->testSequence->saveToDb();
987 $this->testSession->setCurrentQuestionId(null);
988 $this->testSession->saveToDb();
990 $this->ctrl->setParameter($this,
'sequence', $this->testSession->getCurrentQuestionId());
991 $this->ctrl->setParameter($this,
'pmode',
'');
1001 $label = $this->lng->txt(
'tst_dyn_test_msg_pass_deletion_link');
1003 return "<a href=\"{$href}\">{$label}</a>";
1011 require_once
'Modules/Test/classes/confirmations/class.ilTestPassDeletionConfirmationGUI.php';
1014 $this->ctrl->setParameterByClass(
'ilTestEvaluationGUI',
'active_id', $this->testSession->getActiveId());
1015 $this->ctrl->setParameterByClass(
'ilTestEvaluationGUI',
'pass', $this->testSession->getPass());
1017 return $this->ctrl->getLinkTargetByClass(
'ilTestEvaluationGUI',
'confirmDeletePass');
1032 if (isset(
$_GET[
'reset_checked'])) {
1033 return $_GET[
'reset_checked'];
1039 public function outQuestionSummaryCmd($fullpage =
true, $contextFinishTest =
false, $obligationsNotAnswered =
false, $obligationsFilter =
false)
1041 $this->testSequence->loadQuestions(
1042 $this->dynamicQuestionSetConfig,
1043 $this->testSession->getQuestionSetFilterSelection()
1046 $this->testSequence->setCurrentQuestionId($this->testSession->getCurrentQuestionId());
1048 parent::outQuestionSummaryCmd($fullpage, $contextFinishTest, $obligationsNotAnswered, $obligationsFilter);
1053 require_once
'Services/Utilities/classes/class.ilConfirmationGUI.php';
1055 $confirmation->setFormAction($this->ctrl->getFormAction($this));
1056 $confirmation->setHeaderText($this->lng->txt(
'tst_dyn_unfreeze_answers_confirmation'));
1065 $this->testSequence->loadQuestions(
1066 $this->dynamicQuestionSetConfig,
1067 $this->testSession->getQuestionSetFilterSelection()
1070 $this->testSequence->resetFilteredQuestionListsCheckedStatus();
1071 $this->testSequence->saveToDb();
1085 $this->ctrl->setParameter($this,
'reset_checked', 1);
1087 $this->ctrl->setParameter($this,
'reset_checked',
'');
1100 $ilPluginAdmin = $DIC[
'ilPluginAdmin'];
1102 require_once
'Modules/TestQuestionPool/classes/class.ilAssQuestionList.php';
1104 $questionList->setParentObjId($this->dynamicQuestionSetConfig->getSourceQuestionPoolId());
1107 return $questionList;
checkTestSessionUser(ilTestSession $testSession)
buildQuestionsTableDataArray($questions, $marked_questions)
filterQuestionSelectionCmd()
isLastQuestionInSequence($sequenceElement)
vd()
shortcut for var_dump with enhanced debug information
buildQuestionSetCompleteStatisticTableGUI()
getQuestionGuiInstance($question_id, $fromCache=true)
removeIntermediateSolution()
remove an auto-saved solution of the current question
unfreezeCheckedQuestionsAnswersCmd()
isOptionalQuestionAnsweringConfirmationRequired($sequenceKey)
setAnswerChangedParameter($changed=true)
Set the 'answer changed' url parameter for generated links.
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
showQuestionEditable(assQuestionGUI $questionGui, $formAction, $isQuestionWorkedThrough, $instantResponse)
saveQuestionSolution($authorized=true, $force=false)
saves the user input of a question
isQuestionAnsweredCorrect($questionId, $activeId, $pass)
static getSystemMessageHTML($a_txt, $a_type="info")
Get HTML for a system message.
updateWorkingTime()
updates working time and stores state saveresult to see if question has to be stored or not ...
getNextCommandParameter()
showQuestionSelectionCmd()
handleUserSettings()
Handles some form parameters on starting and resuming a test.
Base Exception for all Exceptions relating to Modules/Test.
prepareTestPage($presentationMode, $sequenceElement, $questionId)
unregisterForcedFeedbackNavUrl()
populateInstantResponseBlocks(assQuestionGUI $questionGui, $authorizedSolution)
persistQuestionAnswerStatus()
static isQuestionObligatory($question_id)
checks wether the question with given id is marked as obligatory or not
ensureExistingTestSession(ilTestSession $testSession)
submitSolutionAndNextCmd()
resumePlayerCmd()
Resume a test at the last position.
isForcedFeedbackNavUrlRegistered()
handleQuestionActionCmd()
buildQuestionSetFilteredStatisticTableGUI()
getInstantResponseParameter()
getEnterTestButtonLangVar()
static _isWorkedThrough($active_id, $question_id, $pass=null)
Returns true if the question was worked through in the given pass Worked through means that the user ...
handleSkillTriggering(ilTestSession $testSession)
getRegisteredForcedFeedbackNavUrl()
populateQuestionNavigation($sequenceElement, $disabled, $primaryNext)
const PRESENTATION_MODE_EDIT
saveNavigationPreventConfirmation()
Save the save the switch to prevent the navigation confirmation.
isShowingPostponeStatusReguired($questionId)
populateTestNavigationToolbar(ilTestNavigationToolbarGUI $toolbarGUI)
buildQuestionSetStatisticTableGUI($tableId)
outCurrentlyFinishedPage()
const TEST_PLAYER_KIOSK_MODE_ENABLED
getAnswerChangedParameter()
Get the 'answer changed' status from the current request It may be set by ilTestPlayerNavigationContr...
const SHOW_QUESTION_SELECTION
getSequenceElementParameter()
Basic GUI class for assessment questions.
const PRESENTATION_MODE_VIEW
const SUBMIT_INTERMEDIATE_SOLUTION
outQuestionSummaryCmd($fullpage=true, $contextFinishTest=false, $obligationsNotAnswered=false, $obligationsFilter=false)
initProcessLocker($activeId)
isQuestionSummaryFinishTestButtonRequired()
const ANSWER_STATUS_FILTER_ALL_NON_CORRECT
answer status filter value domain
handlePasswordProtectionRedirect()
resetQuestionIdParameter()
registerForcedFeedbackNavUrl($forcedFeedbackNavUrl)
showQuestionViewable(assQuestionGUI $questionGui, $formAction, $isQuestionWorkedThrough, $instantResponse)
const QUESTION_ANSWER_STATUS_CORRECT_ANSWERED
populateNextButtons($disabled, $primaryNext)
populateMessageContent($contentHTML)
static initjQuery(ilGlobalTemplateInterface $a_tpl=null)
inits and adds the jQuery JS-File to the global or a passed template
showMaximumAllowedUsersReachedMessage()
resetSequenceElementParameter()
const QUESTION_ANSWER_STATUS_WRONG_ANSWERED
populateInstantResponseModal(assQuestionGUI $questionGui, $navUrl)
outProcessingTime($active_id)
showCheckedQuestionResettingConfirmation()
getNextSequenceParameter()
buildQuestionSetAnswerStatisticRowArray($questions, $trackedQuestions)
getNavigationUrlParameter()
buildFinishPagePassDeletionLink()
isFirstQuestionInSequence($sequenceElement)
getQuestionInstance($questionId, $fromCache=true)
canSaveResult()
Returns TRUE if the answers of the current user could be saved.
$dynamicQuestionSetConfig
isCheckedQuestionResettingConfirmationRequired()
executeCommand()
execute command
static _getReachedPoints($active_id, $question_id, $pass=null)
Returns the points, a learner has reached answering the question.
handleTearsAndAngerQuestionIsNull($questionId, $sequenceElement)
getStartTestFromQuestionSelectionLink()
static redirect($a_script)
const CONTEXT_DYN_TEST_PLAYER
getTestNavigationToolbarGUI()
static initConnectionWithAnimation()
Init YUI Connection module.
const QUESTION_INSTANCE_TYPE_ORIGINALS
getResetCheckedParameter()
const QUESTION_ANSWER_STATUS_NON_ANSWERED
answer status domain for single questions
buildTestPassQuestionList()
isParticipantsAnswerFixed($questionId)
Output class for assessment test execution.
Confirmation screen class.
static initJavascript()
Init javascript.
resetQuestionSelectionCmd()