/**
  * {@inheritdoc}
  */
 public function addAttributeSorter(AttributeInterface $attribute, $direction, $locale = null, $scope = null)
 {
     $sortField = ProductQueryUtility::getNormalizedValueFieldFromAttribute($attribute, $locale, $scope);
     $this->qb->sort(ProductQueryUtility::NORMALIZED_FIELD . '.' . $sortField, $direction);
     $this->qb->sort('_id');
     return $this;
 }
 /**
  * {@inheritdoc}
  */
 public function addFieldSorter($field, $direction, $locale = null, $scope = null)
 {
     $field = sprintf("%s.%s", ProductQueryUtility::NORMALIZED_FIELD, $field);
     $this->qb->sort($field, $direction);
     $this->qb->sort('_id');
     return $this;
 }
 /**
  * {@inheritdoc}
  */
 public function addFieldSorter($field, $direction, $locale = null, $scope = null)
 {
     if (null === $locale || null === $scope) {
         throw new \InvalidArgumentException('Cannot prepare condition on completenesses without locale and scope');
     }
     $field = sprintf("%s.%s.%s-%s", ProductQueryUtility::NORMALIZED_FIELD, 'completenesses', $scope, $locale);
     $this->qb->sort($field, $direction);
     $this->qb->sort('_id');
     return $this;
 }
예제 #4
0
 /**
  * {@inheritdoc}
  */
 public function addFieldSorter($field, $direction, $locale = null, $scope = null)
 {
     if (null === $locale) {
         throw new \InvalidArgumentException('Cannot prepare condition on family sorter without locale');
     }
     $fieldLabel = sprintf("%s.%s.label.%s", ProductQueryUtility::NORMALIZED_FIELD, $field, $locale);
     $fieldCode = sprintf("%s.%s.code", ProductQueryUtility::NORMALIZED_FIELD, $field);
     $this->qb->sort($fieldLabel, $direction);
     $this->qb->sort($fieldCode, $direction);
     $this->qb->sort('_id');
     return $this;
 }
예제 #5
0
 /**
  * @param Parameters $params
  * @param Builder $queryBuilder
  *
  * @return Builder
  */
 public function createQuery($params, $queryBuilder)
 {
     $this->value = $params->toArray();
     /*
      * search jobs by keywords
      */
     if (isset($this->value['params']['search']) && !empty($this->value['params']['search'])) {
         $search = strtolower($this->value['params']['search']);
         $expression = $queryBuilder->expr()->operator('$text', ['$search' => $search]);
         $queryBuilder->field(null)->equals($expression->getQuery());
     }
     if (isset($this->value['params']['status']) && !empty($this->value['params']['status'])) {
         if ($this->value['params']['status'] != 'all') {
             $queryBuilder->field('status.name')->equals($this->value['params']['status']);
         }
     } else {
         $queryBuilder->field('status.name')->equals(Status::CREATED);
     }
     if (isset($this->value['params']['companyId']) && !empty($this->value['params']['companyId'])) {
         $queryBuilder->field('organization')->equals(new \MongoId($this->value['params']['companyId']));
     }
     if (isset($this->value['sort'])) {
         foreach (explode(",", $this->value['sort']) as $sort) {
             $queryBuilder->sort($this->filterSort($sort));
         }
     }
     return $queryBuilder;
 }
 protected function initTestList()
 {
     $this->queryBuilder->sort('date', 'DESC');
     $this->listCount = $this->queryBuilder->getQuery()->execute()->count();
     $this->initPagenation();
     if ($this->listCount > 0) {
         $this->queryBuilder->field('userId')->equals('');
         $this->list = $this->queryBuilder = $this->queryBuilder->getQuery()->execute();
     }
 }
 /**
  * @param $params
  * @param \Doctrine\ODM\MongoDB\Query\Builder $queryBuilder
  *
  * @return mixed
  */
 public function createQuery($params, $queryBuilder)
 {
     if (!empty($params['text'])) {
         $queryBuilder->text($params['text']);
     }
     $queryBuilder->field('isDraft')->equals(false);
     if (isset($params['sort'])) {
         foreach (explode(",", $params['sort']) as $sort) {
             $queryBuilder->sort($this->filterSort($sort));
         }
     }
     return $queryBuilder;
 }
예제 #8
0
 /**
  * Creates a query for filtering organizations
  *
  * @see \Core\Repository\Filter\AbstractPaginationQuery::createQuery()
  * @param $params
  * @param \Doctrine\ODM\MongoDB\Query\Builder $queryBuilder
  * @return mixed
  */
 public function createQuery($params, $queryBuilder)
 {
     $userID = $this->auth->getUser()->getId();
     if ($params instanceof Parameters) {
         $value = $params->toArray();
     } else {
         $value = $params;
     }
     if (isset($params['text']) && $params['text']) {
         $queryBuilder->text($params['text']);
     }
     /*
      * We only show organizations to which the user has view permissions.
      */
     $queryBuilder->field('permissions.view')->equals($userID);
     if (!isset($value['sort'])) {
         $value['sort'] = '-date';
     }
     $queryBuilder->sort($this->filterSort($value['sort']));
     return $queryBuilder;
 }
예제 #9
0
 /**
  * {@inheritdoc}
  */
 public function orderBy($sort, $order = 'ASC')
 {
     $this->queryBuilder->sort($sort, $order);
     return $this;
 }
예제 #10
0
파일: Repository.php 프로젝트: php-lug/lug
 /**
  * @param Builder  $queryBuilder
  * @param string[] $orderBy
  */
 private function applySorting(Builder $queryBuilder, array $orderBy = [])
 {
     foreach ($orderBy as $property => $order) {
         if (!empty($order)) {
             $queryBuilder->sort($this->getProperty($property, $queryBuilder), $order);
         }
     }
 }
예제 #11
0
 /**
  * {@inheritdoc}
  */
 public function addFieldSorter($field, $direction, $locale = null, $scope = null)
 {
     $this->qb->sort(ProductQueryUtility::NORMALIZED_FIELD . '.' . $field, $direction);
     $this->qb->sort('_id');
     return $this;
 }
예제 #12
0
 protected function applySort(QueryBuilder $query)
 {
     foreach ($this->sorts as $path => $order) {
         $query->sort($path, $order);
     }
 }
예제 #13
0
 /**
  * Set sort and erase all old sorts.
  *
  * @param string $order
  * @return QueryProxy this instance
  */
 public function sort($fieldName, $order = null)
 {
     $this->queryChanged = true;
     return parent::sort($fieldName, $order);
 }
 function it_adds_a_order_by_completeness_in_the_query(Builder $queryBuilder)
 {
     $queryBuilder->sort('normalizedData.completenesses.mobile-en_US', 'desc')->shouldBeCalled();
     $queryBuilder->sort('_id')->shouldBeCalled();
     $this->addFieldSorter('completenesses', 'desc', 'en_US', 'mobile');
 }
예제 #15
0
 /**
  * {@inheritdoc}
  */
 public function addFieldSorter($field, $direction)
 {
     $this->qb->sort(ProductQueryUtility::NORMALIZED_FIELD . '.' . $field, $direction);
     return $this;
 }
 /**
  * {@inheritdoc}
  */
 public function addFieldSorter($field, $direction)
 {
     $field = sprintf("%s.%s.label.%s", ProductQueryUtility::NORMALIZED_FIELD, $field, $this->context->getLocaleCode());
     $this->qb->sort($field, $direction);
     return $this;
 }
예제 #17
0
 /**
  * add a sort condition to querybuilder
  *
  * @param \Xiag\Rql\Parser\Node\SortNode $node sort node
  *
  * @return void
  */
 protected function visitSort(\Xiag\Rql\Parser\Node\SortNode $node)
 {
     foreach ($node->getFields() as $name => $order) {
         $this->builder->sort($name, $order);
     }
 }