Массовое обновление параметра уведомлений пользователей
<?php
// Подключаем модуль instant messaging (im) Битрикс
\Bitrix\Main\Loader::IncludeModule('im');
// Определяем поля пользователей, которые будем выбирать
$select = ['ID', 'NAME', 'LAST_NAME'];
// Устанавливаем фильтр для выборки пользователей:
// - только активные пользователи
// - только для сайта с идентификатором s1
$filter = [
"ACTIVE" => "Y",
'LID' => 's1'
];
// Получаем список пользователей через API Битрикса
$users = Bitrix\Main\UserTable::getList(array(
"select" => $select, // выбираем только указанные поля
"filter" => $filter, // применяем фильтр
"order" => ['ID' => 'ASC'] // сортируем по ID по возрастанию
));
// Обрабатываем каждого пользователя в цикле
while ($arUser = $users->fetch()) {
// Получаем настройки уведомлений для текущего пользователя
$userSettings = CIMSettings::Get($arUser['ID']);
// Перебираем все настройки пользователя
foreach ($userSettings as $type => $value) {
// Если это настройки уведомлений (notify)
if ($type == 'notify') {
// Включаем email-уведомления для комментариев к задачам
$value['email|tasks|comment'] = true;
// Сохраняем измененные настройки уведомлений для пользователя
CIMSettings::Set('notify', $value, $arUser['ID']);
}
}
// Выводим информацию о пользователе в формате: ID - ФАМИЛИЯ ИМЯ
echo $arUser['ID'] . ' - ' . $arUser['LAST_NAME'] .' '.$arUser['NAME'] . "\n";
}