static function sendNotify(array $folderInvite)
{
$serverName = (CMain::IsHTTPS() ? "https" : "http")."://".((defined("SITE_SERVER_NAME") && SITE_SERVER_NAME <> '') ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", ""));
if(empty($folderInvite['IS_DELETED']) && !empty($folderInvite['IS_APPROVED']) && $folderInvite['USER_ID'] != $folderInvite['INVITE_USER_ID'] && BitrixMainLoader::includeModule('im'))
{
$sectionToShare = CIBlockSection::getList(array(), array(
'ID' => $folderInvite['SECTION_ID'],
'IBLOCK_ID' => $folderInvite['IBLOCK_ID'],
'CHECK_PERMISSIONS' => 'N',
), false, array('NAME'))->fetch();
if(empty($sectionToShare['NAME']))
{
return;
}
$notifyFields = array();
$notifyFields['NOTIFY_MODULE'] = 'webdav';
$notifyFields['NOTIFY_EVENT'] = "invite";
$notifyFields['NOTIFY_TYPE'] = IM_NOTIFY_FROM;
$notifyFields['FROM_USER_ID'] = $folderInvite['USER_ID'];
$notifyFields['TO_USER_ID'] = $folderInvite['INVITE_USER_ID'];
$notifyFields['NOTIFY_TAG'] = BitrixWebdavFolderInviteTable::getNotifyTag($folderInvite);
$notifyFields['NOTIFY_SUB_TAG'] = "WEBDAV|INVITE|{$folderInvite['ID']}";
$uriShow = CComponentEngine::makePathFromTemplate(
CWebDavSymlinkHelper::getPathPattern('user', '/company/personal/user/#user_id#/'),
array('user_id' => $folderInvite['INVITE_USER_ID']
)) . 'files/lib/?result=sec' . $folderInvite['LINK_SECTION_ID'];
$uriDisconnect = CComponentEngine::makePathFromTemplate(
CWebDavSymlinkHelper::getPathPattern('user', '/company/personal/user/#user_id#/'),
array('user_id' => $folderInvite['INVITE_USER_ID']
)) . 'files/lib/?result=sec' . $folderInvite['LINK_SECTION_ID'] . '#disconnect';
$notifyFields['NOTIFY_MESSAGE'] = GetMessage('WD_SYMLINK_INVITE_TEXT_APPROVE_N1',
array(
'#FOLDERNAME#' => '' . $sectionToShare['NAME'] . '',
'#DISCONNECT_LINK#' => '' . GetMessage('WD_SYMLINK_INVITE_TEXT_DISCONNECT_LINK') . '',
'#INVITETEXT#' => $folderInvite['DESCRIPTION'] ?: '',
)
);
$notifyFields['NOTIFY_MESSAGE_OUT'] = GetMessage('WD_SYMLINK_INVITE_TEXT_APPROVE_N1',
array(
'#FOLDERNAME#' => $sectionToShare['NAME'] . " ({$uriShow})",
'#DISCONNECT_LINK#' => "nn". GetMessage('WD_SYMLINK_INVITE_TEXT_DISCONNECT_LINK') . ': ' . $serverName . $uriDisconnect,
'#INVITETEXT#' => $folderInvite['DESCRIPTION'] ?: '',
)
);
CIMNotify::Add($notifyFields);
}
//self invite. It's connect group disk.
elseif(empty($folderInvite['IS_DELETED']) && $folderInvite['USER_ID'] == $folderInvite['INVITE_USER_ID'] && BitrixMainLoader::includeModule('im'))
{
$sectionToShare = CIBlockSection::getList(array(), array(
'ID' => $folderInvite['SECTION_ID'],
'IBLOCK_ID' => $folderInvite['IBLOCK_ID'],
'CHECK_PERMISSIONS' => 'N',
), false, array('NAME', 'SOCNET_GROUP_ID'))->fetch();
if(empty($sectionToShare['NAME']) || empty($sectionToShare['SOCNET_GROUP_ID']))
{
return;
}
if(BitrixMainLoader::includeModule('socialnetwork'))
{
$group = CSocNetGroup::GetList(array(), array('ID' => $sectionToShare['SOCNET_GROUP_ID']), false, false, array('NAME'))->fetch();
}
$notifyFields = array();
$notifyFields['NOTIFY_MODULE'] = 'webdav';
$notifyFields['NOTIFY_EVENT'] = "invite";
$notifyFields['NOTIFY_TYPE'] = IM_NOTIFY_FROM;
$notifyFields['FROM_USER_ID'] = $folderInvite['USER_ID'];
$notifyFields['TO_USER_ID'] = $folderInvite['INVITE_USER_ID'];
$notifyFields['NOTIFY_TAG'] = BitrixWebdavFolderInviteTable::getNotifyTag($folderInvite);
$notifyFields['NOTIFY_SUB_TAG'] = "WEBDAV|INVITE|{$folderInvite['ID']}";
$uriShow = CComponentEngine::makePathFromTemplate(
CWebDavSymlinkHelper::getPathPattern('group', '/company/personal/user/#user_id#/'),
array('user_id' => $folderInvite['INVITE_USER_ID']
)) . 'files/lib/?result=sec' . $folderInvite['LINK_SECTION_ID'];
$uriDisconnect = CComponentEngine::makePathFromTemplate(
CWebDavSymlinkHelper::getPathPattern('user', '/company/personal/user/#user_id#/'),
array('user_id' => $folderInvite['INVITE_USER_ID']
)) . 'files/lib/?result=sec' . $folderInvite['LINK_SECTION_ID'] . '#disconnect';
if(CWebDavTools::allowAutoconnectShareGroupFolder())
{
$notifyFields['NOTIFY_MESSAGE'] = GetMessage('WD_SYMLINK_INVITE_GROUP_TEXT_APPROVE_N1',
array(
'#FOLDERNAME#' => $sectionToShare['NAME'],
'#INVITETEXT#' => $folderInvite['DESCRIPTION'] ?: '',
'#GROUPNAME#' => '' . Emoji::decode($group['NAME']) . '',
'#DISCONNECT_LINK#' => '' . GetMessage('WD_SYMLINK_INVITE_TEXT_DISCONNECT_LINK') . '',
)
);
$notifyFields['NOTIFY_MESSAGE_OUT'] = GetMessage('WD_SYMLINK_INVITE_GROUP_TEXT_APPROVE_N1',
array(
'#FOLDERNAME#' => $sectionToShare['NAME'],
'#INVITETEXT#' => $folderInvite['DESCRIPTION'] ?: '',
'#GROUPNAME#' => Emoji::decode($group['NAME']),
'#DISCONNECT_LINK#' => "nn". GetMessage('WD_SYMLINK_INVITE_TEXT_DISCONNECT_LINK') . ': ' . $serverName . $uriDisconnect,
)
);
}
elseif(empty($folderInvite['IS_APPROVED']))
{
$notifyFields['NOTIFY_TYPE'] = IM_NOTIFY_CONFIRM;
$notifyFields['NOTIFY_BUTTONS'] = Array(
Array('TITLE' => GetMessage('WD_SYMLINK_INVITE_APPROVE_Y'), 'VALUE' => 'Y', 'TYPE' => 'accept'),
Array('TITLE' => GetMessage('WD_SYMLINK_INVITE_APPROVE_N'), 'VALUE' => 'N', 'TYPE' => 'cancel')
);
$notifyFields['MESSAGE'] = GetMessage('WD_SYMLINK_INVITE_GROUP_TEXT_APPROVE_CONFIRM_N1',
array(
'#FOLDERNAME#' => $sectionToShare['NAME'],
'#GROUPNAME#' => $group['NAME'],
)
);
}
CIMNotify::Add($notifyFields);
}
elseif(!empty($folderInvite['IS_DELETED']) && BitrixMainLoader::includeModule('im'))
{
$sectionToShare = CIBlockSection::getList(array(), array(
'ID' => $folderInvite['SECTION_ID'],
'IBLOCK_ID' => $folderInvite['IBLOCK_ID'],
'CHECK_PERMISSIONS' => 'N',
), false, array('NAME'))->fetch();
if(empty($sectionToShare['NAME']))
{
return;
}
$inviteUser = CUser::getById($folderInvite['INVITE_USER_ID']);
if($inviteUser)
{
$inviteUser = $inviteUser->fetch();
}
$notifyFields = array();
$notifyFields['NOTIFY_MODULE'] = 'webdav';
$notifyFields['NOTIFY_EVENT'] = "invite";
$notifyFields['NOTIFY_TYPE'] = IM_NOTIFY_FROM;
$notifyFields['FROM_USER_ID'] = $folderInvite['INVITE_USER_ID'];
$notifyFields['TO_USER_ID'] = $folderInvite['USER_ID'];
$notifyFields['NOTIFY_TAG'] = BitrixWebdavFolderInviteTable::getNotifyTag($folderInvite);
$notifyFields['NOTIFY_SUB_TAG'] = "WEBDAV|INVITE|{$folderInvite['ID']}";
if(CWebDavTools::getUserGender($inviteUser['PERSONAL_GENDER']) == 'F')
{
$notifyFields['MESSAGE'] = GetMessage('WD_SYMLINK_INVITE_TEXT_DISCONNECT_F',
array(
'#FOLDERNAME#' => $sectionToShare['NAME'],
'#USERNAME#' => CWebDavTools::getUserName($inviteUser)
)
);
}
else
{
$notifyFields['MESSAGE'] = GetMessage('WD_SYMLINK_INVITE_TEXT_DISCONNECT_M',
array(
'#FOLDERNAME#' => $sectionToShare['NAME'],
'#USERNAME#' => CWebDavTools::getUserName($inviteUser)
)
);
}
CIMNotify::Add($notifyFields);
}
}