static function FormatEvent_System($arFields, $arParams, $bMail = false)
{
global $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 (intval($arFields["ENTITY_ID"]) > 0)
{
$suffix = (is_array($GLOBALS["arExtranetGroupID"]) && in_array($arFields["ENTITY_ID"], $GLOBALS["arExtranetGroupID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
if ($bMail)
{
$arResult["ENTITY"]["FORMATTED"] = $arFields["GROUP_NAME"].$suffix;
$arResult["ENTITY"]["TYPE_MAIL"] = GetMessage("SONET_GL_EVENT_ENTITY_G");
}
elseif (mb_strpos($arFields["MESSAGE"], ",") > 0)
$arResult["ENTITY"] = CSocNetLogTools::FormatEvent_GetEntity($arFields, $arParams, false);
}
if (in_array($arFields["TITLE"], array("moderate", "unmoderate", "join", "unjoin")))
{
if (mb_strpos($arFields["MESSAGE"], ",") !== false)
{
$arResult["CREATED_BY"] = false;
$arGroup = array(
"IMAGE_ID" => $arFields["GROUP_IMAGE_ID"]
);
$arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatarGroup($arGroup, $arParams); // group avatar
}
else
{
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($arFields["MESSAGE"], $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
$dbUser = CUser::GetByID($arFields["MESSAGE"]);
if ($arUser = $dbUser->Fetch())
{
$arFieldsTooltip = array(
"ID" => $arUser["ID"],
"NAME" => $arUser["NAME"],
"LAST_NAME" => $arUser["LAST_NAME"],
"SECOND_NAME" => $arUser["SECOND_NAME"],
"LOGIN" => $arUser["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($arUser, $arParams, "");
}
}
}
else
{
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($arFields["USER_ID"], $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
$arFieldsTooltip = array(
"ID" => $arFields["USER_ID"],
"NAME" => $arFields["~CREATED_BY_NAME"],
"LAST_NAME" => $arFields["~CREATED_BY_LAST_NAME"],
"SECOND_NAME" => $arFields["~CREATED_BY_SECOND_NAME"],
"LOGIN" => $arFields["~CREATED_BY_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, "CREATED_BY_");
}
if ($arFields["MESSAGE"] <> '')
{
$arUsersID = explode(",", $arFields["MESSAGE"]);
$bFirst = true;
$count = 0;
$user_tmp = "";
if ($bMail)
{
$dbUser = CUser::GetList(
"last_name",
"asc",
array(
"ID" => implode(" | ", $arUsersID)
)
);
while($arUser = $dbUser->Fetch())
{
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($arUser["ID"], $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
$count++;
if (!$bFirst)
$user_tmp .= ", ";
if (
$arUser["NAME"] <> ''
|| $arUser["LAST_NAME"] <> ''
)
$user_tmp .= $arUser["NAME"]." ".$arUser["LAST_NAME"].$suffix;
else
$user_tmp .= $arUser["LOGIN"].$suffix;
$bFirst = false;
}
}
else
{
$dbUser = CUser::GetList(
"last_name",
"asc",
array(
"ID" => implode(" | ", $arUsersID)
),
array("FIELDS" => array("ID", "NAME", "LAST_NAME", "SECOND_NAME", "LOGIN", "PERSONAL_GENDER"))
);
while($arUser = $dbUser->Fetch())
{
if (defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->RegisterTag("USER_NAME_".intval($arUser["ID"]));
}
$suffix = (is_array($GLOBALS["arExtranetUserID"]) && in_array($arUser["ID"], $GLOBALS["arExtranetUserID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
$count++;
if (!$bFirst)
$user_tmp .= ", ";
$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;
$bFirst = false;
$arLastUser = $arUser;
}
}
}
if ($bMail)
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_".mb_strtoupper($arFields["TITLE"])."_".($count > 1 ? "2" : "1")."_MAIL");
else
{
if (in_array($arFields["TITLE"], array("moderate", "unmoderate", "join", "unjoin")))
{
if (
$count == 1
&& $arLastUser
)
$suffix = $arLastUser["PERSONAL_GENDER"];
else
$suffix = "";
}
else
$suffix = $arFields["CREATED_BY_PERSONAL_GENDER"];
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_".mb_strtoupper($arFields["TITLE"])."_".($count > 1 ? "2" : "1".(trim($suffix) <> '' ? "_".$suffix : "")));
$title_tmp_24 = GetMessage("SONET_GL_EVENT_TITLE_SYSTEM_".mb_strtoupper($arFields["TITLE"])."_".($count > 1 ? "2_24" : "1_24".(trim($suffix) <> '' ? "_".$suffix : "")));
}
$url = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_GROUP"], array("group_id" => $arFields["ENTITY_ID"]));
$suffix = (is_array($GLOBALS["arExtranetGroupID"]) && in_array($arFields["ENTITY_ID"], $GLOBALS["arExtranetGroupID"]) ? GetMessage("SONET_LOG_EXTRANET_SUFFIX") : "");
if ($url <> '')
$group_tmp = ''.$arFields["GROUP_NAME"].''.$suffix;
else
$group_tmp = $arFields["GROUP_NAME"].$suffix;
$title = str_replace(
array("#USER_NAME#", "#ENTITY#", "#GROUP_NAME#"),
array($user_tmp, $arResult["ENTITY"]["FORMATTED"], $group_tmp),
$title_tmp
);
$title_tmp_24 = str_replace(
array("#USER_NAME#"),
array($user_tmp),
$title_tmp_24
);
if ($bMail)
$arResult["EVENT_FORMATTED"] = array(
"TITLE" => $title,
"MESSAGE" => false
);
else
{
switch ($arFields["TITLE"])
{
case "join":
case "moderate":
case "owner":
$classname = "join-group";
break;
case "unjoin":
case "exclude_group":
case "unmoderate":
$classname = "leave-group";
break;
default:
$classname = "";
}
if (($arParams["MOBILE"] ?? null) == "Y")
$arResult["EVENT_FORMATTED"] = array(
"TITLE_24" => $title_tmp_24,
"DESTINATION" => array(
array(
"STYLE" => "",
"TITLE" => $arFields["GROUP_NAME"].$suffix,
"URL" => $url
)
),
"STYLE" => $classname
);
else
$arResult["EVENT_FORMATTED"] = array(
"TITLE" => false,
"MESSAGE" => $title,
"IS_MESSAGE_SHORT" => true,
"TITLE_24" => $title_tmp_24,
"DESTINATION" => array(
array(
"STYLE" => "sonetgroups",
"TITLE" => $arFields["GROUP_NAME"].$suffix,
"URL" => $url
)
),
"STYLE" => $classname
);
}
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
return $arResult;
}