- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
- Класс: CSocNetLogTools
- Вызов: CSocNetLogTools::FormatEvent_SystemFriends
static function FormatEvent_SystemFriends($arFields, $arParams, $bMail = false)
{
global $CACHE_MANAGER;
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
{
IncludeModuleLangFile(__FILE__, $arFields["MAIL_LANGUAGE_ID"]);
}
$arResult = array();
$bActiveUsers = false;
if ((int)$arFields["MESSAGE"] > 0)
{
$dbUser = CUser::GetByID($arFields["MESSAGE"]);
if ($arUser = $dbUser->Fetch())
{
if(defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->RegisterTag("USER_NAME_".intval($arUser["ID"]));
}
$messageUserID = $arFields["MESSAGE"];
if (
$arFields["ENTITY_TYPE"] === SONET_SUBSCRIBE_ENTITY_USER
&& (int)$arFields["ENTITY_ID"] > 0
)
{
$dbUser2 = CUser::GetByID($arFields["ENTITY_ID"]);
if ($arUser2 = $dbUser2->Fetch())
{
if(defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->RegisterTag("USER_NAME_".intval($arUser2["ID"]));
}
$secondUserID = $arFields["ENTITY_ID"];
$bActiveUsers = true;
}
}
}
}
if ($bActiveUsers)
{
$arResult = array(
"EVENT" => $arFields,
"CREATED_BY" => array(),
"ENTITY" => array(),
"EVENT_FORMATTED" => array(),
);
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($secondUserID, $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
if ($bMail)
{
if ($arFields["USER_NAME"] <> '' || $arFields["USER_LAST_NAME"] <> '')
$arResult["ENTITY"]["FORMATTED"] = $arFields["USER_NAME"]." ".$arFields["USER_LAST_NAME"].$suffix;
else
$arResult["ENTITY"]["FORMATTED"] = $arFields["USER_LOGIN"].$suffix;
$arResult["ENTITY"]["TYPE_MAIL"] = GetMessage("SONET_GL_EVENT_ENTITY_U");
}
else
{
$arFieldsTooltip = array(
"ID" => $secondUserID,
"NAME" => $arFields["~USER_NAME"],
"LAST_NAME" => $arFields["~USER_LAST_NAME"],
"SECOND_NAME" => $arFields["~USER_SECOND_NAME"],
"LOGIN" => $arFields["~USER_LOGIN"],
);
$oldNameTemplate = $arParams["NAME_TEMPLATE"];
$arParams["NAME_TEMPLATE"] .= $suffix;
$arResult["CREATED_BY"]["TOOLTIP_FIELDS"] = CSocNetLogTools::FormatEvent_FillTooltip($arFieldsTooltip, $arParams);
$arParams["NAME_TEMPLATE"] = $oldNameTemplate;
if (!$bMail)
$arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatar($arFields, $arParams, "USER_");
}
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($messageUserID, $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
$user_tmp = '';
if ($bMail)
{
$user_tmp .= (
$arUser["NAME"] <> ''
|| $arUser["LAST_NAME"] <> ''
? $arUser["NAME"]." ".$arUser["LAST_NAME"].$suffix
: $arUser["LOGIN"].$suffix
);
}
else
{
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($messageUserID, $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
$oldNameTemplate = $arParams["NAME_TEMPLATE"];
$arParams["NAME_TEMPLATE"] .= $suffix;
$anchor_id = RandString(8);
$user_tmp .= ''.CUser::FormatName($arParams["NAME_TEMPLATE"], $arUser, ($arParams["SHOW_LOGIN"] !== "N" ? true : false)).'';
$arParams["NAME_TEMPLATE"] = $oldNameTemplate;
}
if ($bMail)
{
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_FRIENDS_".mb_strtoupper($arFields["TITLE"])."_MAIL");
}
else
{
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_FRIENDS_".mb_strtoupper($arFields["TITLE"]).(trim($arFields["USER_PERSONAL_GENDER"]) <> '' ? "_".$arFields["USER_PERSONAL_GENDER"]: ""));
$title_tmp_24 = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_FRIENDS_".mb_strtoupper($arFields["TITLE"])."_24".(trim($arFields["USER_PERSONAL_GENDER"]) <> '' ? "_".$arFields["USER_PERSONAL_GENDER"] : ""));
}
$title = str_replace(
array("#USER_NAME#", "#ENTITY#"),
array($user_tmp, $arResult["ENTITY"]["FORMATTED"]),
$title_tmp
);
if ($bMail)
{
$arResult["EVENT_FORMATTED"] = array(
"TITLE" => $title,
"MESSAGE" => false
);
$friends_page = COption::GetOptionString("socialnetwork", "friends_page", false, SITE_ID);
if ($friends_page <> '')
{
$arFields["URL"] = str_replace(array("#user_id#", "#USER_ID#"), $secondUserID, $friends_page);
$arResult["EVENT_FORMATTED"]["URL"] = CSocNetLogTools::FormatEvent_GetURL($arFields);
}
}
else
{
switch ($arFields["TITLE"])
{
case "friend":
$classname = "join-group";
break;
case "unfriend":
$classname = "leave-group";
break;
default:
$classname = "";
}
$arResult["EVENT_FORMATTED"] = array(
"TITLE" => false,
"TITLE_24" => $title_tmp_24,
"MESSAGE" => $title,
"IS_MESSAGE_SHORT" => true,
"DESTINATION" => array(
array(
"STYLE" => "users",
"TITLE" => $user_tmp,
"URL" => str_replace(array("#user_id#", "#USER_ID#", "#id#", "#ID#"), $arFields["MESSAGE"], $arParams["~PATH_TO_USER"])
)
),
"STYLE" => $classname
);
}
}
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
return $arResult;
}