/** * */ public function init() { if (MultiLanguage::MULTI == MultiLanguage::KEY_ON) { $this->items = Lang::getList(); $this->current = Lang::getCurrent(); unset($this->items[$this->current->alias]); } }
/** * * @param string $url * @return string */ public static function addLangToUrl($url) { if (self::MULTI) { $domains = self::setDomains($url); $exists = isset($domains[0]) ? Lang::isExists($domains[0]) : false; $_def = Lang::getDefaultLang(); $isDefault = Yii::$app->language == $_def->local ? true : false; if ($exists && $isDefault && self::SHOW_DEFAULT == self::KEY_OFF) { array_shift($domains); } if (!$exists && !$isDefault) { $lang = Lang::getLangByLocal(Yii::$app->language); array_unshift($domains, $lang->alias); } $d = !empty($domains) ? '/' . implode('/', $domains) : ''; return self::$baseFolder . $d; } else { return $url; } }
/** * The method return list of languages * @return array Lang */ static function getList() { if (self::$list === NULL) { $list_all = Lang::find()->published()->all(); $l = array(); foreach ($list_all as $data) { $l[$data->alias] = $data; } self::$list = $l; } return self::$list; }