- Модуль: form
- Путь к файлу: ~/bitrix/modules/form/classes/general/form_callformresult.php
- Класс: CAllFormResult
- Вызов: CAllFormResult::Delete
static function Delete($RESULT_ID, $CHECK_RIGHTS="Y")
{
// echo $RESULT_ID; exit();
global $DB, $USER, $APPLICATION, $strError;
$strError = '';
$err_mess = (CAllFormResult::err_mess())."
Function: Delete
Line: ";
$RESULT_ID = intval($RESULT_ID);
$strSql = "SELECT FORM_ID FROM b_form_result WHERE ID='".$RESULT_ID."'";
$q = $DB->Query($strSql,false,$err_mess.__LINE__);
if ($qr = $q->Fetch())
{
// rights check
$F_RIGHT = ($CHECK_RIGHTS!="Y") ? 20 : CForm::GetPermission($qr["FORM_ID"]);
if ($F_RIGHT>=20) $RIGHT_OK = "Y";
else
{
$strSql = "SELECT USER_ID FROM b_form_result WHERE ID='".$RESULT_ID."'";
$z = $DB->Query($strSql,false,$err_mess.__LINE__);
$zr = $z->Fetch();
if ($F_RIGHT>=15 && intval($USER->GetID())==$zr["USER_ID"]) $RIGHT_OK = "Y";
}
if ($RIGHT_OK=="Y")
{
// rights check by status
if ($CHECK_RIGHTS == 'Y')
{
$arrRESULT_PERMISSION = CFormResult::GetPermissions($RESULT_ID);
$RIGHT_OK = in_array("DELETE", $arrRESULT_PERMISSION) ? 'Y' : 'N';
}
if ($RIGHT_OK=="Y") // delete rights ok
{
foreach (GetModuleEvents('form', 'onBeforeResultDelete', true) as $arEvent)
{
ExecuteModuleEventEx($arEvent, array($qr["FORM_ID"], $RESULT_ID, $CHECK_RIGHTS));
if ($ex = $APPLICATION->GetException())
{
$strError .= $ex->GetString().'
';
$APPLICATION->ResetException();
}
}
if ($strError == '')
{
CForm::ExecHandlerBeforeChangeStatus($RESULT_ID, "DELETE");
if (CFormResult::Reset($RESULT_ID, true, "Y"))
{
// delete result
$DB->Query("DELETE FROM b_form_result WHERE ID='$RESULT_ID'", false, $err_mess.__LINE__);
return true;
}
}
}
}
else $strError .= GetMessage("FORM_ERROR_ACCESS_DENIED")."
";
}
else $strError .= GetMessage("FORM_ERROR_RESULT_NOT_FOUND")."
";
return false;
}