• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/uf/forummessageconnector.php
  • Класс: BitrixDiskUfForumMessageConnector
  • Вызов: ForumMessageConnector::getDataToCheck
static function getDataToCheck($messageId)
{
	$return = false;
	if($messageId > 0 && Loader::includeModule("forum"))
	{
		if(!array_key_exists($messageId, self::$messages))
		{
			$cacheTtl = 2592000;
			$cacheId = 'forum_message_' . $messageId;
			$cachePath = CComponentEngine::makeComponentPath("forum.topic.read");
			$cache = new CPHPCache;
			$messages = $topics = array();
			if($cache->initCache($cacheTtl, $cacheId, $cachePath))
			{
				list($messages, $topics) = $cache->getVars();
			}
			else
			{
				$dbForumMessage = CForumMessage::getList(array(), array("ID" => $messageId));
				if ($messageData = $dbForumMessage->fetch())
				{
					$messages["M" . $messageData["ID"]] = array_intersect_key($messageData, array(
						"ID" => "",
						"TOPIC_ID" => "",
						"FORUM_ID" => "",
						"USER_ID" => "",
						"NEW_TOPIC" => "",
						"APPROVED" => "",
						"PARAM1" => "",
						"PARAM2" => ""
					));
					$dbForumTopic = CForumTopic::getList(array(), array("ID" => $messageData["TOPIC_ID"]));
					if ($topicData = $dbForumTopic->fetch())
					{
						$topics["T" . $topicData["ID"]] = array(
							"TITLE" => $topicData["TITLE"],
							"USER_ID" => $topicData["USER_START_ID"],
							"XML_ID" => $topicData["XML_ID"],
							"SOCNET_GROUP_ID" => $topicData["SOCNET_GROUP_ID"],
							"OWNER_ID" => $topicData["OWNER_ID"]
						);
					}
				}
				if(!empty($messages))
				{
					$cache->startDataCache();
					$res = reset($topics);

					CForumCacheManager::setTag($cachePath, "forum_topic_" . $res['ID']);
					$cache->endDataCache(array($messages, $topics));
				}
			}
			if (!empty($messages) && is_array($messages))
				self::$messages += $messages;
			if (!empty($topics) && is_array($topics))
				self::$topics += $topics;
		}
		if(array_key_exists("M" . $messageId, self::$messages))
		{
			$return = array(
				self::$messages["M" . $messageId],
				self::$topics["T" . self::$messages["M" . $messageId]["TOPIC_ID"]],
				CForumNew::getByIDEx(self::$messages["M" . $messageId]["FORUM_ID"], SITE_ID)
			);
		}
	}
	return $return;
}