ModelBundle/Repository/ContentRepository.php
public function findForPaginateFilterByContentTypeSiteAndLanguage(PaginateFinderConfiguration $configuration, $contentType, $siteId, $language, array $searchTypes = array())
    {
        $qa = $this->createAggregateQueryWithDeletedFilter(false);
        $qa->match($this->generateContentTypeFilter($contentType));
        $qa->match($this->generateSiteIdAndNotLinkedFilter($siteId));
        $qa->match($this->generateLanguageFilter($language));

        $this->filterSearch($configuration, $qa, $searchTypes);

        $order = $configuration->getOrder();
        $qa = $this->generateLastVersionFilter($qa, $order);

        $newOrder = array();
        array_walk($order, function($item, $key) use(&$newOrder) {
            $newOrder[str_replace('.', '_', $key)] = $item;
        });

        if (!empty($newOrder)) {
            $qa->sort($newOrder);
        }

        $qa->skip($configuration->getSkip());
        $qa->limit($configuration->getLimit());

        return $this->hydrateAggregateQuery($qa, self::ALIAS_FOR_GROUP);
    }
public function findForPaginateFilterByContentTypeSiteAndLanguage(PaginateFinderConfiguration $configuration, $contentType, $siteId, $language, array $searchTypes = array())
    {
        $qa = $this->createAggregateQueryWithDeletedFilter(false);
        $qa->match($this->generateContentTypeFilter($contentType));
        $qa->match($this->generateSiteIdAndNotLinkedFilter($siteId));
        $qa->match($this->generateLanguageFilter($language));

        $this->filterSearch($configuration, $qa, $searchTypes);

        $order = $configuration->getOrder();
        $qa = $this->generateLastVersionFilter($qa, $order);

        $newOrder = array();
        array_walk($order, function($item, $key) use(&$newOrder) {
            $newOrder[str_replace('.', '_', $key)] = $item;
        });

        if (!empty($newOrder)) {
            $qa->sort($newOrder);
        }

        $qa->skip($configuration->getSkip());
        $qa->limit($configuration->getLimit());

        return $this->hydrateAggregateQuery($qa, self::ALIAS_FOR_GROUP);
    }
public function findForPaginateFilterByContentTypeSiteAndLanguage ( PaginateFinderConfiguration $ configuration , $ contentType , $ siteId , $ language , array $ searchTypes = array ( ) ) { $ qa = $ this -> createAggregateQueryWithDeletedFilter ( false ) ; $ qa -> match ( $ this -> generateContentTypeFilter ( $ contentType ) ) ; $ qa -> match ( $ this -> generateSiteIdAndNotLinkedFilter ( $ siteId ) ) ; $ qa -> match ( $ this -> generateLanguageFilter ( $ language ) ) ; $ this -> filterSearch ( $ configuration , $ qa , $ searchTypes ) ; $ order = $ configuration -> getOrder ( ) ; $ qa = $ this -> generateLastVersionFilter ( $ qa , $ order ) ; $ newOrder = array ( ) ; array_walk ( $ order , function ( $ item , $ key ) use ( & $ newOrder ) { $ newOrder [ str_replace ( '.' , '_' , $ key ) ] = $ item ; } ) ; if ( ! empty ( $ newOrder ) ) { $ qa -> sort ( $ newOrder ) ; } $ qa -> skip ( $ configuration -> getSkip ( ) ) ; $ qa -> limit ( $ configuration -> getLimit ( ) ) ; return $ this -> hydrateAggregateQuery ( $ qa , self :: ALIAS_FOR_GROUP ) ; }
@param PaginateFinderConfiguration $configuration
@param string                      $contentType
@param string                      $siteId
@param string                      $language
@param array                       $searchTypes

@return array
@param PaginateFinderConfiguration $configuration @param string $contentType @param string $siteId @param string $language @param array $searchTypes