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)); }