function DJCatalog2ParseRoute($segments) { $app = JFactory::getApplication(); $menu = $app->getMenu(); $activemenu = $menu->getActive(); $db = JFactory::getDBO(); $params = JComponentHelper::getParams('com_djcatalog2'); $catalogViews = array('item', 'items', 'producer', 'itemform', 'myitems', 'producers', 'cart', 'checkout', 'orders', 'order', 'query'); $component_views = array('items' => 'items', 'item' => 'item', 'producer' => 'producer', 'myitems' => 'myitems', 'itemform' => 'itemform', 'producers' => 'producers', 'cart' => 'cart', 'orders' => 'orders', 'order' => 'order', 'checkout' => 'checkout', 'query' => 'query'); foreach ($component_views as $view_name => $seotag) { $view_alias = $params->get('seo_' . $view_name . '_view', $view_name); $view_alias = JApplication::stringURLSafe(trim($view_alias)); if (count($segments)) { if ($segments[0] == $view_alias || str_replace(':', '-', $segments[0]) == $view_alias) { $segments[0] = $view_name; break; } } } $query = array(); if (count($segments)) { if (!in_array($segments[0], $catalogViews)) { if ($activemenu) { $temp = array(); $temp[0] = $activemenu->query['view']; switch ($temp[0]) { case 'item': $temp[1] = @$activemenu->query['id']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'items': $temp[1] = @$activemenu->query['cid']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'producer': $temp[1] = @$activemenu->query['pid']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'myitems': //$temp[1] = @$activemenu->query['id']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'producers': foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'itemform': foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'cart': case 'checkout': case 'query': case 'orders': case 'order': foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; } $segments = $temp; } } if (isset($segments[0])) { switch ($segments[0]) { case 'items': $query['view'] = 'items'; if (isset($segments[1])) { $query['cid'] = $segments[1] == 'all' ? 0 : DJCatalogHelperRoute::parseAlias($segments[1]); } break; case 'itemstable': $query['view'] = 'itemstable'; if (isset($segments[1])) { $query['cid'] = $segments[1] == 'all' ? 0 : DJCatalogHelperRoute::parseAlias($segments[1]); } break; case 'item': $query['view'] = 'item'; if (count($segments) > 2) { if (isset($segments[1])) { $query['cid'] = $segments[1] == 'all' ? 0 : DJCatalogHelperRoute::parseAlias($segments[1]); } if (isset($segments[2])) { $query['id'] = DJCatalogHelperRoute::parseAlias($segments[2]); } } else { if (isset($segments[1])) { $query['id'] = DJCatalogHelperRoute::parseAlias($segments[1]); if ($activemenu && $activemenu->query['option'] == 'com_djcatalog2' && $activemenu->query['view'] == 'items' && !empty($activemenu->query['cid'])) { $query['cid'] = $activemenu->query['cid']; } } } break; case 'producer': $query['view'] = 'producer'; if (isset($segments[1])) { $query['pid'] = $segments[1]; } break; case 'itemform': $query['view'] = 'itemform'; if (isset($segments[1])) { $query['id'] = $segments[1]; } break; case 'myitems': $query['view'] = 'myitems'; break; case 'producers': $query['view'] = 'producers'; break; case 'cart': $query['view'] = 'cart'; break; case 'orders': $query['view'] = 'orders'; break; case 'checkout': $query['view'] = 'checkout'; break; case 'query': $query['view'] = 'query'; break; case 'order': $query['view'] = 'order'; if (isset($segments[1])) { $query['oid'] = $segments[1]; } break; } } } return $query; }
function DJCatalog2ParseRoute($segments) { $app = JFactory::getApplication(); $menu = $app->getMenu(); $activemenu = $menu->getActive(); $db = JFactory::getDBO(); $params = JComponentHelper::getParams('com_djcatalog2'); $catalogViews = array('item', 'items', 'producer', 'itemform', 'myitems', 'producers', 'cart', 'checkout', 'orders', 'order', 'query', 'map', 'archived'); $component_views = array('items' => 'items', 'item' => 'item', 'producer' => 'producer', 'myitems' => 'myitems', 'itemform' => 'itemform', 'producers' => 'producers', 'cart' => 'cart', 'orders' => 'orders', 'order' => 'order', 'checkout' => 'checkout', 'query' => 'query', 'map' => 'map', 'archived' => 'archived'); foreach ($component_views as $view_name => $seotag) { $view_alias = $params->get('seo_' . $view_name . '_view', $view_name); $view_alias = JApplication::stringURLSafe(trim($view_alias)); if (count($segments)) { if ($segments[0] == $view_alias || str_replace(':', '-', $segments[0]) == $view_alias) { $segments[0] = $view_name; break; } } } $query = array(); if (count($segments)) { if (!in_array($segments[0], $catalogViews)) { if ($activemenu) { $temp = array(); $temp[0] = $activemenu->query['view']; switch ($temp[0]) { case 'item': $temp[1] = @$activemenu->query['id']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'items': case 'archived': $temp[1] = @$activemenu->query['cid']; if (count($segments) == 1) { $parts = explode(':', $segments[0], 2); $id = $parts[0]; $alias = isset($parts[1]) ? $parts[1] : null; if ((int) $id > 0) { $user = JFactory::getUser(); $groups = $user->getAuthorisedViewLevels(); $categories = Djc2Categories::getInstance(array('state' => '1', 'access' => $groups)); $category = $categories->get((int) $id); if (!empty($category) && ($category->alias == $alias || empty($alias))) { $temp[1] = $segments[0]; } else { $temp[0] = 'item'; } } } else { $temp[0] = 'item'; } foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'producer': $temp[1] = @$activemenu->query['pid']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'myitems': //$temp[1] = @$activemenu->query['id']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'producers': foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'itemform': foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'cart': case 'checkout': case 'query': case 'orders': case 'order': foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; case 'map': $temp[1] = @$activemenu->query['cid']; foreach ($segments as $k => $v) { $temp[$k + 1] = $v; } break; } $segments = $temp; } } if (isset($segments[0])) { switch ($segments[0]) { case 'items': case 'archived': $query['view'] = $segments[0]; if (isset($segments[1]) && $segments[1] != '') { $query['cid'] = $segments[1] == 'all' ? 0 : DJCatalogHelperRoute::parseAlias($segments[1]); } break; case 'itemstable': $query['view'] = 'itemstable'; if (isset($segments[1])) { $query['cid'] = $segments[1] == 'all' ? 0 : DJCatalogHelperRoute::parseAlias($segments[1]); } break; case 'item': $query['view'] = 'item'; if (count($segments) > 2) { if (isset($segments[1]) && $segments[1] != '') { $query['cid'] = $segments[1] == 'all' ? 0 : DJCatalogHelperRoute::parseAlias($segments[1]); } if (isset($segments[2])) { $query['id'] = DJCatalogHelperRoute::parseAlias($segments[2]); } } else { if (isset($segments[1])) { $query['id'] = DJCatalogHelperRoute::parseAlias($segments[1]); if ($activemenu && $activemenu->query['option'] == 'com_djcatalog2' && $activemenu->query['view'] == 'items' && !empty($activemenu->query['cid'])) { $query['cid'] = $activemenu->query['cid']; } } } break; case 'producer': $query['view'] = 'producer'; if (isset($segments[1])) { $query['pid'] = $segments[1]; } break; case 'itemform': $query['view'] = 'itemform'; if (isset($segments[1])) { $query['id'] = $segments[1]; } break; case 'myitems': $query['view'] = 'myitems'; break; case 'producers': $query['view'] = 'producers'; break; case 'cart': $query['view'] = 'cart'; break; case 'orders': $query['view'] = 'orders'; break; case 'checkout': $query['view'] = 'checkout'; break; case 'query': $query['view'] = 'query'; break; case 'order': $query['view'] = 'order'; if (isset($segments[1])) { $query['oid'] = $segments[1]; } break; case 'map': $query['view'] = 'map'; if (isset($segments[1])) { $query['cid'] = $segments[1] == 'all' ? 0 : DJCatalogHelperRoute::parseAlias($segments[1]); } break; } } } return $query; }