input->set('view', 'search'); // force it to be the search view return parent::display($cachable, $urlparams); } public function search() { // slashes cause errors, <> get stripped anyway later on. # causes problems. $badchars = array('#', '>', '<', '\\'); $searchword = trim(str_replace($badchars, '', $this->input->getString('searchword', null, 'post'))); // if searchword enclosed in double quotes, strip quotes and do exact match if (substr($searchword, 0, 1) == '"' && substr($searchword, -1) == '"') { $post['searchword'] = substr($searchword, 1, -1); $this->input->set('searchphrase', 'exact'); } else { $post['searchword'] = $searchword; } $post['ordering'] = $this->input->getWord('ordering', null, 'post'); $post['searchphrase'] = $this->input->getWord('searchphrase', 'all', 'post'); $post['limit'] = $this->input->getUInt('limit', null, 'post'); if ($post['limit'] === null) { unset($post['limit']); } $areas = $this->input->post->get('areas', null, 'array'); if ($areas) { foreach ($areas as $area) { $post['areas'][] = JFilterInput::getInstance()->clean($area, 'cmd'); } } // set Itemid id for links from menu $app = JFactory::getApplication(); $menu = $app->getMenu(); $items = $menu->getItems('link', 'index.php?option=com_search&view=search'); if (isset($items[0])) { $post['Itemid'] = $items[0]->id; } elseif ($this->input->getInt('Itemid') > 0) { //use Itemid from requesting page only if there is no existing menu $post['Itemid'] = $this->input->getInt('Itemid'); } unset($post['task']); unset($post['submit']); $uri = JUri::getInstance(); $uri->setQuery($post); $uri->setVar('option', 'com_search'); $this->setRedirect(JRoute::_('index.php'.$uri->toString(array('query', 'fragment')), false)); } }