Как не затереть группы пользователя и рубрики подписки или функции Bitrix при работе с которыми нужно быть внимательными

Возврат к списку

Как не затереть группы пользователя и рубрики подписки или функции Bitrix при работе с которыми нужно быть внимательными


Вот это название получилось :) Но оно передает всю суть и идеологию поста. Итак, на самом деле при работе с API Bitrix нужно быть внимательными со всеми функциями, но есть исключающие функции (это лишь некоторые), такие как:

Их особенность в том, что на вход нужно передавать весь набор массива. Давайте разберем пример. У нас есть пользователь Вася Пупкин с ID 138, данный пользователь состоит в двух группах:

  • 6 - Пользователи имеющие право голосовать и изменять рейтинг
  • 9 - Зарегистрированный пользователь

Нам необходимо включить данного пользователя в новую группу с ID 10 - Помощник администрации. Для установки группы будем использовать функцию CUser::SetUserGroup($USER_ID, $arGroups). Если мы используем конструкцию:

Мы сотрем все группы пользователя и будет установлена одна - 10. Для добавления группы корректнее использовать свою функцию, следующего вида:

Функция определяет какие группы установлены у пользователя, затем смотрит состоит ли пользователь в группе, которую мы хотим назначить, и если он в ней не состоит, добавляем её в массив уже установленных групп и выполняем сет.


Такой же метод необходимо использовать и при добавлении рубрики к подписке пользователю. Например, пользователь с ID подписки - 1276 подписан на 2 вида рассылок :

  • 6 - Еженедельная рассылка
  • 8 - Ежедневная рассылка

И его еще нужно подписать на 3 рассылку с ID 12 - Новости портала. Для добавления группы лучше использовать такого вида функцию:

Функция по ID подписки проверяет, на какие рубрики подписан пользователь, и если устанавливаемой группы нет в списке полученных, мы добавляем ID в массив и записываем.

Казалось бы ничего особенного, но на моей памяти на одном из крупных проектов, из-за подобной невнимательности приходилось 2 раза откатывать таблицу с группами. От ошибок никто не застрахован.

>
ВладимирВладимир20.09.2014 в 21:53
0
В случае создания правовых групп (права гостя, далее права зарегистрированного пользователя), на моей памяти часто планировалось так, чтобы следующая группа включала права предыдущей. Поддержка существенно упрощается, по крайней мере в простых проектах. Впрочем, опыт у меня скромный.
ответная реплика
ИгорьИгорь21.09.2014 в 12:34
0
Нахожу эту статью полезным для себя, впрочем, как и сам сайт. До этого толком подробную информацию не находил нигде — везде поверхностное описание. А здесь все поп полочкам разложено.
ответная реплика
АндрейАндрей01.10.2014 в 16:02
0
Это актуальная статья для меня. Давно над этим ломаю голову. Рассылка — это наверное лучшее что придумали для сохранения посетителей. Но есть много других способов, но эта работает лучше всех.
ответная реплика
АндрейАндрей01.10.2014 в 19:29
0
Для меня данная тема всегда казалась очень сложной, я совершенно не понимал, как можно самостоятельно разобраться в данном вопросе. Эта статья очень помогла лично мне немного вникнуть в суть вопроса.
ответная реплика


Возврат к списку