public function setSelection(xPDOQuery $q) { $q = parent::setSelection($q); $q->innerJoin('modUser', 'CreatedBy'); $q->innerJoin('modUserProfile', 'CreatedByProfile', "CreatedBy.id = CreatedByProfile.internalKey"); # $q->innerJoin('SocietyTopicAttributes', 'Attributes'); # $q->innerJoin('SocietyBlogTopic', 'bt', "bt.topicid = {$this->classKey}.id"); # $q->innerJoin('modResource', 'blog', "blog.id = bt.blogid"); /* Получаем данные диалоговой ветви */ $q->leftJoin('SocietyThread', 'thread', "thread.target_class='modResource' AND thread.target_id={$this->classKey}.id"); $q->select(array("CreatedBy.username as author", "CreatedByProfile.fullname as author_fullname", "CreatedByProfile.photo as author_avatar", "CreatedBy.username as author_username", "thread.id as thread_id", "thread.positive_votes", "thread.negative_votes", "thread.comments_count")); /* Проверяем, есть ли голос пользователя здесь */ # $c->leftJoin('SocietyVote', 'vote', "vote.target_class='modResource' AND vote.target_id={$this->classKey}.id AND vote.user_id = ". $this->modx->user->id); # $c->select(array( # "vote.id as vote_id", # "vote.vote_direction", # "vote.vote_value", # )); /*$s = $q->prepare(); $s->execute(); print_r($s->errorInfo()); exit;*/ return $q; }
protected function setSelection(xPDOQuery $c) { # $c->leftJoin('modResource', 'Parent'); # $c->leftJoin('modResource', "Currency", "Currency.id = Product.sm_currency"); $c = parent::setSelection($c); $alias = $c->getAlias(); $c->leftJoin('modUserProfile', "CreatedByProfile", "CreatedByProfile.internalKey = {$alias}.createdby"); $c->select(array("IF({$alias}.createdon > 0 , from_unixtime({$alias}.createdon, '%Y-%m-%d %H:%i:%s' ), NULL) as createdon_date", "IF({$alias}.publishedon > 0 , from_unixtime({$alias}.publishedon, '%Y-%m-%d %H:%i:%s' ), NULL) as publishedon_date", "CreatedByProfile.fullname as createdby_fullname", 'Parent.pagetitle as parent_title', 'Parent.id as parent_id')); if ($this->getProperty('parent')) { $c->select(array('Parent.parent as uplevel_id')); } return $c; }