Example #1
0
 public function index()
 {
     $this->loadLanguageFile('Category');
     $inst = SearchableModel::getInstanceByModelClass($this->request->get('type'));
     if (!$inst) {
         return null;
     }
     $query = $this->request->get('q');
     $f = $inst->getSelectFilter($query);
     $perPage = $this->config->get('SEARCH_MODEL_PER_PAGE');
     $page = $this->request->get('page', 1);
     $f->setLimit($perPage, $perPage * ($page - 1));
     $response = new ActionResponse();
     $response->set('results', $this->fetchData($inst, $f));
     $response->set('page', $page);
     $response->set('query', $query);
     $response->set('perPage', $perPage);
     $response->set('url', $this->router->createUrl(array('controller' => 'search', 'action' => 'index', 'query' => array('type' => $inst->getClassName(), 'q' => $query, 'page' => '0'))));
     return $response;
 }
 private function getProductsFromSearchQuery($query)
 {
     ClassLoader::import('application.model.searchable.SearchableModel');
     $request = $this->getRequest();
     $searchable = SearchableModel::getInstanceByModelClass('Product', SearchableModel::BACKEND_SEARCH_MODEL);
     $searchable->setOption('BACKEND_QUICK_SEARCH', true);
     return ActiveRecordModel::getRecordSet('Product', $searchable->getSelectFilter($query));
 }