- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
- Класс: CSocNetLogTools
- Вызов: CSocNetLogTools::FormatEvent_SystemGroups
static function FormatEvent_SystemGroups($arFields, $arParams, $bMail = false)
{
global $arSocNetLogGroups, $CACHE_MANAGER;
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
IncludeModuleLangFile(__FILE__, $arFields["MAIL_LANGUAGE_ID"]);
$arResult = array(
"EVENT" => $arFields,
"CREATED_BY" => array(),
"ENTITY" => array(),
"EVENT_FORMATTED" => array(),
);
if (
$arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_USER
&& intval($arFields["ENTITY_ID"]) > 0
)
{
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($arFields["ENTITY_ID"], $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" => $arFields["ENTITY_ID"],
"NAME" => $arFields["~USER_NAME"],
"LAST_NAME" => $arFields["~USER_LAST_NAME"],
"SECOND_NAME" => $arFields["~USER_SECOND_NAME"],
"LOGIN" => $arFields["~USER_LOGIN"],
);
$arParams["NAME_TEMPLATE"] .= $suffix;
$arResult["CREATED_BY"]["TOOLTIP_FIELDS"] = CSocNetLogTools::FormatEvent_FillTooltip($arFieldsTooltip, $arParams);
if (!$bMail)
{
$arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatar($arFields, $arParams, "USER_");
}
}
}
if ((int)$arFields["MESSAGE"] > 0)
{
if (!is_array($arSocNetLogGroups))
{
$arSocNetLogGroups = array();
}
if (array_key_exists($arFields["MESSAGE"], $arSocNetLogGroups))
{
$arGroup = $arSocNetLogGroups[$arFields["MESSAGE"]];
}
else
{
$rsGroup = CSocNetGroup::GetList(
array("ID" => "DESC"),
array(
"ID" => $arFields["MESSAGE"],
"ACTIVE" => "Y"
)
);
if ($arGroup = $rsGroup->GetNext())
{
if (!empty($arGroup['NAME']))
{
$arGroup['NAME'] = Emoji::decode($arGroup['NAME']);
}
if (!empty($arGroup['DESCRIPTION']))
{
$arGroup['DESCRIPTION'] = Emoji::decode($arGroup['DESCRIPTION']);
}
}
}
if ($arGroup)
{
if (!array_key_exists($arGroup["ID"], $arSocNetLogGroups))
{
$arSocNetLogGroups[$arGroup["ID"]] = $arGroup;
if(defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->RegisterTag("sonet_group_".$arGroup["ID"]);
}
}
$suffix = (is_array($GLOBALS["arExtranetGroupID"]) && in_array($arFields["MESSAGE"], $GLOBALS["arExtranetGroupID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
if ($bMail)
{
$group_tmp = $arGroup["NAME"].$suffix;
}
else
{
$url = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arFields["MESSAGE"]));
$group_tmp = ''.$arGroup["NAME"].$suffix.'';
}
if ($bMail)
{
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_GROUPS_".mb_strtoupper($arFields["TITLE"])."_MAIL");
}
else
{
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_GROUPS_".mb_strtoupper($arFields["TITLE"]).(trim($arFields["USER_PERSONAL_GENDER"]) <> '' ? "_".$arFields["USER_PERSONAL_GENDER"] : ""));
$title_tmp_24 = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_GROUPS_".mb_strtoupper($arFields["TITLE"])."_24".(trim($arFields["USER_PERSONAL_GENDER"]) <> '' ? "_".$arFields["USER_PERSONAL_GENDER"] : ""));
}
$title = str_replace(
array("#GROUP_NAME#", "#ENTITY#"),
array($group_tmp, $arResult["ENTITY"]["FORMATTED"]),
$title_tmp
);
if ($bMail)
{
$arResult["EVENT_FORMATTED"] = array(
"TITLE" => $title,
"MESSAGE" => false
);
}
else
{
switch ($arFields["TITLE"])
{
case "group":
$classname = "join-group";
break;
case "exclude_user":
case "ungroup":
$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" => "sonetgroups",
"TITLE" => $group_tmp
)
),
"STYLE" => $classname
);
}
}
}
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
{
IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
}
return $arResult;
}