| Current Path : /home/pteabiscqq/www/components/com_quix/ |
| Current File : /home/pteabiscqq/www/components/com_quix/router.php |
<?php
/**
* @version CVS: 1.0.0
* @package com_quix
* @author ThemeXpert <info@themexpert.com>
* @copyright Copyright (C) 2015. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access
defined('_JEXEC') or die;
JLoader::register('QuixFrontendHelper', JPATH_BASE . '/components/com_quix/helpers/quix.php');
/**
* Class QuixRouter
*
* @since 3.3
*/
class QuixRouter extends JComponentRouterBase
{
/**
* Build method for URLs
* This method is meant to transform the query parameters into a more human
* readable form. It is only executed when SEF mode is switched on.
*
* @param array &$query An array of URL arguments
*
* @return array The URL arguments to use to assemble the subsequent URL.
*
* @since 3.3
*/
public function build(&$query)
{
$app = JFactory::getApplication();
$menu = $app->getMenu();
$segments = array();
if (empty($query['Itemid']))
{
$menuItem = $menu->getActive();
$menuItemGiven = false;
}
else
{
$menuItem = $menu->getItem($query['Itemid']);
$menuItemGiven = true;
}
// Check again
if ($menuItemGiven && isset($menuItem) && $menuItem->component != 'com_quix')
{
$menuItemGiven = false;
unset($query['Itemid']);
}
if (isset($query['view']))
{
$view = $query['view'];
}
else
{
return $segments;
}
if (($menuItem instanceof stdClass) && isset($menuItem->query['view']) && $menuItem->query['view'] == $query['view']) {
if (!$menuItemGiven) {
$segments[] = $view;
}
unset($query['id']);
unset($query['view']);
return $segments;
}
else
{
$segments[] = $view;
unset($query['view']);
$segments[] = $query['id'];
unset($query['id']);
}
return $segments;
}
/**
* Parse method for URLs
* This method is meant to transform the human readable URL back into
* query parameters. It is only executed when SEF mode is switched on.
*
* @param array &$segments The segments of the URL to parse.
*
* @return array The URL attributes to be used by the application.
*
* @since 3.3
*/
public function parse(&$segments)
{
$vars = array();
// View is always the first element of the array
$vars['view'] = array_shift($segments);
$model = QuixFrontendHelper::getModel($vars['view']);
while (!empty($segments))
{
$segment = array_pop($segments);
// If it's the ID, let's put on the request
if (is_numeric($segment))
{
$vars['id'] = $segment;
}
else
{
$vars['task'] = $vars['view'] . '.' . $segment;
}
}
return $vars;
}
}