1
0
mirror of https://github.com/silverstripe/silverstripe-reports synced 2024-10-22 09:05:53 +00:00
silverstripe-reports/code/search/ContentControllerSearchExtension.php
Ingo Schommer 51c8e8639e API Marked statics private, use Config API instead ()
See "Static configuration properties are now immutable, you must use Config API." in the 3.1 change log for details.
2013-03-24 17:21:04 +01:00

51 lines
1.4 KiB
PHP

<?php
/**
* Extension to provide a search interface when applied to ContentController
*
* @package cms
* @subpackage search
*/
class ContentControllerSearchExtension extends Extension {
private static $allowed_actions = array(
'SearchForm',
'results',
);
/**
* Site search form
*/
public function SearchForm() {
$searchText = _t('SearchForm.SEARCH', 'Search');
if($this->owner->request && $this->owner->request->getVar('Search')) {
$searchText = $this->owner->request->getVar('Search');
}
$fields = new FieldList(
new TextField('Search', false, $searchText)
);
$actions = new FieldList(
new FormAction('results', _t('SearchForm.GO', 'Go'))
);
$form = new SearchForm($this->owner, 'SearchForm', $fields, $actions);
$form->classesToSearch(FulltextSearchable::get_searchable_classes());
return $form;
}
/**
* Process and render search results.
*
* @param array $data The raw request data submitted by user
* @param SearchForm $form The form instance that was submitted
* @param SS_HTTPRequest $request Request generated for this action
*/
public function results($data, $form, $request) {
$data = array(
'Results' => $form->getResults(),
'Query' => $form->getSearchQuery(),
'Title' => _t('SearchForm.SearchResults', 'Search Results')
);
return $this->owner->customise($data)->renderWith(array('Page_results', 'Page'));
}
}