示例#1
1
 /**
  * {@inheritDoc}
  */
 public function sortQuery(QueryBuilder $qb, array $query)
 {
     if (is_string($query['sort_by'])) {
         if ('item_count' == $query['sort_by']) {
             $entityAlias = $this->getEntityClass();
             $valuesAlias = $this->createAlias();
             $resourceAlias = $this->createAlias();
             $countAlias = $this->createAlias();
             $qb->addSelect("COUNT({$valuesAlias}.id) HIDDEN {$countAlias}")->leftJoin("{$entityAlias}.values", $valuesAlias)->leftJoin("{$valuesAlias}.resource", $resourceAlias, 'WITH', "{$resourceAlias} INSTANCE OF Omeka\\Entity\\Item")->addGroupBy("{$entityAlias}.id")->addOrderBy($countAlias, $query['sort_order']);
         } else {
             parent::sortQuery($qb, $query);
         }
     }
 }
示例#2
0
 /**
  * {@inheritDoc}
  */
 public function sortQuery(QueryBuilder $qb, array $query)
 {
     if (is_string($query['sort_by'])) {
         if ('item_count' == $query['sort_by']) {
             $this->sortByCount($qb, $query, 'resources', 'Omeka\\Entity\\Item');
         } else {
             parent::sortQuery($qb, $query);
         }
     }
 }
示例#3
0
 /**
  * {@inheritDoc}
  */
 public function sortQuery(QueryBuilder $qb, array $query)
 {
     if (is_string($query['sort_by'])) {
         if ('owner_email' == $query['sort_by']) {
             $entityClass = $this->getEntityClass();
             $ownerAlias = $this->createAlias();
             $qb->leftJoin("{$entityClass}.owner", $ownerAlias)->addOrderBy("{$ownerAlias}.email", $query['sort_order']);
         } else {
             parent::sortQuery($qb, $query);
         }
     }
 }
示例#4
0
 /**
  * {@inheritDoc}
  */
 public function sortQuery(QueryBuilder $qb, array $query)
 {
     if (is_string($query['sort_by'])) {
         if ('property_count' == $query['sort_by']) {
             $this->sortByCount($qb, $query, 'properties');
         } elseif ('resource_class_count' == $query['sort_by']) {
             $this->sortByCount($qb, $query, 'resourceClasses');
         } else {
             parent::sortQuery($qb, $query);
         }
     }
 }
 /**
  * {@inheritDoc}
  */
 public function sortQuery(QueryBuilder $qb, array $query)
 {
     if (is_string($query['sort_by'])) {
         if ('resource_class_label' == $query['sort_by']) {
             $resourceClassAlias = $this->createAlias();
             $qb->leftJoin('Omeka\\Entity\\ResourceTemplate.resourceClass', $resourceClassAlias)->addOrderBy("{$resourceClassAlias}.label", $query['sort_order']);
         } elseif ('item_count' == $query['sort_by']) {
             $this->sortByCount($qb, $query, 'resources', 'Omeka\\Entity\\Item');
         } else {
             parent::sortQuery($qb, $query);
         }
     }
 }
 /**
  * {@inheritDoc}
  */
 public function sortQuery(QueryBuilder $qb, array $query)
 {
     if (is_string($query['sort_by'])) {
         $property = $this->getPropertyByTerm($query['sort_by']);
         $entityClass = $this->getEntityClass();
         if ($property) {
             $valuesAlias = $this->createAlias();
             $qb->leftJoin("{$entityClass}.values", $valuesAlias, 'WITH', $qb->expr()->eq("{$valuesAlias}.property", $property->getId()));
             $qb->addOrderBy("{$valuesAlias}.value", $query['sort_order']);
         } elseif ('resource_class_label' == $query['sort_by']) {
             $resourceClassAlias = $this->createAlias();
             $qb->leftJoin("{$entityClass}.resourceClass", $resourceClassAlias)->addOrderBy("{$resourceClassAlias}.label", $query['sort_order']);
         } elseif ('owner_name' == $query['sort_by']) {
             $ownerAlias = $this->createAlias();
             $qb->leftJoin("{$entityClass}.owner", $ownerAlias)->addOrderBy("{$ownerAlias}.name", $query['sort_order']);
         } else {
             parent::sortQuery($qb, $query);
         }
     }
 }