public function createUrl($params)
 {
     if (isset($params['lang_id'])) {
         //If language indetification exists, than try to find it in db
         //else work with default language
         $lang = Lang::findOne($params['lang_id']);
         if ($lang === null) {
             $lang = Lang::getDefaultLang();
         }
         unset($params['lang_id']);
     } else {
         //If doesn't language parametr exist, than work with current language
         $lang = Lang::getCurrent();
     }
     //Get formed URL (without language indentification prefix)
     $url = parent::createUrl($params);
     //Add prefix to URL - characters indentification of language
     if ($url == '/') {
         return '/' . $lang->url;
     } else {
         return '/' . $lang->url . $url;
     }
 }
Exemple #2
0
 public function createUrl($params)
 {
     if (isset($params['lang_id'])) {
         //Если указан идентификатор языка, то делаем попытку найти язык в БД,
         //иначе работаем с языком по умолчанию
         $lang = Lang::findOne($params['lang_id']);
         if ($lang === null) {
             $lang = Lang::getDefaultLang();
         }
         unset($params['lang_id']);
     } else {
         //Если не указан параметр языка, то работаем с текущим языком
         $lang = Lang::getCurrent();
     }
     //Получаем сформированный URL(без префикса идентификатора языка)
     $url = parent::createUrl($params);
     //Добавляем к URL префикс - буквенный идентификатор языка
     if ($url == '/') {
         return '/' . $lang->url;
     } else {
         return '/' . $lang->url . $url;
     }
 }
 public function init()
 {
     if (php_sapi_name() === 'cli') {
         return true;
     }
     parent::init();
     $ip = $_SERVER['REMOTE_ADDR'];
     $browser = $_SERVER['HTTP_USER_AGENT'];
     $sessionId = md5($ip . $browser);
     if (($model = Lang::findOne(['session_id' => $sessionId])) === null) {
         $model = new Lang();
     }
     $languageNew = Yii::$app->request->get('language');
     if ($languageNew) {
         if (isset($this->languages[$languageNew])) {
             Yii::$app->language = $languageNew;
             $model->attributes = ['session_id' => $sessionId, 'lang' => $languageNew];
             $model->save();
         }
     } elseif (isset($model->lang)) {
         Yii::$app->language = $model->lang;
     }
 }
Exemple #4
0
 /**
  * Finds the Lang model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Lang the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Lang::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }