public function getForm($filters = true)
 {
     // Don't allow searching without a valid search engine.
     $engine = $this->data()->SearchEngine;
     $fulltext = Config::inst()->get('FulltextSearchable', 'searchable_classes');
     if (is_null($engine) || $engine === 'Full-Text' && (!is_array($fulltext) || count($fulltext) === 0)) {
         return $this->httpError(404);
     }
     // Construct the search form.
     $fields = new FieldList(TextField::create('Search', _t('SearchForm.SEARCH', 'Search'), isset($_GET['Search']) ? $_GET['Search'] : '')->addExtraClass('extensible-search search')->setAttribute('data-suggestions-enabled', Config::inst()->get('ExtensibleSearchSuggestion', 'enable_suggestions') ? 'true' : 'false')->setAttribute('data-extensible-search-page', $this->data()->ID));
     // When filters have been enabled, display these in the form.
     if ($filters) {
         $objFields = $this->data()->getSelectableFields();
         // Remove content and groups from being sortable (as they are not relevant).
         unset($objFields['Content']);
         unset($objFields['Groups']);
         // Remove any custom field types and display the sortable options nicely to the user.
         foreach ($objFields as &$field) {
             if ($customType = strpos($field, ':')) {
                 $field = substr($field, 0, $customType);
             }
             // Add spaces between words, other characters and numbers.
             $field = ltrim(preg_replace(array('/([A-Z][a-z]+)/', '/([A-Z]{2,})/', '/([_.0-9]+)/'), ' $0', $field));
         }
         $sortBy = isset($_GET['SortBy']) ? $_GET['SortBy'] : $this->data()->SortBy;
         $sortDir = isset($_GET['SortDir']) ? $_GET['SortDir'] : $this->data()->SortDir;
         $fields->push(new DropdownField('SortBy', _t('ExtensibleSearchPage.SORT_BY', 'Sort By'), $objFields, $sortBy));
         $fields->push(new DropdownField('SortDir', _t('ExtensibleSearchPage.SORT_DIR', 'Sort Direction'), $this->data()->dbObject('SortDir')->enumValues(), $sortDir));
     }
     $actions = new FieldList(new FormAction('getSearchResults', _t('SearchForm.GO', 'Search')));
     $form = new SearchForm($this, 'getForm', $fields, $actions);
     $searchable = Config::inst()->get('FulltextSearchable', 'searchable_classes');
     if (is_array($searchable) && count($searchable) > 0) {
         $form->classesToSearch($searchable);
     }
     $form->addExtraClass('searchPageForm');
     $form->setFormMethod('GET');
     $form->disableSecurityToken();
     return $form;
 }