/**
  * @return string
  */
 public function run()
 {
     if (Yii::$app->request->isPost) {
         $setting = Yii::$app->request->post('Setting');
         if (isset($_FILES['Setting'])) {
             foreach ($_FILES['Setting']['name'] as $key => $value) {
                 $model = Setting::findOne(['code' => $key]);
                 $model->file = UploadedFile::getInstance($model, $key);
                 if ($model->file != null && $model->upload()) {
                     $model->updateAttributes(['value' => $value]);
                 }
             }
         }
         if ($setting != null) {
             foreach ($setting as $key => $value) {
                 if ($value !== '' || $value != null) {
                     if (is_array($value)) {
                         Setting::updateAll(['value' => implode(",", $value)], ['code' => $key]);
                     } else {
                         Setting::updateAll(['value' => $value], ['code' => $key]);
                     }
                 }
             }
         }
         Yii::$app->session->setFlash('alert', ['body' => Yii::t('setting', 'Settings has been successfully saved'), 'options' => ['class' => 'alert-success']]);
     }
     if (Module::hasMultiLanguage()) {
         $title = Translate::setting();
     } else {
         $title = Yii::t('setting', 'Setting');
     }
     $currentSetting = Setting::findOne(['code' => $this->id]);
     return $this->controller->render('index', ['title' => $title, 'code' => $currentSetting !== null ? $currentSetting->code : null]);
 }
Beispiel #2
0
 /**
  * @return bool
  */
 public function upload()
 {
     if ($this->validate()) {
         if (in_array($this->type, [self::TYPE_FILE_PATH, self::TYPE_FILE_URL])) {
             if ($this->store_dir == '') {
                 if (Module::isAdvanced()) {
                     /**@var $module Module */
                     $module = Yii::$app->getModule('setting');
                     if ($module->isBackend()) {
                         $this->store_dir = '@backend/web/uploads/setting';
                     } else {
                         $this->store_dir = '@frontend/web/uploads/setting';
                     }
                 } else {
                     $this->store_dir = '@app/web/uploads/setting';
                 }
             }
             if (!file_exists(Yii::getAlias($this->store_dir))) {
                 mkdir(Yii::getAlias($this->store_dir), 0777, true);
             }
             $this->updateAttributes(['store_dir' => $this->store_dir]);
         }
         $this->file->saveAs(Yii::getAlias($this->store_dir) . '/' . $this->file->baseName . '.' . $this->file->extension);
         return true;
     } else {
         return false;
     }
 }