@SpeakeazyYT2

Как обновлять период активности нахождения в группе пользователя в автоматическом режиме, если посылается запрос на добавление в группы с пер. акт.???

Как обновлять период активности нахождения в группе пользователя в автоматическом режиме, если посылается запрос на добавление в группы с пер. акт.??? Делаю сейчас добавления пользователя в группу с периодом активности. Нужно сделать так, если человек уже состоит в этой группе и прописан период активности нахождения в этой группе и посылается запрос на повторное добавления этого человека в эту группу с другим периодом активности, то старые данные периода активности перезаписывались новыми. Как это сделать?
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
@kudis
Bitrix developer
Тут всё просто:
$user_id = 2;

$arGroups_db = CUser::GetUserGroupList( $user_id );

$aimGroupId = 4; //id группы, куда добавляем
$aimGroupLastDate = '09.05.2018 23:59:59'; // дата, которая нужна, если из какой-то переменной в timestamp, то используйте ConvertTimeStamp($var, "FULL"), она приведёт формат к текущему формату базы битрикса
$aimGroupUpdated = false;

while ($arGroup = $arGroups_db->Fetch()){

    if ($arGroup['GROUP_ID'] == $aimGroupId) {
        $arGroup['DATE_ACTIVE_TO'] = $aimGroupLastDate;
        $aimGroupUpdated = true;
    }

    $arGroups[] = $arGroup;
}

if (!$aimGroupUpdated) {
    $arGroups[] = [
        'GROUP_ID' => $aimGroupId,
        'DATE_ACTIVE_FROM' => ConvertTimeStamp(time(), "FULL"),
        'DATE_ACTIVE_TO' => $aimGroupLastDate
    ];
}

CUser::SetUserGroup($user_id, $arGroups);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы