Компонент Joomla 3.0 - Router SEF, добавление сегмента

Может кто-нибудь сказать мне, как добавить сегмент в начало URL-адреса SEF, то есть:

http://somedomain.com/*SEGMENT*/task/id

*SEGMENT* — это просто статическая строка, предназначенная только для демонстрации и не берущаяся из запроса.

У меня есть очень простой router.php в моем компоненте:

function MyComponentBuildRoute(&$query)
{
    $segments = array();

    if (isset($query['task'])) {
        $segments[] = $query['task'];
        unset($query['task']);
    }
    if (isset($query['id'])) {
        $segments[] = $query['id'];
        unset($query['id']);
    }

    return $segments;
}

function MyComponentParseRoute($segments)
{
    $vars = array();
    $count = count($segments);

    if ($count) {
        $count--;
        $segment = array_shift($segments);
        if (is_numeric($segment)) {
            $vars['id'] = $segment;
        } else {
            $vars['task'] = $segment;
        }
    }

    if ($count) {
        $count--;
        $segment = array_shift($segments) ;
        if (is_numeric($segment)) {
            $vars['id'] = $segment;
        }
    }
return $vars;
}

Надеюсь, кто-то может помочь!


person mousebat    schedule 05.02.2013    source источник


Ответы (1)


Создайте пункт меню для представления в компоненте. Если вам нужно SEGMENT указать /foo/, просто убедитесь, что псевдоним пункта меню — «foo». Если вам нужна косая черта, то есть /foo/bar/, вам нужно вложить два пункта меню с псевдонимами «foo» и «bar». Это подскажет Joomla, как с этим справиться.

person Riccardo Zorn    schedule 06.02.2013