- Модуль: forum
- Путь к файлу: ~/bitrix/modules/forum/classes/general/forum_new.php
- Класс: CAllForumNew
- Вызов: CAllForumNew::GetForumRenew
static function GetForumRenew($data)
{
global $DB, $USER;
$userId = false;
if (array_key_exists("USER_ID", $data) && $data["USER_ID"] > 0)
{
$userId = intval($data["USER_ID"]);
}
else if ($USER->IsAuthorized())
{
$userId = $USER->GetID();
}
$forums = array_key_exists("FORUM_ID", $data) ? $data["FORUM_ID"] : [];
$forums = is_array($forums) ? $forums : [$forums];
array_map("intval", $forums);
if ($userId === false || sizeof($forums) <= 0)
{
return false;
}
$sWhere = "(1=1)";
if (sizeof($forums) > 0)
{
$sWhere = '(BF.ID IN ('.implode(", ", $forums).'))';
}
$strSql = << FUF_ALL.LAST_VISIT)
)
LEFT JOIN b_forum_user_topic FUT_RENEW ON (
FUT_RENEW.FORUM_ID = BF.ID AND FUT_RENEW.TOPIC_ID = FT_RENEW.ID AND FUT_RENEW.USER_ID = {$userId})
WHERE(
{$sWhere}
AND
(
FUT_RENEW.LAST_VISIT IS NULL
AND
(
(FUF_ALL.LAST_VISIT IS NULL AND FUF.LAST_VISIT IS NULL)
OR
(
FUF.LAST_VISIT IS NOT NULL
AND
(FUF.LAST_VISIT < FT_RENEW.ABS_LAST_POST_DATE OR FUF.LAST_VISIT < FT_RENEW.LAST_POST_DATE)
)
OR
(
FUF.LAST_VISIT IS NULL
AND
FUF_ALL.LAST_VISIT IS NOT NULL
AND
(
(
FUF_ALL.LAST_VISIT < FT_RENEW.ABS_LAST_POST_DATE
OR
FUF_ALL.LAST_VISIT < FT_RENEW.LAST_POST_DATE
)
)
)
)
)
OR (
FUT_RENEW.LAST_VISIT IS NOT NULL
AND
(
FUT_RENEW.LAST_VISIT < FT_RENEW.ABS_LAST_POST_DATE
OR
FUT_RENEW.LAST_VISIT < FT_RENEW.LAST_POST_DATE
)
)
)
GROUP BY BF.ID
SQL;
$db_res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
return $db_res;
}