protected function afterTestPassFinishedCmd() { $activeId = $this->testSession->getActiveId(); $lastFinishedPass = $this->testSession->getLastFinishedPass(); // handle test signature if ($this->isTestSignRedirectRequired($activeId, $lastFinishedPass)) { $this->ctrl->redirectByClass('ilTestSignatureGUI', 'invokeSignaturePlugin'); } if (!$_GET['skipfinalstatement']) { if ($this->object->getShowFinalStatement()) { $this->ctrl->redirect($this, 'showFinalStatement'); } } // redirect after test $redirection_mode = $this->object->getRedirectionMode(); $redirection_url = $this->object->getRedirectionUrl(); if ($redirection_url && $redirection_mode && !$this->object->canViewResults()) { if ($redirection_mode == REDIRECT_KIOSK) { if ($this->object->getKioskMode()) { ilUtil::redirect($redirection_url); } } else { ilUtil::redirect($redirection_url); } } // custom after test redirect (ilTestOutput - objective oriented sessions) if ($this->customRedirectRequired()) { $this->performCustomRedirect(); } // default redirect (pass results) $this->redirectBackCmd(); }
private function isTestResultButtonRequired() { $testOBJ = ilObjectFactory::getInstanceByObjId($this->objectId); if (!$testOBJ->canShowTestResults($this->testSession)) { return false; } require_once 'Modules/Test/classes/class.ilTestPassesSelector.php'; $testPassesSelector = new ilTestPassesSelector($this->db, $testOBJ); $testPassesSelector->setActiveId($this->testSession->getActiveId()); $testPassesSelector->setLastFinishedPass($this->testSession->getLastFinishedPass()); if (!count($testPassesSelector->getReportablePasses())) { return false; } return true; }