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