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