protected function getQueryFromRequest() { $query = new Query(); $manager = $this->getFieldManager(); $fields = $manager->getFieldsFromRequest($this->request->request->all()); $provider = $this->getSearchProvider(); $set = $provider->getBaseColumnSet(); $available = $provider->getAvailableColumnSet(); foreach ($this->request->request->get('column') as $key) { $set->addColumn($available->getColumnByKey($key)); } $sort = $available->getColumnByKey($this->getRequestDefaultSort()); $set->setDefaultSortColumn($sort, $this->getRequestDefaultSortDirection()); $query->setFields($fields); $query->setColumns($set); return $query; }
public function getSearchResultFromQuery(Query $query) { $list = $this->getItemList(); foreach ($query->getFields() as $field) { $field->filterList($list); } if (!$list->getActiveSortColumn()) { $columns = $query->getColumns(); if (is_object($columns)) { $column = $columns->getDefaultSortColumn(); $list->sanitizedSortBy($column->getColumnKey(), $column->getColumnDefaultSortDirection()); } else { $columns = $this->getDefaultColumnSet(); } } $result = $this->createSearchResultObject($columns, $list); $result->setQuery($query); return $result; }
public function search($btID = 0) { $bt = BlockType::getByID($btID); if (is_object($bt)) { /** * @var $provider SearchProvider */ $provider = $this->app->make('Concrete\\Core\\Page\\Search\\SearchProvider'); $query = new Query(); $field = new ContainsBlockTypeField(['btID' => $btID]); $query->setFields([$field]); $query->setColumns($provider->getDefaultColumnSet()); $provider->setSessionCurrentQuery($query); $this->redirect('/dashboard/sitemap/search'); exit; } }