Как вывести список групп пользователя?
Пытаюсь вывести список групп, в которые входит пользователь. Сразу уточню, вывести не одну группу, а названия именно всех групп. Примерное решение нашел, но выглядит крайне ерундовым.
Предполагается использовать это при выводе информации о пользователе возле его поста на форуме. На текущий момент мне пришло в голову использовать только Personalize, который позволяет выводить разные чанки в зависимости от того в какой группе состоит пользователь. То есть на каждую группу выставляется проверка. При совпадении выводится чанк с названием группы. Теоретически, будет проверяться входит ли пользователь в конкретную группу (перебор всех по очереди по отдельным условиям!) и под иконку будет публиковаться название по совпадениям.
Мало того, что Personalize под это не заточен и придется изгаляться, одна мысль о количестве операций, которые будут производиться для такой тривиальной задачи как вывод всех групп пользователя, вгоняет меня в ужас. Уверен, есть какое-то простое решение. Изначально нацеливался на pdoUsers, но как оказалось он парсит пользователей, входящих в группу, а не группы, в которые входит пользователь. Если кто занимался подобной задачей, поделитесь решением, пожалуйста.
Предполагается использовать это при выводе информации о пользователе возле его поста на форуме. На текущий момент мне пришло в голову использовать только Personalize, который позволяет выводить разные чанки в зависимости от того в какой группе состоит пользователь. То есть на каждую группу выставляется проверка. При совпадении выводится чанк с названием группы. Теоретически, будет проверяться входит ли пользователь в конкретную группу (перебор всех по очереди по отдельным условиям!) и под иконку будет публиковаться название по совпадениям.
Мало того, что Personalize под это не заточен и придется изгаляться, одна мысль о количестве операций, которые будут производиться для такой тривиальной задачи как вывод всех групп пользователя, вгоняет меня в ужас. Уверен, есть какое-то простое решение. Изначально нацеливался на pdoUsers, но как оказалось он парсит пользователей, входящих в группу, а не группы, в которые входит пользователь. Если кто занимался подобной задачей, поделитесь решением, пожалуйста.
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
[[+modx.user.isMember:is=`Users`:then=`Рядовой пользователь`]]
[[+modx.user.isMember:is=`Administrator`:then=`Администратор`]]
[[+modx.user.isMember:is=`Author`:then=`Автор`]]
[[+modx.user.isMember:is=`bla-bla-bla`:then=`Бла-бла-бла`]]
и все таки это жутко, а если число групп разрастется? Плохо будет((
и вставлять его в нужное место.
Комментарий в коде просто спас. Php не знаю, но в нагуглил как работает implode и соответственно изменил разделитель. Вместо запятой поставил А на странице в лк-юзера будет вызываться
Результат в итоге такой То есть все работает, все здорово. Вроде бы не рекомендуется html конструкции вставлять в php, так что если имеется более правильный вариант этого дела, то…
Собственно, весь вызов сниппета запихнул в чанк с аналогичный названием (tagElementPlugin — обалденная штука!). Сам чанк вызывается в TV (будет вызываться, когда разберусь с Login/HybridAuth). Остается добавить вызов TV в чанке комментария на тикет)) и будет более привычный для форума вид ;)
Оформление «флажков» каждой группы можно вынести в отдельный файл CSS, но править будет неудобно. Зато если воспользоваться ClientConfig, вписать все стили в него, то результат получим в плейсхолдере. Последний добавить в обработку MinifyX и будет один ужатый файлик. Блин… я все больше люблю modx)))))
Сергею Шлокову еще раз спасибо!