You've already forked joomla_test
first commit
This commit is contained in:
110
components/com_finder/router.php
Normal file
110
components/com_finder/router.php
Normal file
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_finder
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* Method to build a SEF route.
|
||||
*
|
||||
* @param array &$query An array of route variables.
|
||||
*
|
||||
* @return array An array of route segments.
|
||||
*
|
||||
* @since 2.5
|
||||
*/
|
||||
function FinderBuildRoute(&$query)
|
||||
{
|
||||
static $menu;
|
||||
$segments = array();
|
||||
|
||||
// Load the menu if necessary.
|
||||
if (!$menu)
|
||||
{
|
||||
$menu = JFactory::getApplication('site')->getMenu();
|
||||
}
|
||||
|
||||
/*
|
||||
* First, handle menu item routes first. When the menu system builds a
|
||||
* route, it only provides the option and the menu item id. We don't have
|
||||
* to do anything to these routes.
|
||||
*/
|
||||
if (count($query) === 2 && isset($query['Itemid']) && isset($query['option']))
|
||||
{
|
||||
return $segments;
|
||||
}
|
||||
|
||||
/*
|
||||
* Next, handle a route with a supplied menu item id. All system generated
|
||||
* routes should fall into this group. We can assume that the menu item id
|
||||
* is the best possible match for the query but we need to go through and
|
||||
* see which variables we can eliminate from the route query string because
|
||||
* they are present in the menu item route already.
|
||||
*/
|
||||
if (!empty($query['Itemid']))
|
||||
{
|
||||
// Get the menu item.
|
||||
$item = $menu->getItem($query['Itemid']);
|
||||
|
||||
// Check if the view matches.
|
||||
if ($item && @$item->query['view'] === @$query['view'])
|
||||
{
|
||||
unset($query['view']);
|
||||
}
|
||||
|
||||
// Check if the search query filter matches.
|
||||
if ($item && @$item->query['f'] === @$query['f'])
|
||||
{
|
||||
unset($query['f']);
|
||||
}
|
||||
|
||||
// Check if the search query string matches.
|
||||
if ($item && @$item->query['q'] === @$query['q'])
|
||||
{
|
||||
unset($query['q']);
|
||||
}
|
||||
|
||||
return $segments;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lastly, handle a route with no menu item id. Fortunately, we only need
|
||||
* to deal with the view as the other route variables are supposed to stay
|
||||
* in the query string.
|
||||
*/
|
||||
if (isset($query['view']))
|
||||
{
|
||||
// Add the view to the segments.
|
||||
$segments[] = $query['view'];
|
||||
unset($query['view']);
|
||||
}
|
||||
|
||||
return $segments;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to parse a SEF route.
|
||||
*
|
||||
* @param array $segments An array of route segments.
|
||||
*
|
||||
* @return array An array of route variables.
|
||||
*
|
||||
* @since 2.5
|
||||
*/
|
||||
function FinderParseRoute($segments)
|
||||
{
|
||||
$vars = array();
|
||||
|
||||
// Check if the view segment is set and it equals search or advanced.
|
||||
if (@$segments[0] === 'search' || @$segments[0] === 'advanced')
|
||||
{
|
||||
$vars['view'] = $segments[0];
|
||||
}
|
||||
|
||||
return $vars;
|
||||
}
|
Reference in New Issue
Block a user