/components/com_search/controller.php
https://bitbucket.org/kraymitchell/fcd · PHP · 83 lines · 47 code · 11 blank · 25 comment · 8 complexity · 9dae7a50f165307df4428f07884e7e4b MD5 · raw file
- <?php
- /**
- * @package Joomla.Site
- * @subpackage com_search
- * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
- * @license GNU General Public License version 2 or later; see LICENSE.txt
- */
- defined('_JEXEC') or die;
- /**
- * Search Component Controller
- *
- * @package Joomla.Site
- * @subpackage com_search
- * @since 1.5
- */
- class SearchController extends JControllerLegacy
- {
- /**
- * Method to display a view.
- *
- * @param boolean If true, the view output will be cached
- * @param array An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
- *
- * @return JController This object to support chaining.
- * @since 1.5
- */
- public function display($cachable = false, $urlparams = false)
- {
- JRequest::setVar('view', 'search'); // force it to be the search view
- return parent::display($cachable, $urlparams);
- }
- function search()
- {
- // slashes cause errors, <> get stripped anyway later on. # causes problems.
- $badchars = array('#', '>', '<', '\\');
- $searchword = trim(str_replace($badchars, '', JRequest::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);
- JRequest::setVar('searchphrase', 'exact');
- }
- else {
- $post['searchword'] = $searchword;
- }
- $post['ordering'] = JRequest::getWord('ordering', null, 'post');
- $post['searchphrase'] = JRequest::getWord('searchphrase', 'all', 'post');
- $post['limit'] = JRequest::getUInt('limit', null, 'post');
- if ($post['limit'] === null) unset($post['limit']);
- $areas = JRequest::getVar('areas', null, 'post', '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 (JRequest::getInt('Itemid') > 0) { //use Itemid from requesting page only if there is no existing menu
- $post['Itemid'] = JRequest::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));
- }
- }