Всем добрый день!Разрабатываю мультиязычный сайт(делал все как указано здесь yiiframework.com/wiki/294/seo-conform-multilingual-urls-language-selector-widget-i18n/
Создал модуль admin, где реализован контроллер theme, который позволяет переключить тему. В нем есть действие activate, которое принимает id темы. На настоящий момент настройки URL manager выглядят следующим образом
...
'urlManager'=>array(
'class'=>'application.components.UrlManager',
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<language:(ru|de|en)>/' => 'site/index',
'<language:(ru|de|en)>/<action:(contact|login|logout)>/*' => 'site/<action>',
'<language:(ru|de|en)>/<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<language:(ru|de|en)>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<language:(ru|de|en)>/<controller:\w+>/<action:\w+>/*'=>'<controller>/<action>',
'<language:(ru|de|en)>/<module>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<module>/<controller>/<action>',
'<language:(ru|de|en)>/<module>/<controller:\w+>/<action:\w+>/*'=>'<module>/<controller>/<action>',
'<language:(ru|de|en)>/<module>'=>'<module>',
),
),
...
ссылки на сайте выглядят следующим образом domen/currentlanguage/contoller/action или domen/currentlanguage/module/contoller/action
так вот когда я захожу на страницу где у меня отображается список доступных тем и там есть кнопка activate имеющая ссылку типа domen/en/admin/themes/activate/2. В настоящем положении дел контроллер не отрабатывает по такой ссылке.
Если же я комментирую правила в URL менеджере связанные с модулем. То ссылки начинают иметь вид domen/admin/themes/activate/id/2/language/en - контроллер отрабатывает как положено.
Искал много, пытался разобраться, но так и не выяснил как настроить URL в моем случае.
Нашел вот пост Samdark’a в теме yiiframework.com/forum/index.php/topic/21884-module-and-url-management/следующего содержания
'onBeginRequest'=>function($event){
$route=Yii::app()->getRequest()->getPathInfo();
$module=substr($route,0,strpos($route,'/'));
if(Yii::app()->hasModule($module))
{
$module=Yii::app()->getModule($module);
if(isset($module->urlRules))
{
$urlManager=Yii::app()->getUrlManager();
$urlManager->addRules($module->urlRules);
}
}
return true;
},
но понять как должен реализоваться метод $module->urlRules мне пока опыт не позволяет((
Товарищи, помогите настроить правила для URLmanager.