/** * @return string * @throws ServerErrorHttpException * @throws \yii\base\InvalidConfigException * @throws \yii\web\BadRequestHttpException */ public function run() { $params = Yii::$app->request->getBodyParams(); $form = new ImageUploadForm(['basePath' => $this->basePath, 'baseUrl' => $this->baseUrl]); $form->setAttributes($params); $validate = Yii::$app->request->get('validate', false); $validateAttributeNames = null; if ($validate) { $parts = explode(',', $validate); $attributeNames = array_intersect($parts, $form->attributes()); if (!empty($attributeNames[0])) { $validateAttributeNames = $attributeNames; } } $validateResult = $form->validate($validateAttributeNames); if ($validate || !$validate && !$validateResult) { return $form; } if (!$form->save() && !$form->hasErrors()) { HttpError::the500('Failed to upload file for unknown reason.'); } $response = Yii::$app->getResponse(); $response->setStatusCode(201); $response->getHeaders()->set('Location', $form->getLink()); return $form; }
/** * @return string * @throws \yii\web\NotFoundHttpException */ public function run() { $section = Yii::$app->request->get('section', $this->defaultSection); $model = new IndexForm(['modelClass' => $this->modelClass]); if (!$model->loadBySection($section)) { HttpError::the404('Setting section not found'); } $params = Yii::$app->request->post(); if ($params) { $model->load($params, $model->formName()); if ($model->save()) { if ($this->successCallback) { call_user_func($this->successCallback, $model); } else { Yii::$app->session->setFlash('index:success'); } } else { if ($this->errorCallback) { call_user_func($this->errorCallback, $model); } else { Yii::$app->session->setFlash('index:error'); } } } $controller = $this->controller; return $controller->render($this->viewFile, ['model' => $model, 'menuItems' => $this->menuItems]); }
/** * Геттер параметров приложения * @param $need * @return mixed */ public static function get($need) { $params = Yii::$app->params; if (!isset($params[$need])) { HttpError::the500("Key not found: {$need}"); } return $params[$need]; }
/** * @param $folder * @param $id * @param $name * @param $width * @param $height * @return string * @throws \yii\web\NotFoundHttpException */ public function run($folder, $id, $name, $width, $height) { $form = new ImageIndexForm(['placeholder' => $this->placeholder, 'basePath' => $this->basePath, 'baseUrl' => $this->baseUrl]); $form->setAttributes(['id' => $id, 'folder' => $folder, 'name' => $name, 'width' => $width, 'height' => $height]); if (!$form->validate() || !$form->save()) { HttpError::the404(); } return Yii::$app->response->redirect($form->getUrl()); }
/** * @return string * @throws ServerErrorHttpException * @throws \yii\base\InvalidConfigException * @throws \yii\web\BadRequestHttpException */ public function run() { $params = Yii::$app->request->getBodyParams(); $form = new ImageUploadForm(['basePath' => $this->basePath, 'baseUrl' => $this->baseUrl]); $form->setAttributes($params); if (!$form->validate()) { HttpError::the400(); } if (!$form->save() && !$form->hasErrors()) { HttpError::the500('Failed to upload file for unknown reason.'); } $response = Yii::$app->getResponse(); $response->setStatusCode(201); $response->getHeaders()->set('Location', $form->getLink()); return $form; }
/** * Init variables * @throws \yii\web\HttpException * @throws \yii\web\NotFoundHttpException */ public function afterValidate() { parent::afterValidate(); $this->_pathRootObject = $this->basePath . DIRECTORY_SEPARATOR . $this->folder; $this->_urlRootObject = $this->baseUrl . DIRECTORY_SEPARATOR . $this->folder; if (!is_dir($this->_pathRootObject)) { HttpError::the404(); } $this->_pathObject = $this->_pathRootObject . DIRECTORY_SEPARATOR . $this->id; $this->_urlObject = $this->_urlRootObject . DIRECTORY_SEPARATOR . $this->id; if (!is_dir($this->_pathObject) && !FileHelper::createDirectory($this->_pathObject)) { HttpError::the500('Can not create directory: ' . $this->_pathObject); } $this->_pathObjectFile = $this->_pathObject . DIRECTORY_SEPARATOR . $this->width . 'x' . $this->height . '_' . $this->name; $this->_urlObjectFile = $this->_urlObject . DIRECTORY_SEPARATOR . $this->width . 'x' . $this->height . '_' . $this->name; $this->_pathObjectFileOrigin = $this->_pathObject . DIRECTORY_SEPARATOR . $this->name; $this->_pathObjectPlaceholder = $this->_pathRootObject . DIRECTORY_SEPARATOR . $this->width . 'x' . $this->height . '_' . $this->placeholder; $this->_urlObjectPlaceholder = $this->_urlRootObject . DIRECTORY_SEPARATOR . $this->width . 'x' . $this->height . '_' . $this->placeholder; $this->_pathObjectPlaceholderOrigin = $this->_pathRootObject . DIRECTORY_SEPARATOR . $this->placeholder; $this->_pathRootPlaceholder = $this->basePath . DIRECTORY_SEPARATOR . $this->width . 'x' . $this->height . '_' . $this->placeholder; $this->_urlRootPlaceholder = $this->baseUrl . DIRECTORY_SEPARATOR . $this->width . 'x' . $this->height . '_' . $this->placeholder; $this->_pathRootPlaceholderOrigin = $this->basePath . DIRECTORY_SEPARATOR . $this->placeholder; }
/** * Finding model by primary key * @param $pk * @param bool $throwException * @return ActiveRecord * @throws \yii\web\NotFoundHttpException */ public function findModel($pk, $throwException = true) { /** @var ActiveRecord $model */ $model = $this->modelClass; $model = $model::findOne($pk); if (empty($model) && $throwException) { HttpError::the404(); } return $model; }