- Модуль: 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;
}