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