Example #1
0
 public function getLangUrl()
 {
     if ($this->_lang_url === null) {
         $this->_lang_url = $this->getUrl();
         $homeUrl = explode('/', \Yii::$app->homeUrl);
         $url_list = explode('/', $this->_lang_url);
         $lang_url = isset($url_list[count($homeUrl) - 1]) ? $url_list[count($homeUrl) - 1] : null;
         Lang::setCurrent($lang_url);
         if ($lang_url !== null && $lang_url === Lang::getCurrent()['url'] && strpos($this->_lang_url, Lang::getCurrent()['url']) !== false) {
             //                $this->_lang_url = substr($this->_lang_url, strlen(Lang::getCurrent()['url']) + 1);
             $this->_lang_url = str_replace('/' . Lang::getCurrent()['url'], '', $this->_lang_url);
         }
     }
     if (empty($this->_lang_url)) {
         $this->_lang_url = '/';
     }
     return $this->_lang_url;
 }
Example #2
0
 public function createUrl($params)
 {
     if (isset($params['lang_id'])) {
         //Если указан идентификатор языка, то делаем попытку найти язык в БД,
         //иначе работаем с языком по умолчанию
         $lang = Lang::getLangByUrl($params['lang_id']);
         if ($lang === null) {
             $lang = Lang::getDefaultLang();
         }
         unset($params['lang_id']);
     } else {
         //Если не указан параметр языка, то работаем с текущим языком
         $lang = Lang::getCurrent();
     }
     //Получаем сформированный URL(без префикса идентификатора языка)
     $url = parent::createUrl($params);
     $url = preg_replace('#^' . \Yii::$app->homeUrl . '#', '', $url);
     //        var_dump($url);
     //        var_dump(\Yii::$app->homeUrl.$lang['url'].'/'.$url);die;
     //Добавляем к URL префикс - буквенный идентификатор языка
     if ($lang != Lang::getDefaultLang()) {
         //            if ($url == '') {
         //                return '/' . $lang['url'] . '/';
         //            } else {
         //                return '/' . $lang['url'] . $url;
         //            }
         return \Yii::$app->homeUrl . $lang['url'] . '/' . $url;
     } else {
         if ($url == '') {
             return \Yii::$app->homeUrl;
         }
         return \Yii::$app->homeUrl . $url;
     }
 }