Ejemplo n.º 1
0
 public function run($q)
 {
     $search = Yii::$app->search;
     $searchData = $search->search($q);
     $dataProvider = new ArrayDataProvider(['allModels' => $searchData, 'pagination' => ["pageSize" => $this->pageSize]]);
     return $this->controller->render($this->getTemplate(), ['models' => $dataProvider->getModels(), 'pagination' => $dataProvider->getPagination()]);
 }
 public function actionIndex($q = '')
 {
     /** @var \himiklab\search\Search $search */
     $search = Yii::$app->search;
     $searchData = $search->find($q);
     $dataProvider = new ArrayDataProvider(['allModels' => $searchData['results'], 'pagination' => ['pageSize' => self::PAGE_SIZE]]);
     return $this->render('index', ['hits' => $dataProvider->getModels(), 'pagination' => $dataProvider->getPagination(), 'query' => $searchData['query']]);
 }
Ejemplo n.º 3
0
 public function actionSearch($q = '')
 {
     /** @var \himiklab\yii2\search\Search $search */
     $search = \Yii::$app->search;
     $searchData = $search->find($q);
     // Search by full index.
     //$searchData = $search->find($q, ['model' => 'page']); // Search by index provided only by model `page`.
     $dataProvider = new ArrayDataProvider(['allModels' => $searchData['results'], 'pagination' => ['pageSize' => 10]]);
     return $this->render('found', ['hits' => $dataProvider->getModels(), 'pagination' => $dataProvider->getPagination(), 'query' => $searchData['query']]);
 }
Ejemplo n.º 4
0
 public function actionSearch($q = '')
 {
     $time_start = microtime(true);
     //начало измерения
     /** @var \himiklab\yii2\search\Search $search */
     $search = Yii::$app->search;
     $searchData = $search->find($q);
     // Search by full index.
     //$searchData = $search->find($q, ['model' => 'post']); // Search by index provided only by model `page`.
     $time_end = microtime(true);
     //конец измерения
     $dataProvider = new ArrayDataProvider(['allModels' => $searchData['results'], 'pagination' => ['pageSize' => \Yii::$app->getModule('blog')->searchPageSize]]);
     $time = str_replace('.', ',', substr($time_end - $time_start, 0, 4));
     return $this->render('found', ['hits' => $dataProvider->getModels(), 'count' => count($searchData['results']), 'time' => $time, 'pagination' => $dataProvider->getPagination(), 'query' => $searchData['query']]);
 }
 public function all()
 {
     $provider = new ArrayDataProvider(['key' => 'id', 'allModels' => $this->allModels, 'pagination' => ['totalCount' => count($this->allModels), 'pageSize' => 50, 'forcePageParam' => true]]);
     $models = $provider->getModels();
     $pager = LinkPager::widget(['pagination' => $provider->getPagination(), 'maxButtonCount' => 10]);
     $result = ['models' => array_values($models), 'pager' => $pager];
     return $result;
 }