- Модуль: forum
- Путь к файлу: ~/bitrix/modules/forum/classes/general/message.php
- Класс: CAllForumMessage
- Вызов: CAllForumMessage::GetMessagePage
static function GetMessagePage($ID, $messagePerPage, $arUserGroups, $TID = 0, $addParams = [])
{
$ID = intval($ID);
$TID = intval($TID);
$messagePerPage = intval($messagePerPage);
if ($messagePerPage <= 0 || $ID <= 0)
return 0;
$addParams = (is_array($addParams) ? $addParams : []);
$permission = BitrixForumPermission::CAN_READ;
if (!empty($addParams["PERMISSION_EXTERNAL"]))
{
$permission = $addParams["PERMISSION_EXTERNAL"];
}
else if ($message = CForumMessage::GetByID($ID, array("FILTER" => "N")))
{
$permission = CForumNew::GetUserPermission($message["FORUM_ID"], $arUserGroups);
}
else if ($TID > 0 && ($topic = BitrixForumTopic::getById($TID)))
{
$permission = CForumNew::GetUserPermission($topic["FORUM_ID"], $arUserGroups);
}
$filter = (is_array($addParams["FILTER"]) ? $addParams["FILTER"] : []);
if ($permission < "Q")
{
$filter["APPROVED"] = "Y";
}
if ($TID > 0)
{
$filter["TOPIC_ID"] = $TID;
}
$order = ($addParams["ORDER_DIRECTION"] == "DESC" ? "DESC" : "ASC");
if ($order == "DESC")
{
$filter[">ID"] = $ID;
}
else
{
$filter[" $order), $filter, true)) / $messagePerPage);
return ++$iCnt;
}