усвоил. не скажу что все прям понятно, родилось е
усвоил. не скажу что все прям понятно, родилось еще больше вопросов, но об этом потом… для себя была поставлена задача сделать табличку пользователей с помощью процессора
процессор getusers.class.php
require_once (dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))).'/model/modx/processors/security/user/getlist.class.php');
class xtestGetUserListProcessor extends modUserGetListProcessor{
public function prepareQueryBeforeCount(xPDOQuery $c) {
$c->leftJoin('modUserProfile','Profile');
$c->leftJoin('modUserGroupMember', 'UserGroupMembers');
$c->leftJoin('modUserGroup', 'UserGroup', 'UserGroupMembers.user_group = UserGroup.id');
return $c;
}
public function prepareQueryAfterCount(xPDOQuery $c) {
$c->select($this->modx->getSelectColumns('modUser','modUser'));
$c->select($this->modx->getSelectColumns('modUserProfile','Profile','',array('fullname','email','blocked')));
$c->select($this->modx->getSelectColumns('modUserGroup','UserGroup','',array('name')));
return $c;
}
public function prepareRow(xPDOObject $object){
return array(
'id' => $object->id,
'username' => $object->username,
'fullname' => $object->fullname,
'email' => $object->email,
'group' => $object->name,
);
}
}
return 'xtestGetUserListProcessor';
ну и вот такой результат
уже при написании поста возник вопрос а что если у пользователя 2 группы… отложил пост полез пробовать…
если у пользователя 2 группы то покажет последнюю а если сделать вот так
$c->select($this->modx->getSelectColumns('modUser','modUser', '', array('id', 'username')));
то в таблице будет 2 строки с разными группами…
а еще есть такая штука как права… для выполнения вышеуказанного процессора пользователь должен иметь разрешения 'view_user'.
нравится «зараза».