- Модуль: vote
- Путь к файлу: ~/bitrix/modules/vote/classes/general/question.php
- Класс: CAllVoteQuestion
- Вызов: CAllVoteQuestion::Delete
static function Delete($ID, $VOTE_ID = false)
{
global $DB;
$err_mess = (CVoteQuestion::err_mess())."
Function: Delete
Line: ";
/***************** Event onBeforeVoteQuestionDelete ****************/
foreach (GetModuleEvents("vote", "onBeforeVoteQuestionDelete", true) as $arEvent)
if (ExecuteModuleEventEx($arEvent, array(&$ID, &$VOTE_ID)) === false)
return false;
/***************** /Event ******************************************/
if (!CVoteAnswer::Delete(false, $ID, $VOTE_ID))
return false;
$ID = (intval($ID) > 0 ? intval($ID) : false);
$VOTE_ID = (intval($VOTE_ID) > 0 ? intval($VOTE_ID) : false);
if ($ID === false && $VOTE_ID === false):
return false;
elseif ($ID === false):
$strSqlID = "SELECT Q.ID FROM b_vote_question Q WHERE Q.VOTE_ID=".$VOTE_ID;
else:
$strSqlID = "".$ID."";
endif;
$DB->StartTransaction();
$strSql = "SELECT IMAGE_ID FROM b_vote_question WHERE ID IN (".$strSqlID.") AND IMAGE_ID > 0";
$z = $DB->Query($strSql, false, $err_mess.__LINE__);
while ($zr = $z->Fetch()) CFile::Delete($zr["IMAGE_ID"]);
// drop question events
if (!$DB->Query("DELETE FROM b_vote_event_question WHERE QUESTION_ID IN (".$strSqlID.")", false, $err_mess.__LINE__)):
$DB->Rollback();
return false;
endif;
// drop question
if ($ID === false):
$strSql = "DELETE FROM b_vote_question WHERE VOTE_ID=".$VOTE_ID;
else:
$strSql = "DELETE FROM b_vote_question WHERE ID=".$ID;
endif;
if (!$DB->Query($strSql, false, $err_mess.__LINE__)):
$DB->Rollback();
return false;
endif;
$DB->Commit();
/***************** Cleaning cache **********************************/
if ($ID === false)
unset($GLOBALS["VOTE_CACHE"]["QUESTION"]);
else
unset($GLOBALS["VOTE_CACHE"]["QUESTION"][$ID]);
/***************** Cleaning cache/**********************************/
/***************** Event onAfterForumDelete ************************/
foreach (GetModuleEvents("vote", "onAfterVoteQuestionDelete", true) as $arEvent)
ExecuteModuleEventEx($arEvent, array($ID, $VOTE_ID));
/***************** /Event ******************************************/
return true;
}