function Delete($ID) { global $DB; $ID = intval($ID); if ($ID < 1) { return false; } CLearnHelper::FireEvent('OnBeforeCertificateDelete', $ID); $strSql = "SELECT G.ID FROM b_learn_certification C\n\t\t\t\t\tINNER JOIN b_learn_test T ON C.COURSE_ID = T.COURSE_ID\n\t\t\t\t\tINNER JOIN b_learn_gradebook G ON (G.TEST_ID = T.ID AND G.STUDENT_ID = C.STUDENT_ID)\n\t\t\t\t\tWHERE C.ID = " . $ID; $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); //Gradebook while ($arRecord = $res->Fetch()) { if (!CGradeBook::Delete($arRecord["ID"])) { return false; } } $strSql = "DELETE FROM b_learn_certification WHERE ID = " . $ID; if (!$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__)) { return false; } CLearnHelper::FireEvent('OnAfterCertificateDelete', $ID); return true; }
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; } } $strSql = "DELETE FROM b_learn_test WHERE ID = " . $ID; if (!$DB->Query($strSql, false, "File: " . __FILE__ . "<br>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; }
} } foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue; } $ID = intval($ID); switch ($_REQUEST['action']) { case "delete": $oAccess = CLearnAccess::GetInstance($USER->GetID()); if (!$oAccess->IsLessonAccessible(CGradeBook::LessonIdByGradeBookId($ID), CLearnAccess::OP_LESSON_WRITE)) { break; } @set_time_limit(0); $DB->StartTransaction(); if (!CGradeBook::Delete($ID)) { $DB->Rollback(); $lAdmin->AddGroupError(GetMessage("LEARNING_DELETE_ERROR"), $ID); } $DB->Commit(); break; case "completed": case "uncompleted": $ob = new CGradeBook(); $arFields = array("COMPLETED" => $_REQUEST['action'] == "completed" ? "Y" : "N"); if (!$ob->Update($ID, $arFields)) { if ($e = $APPLICATION->GetException()) { $lAdmin->AddGroupError(GetMessage("SAVE_ERROR") . $ID . ": " . $e->GetString(), $ID); } } break;
/** * <p>Метод удаляет тест с идентификатором ID.</p> * * * * * @param int $ID Идентификатор теста. * * * * @return bool <p>Метод возвращает <i>true</i> в случае успешного удаления теста, в * противном случае возвращает <i>false</i>.</p><a name="examples"></a> * * * <h4>Example</h4> * <pre> * <? * if (CModule::IncludeModule("learning")) * { * * $TEST_ID = 99; * $COURSE_ID = 97; * * if (CCourse::GetPermission($COURSE_ID) >= 'W') * { * @set_time_limit(0); * $DB->StartTransaction(); * if (!CTest::Delete($TEST_ID)) * { * echo "Error!"; * $DB->Rollback(); * } * else * $DB->Commit(); * } * } * ?> * </pre> * * * @static * @link http://dev.1c-bitrix.ru/api_help/learning/classes/ctest/delete.php * @author Bitrix */ public 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; } $strSql = "DELETE FROM b_learn_test WHERE ID = ".$ID; if (!$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__)) return false; CLearnHelper::FireEvent('OnAfterTestDelete', $ID); return true; }