public function executeTimelineCommunity(sfWebRequest $request) { $memberId = $this->getUser()->getMemberId(); $communityId = $this->community->getId(); $builder = opActivityQueryBuilder::create()->setViewerId($memberId)->setCommunityId($communityId); $builder->includeSns()->includeFriends()->includeSelf(); $query = $builder->buildQuery(); $query->limit(20); $this->activities = $query->andWhere('in_reply_to_activity_id IS NULL')->execute(); if ($this->community->isPrivilegeBelong($memberId)) { $this->form = new TimelineDataForm(); $this->form->setDefault('foreign_table', 'community'); $this->form->setDefault('foreign_id', $communityId); } }
public function executeMentions(sfWebRequest $request) { $builder = opActivityQueryBuilder::create()->setViewerId($this->getUser()->getMemberId())->includeMentions(); $query = $builder->buildQuery()->andWhere('in_reply_to_activity_id IS NULL')->andWhere('foreign_table IS NULL')->andWhere('foreign_id IS NULL')->limit(20); $this->activityData = $query->execute(); $this->setTemplate('array'); }
public function searchActivityDataByAPIRequestDataAndMemberId($requestDataList, $memberId) { $builder = opActivityQueryBuilder::create()->setViewerId($memberId); if (isset($requestDataList['target'])) { if ('friend' === $requestDataList['target']) { $builder->includeFriends($requestDataList['target_id'] ? $requestDataList['target_id'] : null); } if ('community' === $requestDataList['target']) { $builder->includeSelf()->includeFriends()->includeSns()->setCommunityId($requestDataList['target_id']); } } else { if (isset($requestDataList['member_id'])) { $builder->includeMember($requestDataList['member_id']); } else { $builder->includeSns()->includeFriends()->includeSelf(); } } $query = $builder->buildQuery(); if (isset($requestDataList['keyword'])) { $query->andWhereLike('body', $requestDataList['keyword']); } $globalAPILimit = sfConfig::get('op_json_api_limit', 20); if (isset($requestDataList['count']) && (int) $requestDataList['count'] < $globalAPILimit) { $query->limit($requestDataList['count']); } else { $query->limit($globalAPILimit); } if (isset($requestDataList['max_id'])) { $query->addWhere('id <= ?', $requestDataList['max_id']); } if (isset($requestDataList['since_id'])) { $query->addWhere('id > ?', $requestDataList['since_id']); } if (isset($requestDataList['activity_id'])) { $query->addWhere('id = ?', $requestDataList['activity_id']); } $query->andWhere('in_reply_to_activity_id IS NULL'); return $query->execute(); }
$result->free(true); $query->free(); //============================================================================== $t->diag('opActivityQueryBuilder multiple conditions'); $builder = opActivityQueryBuilder::create()->setViewerId(1)->includeSelf()->includeFriends(); $query = $builder->buildQuery(); $result = $query->execute(); $t->is($result->getPrimaryKeys(), array(1055, 8, 7, 6, 5, 4, 3, 2, 1), '->includeSelf()->includeFriends() viewerId = 1'); $result->free(true); $query->free(); //------------------------------------------------------------ $builder = opActivityQueryBuilder::create()->setViewerId(2)->includeSelf()->includeFriends(); $query = $builder->buildQuery(); $result = $query->execute(); $t->is($result->getPrimaryKeys(), array(8, 7, 6, 5, 3, 2, 1), '->includeSelf()->includeFriends() viewerId = 2'); $result->free(true); $query->free(); //------------------------------------------------------------ $builder = opActivityQueryBuilder::create()->setViewerId(1)->includeSelf()->includeFriends()->includeSns(); $query = $builder->buildQuery(); $result = $query->execute(); $t->is($result->getPrimaryKeys(), array(1056, 1055, 8, 7, 6, 5, 4, 3, 2, 1), '->includeSelf()->includeFriends()->includeSns() viewerId = 1'); $result->free(true); $query->free(); //------------------------------------------------------------ $builder = opActivityQueryBuilder::create()->setViewerId(2)->includeSelf()->includeFriends()->includeSns(); $query = $builder->buildQuery(); $result = $query->execute(); $t->is($result->getPrimaryKeys(), array(1056, 1055, 8, 7, 6, 5, 3, 2, 1), '->includeSelf()->includeFriends()->includeSns() viewerId = 2'); $result->free(true); $query->free();