Вывод групп пользователя
Кто знает, подскажите, как вывести названия групп, в которых состоит пользователь? Желательно через fenom.
Комментарии: 7
Спасибо.
А может есть вариант попроще?
Нужно вывести список пользователей с группами, в которых они состоят.
А может есть вариант попроще?
Нужно вывести список пользователей с группами, в которых они состоят.
Список пользователей можно выводить через pdoUsers, а список групп каждого пользователя получать кодом из коммента выше, его можно оформить в модификатор для удобства.
Спасибо за наводку.
Немного переделал под себя, может кому пригодится:
1. Выводим пользователей через pdoUsers, в чанке шаблона выводим сниппет:
Если кто подскажет, как оформить вывод через fenom с модификатором.
Немного переделал под себя, может кому пригодится:
1. Выводим пользователей через pdoUsers, в чанке шаблона выводим сниппет:
[[!userGroups? &userid=`{$_pls['id']}`]]
2. Ну сам сниппет userGroups:<?php
$user = $modx->getObject('modUser', $userid);
if ($user->get('id')) {
$q = $modx->newQuery('modUser',array('`modUser`.`id`'=>$user->get('id')));
$q->innerJoin('modUserGroupMember','UserGroupMembers');
$q->innerJoin('modUserGroup','UserGroup','`UserGroupMembers`.`user_group` = `UserGroup`.`id`');
$q->select('UserGroup.description');
$groupsArray = array();
if ($q->prepare() && $q->stmt->execute()) {
while($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
$groupsArray[] = $row['description'];
}
}
// Список групп через запятую
$userGroups = implode(', ',$groupsArray);
} else {
$userGroups = 'Аноним';
}
return $userGroups;
Я вывожу поле description, т.к. у меня там название гоуппы по-русски.Если кто подскажет, как оформить вывод через fenom с модификатором.
Буду благодарен.
{'!pdoUsers' | snippet : ['tpl' => '@INLINE <p>{$fullname}, Группы - {$id | userGroups}</p>']}
Сниппет userGroups:
<?php
$q = $modx->newQuery('modUser',array('`modUser`.`id`'=>$input));
$q->innerJoin('modUserGroupMember','UserGroupMembers');
$q->innerJoin('modUserGroup','UserGroup','`UserGroupMembers`.`user_group` = `UserGroup`.`id`');
$q->select('UserGroup.description');
$groupsArray = array();
if ($q->prepare() && $q->stmt->execute()) {
while($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
$groupsArray[] = $row['description'];
}
}
if (empty($groupsArray)) {
$userGroups = 'Аноним';
} else {
$userGroups = implode(',',$groupsArray);
}
return $userGroups;
Большое спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.