• Модуль: vote
  • Путь к файлу: ~/bitrix/modules/vote/classes/general/question.php
  • Класс: CAllVoteQuestion
  • Вызов: CAllVoteQuestion::Add
static function Add($arFields, $strUploadDir = false)
{
	global $DB;
	$strUploadDir = ($strUploadDir === false ? "vote" : $strUploadDir);

	if (!CVoteQuestion::CheckFields("ADD", $arFields))
		return false;
/***************** Event onBeforeVoteQuestionAdd *******************/
	foreach (GetModuleEvents("vote", "onBeforeVoteQuestionAdd", true) as $arEvent)
		if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
			return false;
/***************** /Event ******************************************/
	if (empty($arFields))
		return false;

	if (
		array_key_exists("IMAGE_ID", $arFields)
		&& is_array($arFields["IMAGE_ID"])
		&& (
			!array_key_exists("MODULE_ID", $arFields["IMAGE_ID"])
			|| $arFields["IMAGE_ID"]["MODULE_ID"] == ''
		)
	)
		$arFields["IMAGE_ID"]["MODULE_ID"] = "vote";

	CFile::SaveForDB($arFields, "IMAGE_ID", $strUploadDir);

	if ($DB->type == "ORACLE")
		$arFields["ID"] = $DB->NextID("SQ_B_VOTE_QUESTION");

	$arInsert = $DB->PrepareInsert("b_vote_question", $arFields);

	$DB->QueryBind("INSERT INTO b_vote_question (".$arInsert[0].", TIMESTAMP_X) VALUES(".$arInsert[1].", ".$DB->GetNowFunction().")", array("QUESTION" => $arFields["QUESTION"]), false);
	$ID = intval($DB->type == "ORACLE" ? $arFields["ID"] : $DB->LastID());

/***************** Event onAfterVoteQuestionAdd ********************/
	foreach (GetModuleEvents("vote", "onAfterVoteQuestionAdd", true) as $arEvent)
		ExecuteModuleEventEx($arEvent, array($ID, $arFields));
/***************** /Event ******************************************/
	return $ID;
}