- Модуль: 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
)
);
}