blackseabreathe
@blackseabreathe
brackets

Как в Modx Revo вывести всех пользователей определенной группы?

Есть ли возможность вывести всех пользователей из определенной группы?

Все пишу в сниппете, но могу и во внешнем файле с помощью api Modx

//Инициализируем запрос
$query = $modx->newQuery('modUser');
// выполняем запрос
$users = $modx->getCollection('modUser',$query);

// цикл по пользователям
foreach ($users as $user) {

...
}

Так получится вывести всех пользователей сайта, а как из определенной группы? Например, из группы boys
  • Вопрос задан
  • 601 просмотр
Решения вопроса 1
alelunegov
@alelunegov
Фрилансер. Разработка сайтов на MODX, верстка
Если известно, что пользователи состоят только в этой группе или это их главная группа, то тут всё легко.
$groupName = 'boys';
//Получаем ID группы
$groupId = $modx->getObject('modUserGroup', array('name' => $groupName))->get('id');

//Получаем коллекцию объектов пользователей с выборкой по группе
$users = $modx->getCollection('modUser', array('primary_group' => $groupId));

foreach ($users as $user) {
    
}

А вот если пользователи могут состоять в нескольких группах и список нужен не по главной группе, то тут немного сложнее...
$groupName = 'boys';
//Получаем ID группы
$groupId = $modx->getObject('modUserGroup', array('name' => $groupName))->get('id');

//Получаем коллекцию объектов групп пользователей с выборкой по группе
$userGroupMembers = $modx->getCollection('modUserGroupMember', array('user_group' => $groupId));

//прогоняем коллекцию через цикл
foreach ($userGroupMembers as $userGroupMember) {

//Получаем объект пользователя через объект группы
    $user = $userGroupMember->getOne('User');

//Делаем с объектом пользователя, что пожелаем...
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DanArst
@DanArst
Гриффиндор в моде при любой погоде!
Можете использовать сниппет pdoUsers
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы