/** * @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]); }
/** * @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; } }