burnbright / silverstripe-pagesearch
搜索 SilverStripe 网站中的页面。
dev-master
2016-02-21 00:33 UTC
Requires
- silverstripe/framework: ~3.1
This package is auto-updated.
Last update: 2024-08-24 19:44:45 UTC
README
这是一个简单的搜索替换,用于默认的 SilverStripe 搜索功能。
搜索将在所选 pagetype 的所有 Text、HTMLText、Varchar 和 HTMLVarchar 字段上执行。
可以通过 URL 变量特别设置 Pagetype,例如: ?pagetype=BlogEntry
。
限制
- 目前仅与 MySQLDatabase 进行测试。
- 不搜索关系。使用像 SOLR 这样的更好引擎。
使用方法
在您的 Page_Controller
类中
public function SearchForm() { $searchText = ($this->request && $this->request->requestVar('Search')) ? $this->request->requestVar('Search') : 'Search'; $form = new Form( $this, 'SearchForm', new FieldList( TextField::create('Search', false) ->setAttribute("Placeholder", $searchText) ), new FieldList( FormAction::create('results', 'Go') ) ); $form->setFormMethod('GET'); $form->setTemplate('SearchForm'); return $form; } function results($data, $form, $request) { $search = PageSearch::create($request); $data = array( 'Content' => '', 'Results' => $search->results(), 'Query' => $search->getQuery(), 'Title' => _t('SearchForm.SearchResults', 'Search Results') ); return $this->owner->customise($data)->renderWith(array('Page_results', 'Page')); }
因为返回了一个 DataList
,您可以用 PaginatedList
包装它以添加分页。