pdoUsers
pdoUsers — сниппет для вывода пользователей сайта через pdoTools.
Дата публикации
27 Августа 2019
Дата изменения
5 Июля 2020
Уникальных просмотров
3.237
Оглавление
pdoUsers — сниппет для вывода пользователей сайта через pdoTools. Формирует список пользователей сайта с учетом групп и ролей.
Параметры
Использует все общие параметры pdoTools за исключением специфичных для класса modResource, а так же свои собственные:
| Название | По умолчанию | Описание |
| &groups | Список групп пользователей, через запятую. Можно использовать имена и id. Если значение начинается с минуса (-), значит пользователь не должен присутствовать в этой группе. | |
| &roles | Список ролей пользователей, через запятую. Можно использовать имена и id. Если значение начинается с минуса (-), значит такой роли у пользователя быть не должно. | |
| &users | Список пользователей для вывода, через запятую. Можно использовать поля username и id. Если значение начинается с минуса (-), этот пользователь исключается из выборки. | |
| &showInactive | 0 | Выводить в том числе и неактивных пользователей. |
| &showBlocked | 0 | Выводить в том числе и блокированных пользователей. |
| &returnIds | Установите значение «1», чтобы вернуть строку со списком id пользователей, вместо оформленных результатов. Все указанные шаблоны игнорируются. | |
| &showLog | 0 | Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контексте «mgr». |
| &toPlaceholder | Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран. | |
| &wrapIfEmpty |
Включает вывод чанка-обертки &tplWrapper, даже если результатов нет. | |
| &tplWrapper | Чанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер: [[+output]]. Не работает вместе с параметром &toSeparatePlaceholders. |
Переопределенные параметры pdoTools
| Название | По умолчанию | Описание |
| &class | modUser | Класс пользователя |
| &sortby | modUser.id | Любое поле пользователя для сортировки. Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите RAND(). |
| &sortdir | ASC | Направление сортировки: по убыванию DESC или возрастанию ASC. |
Все шаблоны по умолчанию пусты. Для вывода результата в виде HTML, нужно указать, как минимум, значение шаблона & tpl.
Примеры
При запуске без параметров, сниппет выводит всех пользователей сайта.
/* modParser */
[[!pdoUsers]]
/* pdoParser */
{$_modx->runSnippet('!pdoUsers')}
Вывод пользователей группы Authors:
/* modParser */
[[!pdoUsers?
&groups=`Authors`
&tpl=`tpl.Authors.author`
&sortdir=`asc`
]]
/* pdoParser */
{$_modx->runSnippet('!pdoUsers', [
'groups' => 'Authors',
'tpl' => 'tpl.Authors.author',
'sortdir' => 'asc',
])}
Можно комбинировать его с pdoPage\getPage:
/* modParser */
[[!pdoPage?
&element=`pdoUsers`
&groups=`Authors`
&tpl=`tpl.Authors.author`
&sortdir=`asc`
]]
/* pdoParser */
{$_modx->runSnippet('!pdoPage', [
'element' => 'pdoUsers',
'groups' => 'Authors',
'tpl' => 'tpl.Authors.author',
'sortdir' => 'asc',
])}
Встроенные чанки:
/* modParser */
[[!pdoUsers?
&roles=`Member`
&tpl=`@INLINE <p>Имя - [[+fullname]], ID - [[+id]]</p>`
&sortby=`id`
&sortdir=`asc`
]]
/* pdoParser */
{$_modx->runSnippet('!pdoUsers', [
'roles' => 'Member',
'tpl' => '@INLINE <p>Имя - {$fullname}, ID - {$id}</p>',
'sortby' => 'id',
'sortdir' => 'asc',
])}
Время работы: 0,1126 s
Время запросов: 0,1126 s
Количество запросов: 24
Источник: cache
Время запросов: 0,1126 s
Количество запросов: 24
Источник: cache