/** * Searches published blog posts * * @param void * @return ViewModel * @throws AccessProhibitedException **/ public function indexAction() { $request = $this->getRequest(); $viewVars = array(); if ($request->isGet()) { $options = $request->getQuery()->toArray(); $page = $request->getQuery('page'); $viewVars['posts'] = $this->_service->pagedResults($options, $page); } $viewVars['form'] = $this->_service->getForm(); $viewVars['messages'] = $this->_service->getMessages(SearchService::MSG_NOTICE); $viewVars['errors'] = $this->_service->getMessages(SearchService::MSG_ERROR); return new ViewModel($viewVars); }
/** * Returns SearchController instance. * * @param ServiceLocatorInterface $serviceLocator * @return BlogController * @override **/ public function createService(ServiceLocatorInterface $serviceLocator) { /* @var $serviceLocator Zend\Mvc\Controller\ControllerManager */ $sm = $serviceLocator->getServiceLocator(); $em = $sm->get('em'); $categoryService = new CategoryService($em); $categories = $categoryService->getPublishedWithCount(); $postService = new PostService($em); $years = $postService->getValidYears(); $form = new SearchForm(); $form->setCategoryList($categories); $form->setYearList($years); $service = new SearchService($em); $service->setForm($form); $controller = new SearchController(); $controller->setService($service); return $controller; }