예제 #1
0
function jshoppingParseRoute($segments)
{
    $vars = array();
    initLoadJoomshoppingLanguageFile();
    $reservedFirstAlias = JSFactory::getReservedFirstAlias();
    $menu = JFactory::getApplication()->getMenu();
    $menuItem = $menu->getActive();
    JPluginHelper::importPlugin('jshoppingrouter');
    $dispatcher = JDispatcher::getInstance();
    $dispatcher->trigger('onBeforeParseRoute', array(&$vars, &$segments));
    $segments[0] = getSeoSegment($segments[0]);
    if (isset($segments[1])) {
        $segments[1] = getSeoSegment($segments[1]);
    } else {
        $segments[1] = "";
    }
    if (!isset($menuItem->query['controller']) && isset($menuItem->query['view'])) {
        $menuItem->query['controller'] = $menuItem->query['view'];
    }
    if (isset($menuItem->query['controller'])) {
        if ($menuItem->query['controller'] == "cart") {
            $vars['controller'] = "cart";
            $vars['task'] = $segments[0];
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($menuItem->query['controller'] == "wishlist") {
            $vars['controller'] = "wishlist";
            $vars['task'] = $segments[0];
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($menuItem->query['controller'] == "search") {
            $vars['controller'] = "search";
            $vars['task'] = $segments[0];
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($menuItem->query['controller'] == "user" && $menuItem->query['task'] == "") {
            $vars['controller'] = "user";
            $vars['task'] = $segments[0];
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($menuItem->query['controller'] == "checkout") {
            $vars['controller'] = "checkout";
            $vars['task'] = $segments[0];
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($menuItem->query['controller'] == "vendor" && $menuItem->query['task'] == "") {
            $vars['controller'] = "vendor";
            $vars['task'] = $segments[0];
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($menuItem->query['controller'] == "content" && $menuItem->query['task'] == "view") {
            $vars['controller'] = "content";
            $vars['page'] = $segments[0];
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($menuItem->query['controller'] == "category" && $menuItem->query['category_id'] && $segments[1] == "") {
            $prodalias = JSFactory::getAliasProduct();
            $product_id = array_search($segments[0], $prodalias, true);
            if (!$product_id) {
                JError::raiseError(404, _JSHOP_PAGE_NOT_FOUND);
            }
            $vars['controller'] = "product";
            $vars['task'] = "view";
            $vars['category_id'] = $menuItem->query['category_id'];
            $vars['product_id'] = $product_id;
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
    }
    if ($segments[0] && !in_array($segments[0], $reservedFirstAlias)) {
        $catalias = JSFactory::getAliasCategory();
        $category_id = array_search($segments[0], $catalias, true);
        if ($category_id && $segments[1] == "") {
            $vars['controller'] = "category";
            $vars['task'] = "view";
            $vars['category_id'] = $category_id;
            $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
            return $vars;
        }
        if ($category_id && $segments[1] != "") {
            $prodalias = JSFactory::getAliasProduct();
            $product_id = array_search($segments[1], $prodalias, true);
            if (!$product_id) {
                JError::raiseError(404, _JSHOP_PAGE_NOT_FOUND);
            }
            if ($category_id && $product_id) {
                $vars['controller'] = "product";
                $vars['task'] = "view";
                $vars['category_id'] = $category_id;
                $vars['product_id'] = $product_id;
                $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
                return $vars;
            }
        }
        if (!$category_id && $segments[1] == "") {
            $manalias = JSFactory::getAliasManufacturer();
            $manufacturer_id = array_search($segments[0], $manalias, true);
            if ($manufacturer_id) {
                $vars['controller'] = "manufacturer";
                $vars['task'] = "view";
                $vars['manufacturer_id'] = $manufacturer_id;
                $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
                return $vars;
            }
        }
        JError::raiseError(404, _JSHOP_PAGE_NOT_FOUND);
    } else {
        $vars['controller'] = $segments[0];
        $vars['task'] = $segments[1];
        if ($vars['controller'] == "category" && $vars['task'] == "view") {
            $vars['category_id'] = $segments[2];
        }
        if ($vars['controller'] == "product" && $vars['task'] == "view") {
            $vars['category_id'] = $segments[2];
            $vars['product_id'] = $segments[3];
        }
        if ($vars['controller'] == "product" && $vars['task'] == "ajax_attrib_select_and_price") {
            $vars['product_id'] = $segments[2];
        }
        if ($vars['controller'] == "manufacturer" && isset($segments[2])) {
            $vars['manufacturer_id'] = $segments[2];
        }
        if ($vars['controller'] == "content") {
            $vars['page'] = $segments[2];
        }
    }
    $dispatcher->trigger('onAfterParseRoute', array(&$vars, &$segments));
    return $vars;
}
예제 #2
0
<?php

/**
* @version      4.10.4 18.12.2014
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/
defined('_JEXEC') or die('Restricted access');
$session = JFactory::getSession();
$ajax = JRequest::getInt('ajax');
initLoadJoomshoppingLanguageFile();
$jshopConfig = JSFactory::getConfig();
setPrevSelLang($jshopConfig->getLang());
reloadPriceJoomshoppingNewCurrency(JRequest::getVar('back'));
$user = JFactory::getUser();
$js_update_all_price = $session->get('js_update_all_price');
$js_prev_user_id = $session->get('js_prev_user_id');
if ($js_update_all_price || $js_prev_user_id != $user->id) {
    updateAllprices();
    $session->set('js_update_all_price', 0);
}
$session->set("js_prev_user_id", $user->id);
if (!$ajax) {
    installNewLanguages();
    $document = JFactory::getDocument();
    $viewType = $document->getType();
    if ($viewType == "html") {
        JSFactory::loadCssFiles();
        JSFactory::loadJsFiles();