• Модуль: blog
  • Путь к файлу: ~/bitrix/modules/blog/lib/broadcast.php
  • Класс: BitrixBlogBroadcast
  • Вызов: Broadcast::sendRequest
static function sendRequest($value, $siteId = SITE_ID): void
{
	$value = ($value === true);

	if (Loader::includeModule('im'))
	{
		$str = ($value ? 'ON' : 'OFF');
		$tag = 'BLOG|BROADCAST_REQUEST|' . ($value ? 'ON' : 'OFF');

		$fields = [
			'MESSAGE_TYPE' => IM_MESSAGE_SYSTEM,
			'NOTIFY_TYPE' => IM_NOTIFY_CONFIRM,
			'NOTIFY_MODULE' => 'blog',
			'NOTIFY_EVENT' => 'log_notify_all_request',
			'NOTIFY_SUB_TAG' => $tag,
			'NOTIFY_MESSAGE' => Loc::getMessage('BLOG_BROADCAST_REQUEST_IM_MESSAGE_' . $str),
			'NOTIFY_MESSAGE_OUT' => IM_MAIL_SKIP,
			'NOTIFY_BUTTONS' => [
				[
					'TITLE' => Loc::getMessage('BLOG_BROADCAST_REQUEST_IM_BUTTON_' . $str . '_Y'),
					'VALUE' => 'Y',
					'TYPE' => 'accept',
				],
				[
					'TITLE' => Loc::getMessage('BLOG_BROADCAST_REQUEST_IM_BUTTON_' . $str . '_N'),
					'VALUE' => 'N',
					'TYPE' => 'cancel',
				],
			]
		];

		$moduleAdminList = array_keys(BitrixSocialnetworkUser::getModuleAdminList([ $siteId, false ]));
		foreach ($moduleAdminList as $userId)
		{
			$fields['TO_USER_ID'] = $userId;
			$fields['NOTIFY_TAG'] = $tag . '|' . $userId;

			CIMNotify::add($fields);
		}
	}

	self::setRequestedMode($value);
}