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; } }
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; } }
/** * 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.'); } }