усвоил. не скажу что все прям понятно, родилось е

усвоил. не скажу что все прям понятно, родилось еще больше вопросов, но об этом потом… для себя была поставлена задача сделать табличку пользователей с помощью процессора

процессор 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'.

нравится «зараза».