コード例 #1
0
 /**
  * @inheritdoc
  */
 public function run()
 {
     $items = [];
     /** @var \DevGroup\Multilingual\Multilingual $multilingual */
     $multilingual = Yii::$app->get('multilingual');
     $languages = $multilingual->getAllLanguages();
     foreach ($languages as $index => $language) {
         $flag = $language->iso_639_1 === 'en' ? 'gb' : $language->iso_639_1;
         $items[] = ['label' => '<span class="flag-icon flag-icon-' . $flag . '"></span> ' . $language->name, 'active' => $index === 0, 'content' => $this->renderFile($this->childView, ['model' => $this->model->getTranslation($language->id), 'form' => $this->form, 'language' => $language, 'language_id' => $language->id, 'attributePrefix' => "[{$language->id}]"])];
     }
     FlagIconAsset::register($this->view);
     $items = ArrayHelper::merge($items, $this->additionalTabs);
     return "<div class=\"nav-tabs-custom {$this->tagClass}\">" . Tabs::widget(['items' => $items, 'options' => $this->options, 'encodeLabels' => false]) . $this->footer . '</div>';
 }
コード例 #2
0
 /**
  * @param array $data
  */
 private function saveData(array $data)
 {
     foreach ($this->getLanguages() as $locale => $language) {
         /** @var ActiveRecord $translation */
         $translation = $this->owner->getTranslation($locale)->one();
         if ($translation === null) {
             $translation = new $this->translationModelName();
             $translation->{$this->translationOwnerField} = $this->owner->{$this->ownerPrimaryKey};
             $translation->{$this->languageField} = $language->id;
         }
         if (isset($data[$locale])) {
             $translation->setAttributes($data[$locale]);
         }
         if (!$translation->save()) {
             $this->owner->addError($locale, $translation->getErrors());
         }
     }
 }
コード例 #3
0
ファイル: BackendController.php プロジェクト: tolik505/bl
 /**
  * @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;
 }