/** * Runs a content search with pagination support. * * @param \eZ\Publish\Core\MVC\Symfony\View\ContentView $view * @param \Symfony\Component\HttpFoundation\Request $request * * @return \eZ\Publish\Core\MVC\Symfony\View\ContentView */ public function contentQueryPaginationAction(ContentView $view, Request $request) { $query = $this->contentViewQueryTypeMapper->map($view); $searchResults = new Pagerfanta(new ContentSearchAdapter($query, $this->searchService)); $searchResults->setMaxPerPage($view->getParameter('page_limit')); $searchResults->setCurrentPage($request->get('page', 1)); $view->addParameters([$view->getParameter('query')['assign_results_to'] => $searchResults]); return $view; }
/** * Runs the Query defined in $view using $method on SearchService. * * @param ContentView $view * @param string $method Name of the SearchService method to run. */ private function runQuery(ContentView $view, $method) { $searchResults = $this->searchService->{$method}($this->contentViewQueryTypeMapper->map($view)); $view->addParameters([$view->getParameter('query')['assign_results_to'] => $searchResults]); }