- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_livefeed.php
- Класс: CCalendarLiveFeed
- Вызов: CCalendarLiveFeed::FixForumCommentURL
static function FixForumCommentURL($arData)
{
if (
($arData['ENTITY_TYPE_ID'] ?? null) === 'FORUM_POST'
&& (int)($arData['PARAM1'] ?? null) > 0
&& in_array($arData["MODULE_ID"], array("forum", "FORUM"))
&& preg_match('/^EVENT_(d+)/', $arData["TITLE"], $match)
)
{
$arCalendarSettings = CCalendar::GetSettings();
$forumID = (int)$arCalendarSettings["forum_id"];
$eventID = (int)$match[1];
if (
(int)$arData['PARAM1'] === $forumID
&& $eventID > 0
&& ($arCalendarEvent = CCalendarEvent::GetById($eventID))
&& (string)$arCalendarEvent["CAL_TYPE"] !== ''
&& !empty($arCalendarSettings["pathes"])
&& (int)$arCalendarEvent["OWNER_ID"] > 0
&& in_array($arCalendarEvent["CAL_TYPE"], array("user", "group"))
)
{
foreach ($arData['LID'] as $siteId => $value)
{
$messageUrl = false;
if (
array_key_exists($siteId, $arCalendarSettings["pathes"])
&& is_array($arCalendarSettings["pathes"][$siteId])
&& !empty($arCalendarSettings["pathes"][$siteId])
)
{
if ($arCalendarEvent["CAL_TYPE"] === "user")
{
if (
array_key_exists("path_to_user_calendar", $arCalendarSettings["pathes"][$siteId])
&& !empty($arCalendarSettings["pathes"][$siteId]["path_to_user_calendar"])
)
{
$messageUrl = CComponentEngine::MakePathFromTemplate(
$arCalendarSettings["pathes"][$siteId]["path_to_user_calendar"],
array(
"user_id" => $arCalendarEvent['OWNER_ID'],
)
);
}
}
elseif (
array_key_exists("path_to_group_calendar", $arCalendarSettings["pathes"][$siteId])
&& !empty($arCalendarSettings["pathes"][$siteId]["path_to_group_calendar"])
)
{
$messageUrl = CComponentEngine::MakePathFromTemplate(
$arCalendarSettings["pathes"][$siteId]["path_to_group_calendar"],
array(
"group_id" => $arCalendarEvent['OWNER_ID'],
)
);
}
}
$arData['LID'][$siteId] = ($messageUrl ? $messageUrl."?EVENT_ID=".$arCalendarEvent["ID"]."&MID=".$arData['ENTITY_ID']."#message".$arData['ENTITY_ID'] : "");
}
return $arData;
}
$arData['TITLE'] = '';
$arData['BODY'] = '';
return $arData;
}
}