| Current Path : /home/digilove/public_html/components/com_marketplace/ |
| Current File : /home/digilove/public_html/components/com_marketplace/router.php |
<?php
/**
* Marketplace - Component Marketplace
* ******************************************************************
*
* PHP version 7.0
*
* @category Component
* @package Joomla
* @author WebKul software private limited <support@webkul.com>
* @copyright 2010 WebKul software private limited
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @version GIT:5.2
* @filesource http://store.webkul.com
* @link Technical Support: webkul.uvdesk.com
* ******************************************************************
*/
defined('_JEXEC') or die;
/**
* MarketplaceRouter class
*
* @category Component
* @package Joomla
* @author WebKul software private limited <support@webkul.com>
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @link Technical Support: webkul.uvdesk.com
*/
class MarketplaceRouter extends JComponentRouterBase
{
/**
* Build function to build Sef Marketplace
*
* @param [str] $query var
*
* @return void
*/
public function build(&$query)
{
$segments = array();
$view = null;
if (isset($query['view'])) {
$segments[] = $query['view'];
$view = $query['view'];
unset($query['view']);
}
if (isset($query['task'])) {
if (isset($query['view'])&& $view!="orderhistory") {
$taskParts = explode('.', $query['task']);
$segments[] = implode('/', $taskParts);
$view = $taskParts[0];
unset($query['task']);
}
}
if (isset($query['mode'])) {
$segments[] =$query['mode'];
unset($query['mode']);
}
if (isset($query['id'])) {
if ($view !== null) {
$segments[] = $query['id'];
} else {
$segments[] = $query['id'];
}
unset($query['id']);
}
if (isset($query['virtuemart_order_id'])
&& isset($query['layout'])
&& $query['layout']=="orderdata"
&& $view=="orderhistory"
) {
$segments[] =$query['layout'];
unset($query['layout']);
$segments[] =$query['task'];
unset($query['task']);
$segments[] =$query['virtuemart_order_id'];
unset($query['virtuemart_order_id']);
if (isset($query['item_id'])) {
$segments[] =$query['item_id'];
unset($query['item_id']);
}
}
if (isset($query['sel_id'])) {
if ($view =='follow') {
$segments[] =$query['sel_id'];
unset($query['sel_id']);
}
}
if (isset($query['seller_id'])) {
if ($view =='sellerprofile' || $view='productlist'||$view =='category') {
$segments[]=$query['seller_id'];
unset($query['seller_id']);
if (isset($query['category_id'])) {
$segments[]=$query['category_id'];
unset($query['category_id']);
}
}
}
if (isset($query['virtuemart_product_id'])) {
if ($view =='addproduct') {
$segments[] =$query['virtuemart_product_id'];
unset($query['virtuemart_product_id']);
}
}
return $segments;
}
/**
* Parse function to map sef url to proper views
*
* @param [array] $segments var
*
* @return void
*/
public function parse(&$segments)
{
$vars = array();
$vars['view'] = array_shift($segments);
$segmentwk=$segments;
while (!empty($segments)) {
$segment = array_pop($segments);
if (is_numeric($segment)) {
$vars['virtuemart_product_id']=$segment;
if ($vars['view']=='productlist'&&isset($segmentwk[1])) {
$vars['seller_id']=$segmentwk[1];
} elseif ($vars['view']=='productlist'&&!isset($segmentwk[1])) {
$vars['seller_id']=$segmentwk[0];
}
if ($vars['view']=='sellerprofile' ||$vars['view']=='category') {
if (!is_numeric($segmentwk[0])) {
$vars['seller_id']=$segmentwk[1];
} elseif (is_numeric($segmentwk[0])) {
$vars['seller_id']=$segmentwk[0];
}
if ($vars['view']=='category' && !is_numeric($segmentwk[0])) {
$vars['category_id']=$segmentwk[2];
} elseif ($vars['view']=='category'
&& is_numeric($segmentwk[0])
) {
$vars['category_id']=$segmentwk[1];
}
}
} else {
$vars['mode'] = $segment;
$vars['layout']=$segment;
$vars['task'] = $vars['view'] . '.' . $segment;
}
}
if ($vars['view']=='orderhistory'
&& isset($vars['layout'])&& $vars['layout']=='orderdata'
) {
$vars['task']=$segmentwk[1];
$vars['virtuemart_order_id']=$segmentwk[2];
$vars['item_id']=$segmentwk[3];
}
if ($vars['view']=='follow'&& isset($segmentwk[0])) {
$vars['sel_id']=$segmentwk[0];
}
return $vars;
}
}