/** * [createUrl description] * @param [type] $params [description] * @return [type] [description] */ public function createUrl($params) { $defaultLang = Lang::getDefaultLang(); if (isset($params[1]) && isset($params[1]['lang_id'])) { // Если указан идентификатор языка, то делаем попытку найти язык в БД, иначе работаем с языком по умолчанию. $lang = Lang::findOne(['url' => $params[1]['lang_id']]); if ($lang === null) { $lang = $defaultLang; } unset($params[1]['lang_id']); } else { // Если не указан параметр языка, то работаем с текущим языком. $lang = Lang::getCurrent(); } // Получаем сформированный URL(без префикса идентификатора языка). $url = parent::createUrl($params); if ($lang->url == $defaultLang->url) { return $url; } // Добавляем к URL префикс - буквенный идентификатор языка. if ($url == '/') { return '/' . $lang->url; } else { return '/' . $lang->url . $url; } }
public function createUrl($params) { if (is_array($params) && array_key_exists('lang_id', $params)) { //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 = parent::createUrl($params); $baseUrl = $this->showScriptName || !$this->enablePrettyUrl ? $this->getScriptUrl() : $this->getBaseUrl(); if ($url !== '/') { if ($baseUrl === '') { return '/' . $lang->url . $url; } else { return str_replace($baseUrl, "{$baseUrl}/{$lang->url}", $url); } } else { return '/' . $lang->url; } }
/** * 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.'); } }
public static function getDefaultLang() { return Lang::findOne(Yii::$app->params['langDef']); }