Вопрос про грамотный роутинг!

Итак, я снова ударился в изучение уже новой версии LS и пишу некоторые плагины.
И вот возник такой вопрос по роутингу.
Буду очень благодарен за подсказки.

Например, в конфиге я указал такую конструкцию

Config::Set('router.page.countries', 'PluginGeo_ActionCountry');


таким образом все что будет в браузере набрано domain.com/countries/ пойдет в экшн ActionCountry
урлы будут вида /countries/Ukraine/ или /countries/Ukraine/Kiev/ и так далее.

Можно ли как-то прописать так, чтобы /countries/Ukraine/ шло в экш ActionCountry
а /countries/Ukraine/Kiev/ в ActionCity а /countries/Ukraine/Kiev/Hotels/ в ActionHotel и так далее.

И еще, в экшене ActionCountry я написал так

protected function RegisterEvent()
    {        
        $this->AddEventPreg('/^[\w\-\_]*$/i','actions');       
    }


но когда я пытаюсь сделать вот так:

print_r($this->GetParams())


то при адресах вида /countries/ и /countries/Belarus/ ничего не выдает, пустой массив т.е. НО зато когда есть урл вида /countries/Belarus/Minsk то в него попадает уже Minsk и так далее, а как мне собственно получить все вхождения в урл )

есть вариант такой

$sUrlFull=join('/',$this->GetParams());
        if ($sUrlFull!='') {
            $sUrlFull=$this->sCurrentEvent.'/'.$sUrlFull;
        } else {
            $sUrlFull=$this->sCurrentEvent;
        }


но он не очень красивый мне кажется.

Спасибо всем отозвавшимся )

Регулярки в AddEventPreg

Всем привет,

я по прежнему недавно осваиваю LS (как и php). Меня ставят в тупик регулярные выражения в AddEventPreg. Я пробовал читать про регулярки, но от этого я тупею еще больше)

Вопрос вот в чем: у меня есть экшн на странице /activites/, он прописан в конфиге так:
Config::Set('router.page.activites', 'PluginCategory_ActionActivites');


Экшн просто выводит категории из плагина «Категории», в самом экшне добавление эвента прописано следующим образом:
$this->AddEventPreg('/^(page(\d+))?$/i',  'EventActivites');


в таком виде страница /activites/ отлично отображает категории, однако мне хочется добавить эвент, который бы отображал описание одной категории на отдельной странице, например

/activites/football или /activites/tennis и т.д. Подскажите как мне добавить подобный эвент.

Пробовал варианты:
$this->AddEventPreg('/^([\w\-\_]+)$/i', 'EventActivites');
$this->AddEventPreg('/^([\w\-\_]+)$/i', '/^(page(\d+))?$/i', 'EventActiv');


а при
$this->AddEventPreg('/^([\w\-\_]+)$/i', 'EventActivites');

страница /activites/ вообще не отображается.

подскажите пожалуйста.

Помогите с AddEventPreg()

Для страницы прописаны следующие AddEventPreg:
protected function RegisterEvent() {
	$this->AddEvent('index','EventShowAllBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','/^u(\d+)$/i','/^t(\d+)$/i','/^page(\d+)$/i','EventShowBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','/^u(\d+)$/i','/^t(\d+)$/i','EventShowBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','/^f(\d+)$/i','/^page(\d+)$/i','EventShowBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','/^f(\d+)$/i','EventShowBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','/^page(\d+)$/i','EventShowBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','EventShowBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','/^page(\d+)$/i','EventShowBlog');
	$this->AddEventPreg('/^[\w\-\_]+$/i','EventShowBlog');
}


А после я параметры уже разбираю в цикле вида:
foreach($this->aParamsEventMatch['params'] as $aParam) { /* действия */ }


Подскажите как-то можно сделать чтобы не было столько строк $this->AddEventPreg, если количество и порядок параметров абсолютно не важен? Дело в том, что нужно добавить еще параметры, а количество строк при этом растет в прогрессии.

Регулярное выражение для AddEventPreg

Какое регулярное выражение должно быть для AddEventPreg если ссылка имеет вид
mysite.com/admin/shop/orders/active/page1
что бы через GetParamEventMatch получить доступ к последнему и предпоследнему параметру
для ссылки вида http:// mysite.com /shop/myorders/active/page1 у меня нормально работает
след.
$this->AddEventPreg('/^myorders$/i','/active|close/i','/^(page(\d+))?$/i','EventOrders');

Изменение url для блога

Нужно сделать, что бы ссылки типа my-blog.ru/blog/4.html
Открывались по новому адресу my-blog.ru/blog/post/4.html
Как это сделать?
Я пробовал так:
В config.route.php я добавил define(«ROUTE_PAGE_BLOG»,'blog/post'); ROUTE_PAGE_BLOG => 'ActionBlogPost', после чего ссылки имеют нужный вид но как теперь в class ActionBlogPost extends Action изменить $this->AddEventPreg('/^[\w\-\_]+$/i','/^(\d+)\.html$/i','EventShowTopic');
что бы срабатывал нужный контролер, а то сейчас получаю сообщение об ошибке 404