diff --git a/code/search/AdvancedSearchForm.php b/code/search/AdvancedSearchForm.php deleted file mode 100644 index 2759a46e..00000000 --- a/code/search/AdvancedSearchForm.php +++ /dev/null @@ -1,136 +0,0 @@ - _t('AdvancedSearchForm.RELEVANCE', 'Relevance'), - 'LastUpdated' => _t('AdvancedSearchForm.LASTUPDATED', 'Last Updated'), - 'PageTitle' => _t('AdvancedSearchForm.PAGETITLE', 'Page Title'), - ), - 'Relevance' - ) - ), - $chooseDate = new CompositeField( - new HeaderField('LastUpdatedHeader',_t('AdvancedSearchForm.LASTUPDATEDHEADER', 'LAST UPDATED')), - new DateField("From", _t('AdvancedSearchForm.FROM', 'From')), - new DateField("To", _t('AdvancedSearchForm.TO', 'To')) - ) - ); - - $searchBy->ID = "AdvancedSearchForm_SearchBy"; - $searchOnly->ID = "AdvancedSearchForm_SearchOnly"; - $sortBy->ID = "AdvancedSearchForm_SortBy"; - $chooseDate->ID = "AdvancedSearchForm_ChooseDate"; - } - - if(!$actions) { - $actions = new FieldList( - new FormAction("results", _t('AdvancedSearchForm.GO', 'Go')) - ); - } - parent::__construct($controller, $name, $fields, $actions); - } - - public function forTemplate(){ - return $this->renderWith(array("AdvancedSearchForm","Form")); - } - - /* Return dataObjectSet of the results, using the form data. - */ - public function getResults($numPerPage = 10) { - $data = $this->getData(); - - if($data['+']) $keywords .= " +" . ereg_replace(" +", " +", trim($data['+'])); - if($data['quote']) $keywords .= ' "' . $data['quote'] . '"'; - if($data['any']) $keywords .= ' ' . $data['any']; - if($data['-']) $keywords .= " -" . ereg_replace(" +", " -", trim($data['-'])); - $keywords = trim($keywords); - - // This means that they want to just find pages where there's *no* match - - if($keywords[0] == '-') { - $keywords = $data['-']; - $invertedMatch = true; - } - - - // Limit search to various sections - if($_REQUEST['OnlyShow']) { - $pageList = array(); - - // Find the associated pages - foreach($_REQUEST['OnlyShow'] as $section => $checked) { - $items = explode(",", $section); - foreach($items as $item) { - $page = DataObject::get_one('SiteTree', "\"URLSegment\" = '" . Convert::raw2sql($item) . "'"); - $pageList[] = $page->ID; - if(!$page) user_error("Can't find a page called '$item'", E_USER_WARNING); - $page->loadDescendantIDListInto($pageList); - } - } - $contentFilter = "\"ID\" IN (" . implode(",", $pageList) . ")"; - - // Find the files associated with those pages - $fileList = DB::query("SELECT \"FileID\" FROM \"Page_ImageTracking\" WHERE \"PageID\" IN (" . implode(",", $pageList) . ")")->column(); - if($fileList) $fileFilter = "\"ID\" IN (" . implode(",", $fileList) . ")"; - else $fileFilter = " 1 = 2 "; - } - - if($data['From']) { - $filter .= ($filter?" AND":"") . " \"LastEdited\" >= '$data[From]'"; - } - if($data['To']) { - $filter .= ($filter?" AND":"") . " \"LastEdited\" <= '$data[To]'"; - } - - if($filter) { - $contentFilter .= ($contentFilter?" AND":"") . $filter; - $fileFilter .= ($fileFilter?" AND":"") . $filter; - } - - if($data['sortby']) { - $sorts = array( - 'LastUpdated' => '"LastEdited" DESC', - 'PageTitle' => '"Title" ASC', - 'Relevance' => '"Relevance" DESC', - ); - $sortBy = $sorts[$data['sortby']] ? $sorts[$data['sortby']] : $sorts['Relevance']; - } - - $keywords = $this->addStarsToKeywords($keywords); - - return $this->searchEngine($keywords, $numPerPage, $sortBy, $contentFilter, true, $fileFilter, $invertedMatch); - } - - function getSearchQuery() { - $data = $_REQUEST; - if($data['+']) $keywords .= " +" . ereg_replace(" +", " +", trim($data['+'])); - if($data['quote']) $keywords .= ' "' . $data['quote'] . '"'; - if($data['any']) $keywords .= ' ' . $data['any']; - if($data['-']) $keywords .= " -" . ereg_replace(" +", " -", trim($data['-'])); - - return trim($keywords); - } - -} -