Exemplo n.º 1
0
 /**
  * [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;
     }
 }
Exemplo n.º 2
0
 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;
     }
 }
Exemplo n.º 3
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.');
     }
 }
Exemplo n.º 4
0
 public static function getDefaultLang()
 {
     return Lang::findOne(Yii::$app->params['langDef']);
 }