• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/test.php
  • Класс: CAllTest
  • Вызов: CAllTest::Delete
static function Delete($ID)
{
	global $DB;

	$ID = intval($ID);
	if ($ID < 1) return false;

	CLearnHelper::FireEvent('OnBeforeTestDelete', $ID);

	//Gradebook
	$records = CGradeBook::GetList(Array(), Array("TEST_ID" => $ID));
	while($arRecord = $records->Fetch())
	{
		if(!CGradeBook::Delete($arRecord["ID"]))
			return false;
	}

	//Attempts
	$attempts = CTestAttempt::GetList(Array(), Array("TEST_ID" => $ID));
	while($arAttempt = $attempts->Fetch())
	{
		if(!CTestAttempt::Delete($arAttempt["ID"]))
			return false;
	}

	//Marks
	$marks = CLTestMark::GetList(Array(), Array("TEST_ID" => $ID));
	while($arMark = $marks->Fetch())
	{
		if(!CLTestMark::Delete($arMark["ID"]))
			return false;
	}

	//Previous tests
	$previousTests = CTest::GetList([], ["PREVIOUS_TEST_ID" => $ID]);
	while ($previousTest = $previousTests->Fetch())
	{
		$test = new CTest;
		$test->Update($previousTest["ID"], ["PREVIOUS_TEST_ID" => 0]);
	}

	$strSql = "DELETE FROM b_learn_test WHERE ID = ".$ID;

	if (!$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__)) return false; CEventLog::add(array( 'AUDIT_TYPE_ID' => 'LEARNING_REMOVE_ITEM', 'MODULE_ID' => 'learning', 'ITEM_ID' => 'T #' . $ID, 'DESCRIPTION' => 'test removed' )); CLearnHelper::FireEvent('OnAfterTestDelete', $ID); return true; }