Beispiel #1
0
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;
}
Beispiel #2
0
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;
}