- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/log_tools.php
- Класс: CSocNetLogTools
- Вызов: CSocNetLogTools::FormatEvent_Photo
static function FormatEvent_Photo($arFields, $arParams, $bMail = false)
{
global $CACHE_MANAGER;
static $arAlbumName = array();
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
IncludeModuleLangFile(__FILE__, $arFields["MAIL_LANGUAGE_ID"]);
$arResult = array(
"EVENT" => $arFields,
"CREATED_BY" => CSocNetLogTools::FormatEvent_GetCreatedBy($arFields, $arParams, $bMail),
"ENTITY" => CSocNetLogTools::FormatEvent_GetEntity($arFields, $arParams, $bMail),
"EVENT_FORMATTED" => array(),
);
if (!$bMail)
$arResult["AVATAR_SRC"] = CSocNetLogTools::FormatEvent_CreateAvatar($arFields, $arParams);
$count = false;
if ($arFields["PARAMS"] <> '')
{
$arTmp = unserialize(htmlspecialcharsback($arFields["PARAMS"]), [ 'allowed_classes' => false ]);
if ($arTmp)
{
$count = $arTmp["COUNT"];
}
else
{
$arFieldsParams = explode("&", $arFields["PARAMS"]);
if (is_array($arFieldsParams) && count($arFieldsParams) > 0)
{
foreach ($arFieldsParams as $tmp)
{
list($key, $value) = explode("=", $tmp);
if ($key === "count")
{
$count = $value;
break;
}
}
}
}
}
if (!$count)
$count_tmp = "";
else
$count_tmp = intval($count);
$album_default = GetMessage("SONET_GL_EVENT_TITLE_PHOTO_ALBUM");
$album_default_24 = GetMessage("SONET_GL_EVENT_TITLE_PHOTO_ALBUM_24");
$album_default_24_mobile = GetMessage("SONET_GL_EVENT_TITLE_PHOTO_ALBUM_24_MOBILE");
$section_name = false;
if (
intval($arFields["SOURCE_ID"]) > 0
&& CModule::IncludeModule('iblock')
)
{
if (array_key_exists($arFields["SOURCE_ID"], $arAlbumName))
$section_name = $arAlbumName[$arFields["SOURCE_ID"]];
else
{
$rsSection = CIBlockSection::GetByID($arFields["SOURCE_ID"]);
if ($arSection = $rsSection->GetNext())
{
$section_name = $arSection["NAME"];
$arAlbumName[$arFields["SOURCE_ID"]] = $arSection["NAME"];
if(defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->RegisterTag("iblock_id_".$arSection["IBLOCK_ID"]);
}
}
}
}
if (
!$bMail
&& array_key_exists("URL", $arFields)
&& $arFields["URL"] <> ''
)
{
$album_tmp = ($section_name ? $album_default.' '.$section_name.'' : ''.$album_default.'');
$album_tmp_24 = ($section_name ? $album_default_24.': '.$section_name.'' : ''.$album_default_24.'');
$album_tmp_24_mobile = ($section_name ? $album_default_24_mobile.': '.$section_name : $album_default_24_mobile);
}
else
{
$album_tmp = ($section_name ? $album_default.' '.$section_name : $album_default);
$album_tmp_24 = ($section_name ? $album_default_24.': ' . $section_name : $album_default_24);
$album_tmp_24_mobile = ($section_name ? $album_default_24_mobile.': '.$section_name : $album_default_24_mobile);
}
$title_tmp = '';
if ($bMail)
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_".($arFields["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP ? "GROUP" : "USER")."_PHOTO_MAIL");
elseif (($arParams["MOBILE"] ?? null) == "Y")
$title_tmp_24 = GetMessage("SONET_GL_EVENT_TITLE_PHOTO_24_MOBILE");
else
{
$title_tmp = GetMessage("SONET_GL_EVENT_TITLE_PHOTO");
switch ($arFields["CREATED_BY_PERSONAL_GENDER"])
{
case "M":
$suffix = "_M";
break;
case "F":
$suffix = "_F";
break;
default:
$suffix = "";
}
$title_tmp_24 = GetMessage("SONET_GL_EVENT_TITLE_PHOTO_24".$suffix);
}
$title = str_replace(
[
"#ALBUM#",
"#COUNT#",
"#ENTITY#",
"#CREATED_BY#"
],
[
$album_tmp,
$count_tmp,
(is_string($arResult["ENTITY"]["FORMATTED"]) ? $arResult["ENTITY"]["FORMATTED"] : ''),
($bMail ? $arResult["CREATED_BY"]["FORMATTED"] : "")
],
$title_tmp
);
if (!$bMail)
{
$title_24 = str_replace(
[
"#ALBUM#",
"#COUNT#",
"#ENTITY#",
"#CREATED_BY#"
],
[
(($arParams["MOBILE"] ?? null) === "Y" ? $album_tmp_24_mobile : $album_tmp_24),
$count_tmp,
(is_string($arResult["ENTITY"]["FORMATTED"]) ? $arResult["ENTITY"]["FORMATTED"] : ''),
($bMail ? $arResult["CREATED_BY"]["FORMATTED"] : "")
],
$title_tmp_24
);
}
$arResult["EVENT_FORMATTED"] = (
(($arParams["MOBILE"] ?? null) === "Y")
? [
"TITLE_24" => $title_24,
"MESSAGE" => "",
]
: [
"TITLE" => $title,
"TITLE_24" => $title_24,
"MESSAGE" => "",
"IS_MESSAGE_SHORT" => true,
]
);
if ($bMail)
{
$url = CSocNetLogTools::FormatEvent_GetURL($arFields);
if ($url <> '')
{
$arResult["EVENT_FORMATTED"]["URL"] = $url;
}
}
else
{
$dbRight = CSocNetLogRights::GetList(array(), array("LOG_ID" => $arFields["ID"]));
while ($arRight = $dbRight->Fetch())
{
$arRights[] = $arRight["GROUP_CODE"];
}
$arResult["EVENT_FORMATTED"]["DESTINATION"] = CSocNetLogTools::FormatDestinationFromRights($arRights, array_merge($arParams, array("CREATED_BY" => $arFields["USER_ID"])), $iMoreCount);
if (intval($iMoreCount) > 0)
{
$arResult["EVENT_FORMATTED"]["DESTINATION_MORE"] = $iMoreCount;
}
}
if (
$bMail
&& $arFields["MAIL_LANGUAGE_ID"] <> ''
)
{
IncludeModuleLangFile(__FILE__, LANGUAGE_ID);
}
return $arResult;
}