• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
  • Класс: CSocNetLogTools
  • Вызов: CSocNetLogTools::UpdateComment_Forum
static function UpdateComment_Forum($arFields)
{
	global $USER_FIELD_MANAGER;

	if (!CModule::IncludeModule("forum"))
	{
		return false;
	}

	if (
		!isset($arFields["SOURCE_ID"])
		|| intval($arFields["SOURCE_ID"]) <= 0
	)
	{
		return false;
	}

	$messageId = intval($arFields["SOURCE_ID"]);

	$ufFileID = array();
	$ufDocID = array();
	$sNote = '';

	if ($arForumMessage = CForumMessage::GetByID($messageId))
	{
		$arFieldsMessage = array(
			"POST_MESSAGE" => $arFields["TEXT_MESSAGE"],
			"USE_SMILES" => "Y",
			"APPROVED" => "Y",
			"SONET_PERMS" => array("bCanFull" => true)
		);

		$USER_FIELD_MANAGER->EditFormAddFields("SONET_COMMENT", $arTmp);
		if (is_array($arTmp))
		{
			if (array_key_exists("UF_SONET_COM_DOC", $arTmp))
			{
				$GLOBALS["UF_FORUM_MESSAGE_DOC"] = $arTmp["UF_SONET_COM_DOC"];
			}
			elseif (array_key_exists("UF_SONET_COM_FILE", $arTmp))
			{
				$arFieldsMessage["FILES"] = array();
				foreach($arTmp["UF_SONET_COM_FILE"] as $file_id)
				{
					$arFieldsMessage["FILES"][$file_id] = array("FILE_ID" => $file_id);
				}
				if (!empty($arFieldsMessage["FILES"]))
				{
					$arFileParams = array("FORUM_ID" => $arForumMessage["FORUM_ID"], "TOPIC_ID" => $arForumMessage["TOPIC_ID"]);
					if(CForumFiles::CheckFields($arFieldsMessage["FILES"], $arFileParams, "NOT_CHECK_DB"))
					{
						CForumFiles::Add(array_keys($arFieldsMessage["FILES"]), $arFileParams);
					}
				}
			}
		}

		$messageID = ForumAddMessage("EDIT", $arForumMessage["FORUM_ID"], $arForumMessage["TOPIC_ID"], $messageId, $arFieldsMessage, $sError, $sNote);
		unset($GLOBALS["UF_FORUM_MESSAGE_DOC"]);

		// get UF DOC value and FILE_ID there
		if ($messageID > 0)
		{
			$dbAddedMessageFiles = CForumFiles::GetList(array("ID" => "ASC"), array("MESSAGE_ID" => $messageID));
			while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch())
			{
				$ufFileID[] = $arAddedMessageFiles["FILE_ID"];
			}

			$ufDocID = $USER_FIELD_MANAGER->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $messageID, LANGUAGE_ID);
		}
	}
	else
	{
		$sError = GetMessage("SONET_UPDATE_COMMENT_SOURCE_ERROR");
	}

	return array(
		"ERROR" => $sError,
		"NOTES" => $sNote,
		"UF" => array(
			"FILE" => $ufFileID,
			"DOC" => $ufDocID
		)
	);
}