/** * <p>Метод удаляет вопрос с идентификатором ID.</p> * * * @param int $ID Идентификатор вопроса. * * @return bool <p>Метод возвращает <i>true</i> в случае успешного удаления вопроса, в * противном случае возвращает <i>false</i>.</p> * * <h4>Example</h4> * <pre> * <? * if (CModule::IncludeModule("learning")) * { * $COURSE_ID = 97; * $QUESTION_ID = 600; * * if (CCourse::GetPermission($COURSE_ID) >= 'W') * { * @set_time_limit(0); * $DB->StartTransaction(); * if (!CLQuestion::Delete($QUESTION_ID)) * { * echo "Error!"; * $DB->Rollback(); * } * else * $DB->Commit(); * } * } * ?> * </pre> * * * <h4>See Also</h4> * <ul><li> <a href="http://dev.1c-bitrix.ru/api_help/learning/classes/clquestion/index.php">CLQuestion</a>::<a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/clquestion/add.php">Add</a> </li></ul><a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/learning/classes/clquestion/delete.php * @author Bitrix */ public static function Delete($ID) { global $DB, $USER_FIELD_MANAGER; $ID = intval($ID); if ($ID < 1) { return false; } $strSql = "SELECT FILE_ID FROM b_learn_question WHERE ID = " . $ID; $r = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if (!($arQuestion = $r->Fetch())) { return false; } $answers = CLAnswer::GetList(array(), array("QUESTION_ID" => $ID)); while ($arAnswer = $answers->Fetch()) { if (!CLAnswer::Delete($arAnswer["ID"])) { return false; } } $arAttempts = array(); $strSql = "SELECT ATTEMPT_ID FROM b_learn_test_result WHERE QUESTION_ID = " . $ID; $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); while ($ar = $res->Fetch()) { $arAttempts[] = $ar["ATTEMPT_ID"]; } //Attempts to recount //Results $strSql = "DELETE FROM b_learn_test_result WHERE QUESTION_ID = " . $ID; if (!$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__)) { return false; } foreach ($arAttempts as $ATTEMPT_ID) { CTestAttempt::RecountQuestions($ATTEMPT_ID); CTestAttempt::OnAttemptChange($ATTEMPT_ID); } $strSql = "DELETE FROM b_learn_question WHERE ID = " . $ID; if (!$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__)) { return false; } $USER_FIELD_MANAGER->delete('LEARNING_QUESTIONS', $ID); CFile::Delete($arQuestion["FILE_ID"]); CEventLog::add(array('AUDIT_TYPE_ID' => 'LEARNING_REMOVE_ITEM', 'MODULE_ID' => 'learning', 'ITEM_ID' => 'Q #' . $ID, 'DESCRIPTION' => 'question removed')); foreach (GetModuleEvents('learning', 'OnAfterQuestionDelete', true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arQuestion)); } return true; }
$arFields["CORRECT"] = "n" . $i == $ANSWER_CORRECT ? "Y" : "N"; } $asw = new CLAnswer(); $AswerID = $asw->Add($arFields); if (intval($AswerID) <= 0) { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("LEARNING_ERROR"), $e); } $bVarsFromForm = true; } } } else { //Delete answers $answers = CLAnswer::GetList(array(), array("QUESTION_ID" => $ID)); while ($a = $answers->GetNext()) { CLAnswer::Delete($a["ID"]); } } //Redirect if (!$bVarsFromForm) { if (strlen($apply) <= 0) { if ($from == "learn_admin") { LocalRedirect("/bitrix/admin/learn_unilesson_admin.php?lang=" . LANG . '&LESSON_PATH=' . $uriParentLessonPath . GetFilterParams("filter_", false) . "&from=learn_admin"); } elseif ($from == "learn_menu") { LocalRedirect("/bitrix/admin/learn_question_admin.php?lang=" . LANG . '&LESSON_PATH=' . $uriLessonPath . GetFilterParams("filter_", false) . "&from=learn_menu"); } elseif (strlen($return_url) > 0) { LocalRedirect($return_url); } else { LocalRedirect("/bitrix/admin/learn_question_admin.php?lang=" . LANG . '&LESSON_PATH=' . $uriLessonPath . GetFilterParams("filter_", false)); } }
/** * <p>Метод удаляет вопрос с идентификатором ID.</p> * * * * * @param int $ID Идентификатор вопроса. * * * * @return bool <p>Метод возвращает <i>true</i> в случае успешного удаления вопроса, в * противном случае возвращает <i>false</i>.</p> * * * <h4>Example</h4> * <pre> * <? * if (CModule::IncludeModule("learning")) * { * $COURSE_ID = 97; * $QUESTION_ID = 600; * * if (CCourse::GetPermission($COURSE_ID) >= 'W') * { * @set_time_limit(0); * $DB->StartTransaction(); * if (!CLQuestion::Delete($QUESTION_ID)) * { * echo "Error!"; * $DB->Rollback(); * } * else * $DB->Commit(); * } * } * ?> * </pre> * * * * <h4>See Also</h4> * <ul><li> <a href="http://dev.1c-bitrix.ru/api_help/learning/classes/clquestion/index.php">CLQuestion</a>::<a * href="http://dev.1c-bitrix.ru/api_help/learning/classes/clquestion/add.php">Add</a> </li></ul><a name="examples"></a> * * * @static * @link http://dev.1c-bitrix.ru/api_help/learning/classes/clquestion/delete.php * @author Bitrix */ public static function Delete($ID) { global $DB; $ID = intval($ID); if ($ID < 1) return false; $strSql = "SELECT FILE_ID FROM b_learn_question WHERE ID = ".$ID; $r = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); if (!$arQuestion = $r->Fetch()) return false; $answers = CLAnswer::GetList(Array(), Array("QUESTION_ID" => $ID)); while($arAnswer = $answers->Fetch()) { if(!CLAnswer::Delete($arAnswer["ID"])) return false; } $arAttempts = Array(); $strSql = "SELECT ATTEMPT_ID FROM b_learn_test_result WHERE QUESTION_ID = ".$ID; $res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); while($ar = $res->Fetch()) $arAttempts[] = $ar["ATTEMPT_ID"]; //Attempts to recount //Results $strSql = "DELETE FROM b_learn_test_result WHERE QUESTION_ID = ".$ID; if (!$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__)) return false; foreach($arAttempts as $ATTEMPT_ID) { CTestAttempt::RecountQuestions($ATTEMPT_ID); CTestAttempt::OnAttemptChange($ATTEMPT_ID); } $strSql = "DELETE FROM b_learn_question WHERE ID = ".$ID; if (!$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__)) return false; CFile::Delete($arQuestion["FILE_ID"]); return true; }