コード例 #1
0
ファイル: TranslateableTrait.php プロジェクト: tolik505/bl
 /**
  * @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;
 }
コード例 #2
0
ファイル: Translate.php プロジェクト: tolik505/bl
 /**
  * @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);
 }
コード例 #3
0
 /**
  * @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());
 }
コード例 #4
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;
 }