id группы автора

 
Посетитель
small user social cms
Сообщений: 89
Всем добра.

Задался целью получить в статье id группы пользователя. Ну никак не могу догнать как работать с моделями. Описывать все мои шаманские действия рука устанет.
То же самое в виджете.
Помогите плз.
Редактировалось: 1 раз (Последний: 16 апреля 2018 в 17:41)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2001
iDrevniy,
Учитывайте, что в двойке у пользователя может быть несколько групп. И они хранятся в таблице cms_users в поле groups в виде yaml.
iDrevniy:
Задался целью получить в статье id группы пользователя.
Вам какого пользователя группы нужны? Который автор статьи, или или самого пользователя, который статью читает?
Посетитель
small user social cms
Сообщений: 89
Спасибо за замечание. Назначение нескольких групп не предполагается.

Нужно получить группу пользователей для автора записи.

Логика такова:
Код PHP:
  1. if($group_id_автора_записи = 1) { ... }
Дело за малым, получить $group_id.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2001
iDrevniy,
Код PHP:
  1. $author_profile = cmsCore::getModel('users')->getUser($item['user_id']);
  2. if($author_profile['groups'][0] == 1) { ... }
Редактировалось: 1 раз (Последний: 16 апреля 2018 в 23:16)
Посетитель
small user social cms
Медаль
Сообщений: 123
на сайте
if($author_profile['groups'][0] == 1) { ... }
Порою нужен сбой в системе, и шаг на ощупь в темноте. А иногда - побыть не с теми, чтоб наконец понять, кто - те.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2001
Alex,
Да.
Посетитель
small user social cms
Сообщений: 89
Спасибо большое.

Я очень хочу разобраться, но пока получается еле-еле. Видимо не могу догнать логику. Когда я самостоятельно пытался провернуть это мероприятие я писал так
Код PHP:
  1. $author = cmsCore::getModel('users')->getGroup($item['user_id']);
То есть я уже понимаю, что запись находится в контролере контент, а мне нужно обратиться в другой контроллер. Я понял, что искать надо в юзерс. Я даже model.php открыл и нашел там getGroup. Но почему? Я не знаю... Правильный запрос был в шаге от меня.

А вот со второй строчкой... Поправьте меня, если я не прав.
$author_profile - это массив, в который попали все данные пользователя автора ($item['user_id']). Если вывести этот массив через print_r, то мы увидим внутри массива еще массивы, в том числе массив [groups], из которого нужно достать первое значение, а поскольку нумерация с 0, то первое значение [0]. Ну и осталось сравнить. Правильно я понял?
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2001
iDrevniy,
Метод getGroup получает массив параметров группы по её id. То есть если отправить в метод единицу, он выдаст не группы админа, а параметры группы номер 1
Array ( [id] => 1 [name] => guests [title] => Гости [is_fixed] => 1 [is_public] => [is_filter] => )
iDrevniy:
Правильно я понял?
Да.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2497
Имхо, лучше сразу проверять наличие нужной группы в массиве [groups] (вдруг потом таки понадобится присутствие автора в нескольких группах).
Код PHP:
  1.  
  2. if (in_array(6, $author['groups'])) {//6 - id нужной группы
  3. ...
  4. }
  5.  
Я, правда, знаток ещё тот))
Ris, просветите, пожалуйста!
Украинский для инстант
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2001
Олег Васильевич я:
Ris, просветите, пожалуйста!
Да, все верно.
Я предлагал iDrevniy учесть возможность многогрупия, но он сказал, что один человек - одна группа и точка.
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2497
Ris, спасибо!
Кстати, мысль по поводу: жаль, что нет какого-то разбиения групп к которым принадлежит пользователь (типа - главная и дополнительные).
Или где-то есть? look
Украинский для инстант
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2001
Олег Васильевич я:
Или где-то есть?
Кстати, интересная мысль разбить группы по рангу, как по мастям в картах.
Но пока скорее всего такого функционала нет. Но было бы интересно сделать, чтобы главной группой у юзера считалась группа с наибольшими правами.
Надо подумать в эту сторону...
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2497
Ris:
чтобы главной группой у юзера считалась группа с наибольшими правами
Это вряд ли получится. В одном направлении может быть больше прав у одной группы, в другом - у другой. Как определить какие из прав важнее?
А вот какая-то опция типа "группа по умолчанию" не помешала б.
Украинский для инстант
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 2001
Олег Васильевич я:
А вот какая-то опция типа "группа по умолчанию" не помешала б.
Так поле типа список в профиле пользователя.
Спойлер
Посетитель
small user social cms
МедальПочетный донор проектаКубок зрительских симпатийАвторитет форумаПочетный донор проекта
Сообщений: 2497
Ris:

Так поле типа список в профиле пользователя.
Та не, "не то".
Украинский для инстант
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.