• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/uf/forummessageconnector.php
  • Класс: BitrixDiskUfForumMessageConnector
  • Вызов: ForumMessageConnector::addComment
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()
					),
				)
			);
		}
	}
}