Ejemplo n.º 1
0
	/**
	 * <p>Возвращает вопрос плана тестирования по идентификатору ID.</p>
	 *
	 *
	 *
	 *
	 * @param int $ID  Идентификатор вопроса в плане тестирования.
	 *
	 *
	 *
	 * @return CDBResult <p>Возвращается объект <a
	 * href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a>.</p>
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * &lt;?
	 * if (CModule::IncludeModule("learning"))
	 * {
	 *     $TEST_RESULT_ID = 2894;
	 *     
	 *     $res = CTestResult::GetByID($TEST_RESULT_ID);
	 * 
	 *     if ($arResult = $res-&gt;GetNext())
	 *     {
	 *         echo " Question name: ".$arResult["QUESTION_NAME"];
	 *         echo " Answered: ".$arResult["ANSWERED"];
	 *         echo " Point: ".$arResult["POINT"];
	 *     }
	 * }
	 * ?&gt;
	 * </pre>
	 *
	 *
	 *
	 * <h4>See Also</h4> 
	 * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/index.php">CDBResult</a> </li> <li> <a
	 * href="../../fields.php#test_result">Поля плана тестирования</a> </li> <li> <a
	 * href="index.php">CTestResult</a>::<a href="getlist.php">GetList</a> </li> </ul><a name="examples"></a>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/learning/classes/ctestresult/getbyid.php
	 * @author Bitrix
	 */
	public static function GetByID($ID)
	{
		return CTestResult::GetList(Array(), Array("ID"=>$ID));
	}
                @set_time_limit(0);
                $DB->StartTransaction();
                if (!CTestResult::Delete($ID)) {
                    $DB->Rollback();
                    $lAdmin->AddGroupError(GetMessage("LEARNING_DELETE_ERROR"), $ID);
                } else {
                    CTestAttempt::RecountQuestions($ATTEMPT_ID);
                    CTestAttempt::OnAttemptChange($ATTEMPT_ID);
                }
                $DB->Commit();
                break;
        }
    }
}
// fetch data
$rsData = CTestResult::GetList(array($by => $order), $arFilter);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
// navigation string setup
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("LEARNING_ADMIN_RESULTS")));
// list header
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "QUESTION_NAME", "content" => GetMessage('LEARNING_ADMIN_QUESTION_NAME'), "sort" => "question_name", "default" => true), array("id" => "ANSWERED", "content" => GetMessage('LEARNING_ADMIN_ANSWERED'), "sort" => "answered", "default" => true), array("id" => "CORRECT", "content" => GetMessage('LEARNING_ADMIN_CORRECT'), "sort" => "correct", "default" => true), array("id" => "POINT", "content" => GetMessage('LEARNING_ADMIN_POINT'), "sort" => "point", "default" => true), array("id" => "RESPONSE_TEXT", "content" => GetMessage('LEARNING_ADMIN_USER_RESPONSE_TEXT'), "sort" => "point", "default" => true)));
// building list
while ($arRes = $rsData->NavNext(true, "f_")) {
    $arRes['RESPONSE_TEXT'] = '';
    $result = CLQuestion::GetByID($arRes['QUESTION_ID']);
    $arData = $result->Fetch();
    if ($arData['QUESTION_TYPE'] === 'T') {
        $arRes['RESPONSE_TEXT'] = $arRes['RESPONSE'];
    } elseif (!empty($arRes['RESPONSE'])) {
        $arResponseIDs = explode(',', $arRes['RESPONSE']);
Ejemplo n.º 3
0
     $arProgress = CTestResult::GetProgress($sessAttemptID);
     if ($arProgress["TODO"] == 0) {
         $rsTestAttempt = new CTestAttempt();
         $rsTestAttempt->AttemptFinished($sessAttemptID);
         $rsAtt = CTestAttempt::GetByID((int) $sessAttemptID);
         if (($arAtt = $rsAtt->GetNext()) && $arTest["APPROVED"] == "Y") {
             $arAtt["CORRECT_COUNT"] = CTestResult::GetCorrectCount($arAtt["ID"]);
             $sessAttempt = $arAtt;
         }
         $sessAttemptID = null;
         $sessAttemptFinished = true;
         LocalRedirect($arResult["REDIRECT_PAGE"]);
     }
 }
 //Get questions
 $rsTestResult = CTestResult::GetList(array("ID" => "ASC"), array("ATTEMPT_ID" => $sessAttemptID, 'CHECK_PERMISSIONS' => 'N'));
 $rsTestResult->NavStart(10000);
 $arResult["NAV"]["PAGE_COUNT"] = $rsTestResult->SelectedRowsCount();
 //If no questions
 if ($arResult["NAV"]["PAGE_COUNT"] <= 0) {
     $rsTestAttempt = new CTestAttempt();
     $rsTestAttempt->AttemptFinished($sessAttemptID);
     $sessAttemptID = null;
     $sessAttemptFinished = true;
     LocalRedirect($arResult["REDIRECT_PAGE"]);
 }
 if ($arResult["NAV"]["PAGE_NUMBER"] > $arResult["NAV"]["PAGE_COUNT"]) {
     $arResult["NAV"]["PAGE_NUMBER"] = 1;
     $arResult["REDIRECT_PAGE"] = str_replace("#PAGE_ID#", $arResult["NAV"]["PAGE_NUMBER"] + 1, $arResult["PAGE_TEMPLATE"]);
 }
 $questionPageIndex = 1;
Ejemplo n.º 4
0
 function GetByID($ID)
 {
     return CTestResult::GetList(array(), array("ID" => $ID));
 }