/** * @return \yii\base\Model[] */ public function getTranslationModels() { $models = []; $languages = LanguageHelper::getLanguageModels(); foreach ($languages as $language) { if ($language->locale === LanguageHelper::getDefaultLanguage()->locale) { continue; } $models[$language->locale] = $this->getTranslation($language->locale); } return $models; }
public function init() { parent::init(); $route = '/' . Yii::$app->controller->route; $params = $_GET; array_unshift($params, $route); $models = LanguageHelper::getLanguageModels(); foreach ($models as $language) { $params['language'] = $language->code; if (\Yii::$app->language === $language->locale) { $this->items[] = Html::tag('span', $language->label); } else { $this->items[] = Html::a($language->label, $params); } } }
/** * @param ConfigurationModel $model * * @return bool */ public function loadModels($model) { $loaded = true; //\common\helpers\Dump::dump(Yii::$app->request->post(), 1); $models = $model->getModels(); foreach ($models as $key => $item) { if ($item instanceof \common\components\model\Translateable) { $languages = LanguageHelper::getLanguageModels(); $items = []; foreach ($languages as $language) { if ($language->locale === LanguageHelper::getDefaultLanguage()->locale) { continue; } $items[$language->locale] = $item->getTranslation($language->locale); } $loaded &= ConfigurationModel::loadMultiple($items, Yii::$app->request->post(), null, $key); } } return $loaded & ConfigurationModel::loadMultiple($models, Yii::$app->request->post()); }
/** * @param \yii\db\ActiveRecord $model * * @return bool */ public function loadModels($model) { $loaded = true; if ($model instanceof \common\components\model\Translateable) { $languages = LanguageHelper::getLanguageModels(); $models = []; foreach ($languages as $language) { if ($language->locale === LanguageHelper::getDefaultLanguage()->locale) { continue; } $models[$language->locale] = $model->getTranslation($language->locale); } if (!empty($models)) { $loaded &= Model::loadMultiple($models, Yii::$app->request->post()); } } $loaded = $model->load(Yii::$app->request->post()) && $loaded; return $loaded; }
<?php Yii::setAlias('common', dirname(__DIR__)); Yii::setAlias('frontend', dirname(dirname(__DIR__)) . '/frontend'); Yii::setAlias('backend', dirname(dirname(__DIR__)) . '/backend'); Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console'); \Yii::$container->set('\\common\\components\\UrlManager', function ($container, $params, $config) { $models = \common\helpers\LanguageHelper::getLanguageModels(); $languages = []; foreach ($models as $model) { $languages[$model->code] = $model->locale; } $config['languages'] = $languages; return new \common\components\UrlManager($config); }); \Yii::$container->set('notgosu\\yii2\\modules\\metaTag\\components\\MetaTagBehavior', function ($container, $params, $config) { $config['languages'] = \common\helpers\LanguageHelper::getApplicationLanguages(); return new \notgosu\yii2\modules\metaTag\components\MetaTagBehavior($config); });