/** * @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 $name * * @return mixed */ public function __get($name) { if ($this instanceof Translateable && in_array($name, $this->getTranslationAttributes(), true)) { $defaultLanguage = LanguageHelper::getDefaultLanguage()->locale; $language = \Yii::$app->language; if ($defaultLanguage === $language) { return parent::__get($name); } /** @var \yii\db\ActiveRecord $translation */ $translation = $this->translate($language); if ($translation->isNewRecord) { return parent::__get($name); } return $translation->{$name}; } return parent::__get($name); }
/** * @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 use metalguardian\fileProcessor\helpers\FPM; return ['vendorPath' => dirname(dirname(__DIR__)) . '/vendor', 'modules' => ['fileProcessor' => ['class' => '\\metalguardian\\fileProcessor\\Module', 'imageSections' => ['admin' => ['file' => ['action' => FPM::ACTION_THUMBNAIL, 'width' => 100, 'height' => 100]], 'article' => ['title' => ['action' => FPM::ACTION_ADAPTIVE_THUMBNAIL, 'width' => 848, 'height' => 350], 'thumb' => ['action' => FPM::ACTION_ADAPTIVE_THUMBNAIL, 'width' => 65, 'height' => 65]]]]], 'components' => ['user' => ['class' => 'yii\\web\\User', 'identityClass' => 'common\\models\\User', 'enableAutoLogin' => true], 'authManager' => ['class' => 'yii\\rbac\\DbManager'], 'formatter' => ['timeZone' => 'UTC'], 'i18n' => ['class' => 'Zelenin\\yii\\modules\\I18n\\components\\I18N', 'languages' => function () { return \common\helpers\LanguageHelper::getApplicationLanguages(); }], 'urlManager' => ['class' => '\\common\\components\\UrlManager', 'showScriptName' => false, 'enableStrictParsing' => true, 'rules' => require __DIR__ . '/url-rules.php']], 'sourceLanguage' => 'xx', 'language' => 'ru'];
<div class="menu-form"> <?php echo Html::errorSummary($values, ['class' => 'alert alert-danger']); ?> <?php /** @var \metalguardian\formBuilder\ActiveFormBuilder $form */ $form = \metalguardian\formBuilder\ActiveFormBuilder::begin(); ?> <?php $items = []; $content = null; foreach ($values as $value) { $attribute = '[' . $value->id . ']value'; $configuration = $value->getValueFieldConfig(); $configuration['label'] = $value->description . ' [key: ' . $value->id . '] [language: ' . LanguageHelper::getCurrent()->code . ']'; $content .= $form->renderField($value, $attribute, $configuration); if ($value instanceof \common\components\model\Translateable && $value->isTranslateAttribute($attribute)) { foreach ($value->getTranslationModels() as $languageModel) { $configuration['label'] = $value->description . ' [key: ' . $value->id . '] [language: ' . $languageModel->language . ']'; $content .= $form->renderField($languageModel, '[' . $languageModel->language . ']' . $attribute, $configuration); } } } echo $content; ?> <div class="form-group"> <?php echo Html::submitButton(Yii::t('app', 'Save'), ['class' => 'btn btn-success']); ?>
<h4><?php echo Yii::t('app', 'Get in touch'); ?> <span class="head-line"></span></h4> <p><?php echo Yii::t('app', 'Join our mailing list to stay up to date and get notices about our new releases!'); ?> </p> <?php $form = ActiveForm::begin(['id' => 'subscribe', 'action' => MailRequest::getSubscribeUrl(), 'options' => ['class' => 'subscribe ajax-form'], 'fieldConfig' => ['template' => '{input}']]); ?> <?php echo $form->field($model, 'label')->textInput(['placeholder' => '*****@*****.**']); ?> <?php echo $form->field($model, 'language')->hiddenInput(['value' => LanguageHelper::getCurrent()->code]); ?> <input type="submit" class="main-button" value="<?php echo isset($success) ? Yii::t('app', 'Done') : Yii::t('app', 'Send'); ?> "> <?php echo $form->errorSummary($model); ?> <?php ActiveForm::end(); ?> </div>
<?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); });