Yii::community->hello($all);
i got this thing with multilanguage,
try to create application with language in Url.
try to use rules like
‘<lang:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>’=>’<controller>/<action>’,
create URLmanager inset isue, real isue is how to get
<lang:\w+>, best is to get it in Controller init().
but, HOW? , try $_GET is empty, no parameters, and $this not very helpful.
for consistence i write here all codes
class AppUrlManager extends CUrlManager {
public function createUrl($route,$params=array(),$ampersand='&')
{
if(isset($_POST['_lang']))
{
Yii::app()->setLanguage($_POST['_lang']);
$route['language']=Yii::app()->getLanguage();
}
elseif (!isset($route['language']))
{ $route['language']=Yii::app()->getLanguage(); }
else
{ Yii::app()->setLanguage($route['language']); }
// var_dump($route);
return parent::createUrl($route, $params, $ampersand);
}
}
------------------------------- SOLVED SOLUTION --------------------------
rules like that:(thanks to alex-w)
<lang:\w+>/'=>'Site'
<lang:\w+>/<controller:\w+>/'=>'<controller>'
<lang:\w+>/<controller:\w+>/<action:\w+>/'=>'<controller>/<action>'
and aUrlManager extension like
public function createUrl($route,$params=array(),$ampersand='&')
$route = Yii::app()->getLanguage().'/'.$route;
// NOT LIKE This : $route['lang']=Yii::app()->getLanguage();
return parent::createUrl($route, $params, $ampersand);
}
effects :
will add your current app language to url any time call CreateUrl.