public function addComment($authorId, array $data)
{
$return = null;
if(($res = $this->getDataToShowForUser($authorId)) && !empty($res) &&
($res2 = $this->getDataToCheck($this->entityId)) && !empty($res2))
{
list($message, $topic, $forum) = $res2;
$messageFields = array(
"POST_MESSAGE" => $data["text"],
"PARAM2" => $this->entityId,
"APPROVED" => "Y",
"PERMISSION_EXTERNAL" => "I",
"PERMISSION" => "I",
);
if ($forum["DEDUPLICATION"] == "Y")
{
CForumNew::update($forum["ID"], array("DEDUPLICATION" => "N"), false);
}
if(!empty($data['fileId']))
{
$messageFields['UF_FORUM_MESSAGE_DOC'] = array($data['fileId']);
$GLOBALS["UF_FORUM_MESSAGE_DOC"] = array($data['fileId']);
}
elseif(!empty($data['versionId']))
{
$messageFields['UF_FORUM_MESSAGE_VER'] = $data['versionId'];
$GLOBALS["UF_FORUM_MESSAGE_VER"] = $data['versionId'];
}
$comId = ForumAddMessage("REPLY", $message["FORUM_ID"], $message["TOPIC_ID"], 0, $messageFields,
$strErrorMessage,
$strOKMessage);
if ($res['DUPLICATE_TO_SOCNET'] == "Y" && $comId > 0 && Loader::includeModule("socialnetwork"))
{
if ($res['DUPLICATE_TO_SOCNET'] == "Y")
{
$arFieldsForSocnet = array(
"USER_ID" => $authorId,
'=LOG_DATE' => $GLOBALS['DB']->currentTimeFunction(),
"ENTITY_TYPE" => $res["ENTITY_TYPE"],
"ENTITY_ID" => $res["ENTITY_ID"],
"EVENT_ID" => $res["EVENT_ID"],
"MESSAGE" => $data["text"],
"TEXT_MESSAGE" => $data["text"],
"URL" => $res["DETAIL_URL"],
"MODULE_ID" => $res["MODULE_ID"],
"SOURCE_ID" => $comId,
"LOG_ID" => $res["LOG_ID"],
"RATING_TYPE_ID" => "FORUM_POST",
"RATING_ENTITY_ID" => $comId);
if(!empty($data['fileId']))
{
$arFieldsForSocnet['UF_SONET_COM_DOC'] = array($data['fileId']);
$GLOBALS["UF_SONET_COM_DOC"] = array($data['fileId']);
}
elseif(!empty($data['versionId']))
{
$arFieldsForSocnet['UF_SONET_COM_VER'] = $data['versionId'];
$GLOBALS["UF_SONET_COM_VER"] = $data['versionId'];
}
CSocNetLogComments::add($arFieldsForSocnet, false, false, false);
}
}
if ($comId > 0 && Loader::includeModule("pull") && CPullOptions::getNginxStatus() && $res["DETAIL_URL"] !== null)
{
$provider = CommentAuxBase::init(CommentAuxFileVersion::getType(), array(
'liveParamList' => array(
'userId' => $authorId,
'userGender' => (isset($data['authorGender']) ? $data['authorGender'] : ''),
'isEnabledKeepVersion' => Configuration::isEnabledKeepVersion()
)
));
CPullWatch::addToStack("UNICOMMENTS".$topic["XML_ID"],
array(
'module_id' => "unicomments",
'command' => "comment",
'params' => Array(
"AUTHOR_ID" => $authorId,
"ID" => $comId,
"POST_ID" => $this->entityId,
"TS" => time(),
"ACTION" => "REPLY",
"URL" => array(
"LINK" => str_replace("MID=".$this->entityId, "MID=".$comId, $res["DETAIL_URL"]),
),
"ENTITY_XML_ID" => $topic["XML_ID"],
"APPROVED" => "Y",
"AUX" => "fileversion",
"AUX_LIVE_PARAMS" => $provider->getLiveParams()
),
)
);
}
}
}