Здравствуйте, сейчас у меня есть такой router
<?php
defined( '_JEXEC' ) or die; // No direct access
function ServiceBuildRoute( &$query )
{
$segments = array();
if ( isset( $query['view'] ) ) {
$segments[] = $query['view'];
unset( $query['view'] );
}
if ( isset( $query['task'] ) ) {
$segments[] = $query['task'];
unset( $query['task'] );
}
if (isset($query['id'])) {
$segments[] = $query['id'];
unset($query['id']);
}
if (isset($query['uid'])) {
$segments[] = $query['uid'];
unset($query['uid']);
}
if (isset($query['category'])) {
$segments[] = $query['category'];
unset($query['category']);
}
if ( isset( $query['limitstart'] ) ) {
unset( $query['limitstart'] );
}
if (isset($query['alias'])) {
$segments[] = $query['alias'];
unset($query['alias']);
}
return $segments;
}
function ServiceParseRoute( $segments )
{
$count = count( $segments );
$vars = array();
$id = (int)JRequest::getVar('id');
$menu = JMenu::getInstance( 'site' )->getActive();
$view = isset( $menu->query['view'] )? $menu->query['view'] : '';
if ( $count == 1 ) {
$vars['id'] = $segments[0];
}
if ( $count == 2 ) {
$vars['id'] = $segments[0];
$vars['view'] = $segments[1];
if ( strpos( $segments[1], ':' )!== false || is_numeric( $segments[1] ) ) {
$vars['id'] = $segments[1];
} else {
$vars['task'] = $segments[1];
}
}
if ( $count == 3 ) {
$vars['view'] = $segments[0];
$vars['task'] = $segments[1];
$vars['id'] = $segments[2];
die();
}
var_dump($count);
return $vars;
}
Когда открываю ссылку /service/prazdniki раздел открывается, кода пытаюсь открыть /service/prazdniki/222 идет редирект на главную страницу.
Я так понимаю проблема здесь
if ( $count == 2 ) {
$vars['id'] = $segments[0];
$vars['view'] = $segments[1];
if ( strpos( $segments[1], ':' )!== false || is_numeric( $segments[1] ) ) {
$vars['id'] = $segments[1];
} else {
$vars['task'] = $segments[1];
}
}
Как нужно выставить сегменты что бы открывалась страницу вида?