4require_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();
 
   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;
 
An exception for terminatinating execution or to throw for unit testing.
Basic GUI class for assessment questions.
static _getReachedPoints($active_id, $question_id, $pass=null)
Returns the points, a learner has reached answering the question.
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 ...
const ANSWER_STATUS_FILTER_ALL_NON_CORRECT
answer status filter value domain
const QUESTION_INSTANCE_TYPE_ORIGINALS
const QUESTION_ANSWER_STATUS_WRONG_ANSWERED
const QUESTION_ANSWER_STATUS_CORRECT_ANSWERED
const QUESTION_ANSWER_STATUS_NON_ANSWERED
answer status domain for single questions
Confirmation screen class.
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
static isQuestionObligatory($question_id)
checks wether the question with given id is marked as obligatory or not
static initJavascript()
Init javascript.
special template class to simplify handling of ITX/PEAR
Base Exception for all Exceptions relating to Modules/Test.
const CONTEXT_DYN_TEST_PLAYER
Output class for assessment test execution.
handleSkillTriggering(ilTestSession $testSession)
checkTestSessionUser(ilTestSession $testSession)
populateNextButtons($disabled, $primaryNext)
populateMessageContent($contentHTML)
getNextCommandParameter()
removeIntermediateSolution()
remove an auto-saved solution of the current question
setAnswerChangedParameter($changed=true)
Set the 'answer changed' url parameter for generated links.
initProcessLocker($activeId)
prepareTestPage($presentationMode, $sequenceElement, $questionId)
handleTearsAndAngerQuestionIsNull($questionId, $sequenceElement)
const PRESENTATION_MODE_EDIT
getQuestionInstance($questionId, $fromCache=true)
handlePasswordProtectionRedirect()
getRegisteredForcedFeedbackNavUrl()
getQuestionGuiInstance($question_id, $fromCache=true)
showMaximumAllowedUsersReachedMessage()
populateInstantResponseModal(assQuestionGUI $questionGui, $navUrl)
showQuestionEditable(assQuestionGUI $questionGui, $formAction, $isQuestionWorkedThrough, $instantResponse)
getInstantResponseParameter()
getSequenceElementParameter()
ensureExistingTestSession(ilTestSession $testSession)
updateWorkingTime()
updates working time and stores state saveresult to see if question has to be stored or not
handleUserSettings()
Handles some form parameters on starting and resuming a test.
populateInstantResponseBlocks(assQuestionGUI $questionGui, $authorizedSolution)
getTestNavigationToolbarGUI()
populateTestNavigationToolbar(ilTestNavigationToolbarGUI $toolbarGUI)
const PRESENTATION_MODE_VIEW
getNavigationUrlParameter()
getAnswerChangedParameter()
Get the 'answer changed' status from the current request It may be set by ilTestPlayerNavigationContr...
isParticipantsAnswerFixed($questionId)
unregisterForcedFeedbackNavUrl()
outProcessingTime($active_id)
resetSequenceElementParameter()
saveNavigationPreventConfirmation()
Save the save the switch to prevent the navigation confirmation.
registerForcedFeedbackNavUrl($forcedFeedbackNavUrl)
getNextSequenceParameter()
showQuestionViewable(assQuestionGUI $questionGui, $formAction, $isQuestionWorkedThrough, $instantResponse)
isForcedFeedbackNavUrlRegistered()
const SUBMIT_INTERMEDIATE_SOLUTION
const SHOW_QUESTION_SELECTION
getResetCheckedParameter()
markQuestionCmd()
Set a question solved.
isQuestionAnsweredCorrect($questionId, $activeId, $pass)
canSaveResult()
Returns TRUE if the answers of the current user could be saved.
outQuestionSummaryCmd($fullpage=true, $contextFinishTest=false, $obligationsNotAnswered=false, $obligationsFilter=false)
Output of a summary of all test questions for test participants.
getEnterTestButtonLangVar()
isShowingPostponeStatusReguired($questionId)
resetQuestionSelectionCmd()
resumePlayerCmd()
Resume a test at the last position.
populateQuestionNavigation($sequenceElement, $disabled, $primaryNext)
unmarkQuestionCmd()
Set a question unsolved.
unfreezeCheckedQuestionsAnswersCmd()
buildFinishPagePassDeletionLink()
resetQuestionIdParameter()
buildQuestionSetAnswerStatisticRowArray($questions, $trackedQuestions)
handleQuestionActionCmd()
filterQuestionSelectionCmd()
buildTestPassQuestionList()
showCheckedQuestionResettingConfirmation()
outCurrentlyFinishedPage()
buildQuestionSetCompleteStatisticTableGUI()
$dynamicQuestionSetConfig
showQuestionSelectionCmd()
isOptionalQuestionAnsweringConfirmationRequired($sequenceKey)
buildQuestionSetStatisticTableGUI($tableId)
getStartTestFromQuestionSelectionLink()
isLastQuestionInSequence($sequenceElement)
isQuestionSummaryFinishTestButtonRequired()
buildQuestionSetFilteredStatisticTableGUI()
persistQuestionAnswerStatus()
isFirstQuestionInSequence($sequenceElement)
executeCommand()
execute command
buildQuestionsTableDataArray($questions, $marked_questions)
submitSolutionAndNextCmd()
saveQuestionSolution($authorized=true, $force=false)
saves the user input of a question
isCheckedQuestionResettingConfirmationRequired()
const TEST_PLAYER_KIOSK_MODE_ENABLED
static redirect($a_script)
static getSystemMessageHTML($a_txt, $a_type="info")
Get HTML for a system message.
static initConnectionWithAnimation()
Init YUI Connection module.
static initjQuery(ilGlobalTemplateInterface $a_tpl=null)
inits and adds the jQuery JS-File to the global or a passed template
vd()
shortcut for var_dump with enhanced debug information