fix modules and FileUpload class
This commit is contained in:
@ -17,10 +17,10 @@ class FileUpload
|
||||
protected string $fileType;
|
||||
protected array $fileNameCmps;
|
||||
protected string $fileExtension;
|
||||
// public string $newFileName;
|
||||
public array $allowedFileExtensions;
|
||||
protected bool $hashing = true;
|
||||
|
||||
public function __construct(array $file, array $extensions, $hashing = true)
|
||||
public function __construct(array $file, array $extensions, bool $hashing = true)
|
||||
{
|
||||
$this->fileTmpPath = $file['tmp_name'];
|
||||
$this->fileName = $file['name'];
|
||||
@ -29,43 +29,65 @@ class FileUpload
|
||||
$this->fileNameCmps = explode('.', $this->fileName);
|
||||
$this->fileExtension = strtolower(end($this->fileNameCmps));
|
||||
$this->allowedFileExtensions = $extensions;
|
||||
$this->hashing = $hashing;
|
||||
}
|
||||
|
||||
// public function setNewFileName(): void
|
||||
// {
|
||||
// $this->newFileName = md5(time() . $this->fileName) . '.' . $this->fileExtension;
|
||||
// }
|
||||
|
||||
// public function checkExtension(): bool
|
||||
// {
|
||||
// if (in_array($this->fileExtension, $this->allowedFileExtensions)) {
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
|
||||
public function upload($uploadDir = "/resources/upload/"): bool
|
||||
{
|
||||
$newFileName = md5(time() . $this->fileName) . '.' . $this->fileExtension;
|
||||
if (in_array($this->fileExtension, $this->allowedFileExtensions)) {
|
||||
$this->uploadDir = $uploadDir . mb_substr($newFileName, 0, 2) . '/' . mb_substr($newFileName, 2, 2) . '/';
|
||||
mkdir(ROOT_DIR . $this->uploadDir, 0777, true);
|
||||
$uploadFileDir = ROOT_DIR . $this->uploadDir;
|
||||
$this->destPath = $uploadFileDir . $newFileName;
|
||||
$this->uploadFile = $this->uploadDir . $newFileName;
|
||||
move_uploaded_file($this->fileTmpPath, $this->destPath);
|
||||
if ($this->hashing) {
|
||||
$newFileName = md5(time() . $this->fileName) . '.' . $this->fileExtension;
|
||||
if (in_array($this->fileExtension, $this->allowedFileExtensions)) {
|
||||
$this->uploadDir = $uploadDir . mb_substr($newFileName, 0, 2) . '/' . mb_substr($newFileName, 2, 2) . '/';
|
||||
mkdir(ROOT_DIR . $this->uploadDir, 0777, true);
|
||||
$uploadFileDir = ROOT_DIR . $this->uploadDir;
|
||||
$this->destPath = $uploadFileDir . $newFileName;
|
||||
$this->uploadFile = $this->uploadDir . $newFileName;
|
||||
move_uploaded_file($this->fileTmpPath, $this->destPath);
|
||||
|
||||
return true;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
if (in_array($this->fileExtension, $this->allowedFileExtensions)) {
|
||||
$this->uploadDir = $uploadDir;
|
||||
mkdir(ROOT_DIR . $this->uploadDir, 0777, true);
|
||||
$uploadFileDir = ROOT_DIR . $this->uploadDir;
|
||||
$this->destPath = $uploadFileDir . $this->fileName;
|
||||
$this->uploadFile = $this->uploadDir . $this->fileName;
|
||||
move_uploaded_file($this->fileTmpPath, $this->destPath);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function setAllowedFileExtensions(array $allowedFileExtensions): void
|
||||
{
|
||||
$this->allowedFileExtensions = $allowedFileExtensions;
|
||||
}
|
||||
|
||||
public function getFullUploadedPath(): string
|
||||
{
|
||||
return $this->destPath;
|
||||
}
|
||||
|
||||
public function setDestPath(string $destPath): void
|
||||
{
|
||||
$this->destPath = $destPath;
|
||||
}
|
||||
|
||||
public function setUploadDir(string $uploadDir): void
|
||||
{
|
||||
$this->uploadDir = $uploadDir;
|
||||
}
|
||||
|
||||
public function setUploadFile(string $uploadFile): void
|
||||
{
|
||||
$this->uploadFile = $uploadFile;
|
||||
}
|
||||
|
||||
public function getUploadDir(): string
|
||||
{
|
||||
return $this->uploadDir;
|
||||
|
@ -3,14 +3,13 @@
|
||||
namespace kernel\modules\menu\controllers;
|
||||
|
||||
use app\helpers\Debug;
|
||||
use app\models\forms\CreateMenuForm;
|
||||
use kernel\FileUpload;
|
||||
use kernel\modules\menu\service\MenuService;
|
||||
use Exception;
|
||||
use JetBrains\PhpStorm\NoReturn;
|
||||
use kernel\AdminController;
|
||||
use kernel\Controller;
|
||||
use kernel\FileUpload;
|
||||
use kernel\models\Menu;
|
||||
use kernel\modules\menu\models\forms\CreateMenuForm;
|
||||
use kernel\modules\menu\service\MenuService;
|
||||
use Twig\Error\LoaderError;
|
||||
use Twig\Error\RuntimeError;
|
||||
use Twig\Error\SyntaxError;
|
||||
@ -101,9 +100,10 @@ class MenuController extends AdminController
|
||||
|
||||
$menuForm = new CreateMenuForm();
|
||||
$menuForm->load($_REQUEST);
|
||||
// Debug::dd($_REQUEST);
|
||||
|
||||
if (isset($_FILES['icon_file']) && $_FILES['icon_file']['error'] === UPLOAD_ERR_OK) {
|
||||
$file = new FileUpload($_FILES['icon_file'], ['jpg', 'jpeg', 'png']);
|
||||
$file = new FileUpload($_FILES['icon_file'], ['jpg', 'jpeg', 'png'], $_REQUEST['hashing'] ?? true);
|
||||
$file->upload();
|
||||
$menuForm->setItem('icon_file', $file->getUploadFile());
|
||||
}
|
||||
|
28
kernel/modules/menu/models/forms/CreateMenuForm.php
Normal file
28
kernel/modules/menu/models/forms/CreateMenuForm.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace kernel\modules\menu\models\forms;
|
||||
|
||||
use kernel\FormModel;
|
||||
|
||||
/**
|
||||
* @property $parent_id
|
||||
* @property $icon_file
|
||||
* @property $icon_font
|
||||
* @property $label
|
||||
* @property $url
|
||||
* @property $status
|
||||
*/
|
||||
class CreateMenuForm extends FormModel
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'parent_id' => '',
|
||||
'icon_file' => '',
|
||||
'icon_font' => '',
|
||||
'label' => 'required|min-str-len:1|max-str-len:50',
|
||||
'url' => 'required|min-str-len:1',
|
||||
'status' => ''
|
||||
];
|
||||
}
|
||||
}
|
@ -23,6 +23,13 @@ $form->field(class: \itguild\forms\inputs\File::class, name: "icon_file", params
|
||||
->setLabel("Путь к иконке")
|
||||
->render();
|
||||
|
||||
$form->field(\itguild\forms\inputs\Checkbox::class, "hashing", params:[
|
||||
'value' => false
|
||||
// 'class' => "form-control"
|
||||
])
|
||||
->setLabel('Не хешировать')
|
||||
->render();
|
||||
|
||||
$form->field(class: \itguild\forms\inputs\TextInput::class, name: "icon_font", params: [
|
||||
'class' => "form-control",
|
||||
'value' => $model->icon_font ?? ''
|
||||
|
@ -3,13 +3,12 @@
|
||||
namespace kernel\modules\post\controllers;
|
||||
|
||||
|
||||
use app\helpers\Debug;
|
||||
use app\models\forms\CreatePostForm;
|
||||
use kernel\AdminController;
|
||||
use kernel\modules\post\models\Post;
|
||||
use kernel\modules\post\service\PostService;
|
||||
use Exception;
|
||||
use JetBrains\PhpStorm\NoReturn;
|
||||
use kernel\AdminController;
|
||||
use kernel\modules\post\models\forms\CreatePostForm;
|
||||
use kernel\modules\post\models\Post;
|
||||
use kernel\modules\post\service\PostService;
|
||||
|
||||
class PostController extends AdminController
|
||||
{
|
||||
|
16
kernel/modules/post/models/forms/CreatePostForm.php
Normal file
16
kernel/modules/post/models/forms/CreatePostForm.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace kernel\modules\post\models\forms;
|
||||
|
||||
use kernel\FormModel;
|
||||
|
||||
class CreatePostForm extends FormModel
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'content' => 'required|min-str-len:1',
|
||||
'user_id' => 'required',
|
||||
];
|
||||
}
|
||||
}
|
@ -2,13 +2,12 @@
|
||||
namespace kernel\modules\user\controllers;
|
||||
|
||||
|
||||
use app\models\forms\CreateUserForm;
|
||||
use kernel\modules\user\models\User;
|
||||
use kernel\AdminController;
|
||||
use kernel\modules\user\service\UserService;
|
||||
use Exception;
|
||||
use JetBrains\PhpStorm\NoReturn;
|
||||
use kernel\Controller;
|
||||
use kernel\AdminController;
|
||||
use kernel\modules\user\models\forms\CreateUserForm;
|
||||
use kernel\modules\user\models\User;
|
||||
use kernel\modules\user\service\UserService;
|
||||
use Twig\Error\LoaderError;
|
||||
use Twig\Error\RuntimeError;
|
||||
use Twig\Error\SyntaxError;
|
||||
|
19
kernel/modules/user/models/forms/CreateUserForm.php
Normal file
19
kernel/modules/user/models/forms/CreateUserForm.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace kernel\modules\user\models\forms;
|
||||
|
||||
use kernel\FormModel;
|
||||
|
||||
class CreateUserForm extends FormModel
|
||||
{
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'username' => 'required|min-str-len:5|max-str-len:30',
|
||||
'password' => 'required|min-str-len:5|max-str-len:30',
|
||||
'email' => 'required|email'
|
||||
];
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user