Your IP : 18.222.45.122


Current Path : /home/bitrix/initial_sites/coffe.land_1/bitrix/modules/learning/admin/
Upload File :
Current File : /home/bitrix/initial_sites/coffe.land_1/bitrix/modules/learning/admin/learn_test_result_edit.php

<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");

if (!CModule::IncludeModule('learning'))
{
	require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_after.php'); // second system's prolog

	if (IsModuleInstalled('learning') && defined('LEARNING_FAILED_TO_LOAD_REASON'))
		echo LEARNING_FAILED_TO_LOAD_REASON;
	else
		CAdminMessage::ShowMessage(GetMessage('LEARNING_MODULE_NOT_FOUND'));

	require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_admin.php');	// system's epilog
	exit();
}

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/learning/prolog.php");
IncludeModuleLangFile(__FILE__);

ClearVars();

$ATTEMPT_ID = intval($ATTEMPT_ID);
$ID = intval($ID);
$bBadResult = false;
$message = null;

//$r = CTestAttempt::GetByID($ATTEMPT_ID);
// was: $r = CTestAttempt::GetList(Array(), Array("ID" => $ATTEMPT_ID, "MIN_PERMISSION" => "W"));
$r = CTestAttempt::GetList(Array(), Array("ID" => $ATTEMPT_ID, 'ACCESS_OPERATIONS' => CLearnAccess::OP_LESSON_READ | CLearnAccess::OP_LESSON_WRITE));


if(!$arAttempt = $r->GetNext())
	$bBadResult = true;

if (!$bBadResult)
{
	$r = CTestResult::GetByID($ID);
	if(!$r->ExtractFields("str_"))
		$bBadResult = true;
}


if($bBadResult)
{
	$APPLICATION->SetTitle(GetMessage("LEARNING_ADMIN_TITLE"));
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

	$aContext = array(
		array(
			"ICON" => "btn_list",
			"TEXT"=>GetMessage("LEARNING_BACK_TO_ADMIN"),
			"LINK"=>"learn_unilesson_admin.php?lang=" . LANG,
			"TITLE"=>GetMessage("LEARNING_BACK_TO_ADMIN")
		),
	);
	$context = new CAdminContextMenu($aContext);
	$context->Show();

	CAdminMessage::ShowMessage(GetMessage("LEARNING_BAD_ATTEMPT_ID_EX"));

	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
	die();
}

$aTabs = array(
	array("DIV" => "edit1", "TAB" => GetMessage("LEARNING_ADMIN_TAB1"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("LEARNING_ADMIN_TAB1_EX")),
);

$tabControl = new CAdminForm("testResultTabControl", $aTabs);

if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($Update)>0 && check_bitrix_sessid())
{
	if ($ANSWERED != "Y")
	{
		$ANSWERED = "N";
		$RESPONSE = "";
		$POINT = 0;
	}
	elseif ($CORRECT != "Y")
	{
		$CORRECT = "N";
		$POINT = 0;
	}

	$arFields = Array(
		"ANSWERED" => $ANSWERED,
		"CORRECT" => $CORRECT,
		"RESPONSE" => $RESPONSE,
		"POINT"=> $POINT,
	);

	$DB->StartTransaction();
	$tr = new CTestResult;
	$res = $tr->Update($ID, $arFields);

	if(!$res)
	{
		$DB->Rollback();
		if($e = $APPLICATION->GetException())
			$message = new CAdminMessage(GetMessage("LEARNING_ERROR"), $e);
		$bVarsFromForm = true;

	}
	else
	{
		$tr->OnTestResultChange($ID);
		$DB->Commit();
		if(strlen($apply)<=0)
		{
			if(strlen($return_url)>0)
				LocalRedirect($return_url);
			else
				LocalRedirect("/bitrix/admin/learn_test_result_admin.php?lang=".LANG."&ATTEMPT_ID=".$ATTEMPT_ID.GetFilterParams("filter_", false));
		}
		LocalRedirect("/bitrix/admin/learn_test_result_edit.php?lang=".LANG."&ID=".$ID."&ATTEMPT_ID=".$ATTEMPT_ID.GetFilterParams("filter_", false));
	}
}

if($bVarsFromForm)
{
	$DB->InitTableVarsForEdit("b_learn_test_result", "", "str_");
}

$adminChain->AddItem(array("TEXT"=>GetMessage("LEARNING_ADMIN_RESULTS"), "LINK"=>"learn_test_result_admin.php?lang=". LANG."&ATTEMPT_ID=".$ATTEMPT_ID.GetFilterParams("filter_", false)));

$APPLICATION->SetTitle($arAttempt["~TEST_NAME"].": ".GetMessage("LEARNING_ADMIN_TITLE"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

$aContext = array();

$aContext = array(
	array(
		"ICON" => "btn_list",
		"TEXT"=> GetMessage("MAIN_ADMIN_MENU_LIST"),
		"LINK"=> "learn_test_result_admin.php?lang=". LANG."&ATTEMPT_ID=".$ATTEMPT_ID.GetFilterParams("filter_", false),
	),
);

$context = new CAdminContextMenu($aContext);
$context->Show();
?>

<?
if ($message)
	echo $message->Show();

?>

<?php $tabControl->BeginEpilogContent();?>
	<?=bitrix_sessid_post()?>
	<?echo GetFilterHiddens("filter_");?>
	<input type="hidden" name="Update" value="Y">
	<input type="hidden" name="from" value="<?echo htmlspecialcharsbx($from)?>">
	<input type="hidden" name="return_url" value="<?echo htmlspecialcharsbx($return_url)?>">
	<input type="hidden" name="ID" value="<?echo $ID?>">
<?php $tabControl->EndEpilogContent();?>
<?$tabControl->Begin();?>
<?$tabControl->BeginNextFormTab();?>
<?php $tabControl->BeginCustomField("USER_NAME", GetMessage("LEARNING_ADMIN_STUDENT"), false);?>
<tr>
	<td width="40%"><?php echo $tabControl->GetCustomLabelHTML()?>:</td>
	<td>
		<?=$arAttempt["USER_NAME"]?>
	</td>
</tr>
<?php $tabControl->EndCustomField("USER_NAME");?>
<?php $tabControl->BeginCustomField("ANSWERED", GetMessage("LEARNING_ADMIN_ANSWERED"), false);?>
<tr>
	<td><?php echo $tabControl->GetCustomLabelHTML()?>:</td>
	<td>
		<input type="checkbox" name="ANSWERED" value="Y"<?if($str_ANSWERED=="Y")echo " checked"?> onclick="OnChangeAnswered(this.checked)">
	</td>
</tr>
<?php $tabControl->EndCustomField("USER_NAME");?>
<?php $tabControl->BeginCustomField("CORRECT", GetMessage("LEARNING_ADMIN_CORRECT"), false);?>
<tr>
	<td><?php echo $tabControl->GetCustomLabelHTML()?>:</td>
	<td>
		<input type="checkbox" name="CORRECT" value="Y"<?if($str_CORRECT=="Y")echo " checked"?> onclick="OnChangeAnswered(this.checked)">
	</td>
</tr>
<?php $tabControl->EndCustomField("CORRECT");?>
<?php $tabControl->BeginCustomField("POINT", GetMessage("LEARNING_ADMIN_POINT"), false);?>
<tr>
	<td><?php echo $tabControl->GetCustomLabelHTML()?>:</td>
	<td>
		<input type="text" name="POINT" size="4" maxlength="255" value="<?echo $str_POINT?>">
	</td>
</tr>
<?php $tabControl->EndCustomField("POINT");?>
<?php $tabControl->BeginCustomField("QUESTION", GetMessage("LEARNING_ADMIN_QUESTION"), false);?>
<tr>
	<td><?php echo $tabControl->GetCustomLabelHTML()?>:</td>
	<td>
		<?=$str_QUESTION_NAME?> [<a href="learn_question_edit.php?lang=<?=LANG?>&ID=<?=$str_QUESTION_ID?>" title="<?=GetMessage("LEARNING_ADMIN_EDIT_QUESTION")?>"><?=$str_QUESTION_ID?></a>]
	</td>
</tr>
<?php $tabControl->EndCustomField("QUESTION");?>
<?php $tabControl->BeginCustomField("ANSWER", GetMessage("LEARNING_ADMIN_ANSWER"), false);?>
<tr valign="top">
	<td><?php echo $tabControl->GetCustomLabelHTML()?>:</td>
	<td>
		<table>
		<?php if ($str_QUESTION_TYPE == "T"):?>
			<tr>
				<td><textarea rows="5" cols="50" name="RESPONSE"><?php echo $str_RESPONSE?></textarea></td>
			</tr>
		<?php
		else:
			$arR = explode(',', $str_RESPONSE);
			$r = CLAnswer::GetList(Array("ID" => "ASC"),Array("QUESTION_ID"=>$str_QUESTION_ID));
			while($arAnswers = $r->GetNext()):
			?>
				<tr>
					<td>
					<?if ($str_QUESTION_TYPE == "M"):?>
						<input type="checkbox" name="RESPONSE[]" value="<?=$arAnswers["ID"]?>" <?if(in_array($arAnswers["ID"],$arR)) echo "checked"?>>
					<?else:?>
						<input type="radio" name="RESPONSE[]" value="<?=$arAnswers["ID"]?>" <?if(in_array($arAnswers["ID"],$arR)) echo "checked"?>>
					<?endif?>
					</td>
					<td><?=$arAnswers["ANSWER"]?></td>
				</tr>
			<?php endwhile?>
		<?php endif?>
		</table>
	</td>
</tr>
<?php $tabControl->EndCustomField("ANSWER");?>

<?
$tabControl->Buttons(Array("back_url" =>"learn_test_result_admin.php?lang=". LANG."&ATTEMPT_ID=".$ATTEMPT_ID.GetFilterParams("filter_", false)));
$tabControl->arParams["FORM_ACTION"] = $APPLICATION->GetCurPage()."?lang=".LANG."&ATTEMPT_ID=".$ATTEMPT_ID.GetFilterParams("filter_");
$tabControl->Show();?>

<script type="text/javascript">
function OnChangeAnswered(val)
{
	document.forms["testResultTabControl_form"].elements['POINT'].disabled = !val;
	document.forms["testResultTabControl_form"].elements['CORRECT'].disabled = !val && !document.forms["testResultTabControl_form"].elements['ANSWERED'].checked;

	var r = document.forms["testResultTabControl_form"].elements['RESPONSE[]'];

	if (!r)
		return;

	for (i=0; i < r.length; i++)
		r[i].disabled = !val;

}
OnChangeAnswered(<?=($str_ANSWERED=="Y"?"true":"false")?>);
</script>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>