/** * Handle the table entries. * * @param SearchTableBuilder $builder */ public function handle(SearchTableBuilder $builder) { /* @var LengthAwarePaginator $results */ $results = (new SearchCriteria('results', function (SearchCriteria $criteria) use($builder) { $criteria->search(null, $builder->getTableFilterValue('term')); return $this->dispatch(new GetSearchResults($criteria)); }))->results(); $builder->setTableEntries($results->getCollection()); }
/** * Handle the table columns. * * @param SearchTableBuilder $builder */ public function handle(SearchTableBuilder $builder) { $builder->setColumns([['heading' => 'module::field.title.name', 'value' => 'entry.edit_link'], ['heading' => 'module::field.description.name', 'value' => 'entry.description'], ['heading' => 'module::field.keywords.name', 'value' => function (SearchPresenter $entry) { /* @var SearchItem $item */ $item = $entry->getObject(); return implode(' ', array_map(function ($keyword) { return '<span class="label label-default">' . $keyword . '</span>'; }, $item->getKeywords())); }], ['heading' => 'module::field.stream.name', 'value' => 'entry.stream']]); }
/** * Return the index. * * @param SearchTableBuilder $table * @return \Symfony\Component\HttpFoundation\Response */ public function index(SearchTableBuilder $table) { return $table->render(); }