Просто в этом процессоре мне количество и не нужно — пользователь один
Еще надо будет посмотреть, можно ли после Join'ов ограничивать количество и сортировать присоединенные записи…
public function getData() { $data = array(); $limit = intval($this->getProperty('limit')); $start = intval($this->getProperty('start')); /* query for chunks */ $c = $this->modx->newQuery($this->classKey); $c = $this->prepareQueryBeforeCount($c); $data['total'] = $this->modx->getCount($this->classKey,$c); $c = $this->prepareQueryAfterCount($c); $sortClassKey = $this->getSortClassKey(); $sortKey = $this->modx->getSelectColumns($sortClassKey, $this->getProperty('sortAlias',$sortClassKey),'',array($this->getProperty('sort'))); if (empty($sortKey)) $sortKey = $this->getProperty('sort'); $c->sortby($sortKey,$this->getProperty('dir')); if ($limit > 0) { $c->limit($limit,$start); } $data['results'] = $this->modx->getCollection($this->classKey,$c); return $data; }
public function prepareQueryBeforeCount(xPDOQuery $c) { $c = parent::prepareQueryBeforeCount($c); // Добавляешь условия к запросу return $c; }
class ....{ public function initialize(){ $this->setDefaultProperties(array( 'hot' => false, // Флаг, что делать только выборку новинок )); return parent::initialize(); } public function prepareQueryBeforeCount(xPDOQuery $c) { $c = parent::prepareQueryBeforeCount($c); // Если указано, что нужны только новинки if($this->getProperty('hot')){ // Добавляем условие только новинок } return $c; } }
<?php class xpectaProfileGetProcessor extends modObjectGetListProcessor{ public $classKey = 'modUser'; public function getData() { $c = $this->modx->newQuery($this->classKey); $c->where(array('id' => $this->getProperty('id'))); $c->select(array( "{$this->classKey}.*", )); $data = array(); if($c->prepare() && $c->stmt->execute()){ $data = $c->stmt->fetchAll(PDO::FETCH_ASSOC); } return $data; } } return 'xpectaProfileGetProcessor';
$c->leftJoin('xpectaAd', 'xpectaAd'); $c->select(array( "xpectaAd.id as ad_id", 'xpectaAd.title as ad_title', //... )); return $c;