Skip to content

Commit

Permalink
BUG Fix encoding of SearchForm::getSearchQuery
Browse files Browse the repository at this point in the history
This made it awkward for user code to extract the query value for use in other applications; This would otherwise have to be xml decoded again.
Casting has been promoted to the templating level via DBField::create_field and a `SearchForm.casting` config setting.
  • Loading branch information
Damian Mooyman committed May 5, 2014
1 parent b369928 commit 5dd0583
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
2 changes: 1 addition & 1 deletion code/search/ContentControllerSearchExtension.php
Expand Up @@ -42,7 +42,7 @@ public function SearchForm() {
public function results($data, $form, $request) {
$data = array(
'Results' => $form->getResults(),
'Query' => $form->getSearchQuery(),
'Query' => DBField::create_field('Text', $form->getSearchQuery()),
'Title' => _t('SearchForm.SearchResults', 'Search Results')
);
return $this->owner->customise($data)->renderWith(array('Page_results', 'Page'));
Expand Down
6 changes: 5 additions & 1 deletion code/search/SearchForm.php
Expand Up @@ -27,6 +27,10 @@ class SearchForm extends Form {
"SiteTree", "File"
);

private static $casting = array(
'SearchQuery' => 'Text'
);

/**
*
* @param Controller $controller
Expand Down Expand Up @@ -186,7 +190,7 @@ public function getSearchQuery($data = null) {
if(!isset($data)) $data = $_REQUEST;

// The form could be rendered without the search being done, so check for that.
if (isset($data['Search'])) return Convert::raw2xml($data['Search']);
if (isset($data['Search'])) return $data['Search'];
}

/**
Expand Down

0 comments on commit 5dd0583

Please sign in to comment.