усвоил. не скажу что все прям понятно, родилось еще больше вопросов, но об этом потом…
для себя была поставлена задача сделать табличку пользователей с помощью процессора
процессор 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'.
нравится «зараза».