Перейти к основному контенту

Массовое обновление параметра уведомлений пользователей

<?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";
}