You've already forked joomla_test
first commit
This commit is contained in:
91
components/com_search/controller.php
Normal file
91
components/com_search/controller.php
Normal file
@ -0,0 +1,91 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_search
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 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)
|
||||
{
|
||||
$this->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));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user