- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/user_group.php
- Класс: CAllSocNetUserToGroup
- Вызов: CAllSocNetUserToGroup::SendEvent
static function SendEvent($userGroupID, $mailTemplate = "SONET_INVITE_GROUP"): bool
{
$userGroupID = (int)$userGroupID;
if ($userGroupID <= 0)
{
return false;
}
$dbRelation = CSocNetUserToGroup::GetList(
[],
[ 'ID' => $userGroupID ],
false,
false,
[
'ID',
'ROLE', 'DATE_CREATE', 'MESSAGE', 'INITIATED_BY_TYPE', 'INITIATED_BY_USER_ID',
'USER_ID', 'USER_NAME', 'USER_LAST_NAME', 'USER_EMAIL', 'USER_LID',
'GROUP_ID', 'GROUP_NAME',
]
);
$arRelation = $dbRelation->Fetch();
if (!$arRelation)
{
return false;
}
$arUserGroup = array();
if (Loader::includeModule('extranet'))
{
$arUserGroup = CUser::GetUserGroup($arRelation["USER_ID"]);
}
$bExtranetInstalled = ModuleManager::isModuleInstalled('extranet');
$siteId = false;
$rsGroupSite = CSocNetGroup::GetSite($arRelation["GROUP_ID"]);
while ($arGroupSite = $rsGroupSite->Fetch())
{
if ($bExtranetInstalled)
{
if (
(
CExtranet::IsExtranetSite($arGroupSite["LID"])
&& in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup)
)
||
(
!CExtranet::IsExtranetSite($arGroupSite["LID"])
&& !in_array(CExtranet::GetExtranetUserGroupID(), $arUserGroup)
)
)
{
$siteId = $arGroupSite["LID"];
break;
}
}
else
{
$siteId = $arGroupSite["LID"];
break;
}
}
if (empty($siteId))
{
return false;
}
$requestsPagePath = str_replace(
"#USER_ID#",
$arRelation["USER_ID"],
Option::get(
"socialnetwork",
"user_request_page",
(
ModuleManager::isModuleInstalled('intranet')
? "/company/personal/user/#USER_ID#/requests/"
: "/club/user/#USER_ID#/requests/"
),
$siteId
)
);
$arUserInitiatedForEmail = array("NAME"=>"", "LAST_NAME"=>"");
if ((int)$arRelation["INITIATED_BY_USER_ID"] > 0):
$dbUserInitiated = CUser::GetList(
"id",
"desc",
array("ID" => $arRelation["INITIATED_BY_USER_ID"])
);
if ($arUserInitiated = $dbUserInitiated->Fetch())
{
$arUserInitiatedForEmail = [
'NAME' => $arUserInitiated['NAME'],
'LAST_NAME' => $arUserInitiated['LAST_NAME'],
];
}
endif;
$arFields = array(
"RELATION_ID" => $userGroupID,
"URL" => $requestsPagePath,
"GROUP_ID" => $arRelation["GROUP_ID"],
"USER_ID" => $arRelation["USER_ID"],
"GROUP_NAME" => Emoji::decode($arRelation["GROUP_NAME"]),
"USER_NAME" => $arRelation["USER_NAME"],
"USER_LAST_NAME" => $arRelation["USER_LAST_NAME"],
"USER_EMAIL" => $arRelation["USER_EMAIL"],
"INITIATED_USER_NAME" => $arUserInitiatedForEmail["NAME"],
"INITIATED_USER_LAST_NAME" => $arUserInitiatedForEmail["LAST_NAME"],
"MESSAGE" => $arRelation["MESSAGE"]
);
CEvent::Send($mailTemplate, $siteId, $arFields, "N");
return true;
}