- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/notify.php
- Класс: CIntranetNotify
- Вызов: CIntranetNotify::FormatEvent
static function FormatEvent($arFields, $arParams, $bMail = false)
{
global $CACHE_MANAGER, $APPLICATION;
$arResult = array(
"EVENT" => $arFields
);
$arParams = is_array($arParams) ? $arParams : [];
$arParams['MOBILE'] = $arParams['MOBILE'] ?? 'N';
$arParams['PATH_TO_USER'] = $arParams['PATH_TO_USER'] ?? '';
$user_url = str_replace('#user_id#', $arFields['ENTITY_ID'], $arParams['PATH_TO_USER']);
$dbRes = CUser::GetByID($arFields['ENTITY_ID']);
$arUser = $dbRes->Fetch();
if (
$arUser
&& (
ModuleManager::isModuleInstalled('extranet')
|| (
!empty($arUser['UF_DEPARTMENT'])
&& is_array($arUser['UF_DEPARTMENT'])
&& (int)$arUser['UF_DEPARTMENT'][0] > 0
) // for uninstalled extranet module / b24
)
)
{
if(!$bMail)
{
if(defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->RegisterTag("USER_NAME_" . (int)$arUser["ID"]);
}
$bExtranetUser = (
IsModuleInstalled("extranet")
&& (
!isset($arUser['UF_DEPARTMENT'])
|| !is_array($arUser['UF_DEPARTMENT'])
|| empty($arUser['UF_DEPARTMENT'])
)
);
ob_start();
$APPLICATION->IncludeComponent('bitrix:intranet.livefeed.newuser', '', array(
'USER' => $arUser,
'PARAMS' => $arParams,
'AVATAR_SRC' => CSocNetLog::FormatEvent_CreateAvatar($arFields, $arParams, 'CREATED_BY'),
'USER_URL' => $user_url,
), null, array('HIDE_ICONS' => 'Y'));
$html_message = ob_get_clean();
$arResult = array(
'EVENT' => $arFields,
'EVENT_FORMATTED' => array(
'TITLE' => ($bExtranetUser ? GetMessage('I_NEW_USER_EXTERNAL_TITLE') : GetMessage('I_NEW_USER_TITLE')),
'TITLE_24' => ($bExtranetUser ? GetMessage('I_NEW_USER_EXTERNAL_TITLE') : GetMessage('I_NEW_USER_TITLE')),
"MESSAGE" => $html_message,
"SHORT_MESSAGE" => $html_message,
'IS_IMPORTANT' => true,
'STYLE' => 'new-employee',
'AVATAR_STYLE' => 'avatar-info'
),
);
if ($bExtranetUser)
{
$workgroupCodesList = [];
$res = BitrixSocialnetworkLogRightTable::getList([
'filter' => [
'=LOG_ID' => (int)$arFields['ID'],
],
'select' => [ 'GROUP_CODE' ],
]);
while ($logRightsFields = $res->fetch())
{
if (
preg_match('/^SG(d+)$/i', $logRightsFields['GROUP_CODE'], $matches)
&& (int)$matches[1] > 0
)
{
$workgroupCodesList[] = $matches[0];
}
}
if (!empty($workgroupCodesList))
{
$arResult['EVENT_FORMATTED']['DESTINATION'] = CSocNetLogTools::formatDestinationFromRights($workgroupCodesList, $arParams);
}
}
if (Loader::includeModule('bitrix24'))
{
$arResult['CREATED_BY']['FORMATTED'] = (
$arParams["MOBILE"] === "Y"
? htmlspecialcharsEx(self::GetSiteName())
: ''.htmlspecialcharsEx(self::GetSiteName()).''
);
}
else
{
$arResult['CREATED_BY']['FORMATTED'] = '';
if (is_array($arUser['UF_DEPARTMENT']) && count($arUser['UF_DEPARTMENT']) > 0)
{
if ($arParams["MOBILE"] === "Y")
{
$url = "";
}
else
{
$url = $arParams['PATH_TO_CONPANY_DEPARTMENT'];
if ($url == '')
{
$url = $arParams['PATH_TO_COMPANY_DEPARTMENT'];
}
}
$dbRes = CIBlockSection::GetList(array('ID' => 'ASC'), array('ID' => $arUser['UF_DEPARTMENT']));
if ($arSection = $dbRes->fetch())
{
$arResult['CREATED_BY']['FORMATTED'] = (
$url <> ''
? ''.htmlspecialcharsEx($arSection['NAME']).''
: htmlspecialcharsEx($arSection['NAME'])
);
}
}
if ($arResult['CREATED_BY']['FORMATTED'] == '')
{
$arResult['CREATED_BY']['FORMATTED'] = htmlspecialcharsEx(self::GetSiteName());
}
}
$arResult['ENTITY']['FORMATTED']["NAME"] = ($bExtranetUser ? GetMessage('I_NEW_USER_EXTERNAL_TITLE') : GetMessage('I_NEW_USER_TITLE'));
$arResult['ENTITY']['FORMATTED']["URL"] = $user_url;
if (
$arParams["MOBILE"] !== "Y"
&& $arParams["NEW_TEMPLATE"] !== "Y"
)
{
$arResult['EVENT_FORMATTED']['IS_MESSAGE_SHORT'] = CSocNetLogTools::FormatEvent_IsMessageShort($arFields['MESSAGE']);
}
}
}
else
{
$arResult = false;
}
return $arResult;
}