Оглавление

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',
])}