Exemple #1
0
        $rsPrevTest = CTest::GetList(array(), array("ID" => $arTest["PREVIOUS_TEST_ID"], 'CHECK_PERMISSIONS' => 'N'));
        if ($arPrevTest = $rsPrevTest->GetNext()) {
            if ($parent = $this->GetParent()) {
                $testUrlTemplate = CComponentEngine::MakePathFromTemplate($parent->arResult["URL_TEMPLATES"]["test"], array("TEST_ID" => $arPrevTest["ID"], "COURSE_ID" => $arPrevTest["COURSE_ID"]));
                $arTest["PREVIOUS_TEST_LINK"] = "<a href=\"" . $testUrlTemplate . "\">" . $arPrevTest["NAME"] . "</a>";
            }
        }
    }
}
if ($USER->GetID()) {
    $arTest["ATTEMPT_LIMIT"] += CGradeBook::GetExtraAttempts($USER->GetID(), $arParams["TEST_ID"]);
}
$oAccess = CLearnAccess::GetInstance($USER->GetID());
$isRelativelyHighAccessLevel = $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_CREATE | CLearnAccess::OP_LESSON_READ | CLearnAccess::OP_LESSON_WRITE | CLearnAccess::OP_LESSON_REMOVE);
$bCheckPerm = !$isRelativelyHighAccessLevel && !$USER->IsAdmin();
if ($bCheckPerm && $arTest["PREVIOUS_TEST_ID"] > 0 && $arTest["PREVIOUS_TEST_SCORE"] > 0 && !CTest::isPrevPassed($arTest["PREVIOUS_TEST_ID"], $arTest["PREVIOUS_TEST_SCORE"])) {
    if ($arTest["PREVIOUS_TEST_LINK"]) {
        $errors[] = str_replace("#TEST_LINK#", "\"" . $arTest["PREVIOUS_TEST_LINK"] . "\"", GetMessage("LEARNING_TEST_DENIED_PREVIOUS"));
    }
}
//Session variables
$userID = $USER->GetID() ? $USER->GetID() : 0;
$sessAttemptID =& $_SESSION["LEARN_" . $arParams["TEST_ID"] . "_ATTEMPT_ID_" . $userID];
$sessAttemptFinished =& $_SESSION["LEARN_" . $arParams["TEST_ID"] . "_FINISHED_" . $userID];
$sessAttemptError =& $_SESSION["LEARN_" . $arParams["TEST_ID"] . "_ERROR_" . $userID];
$sessAttempt =& $_SESSION["LEARN_" . $arParams["TEST_ID"] . "_COMPLETED_" . $userID];
$sessIncorrectMessage =& $_SESSION["LEARN_" . $arParams["TEST_ID"] . "_INCORRECT_MESSAGE_" . $userID];
//Page url template
$currentPage = GetPagePath(false, false);
$queryString = htmlspecialcharsbx(DeleteParam(array($arParams["PAGE_NUMBER_VARIABLE"], "SEF_APPLICATION_CUR_PAGE_URL")));
$pageTemplate = $queryString == "" ? $currentPage . "?" . $arParams["PAGE_NUMBER_VARIABLE"] . "=#PAGE_ID#" : $currentPage . "?" . $queryString . "&amp;" . $arParams["PAGE_NUMBER_VARIABLE"] . "=#PAGE_ID#";
Exemple #2
0
if ($USER->GetID())
{
	$arTest["ATTEMPT_LIMIT"] += CGradeBook::GetExtraAttempts($USER->GetID(), $arParams["TEST_ID"]);
}
$oAccess = CLearnAccess::GetInstance($USER->GetID());
$isRelativelyHighAccessLevel = $oAccess->IsBaseAccess(
	CLearnAccess::OP_LESSON_CREATE 
	| CLearnAccess::OP_LESSON_READ 
	| CLearnAccess::OP_LESSON_WRITE 
	| CLearnAccess::OP_LESSON_REMOVE);
$bCheckPerm = (!$isRelativelyHighAccessLevel && !$USER->IsAdmin());
if ($bCheckPerm 
	&& $arTest["PREVIOUS_TEST_ID"] > 0 
	&& $arTest["PREVIOUS_TEST_SCORE"] > 0 
	&& !CTest::isPrevPassed($arTest["PREVIOUS_TEST_ID"], $arTest["PREVIOUS_TEST_SCORE"]))
{
	if ($arTest["PREVIOUS_TEST_LINK"])
	{
		$errors[] = str_replace("#TEST_LINK#", "\"".$arTest["PREVIOUS_TEST_LINK"]."\"", GetMessage("LEARNING_TEST_DENIED_PREVIOUS"));
	}
}

//Session variables
$userID = $USER->GetID() ? $USER->GetID() : 0;
$sessAttemptID =& $_SESSION["LEARN_".$arParams["TEST_ID"]."_ATTEMPT_ID_".$userID];
$sessAttemptFinished =& $_SESSION["LEARN_".$arParams["TEST_ID"]."_FINISHED_".$userID];
$sessAttemptError =& $_SESSION["LEARN_".$arParams["TEST_ID"]."_ERROR_".$userID];
$sessAttempt =& $_SESSION["LEARN_".$arParams["TEST_ID"]."_COMPLETED_".$userID];
$sessIncorrectMessage =& $_SESSION["LEARN_".$arParams["TEST_ID"]."_INCORRECT_MESSAGE_".$userID];