From 74efe9e01e55f9a17664fcc5083f697b842c8aca Mon Sep 17 00:00:00 2001 From: Kavalar Date: Fri, 3 Jan 2025 02:11:09 +0300 Subject: [PATCH] server test version --- app/modules/card/CardModule.php | 8 ++ .../card/controllers/CardController.php | 21 +++ app/modules/card/manifest.json | 11 ++ app/modules/card/routs/card.php | 15 +++ app/modules/tgbot/TgbotModule.php | 12 ++ .../tgbot/controllers/TgBotRestController.php | 8 ++ .../tgbot/controllers/TgbotController.php | 8 ++ app/modules/tgbot/manifest.json | 13 ++ app/modules/tgbot/models/Tgbot.php | 19 +++ .../tgbot/models/forms/CreateTgBotForm.php | 18 +++ app/modules/tgbot/routs/tgbot.php | 3 + app/modules/tgbot/services/TgBotService.php | 15 +++ app/modules/tgbot/views/tgbot/form.php | 83 ++++++++++++ app/modules/tgbot/views/tgbot/index.php | 41 ++++++ app/modules/tgbot/views/tgbot/view.php | 30 +++++ composer.json | 5 +- kernel/FileUpload.php | 8 +- kernel/RestController.php | 36 +++-- kernel/admin_themes/default/layout/main.php | 19 +-- kernel/app_modules/card/CardModule.php | 67 ++++++++++ .../card/controllers/CardController.php | 101 ++++++++++++++ .../card/controllers/CardRestController.php | 25 ++++ .../controllers/CardTemplateController.php | 125 ++++++++++++++++++ .../2024_12_23_171228_create_card_table.php | 61 +++++++++ kernel/app_modules/card/models/Card.php | 85 ++++++++++++ kernel/app_modules/card/models/CardFile.php | 51 +++++++ .../app_modules/card/models/CardTemplate.php | 50 +++++++ .../card/models/forms/CreateCardForm.php | 36 +++++ .../models/forms/CreateCardTemplateForm.php | 38 ++++++ kernel/app_modules/card/routs/card.php | 41 ++++++ .../card/services/CardFileService.php | 113 ++++++++++++++++ .../app_modules/card/services/CardService.php | 108 +++++++++++++++ .../card/services/CardTemplateService.php | 55 ++++++++ .../card/views/card_template/form.php | 63 +++++++++ .../card/views/card_template/index.php | 81 ++++++++++++ .../card/views/card_template/view.php | 34 +++++ kernel/app_modules/card/views/form.php | 125 ++++++++++++++++++ kernel/app_modules/card/views/index.php | 92 +++++++++++++ kernel/app_modules/card/views/view.php | 71 ++++++++++ kernel/app_modules/tgbot/TgbotModule.php | 39 ++++++ .../tgbot/controllers/TgBotRestController.php | 91 +++++++++++++ .../tgbot/controllers/TgbotController.php | 111 ++++++++++++++++ .../2024_12_08_172205_create_tgbot_table.php | 35 +++++ kernel/app_modules/tgbot/models/Tgbot.php | 51 +++++++ .../tgbot/models/forms/CreateTgBotForm.php | 30 +++++ kernel/app_modules/tgbot/routs/tgbot.php | 33 +++++ .../tgbot/services/TgBotService.php | 48 +++++++ kernel/app_modules/tgbot/views/tgbot/form.php | 83 ++++++++++++ .../app_modules/tgbot/views/tgbot/index.php | 59 +++++++++ kernel/app_modules/tgbot/views/tgbot/view.php | 30 +++++ .../controllers/AdminThemeController.php | 66 +++++---- kernel/console/routs/cli.php | 4 + kernel/filters/BootstrapSelectFilter.php | 23 ++++ kernel/filters/BootstrapTextFilter.php | 21 +++ kernel/helpers/ImageGD.php | 48 +++++++ kernel/manifest.json | 2 +- kernel/modules/menu/views/index.php | 7 +- .../ModuleShopClientController.php | 77 ++++++++--- .../services/ModuleShopClientService.php | 22 +++ .../module_shop_client/views/index.php | 40 +++--- kernel/modules/post/views/index.php | 55 +++++--- .../user/controllers/UserController.php | 27 +++- .../2024_09_23_125827_create_user_table.php | 1 + kernel/modules/user/models/User.php | 4 +- .../user/models/forms/CreateUserForm.php | 7 +- kernel/modules/user/routs/user.php | 1 + kernel/modules/user/service/UserService.php | 24 ++++ kernel/modules/user/views/form.php | 10 ++ kernel/modules/user/views/index.php | 12 +- kernel/modules/user/views/view.php | 3 + kernel/services/AdminThemeService.php | 111 +++++++++++++++- kernel/services/ModuleService.php | 8 +- kernel/templates/views/index_template | 10 ++ .../74/09746c31e3c2d4b9011b5ec7100327b9.png | Bin 0 -> 10016 bytes .../f6/16f6b7cc7cf87c9e01258d7a0c3cca2a.png | Bin 0 -> 9573 bytes .../e0/20e02dddafbc4ce86b664f0f09054eaa.png | Bin 0 -> 9621 bytes .../9b/2b9b111df147fc06ac238eb502411fa2.png | Bin 0 -> 10106 bytes .../32/3032ee84a2000b5d7f9514121c0aea27.png | Bin 0 -> 8146 bytes .../71/307191ee25a7e8c47ae7e4094dec9118.png | Bin 0 -> 9661 bytes .../45/4e45b87053b11992b4f9d672e384d17d.png | Bin 0 -> 9615 bytes .../5b/505bf4c5653fec43955834e34ec972b6.png | Bin 0 -> 8227 bytes .../26/52267e4abd7a8a916f2544f2dcc22652.png | Bin 0 -> 10200 bytes .../c7/62c7f9029e99617d3da083d601263243.png | Bin 0 -> 9123 bytes .../cd/65cde5232852e7dde7f922e28a7653bb.png | Bin 0 -> 9114 bytes .../80/688033092237eb1fb3c6bfcdf43be6c5.png | Bin 0 -> 9543 bytes .../49/75495dd042700e2b18da8f9a7fb53092.png | Bin 0 -> 8723 bytes .../1a/771a98a6059ab49065a88381d388af25.png | Bin 0 -> 9690 bytes .../34/783462006ea7700cd3ce9cf81531271e.png | Bin 0 -> 9083 bytes .../88/788828213d1587d63f32ccbee1cf934c.png | Bin 0 -> 9665 bytes .../a1/80a1be42bd087780fb36ccbed93777e6.png | Bin 0 -> 9645 bytes .../87/9087c80dee43164e8ebff940be11de7d.png | Bin 0 -> 9597 bytes .../67/9567e1797dd6d7cab63824c8dbed79ce.png | Bin 0 -> 9083 bytes .../42/ad42d146847ac4016add0911576d3c1f.png | Bin 0 -> 8146 bytes .../e9/b2e90173c24257cca05823ac68a969d1.png | Bin 0 -> 10119 bytes .../2c/bb2ca43576a194c74dad2c2cc20b019d.png | Bin 0 -> 9660 bytes .../24/be2428c241ddbaddff7ebc4d58ecd361.png | Bin 0 -> 8146 bytes .../fd/bffdc6537e1c23db57fc6862688429d7.png | Bin 0 -> 10159 bytes .../6a/c66a921ac2b308d3197d49a5c9c84c5b.png | Bin 0 -> 10234 bytes .../e8/cbe823e92ba74a6a1285ee8379efe01a.png | Bin 0 -> 10154 bytes .../8d/d88d2da6914ade7332b4f056a037fd5c.png | Bin 0 -> 9693 bytes .../dd/f3dd2dc864246d73970329b75ca4e412.png | Bin 0 -> 9789 bytes 101 files changed, 2871 insertions(+), 117 deletions(-) create mode 100644 app/modules/card/CardModule.php create mode 100644 app/modules/card/controllers/CardController.php create mode 100644 app/modules/card/manifest.json create mode 100644 app/modules/card/routs/card.php create mode 100644 app/modules/tgbot/TgbotModule.php create mode 100644 app/modules/tgbot/controllers/TgBotRestController.php create mode 100644 app/modules/tgbot/controllers/TgbotController.php create mode 100644 app/modules/tgbot/manifest.json create mode 100644 app/modules/tgbot/models/Tgbot.php create mode 100644 app/modules/tgbot/models/forms/CreateTgBotForm.php create mode 100644 app/modules/tgbot/routs/tgbot.php create mode 100644 app/modules/tgbot/services/TgBotService.php create mode 100644 app/modules/tgbot/views/tgbot/form.php create mode 100644 app/modules/tgbot/views/tgbot/index.php create mode 100644 app/modules/tgbot/views/tgbot/view.php create mode 100644 kernel/app_modules/card/CardModule.php create mode 100644 kernel/app_modules/card/controllers/CardController.php create mode 100644 kernel/app_modules/card/controllers/CardRestController.php create mode 100644 kernel/app_modules/card/controllers/CardTemplateController.php create mode 100644 kernel/app_modules/card/migrations/2024_12_23_171228_create_card_table.php create mode 100644 kernel/app_modules/card/models/Card.php create mode 100644 kernel/app_modules/card/models/CardFile.php create mode 100644 kernel/app_modules/card/models/CardTemplate.php create mode 100644 kernel/app_modules/card/models/forms/CreateCardForm.php create mode 100644 kernel/app_modules/card/models/forms/CreateCardTemplateForm.php create mode 100644 kernel/app_modules/card/routs/card.php create mode 100644 kernel/app_modules/card/services/CardFileService.php create mode 100644 kernel/app_modules/card/services/CardService.php create mode 100644 kernel/app_modules/card/services/CardTemplateService.php create mode 100644 kernel/app_modules/card/views/card_template/form.php create mode 100644 kernel/app_modules/card/views/card_template/index.php create mode 100644 kernel/app_modules/card/views/card_template/view.php create mode 100644 kernel/app_modules/card/views/form.php create mode 100644 kernel/app_modules/card/views/index.php create mode 100644 kernel/app_modules/card/views/view.php create mode 100644 kernel/app_modules/tgbot/TgbotModule.php create mode 100644 kernel/app_modules/tgbot/controllers/TgBotRestController.php create mode 100644 kernel/app_modules/tgbot/controllers/TgbotController.php create mode 100644 kernel/app_modules/tgbot/migrations/2024_12_08_172205_create_tgbot_table.php create mode 100644 kernel/app_modules/tgbot/models/Tgbot.php create mode 100644 kernel/app_modules/tgbot/models/forms/CreateTgBotForm.php create mode 100644 kernel/app_modules/tgbot/routs/tgbot.php create mode 100644 kernel/app_modules/tgbot/services/TgBotService.php create mode 100644 kernel/app_modules/tgbot/views/tgbot/form.php create mode 100644 kernel/app_modules/tgbot/views/tgbot/index.php create mode 100644 kernel/app_modules/tgbot/views/tgbot/view.php create mode 100644 kernel/filters/BootstrapSelectFilter.php create mode 100644 kernel/filters/BootstrapTextFilter.php create mode 100644 kernel/helpers/ImageGD.php create mode 100644 kernel/modules/module_shop_client/services/ModuleShopClientService.php create mode 100644 resources/cards/09/74/09746c31e3c2d4b9011b5ec7100327b9.png create mode 100644 resources/cards/16/f6/16f6b7cc7cf87c9e01258d7a0c3cca2a.png create mode 100644 resources/cards/20/e0/20e02dddafbc4ce86b664f0f09054eaa.png create mode 100644 resources/cards/2b/9b/2b9b111df147fc06ac238eb502411fa2.png create mode 100644 resources/cards/30/32/3032ee84a2000b5d7f9514121c0aea27.png create mode 100644 resources/cards/30/71/307191ee25a7e8c47ae7e4094dec9118.png create mode 100644 resources/cards/4e/45/4e45b87053b11992b4f9d672e384d17d.png create mode 100644 resources/cards/50/5b/505bf4c5653fec43955834e34ec972b6.png create mode 100644 resources/cards/52/26/52267e4abd7a8a916f2544f2dcc22652.png create mode 100644 resources/cards/62/c7/62c7f9029e99617d3da083d601263243.png create mode 100644 resources/cards/65/cd/65cde5232852e7dde7f922e28a7653bb.png create mode 100644 resources/cards/68/80/688033092237eb1fb3c6bfcdf43be6c5.png create mode 100644 resources/cards/75/49/75495dd042700e2b18da8f9a7fb53092.png create mode 100644 resources/cards/77/1a/771a98a6059ab49065a88381d388af25.png create mode 100644 resources/cards/78/34/783462006ea7700cd3ce9cf81531271e.png create mode 100644 resources/cards/78/88/788828213d1587d63f32ccbee1cf934c.png create mode 100644 resources/cards/80/a1/80a1be42bd087780fb36ccbed93777e6.png create mode 100644 resources/cards/90/87/9087c80dee43164e8ebff940be11de7d.png create mode 100644 resources/cards/95/67/9567e1797dd6d7cab63824c8dbed79ce.png create mode 100644 resources/cards/ad/42/ad42d146847ac4016add0911576d3c1f.png create mode 100644 resources/cards/b2/e9/b2e90173c24257cca05823ac68a969d1.png create mode 100644 resources/cards/bb/2c/bb2ca43576a194c74dad2c2cc20b019d.png create mode 100644 resources/cards/be/24/be2428c241ddbaddff7ebc4d58ecd361.png create mode 100644 resources/cards/bf/fd/bffdc6537e1c23db57fc6862688429d7.png create mode 100644 resources/cards/c6/6a/c66a921ac2b308d3197d49a5c9c84c5b.png create mode 100644 resources/cards/cb/e8/cbe823e92ba74a6a1285ee8379efe01a.png create mode 100644 resources/cards/d8/8d/d88d2da6914ade7332b4f056a037fd5c.png create mode 100644 resources/cards/f3/dd/f3dd2dc864246d73970329b75ca4e412.png diff --git a/app/modules/card/CardModule.php b/app/modules/card/CardModule.php new file mode 100644 index 0000000..9d2d86e --- /dev/null +++ b/app/modules/card/CardModule.php @@ -0,0 +1,8 @@ +paymentType(2)->bank(323, 42, 75)->client(15); + + return CardNumber::generate($customer, $formatter); + } + +} \ No newline at end of file diff --git a/app/modules/card/manifest.json b/app/modules/card/manifest.json new file mode 100644 index 0000000..eaaf81e --- /dev/null +++ b/app/modules/card/manifest.json @@ -0,0 +1,11 @@ +{ + "name": "Card", + "version": "0.1", + "author": "ITGuild", + "slug": "card", + "description": "Card module", + "module_class": "app\\modules\\card\\CardModule", + "module_class_file": "{APP}/modules/card/CardModule.php", + "routs": "routs/card.php", + "migration_path": "migrations" +} \ No newline at end of file diff --git a/app/modules/card/routs/card.php b/app/modules/card/routs/card.php new file mode 100644 index 0000000..cd5f47e --- /dev/null +++ b/app/modules/card/routs/card.php @@ -0,0 +1,15 @@ +group(["prefix" => "admin"], function (CgRouteCollector $router) { + App::$collector->group(["before" => "auth"], function (RouteCollector $router) { + App::$collector->group(["prefix" => "card"], function (CGRouteCollector $router) { +// App::$collector->get('/test', [\app\modules\card\controllers\CardController::class, 'actionTestCard']); + }); + }); +}); \ No newline at end of file diff --git a/app/modules/tgbot/TgbotModule.php b/app/modules/tgbot/TgbotModule.php new file mode 100644 index 0000000..d9f814b --- /dev/null +++ b/app/modules/tgbot/TgbotModule.php @@ -0,0 +1,12 @@ +beginForm(isset($model) ? "/admin/tg-bot/edit/" . $model->id : "/admin/tg-bot"); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "bot_id", params: [ + 'class' => "form-control", + 'placeholder' => 'Bot ID', + 'value' => $model->bot_id ?? '' +]) + ->setLabel("Bot ID") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "dialog_id", params: [ + 'class' => "form-control", + 'placeholder' => 'Dialog ID', + 'value' => $model->dialog_id ?? '' +]) + ->setLabel("Dialog ID") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "username", params: [ + 'class' => "form-control", + 'placeholder' => 'Username', + 'value' => $model->username ?? '' +]) + ->setLabel("Username") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "first_name", params: [ + 'class' => "form-control", + 'placeholder' => 'First name', + 'value' => $model->first_name ?? '' +]) + ->setLabel("First name") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "last_name", params: [ + 'class' => "form-control", + 'placeholder' => 'Last name', + 'value' => $model->last_name ?? '' +]) + ->setLabel("Last name") + ->render(); + + +$form->field(\itguild\forms\inputs\Select::class, 'status', [ + 'class' => "form-control", + 'value' => $model->status ?? '' +]) + ->setLabel("Статус") + ->setOptions(Tgbot::getStatus()) + ->render(); +?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-submit", params: [ + 'class' => "btn btn-primary ", + 'value' => 'Отправить', + 'typeInput' => 'submit' + ]) + ->render(); + ?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-reset", params: [ + 'class' => "btn btn-warning", + 'value' => 'Сбросить', + 'typeInput' => 'reset' + ]) + ->render(); + ?> +
+
+endForm(); diff --git a/app/modules/tgbot/views/tgbot/index.php b/app/modules/tgbot/views/tgbot/index.php new file mode 100644 index 0000000..c1c59a0 --- /dev/null +++ b/app/modules/tgbot/views/tgbot/index.php @@ -0,0 +1,41 @@ +setTitle("Список существующих диалогов"); + +$table = new ListEloquentTable(new EloquentDataProvider(\app\modules\tgbot\models\Tgbot::class, [ + 'currentPage' => $page_number, + 'perPage' => 8, + 'params' => ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/tg-bot", +])); + +$table->beforePrint(function () { + return PrimaryBtn::create("Создать", "/admin/tg-bot/create")->fetch(); +}); + +$table->columns([ + "status" => [ + "value" => function ($cell) { + return \app\modules\tgbot\models\Tgbot::getStatus()[$cell]; + }] +]); + + +$table->addAction(\kernel\IGTabel\action_column\ViewActionColumn::class); +$table->addAction(\kernel\IGTabel\action_column\DeleteActionColumn::class); +$table->addAction(\kernel\IGTabel\action_column\EditActionColumn::class); +$table->create(); +$table->render(); \ No newline at end of file diff --git a/app/modules/tgbot/views/tgbot/view.php b/app/modules/tgbot/views/tgbot/view.php new file mode 100644 index 0000000..1fcbda1 --- /dev/null +++ b/app/modules/tgbot/views/tgbot/view.php @@ -0,0 +1,30 @@ + ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/tg-bot", +])); +$table->beforePrint(function () use ($tg) { + $btn = PrimaryBtn::create("Список", "/admin/tg-bot")->fetch(); + $btn .= SuccessBtn::create("Редактировать", "/admin/tg-bot/update/" . $tg->id)->fetch(); + $btn .= DangerBtn::create("Удалить", "/admin/tg-bot/delete/" . $tg->id)->fetch(); + return $btn; +}); +$table->rows([ + 'status' => (function ($data) { + return \app\modules\tgbot\models\Tgbot::getStatus()[$data]; + }) +]); +$table->create(); +$table->render(); \ No newline at end of file diff --git a/composer.json b/composer.json index 84a938a..37d7975 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,10 @@ "guzzlehttp/guzzle": "^7.9", "phpmailer/phpmailer": "^6.9", "zircote/swagger-php": "^4.11", - "doctrine/annotations": "^2.0" + "doctrine/annotations": "^2.0", + "ext-gd": "*", + "dragon-code/card-number": "^1.6", + "endroid/qr-code": "^6.0" }, "autoload": { "psr-4": { diff --git a/kernel/FileUpload.php b/kernel/FileUpload.php index 7a1705b..a61893c 100644 --- a/kernel/FileUpload.php +++ b/kernel/FileUpload.php @@ -36,7 +36,9 @@ class FileUpload $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); + $oldMask = umask(0); + mkdir(ROOT_DIR . $this->uploadDir, 0775, true); + umask($oldMask); $uploadFileDir = ROOT_DIR . $this->uploadDir; $this->destPath = $uploadFileDir . $newFileName; $this->uploadFile = $this->uploadDir . $newFileName; @@ -49,7 +51,9 @@ class FileUpload } else { if (in_array($this->fileExtension, $this->allowedFileExtensions)) { $this->uploadDir = $uploadDir; - mkdir(ROOT_DIR . $this->uploadDir, 0777, true); + $oldMask = umask(0); + mkdir(ROOT_DIR . $this->uploadDir, 0775, true); + umask($oldMask); $uploadFileDir = ROOT_DIR . $this->uploadDir; $this->destPath = $uploadFileDir . $this->fileName; $this->uploadFile = $this->uploadDir . $this->fileName; diff --git a/kernel/RestController.php b/kernel/RestController.php index 2d7596d..99ba279 100644 --- a/kernel/RestController.php +++ b/kernel/RestController.php @@ -17,13 +17,32 @@ class RestController return []; } + protected function filters(): array + { + return []; + } + #[NoReturn] public function actionIndex(): void { $request = new Request(); + $get = $request->get(); $page = $request->get('page') ?? 1; $perPage = $request->get('per_page') ?? 10; $query = $this->model->query(); + if ($this->filters()) { + foreach ($this->filters() as $filter){ + if (key_exists($filter, $get)){ + if (is_numeric($get[$filter])){ + $query->where($filter, $get[$filter]); + } + elseif (is_string($get[$filter])){ + $query->where($filter,'like', '%' . $get[$filter] . '%'); + } + } + } + } + if ($page > 1) { $query->skip(($page - 1) * $perPage)->take($perPage); } else { @@ -31,7 +50,7 @@ class RestController } $expand = $this->expand(); - $expandParams = explode( ",", $request->get('expand') ?? ""); + $expandParams = explode(",", $request->get('expand') ?? ""); $finalExpand = array_intersect($expandParams, $expand); if ($finalExpand) { $res = $query->get()->load($finalExpand)->toArray(); @@ -46,14 +65,14 @@ class RestController { $expand = $this->expand(); $request = new Request(); - $expandParams = explode( ",", $request->get('expand') ?? ""); + $expandParams = explode(",", $request->get('expand') ?? ""); $model = $this->model->where("id", $id)->first(); $finalExpand = array_intersect($expandParams, $expand); - if ($finalExpand){ + if ($finalExpand) { $model->load($finalExpand); } $res = []; - if ($model){ + if ($model) { $res = $model->toArray(); } @@ -64,7 +83,7 @@ class RestController { $model = $this->model->where("id", $id)->first(); $res = []; - if ($model){ + if ($model) { $res = $model->toArray(); } @@ -78,7 +97,7 @@ class RestController { $request = new Request(); $data = $request->post(); - foreach ($this->model->getFillable() as $item){ + foreach ($this->model->getFillable() as $item) { $this->model->{$item} = $data[$item] ?? null; } $this->model->save(); @@ -93,8 +112,8 @@ class RestController $model = $this->model->where('id', $id)->first(); - foreach ($model->getFillable() as $item){ - if (!empty($data[$item])){ + foreach ($model->getFillable() as $item) { + if (!empty($data[$item])) { $model->{$item} = $data[$item] ?? null; } } @@ -117,5 +136,4 @@ class RestController } - } \ No newline at end of file diff --git a/kernel/admin_themes/default/layout/main.php b/kernel/admin_themes/default/layout/main.php index db00106..98be7fb 100644 --- a/kernel/admin_themes/default/layout/main.php +++ b/kernel/admin_themes/default/layout/main.php @@ -26,10 +26,13 @@
-
- - -
+
+ + +
- +
diff --git a/kernel/app_modules/card/CardModule.php b/kernel/app_modules/card/CardModule.php new file mode 100644 index 0000000..fbe306d --- /dev/null +++ b/kernel/app_modules/card/CardModule.php @@ -0,0 +1,67 @@ +menuService = new MenuService(); + $this->consoleService = new ConsoleService(); + $this->migrationService = new MigrationService(); + } + + /** + * @throws \Exception + */ + public function init(): void + { + $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/card/migrations"); + + $this->consoleService->runComposerRequire("dragon-code/card-number"); + $this->consoleService->runComposerRequire("endroid/qr-code"); + + $this->menuService->createItem([ + "label" => "Card", + "url" => "/admin/card", + "slug" => "card", + ]); + + $this->menuService->createItem([ + "label" => "Список карт", + "url" => "/admin/card", + "slug" => "card_list", + "parent_slug" => "card" + ]); + + $this->menuService->createItem([ + "label" => "Шаблоны карт", + "url" => "/admin/card_template", + "slug" => "card_template", + "parent_slug" => "card" + ]); + } + + /** + * @throws \Exception + */ + public function deactivate(): void + { + $this->menuService->removeItemBySlug("card"); + $this->menuService->removeItemBySlug("card_list"); + $this->menuService->removeItemBySlug("card_template"); + $this->migrationService->rollbackAtPath("{KERNEL_APP_MODULES}/card/migrations"); + $this->consoleService->runComposerRemove("dragon-code/card-number"); + $this->consoleService->runComposerRemove("endroid/qr-code"); + } +} \ No newline at end of file diff --git a/kernel/app_modules/card/controllers/CardController.php b/kernel/app_modules/card/controllers/CardController.php new file mode 100644 index 0000000..c2e0657 --- /dev/null +++ b/kernel/app_modules/card/controllers/CardController.php @@ -0,0 +1,101 @@ +cgView->viewPath = KERNEL_APP_MODULES_DIR . "/card/views/"; + $this->cardService = new CardService(); + } + + public function actionCreate(): void + { + $this->cgView->render("form.php"); + } + + #[NoReturn] public function actionAdd(): void + { + $cardForm = new CreateCardForm(); + $cardForm->load($_REQUEST); + if ($cardForm->validate()){ + $card = $this->cardService->create($cardForm); + if ($card){ + $this->redirect("/admin/card/" . $card->id); + } + } + Flash::setMessage("error", $cardForm->getErrorsStr()); + $this->redirect("/admin/card/create"); + } + + public function actionIndex($page_number = 1): void + { + $this->cgView->render("index.php", ['page_number' => $page_number]); + } + + /** + * @throws Exception + */ + public function actionView($id): void + { + $card = Card::find($id); + + if (!$card){ + throw new Exception(message: "The card not found"); + } + $this->cgView->render("view.php", ['card' => $card]); + } + + /** + * @throws Exception + */ + public function actionUpdate($id): void + { + $model = Card::find($id); + if (!$model){ + throw new Exception(message: "The card not found"); + } + + $this->cgView->render("form.php", ['model' => $model]); + } + + /** + * @throws Exception + */ + public function actionEdit($id): void + { + $card = Card::find($id); + if (!$card){ + throw new Exception(message: "The card not found"); + } + $cardForm = new CreateCardForm(); + $cardService = new CardService(); + $cardForm->load($_REQUEST); + if ($cardForm->validate()) { + $card = $cardService->update($cardForm, $card); + if ($card) { + $this->redirect("/admin/card/" . $card->id); + } + } + $this->redirect("/admin/card/update/" . $id); + } + + #[NoReturn] public function actionDelete($id): void + { + $card = Card::find($id)->first(); + $card->delete(); + $this->redirect("/admin/card/"); + } +} \ No newline at end of file diff --git a/kernel/app_modules/card/controllers/CardRestController.php b/kernel/app_modules/card/controllers/CardRestController.php new file mode 100644 index 0000000..8d0c781 --- /dev/null +++ b/kernel/app_modules/card/controllers/CardRestController.php @@ -0,0 +1,25 @@ +model = new Card(); + } + + protected function expand(): array + { + return ["cardFile"]; + } + + protected function filters(): array + { + return ['pin', 'user_id', 'payment_type', 'bank_id', 'info', 'program', 'username', 'status']; + } +} \ No newline at end of file diff --git a/kernel/app_modules/card/controllers/CardTemplateController.php b/kernel/app_modules/card/controllers/CardTemplateController.php new file mode 100644 index 0000000..7ade0f1 --- /dev/null +++ b/kernel/app_modules/card/controllers/CardTemplateController.php @@ -0,0 +1,125 @@ +cgView->viewPath = KERNEL_APP_MODULES_DIR . "/card/views/card_template/"; + $this->cardService = new CardService(); + $this->cardTemplateService = new CardTemplateService(); + } + + public function actionCreate(): void + { + $this->cgView->render("form.php"); + } + + #[NoReturn] public function actionAdd(): void + { + $cardForm = new CreateCardTemplateForm(); + $cardForm->load($_REQUEST); + + if (isset($_FILES['path']) && $_FILES['path']['error'] === UPLOAD_ERR_OK) { + $file = new FileUpload($_FILES['path'], ['jpg', 'jpeg', 'png']); + $file->upload(); + $cardForm->setItem('path', $file->getUploadFile()); + } + + if ($cardForm->validate()){ + $cardTemplate = $this->cardTemplateService->create($cardForm); + if ($cardTemplate){ + $this->redirect("/admin/card_template/" . $cardTemplate->id); + } + } + + Flash::setMessage("error", $cardForm->getErrorsStr()); + $this->redirect("/admin/card_template/create"); + } + + public function actionIndex($page_number = 1): void + { + $this->cgView->render("index.php", ['page_number' => $page_number]); + } + + /** + * @throws Exception + */ + public function actionView($id): void + { + $card = CardTemplate::find($id); + + if (!$card){ + throw new Exception(message: "The card template not found"); + } + $this->cgView->render("view.php", ['card' => $card]); + } + + /** + * @throws Exception + */ + public function actionUpdate($id): void + { + $model = CardTemplate::find($id); + if (!$model){ + throw new Exception(message: "The card template not found"); + } + + $this->cgView->render("form.php", ['model' => $model]); + } + + /** + * @throws Exception + */ + public function actionEdit($id): void + { + $cardTemplate = CardTemplate::find($id); + if (!$cardTemplate){ + throw new Exception(message: "The card not found"); + } + $cardTemplateForm = new CreateCardTemplateForm(); + $cardTemplateForm->load($_REQUEST); + + if (isset($_FILES['path']) && $_FILES['path']['error'] === UPLOAD_ERR_OK) { + $file = new FileUpload($_FILES['path'], ['jpg', 'jpeg', 'png']); + $file->upload(); + $cardTemplateForm->setItem('path', $file->getUploadFile()); + } + + if ($cardTemplateForm->validateForUpdate()) { + $card = $this->cardTemplateService->update($cardTemplateForm, $cardTemplate); + if ($card) { + $this->redirect("/admin/card_template/" . $card->id); + } + } + Flash::setMessage("error", $cardTemplateForm->getErrorsStr()); + + $this->redirect("/admin/card_template/update/" . $id); + } + + #[NoReturn] public function actionDelete($id): void + { + $card = CardTemplate::find($id)->first(); + $card->delete(); + $this->redirect("/admin/card_template/"); + } + +} \ No newline at end of file diff --git a/kernel/app_modules/card/migrations/2024_12_23_171228_create_card_table.php b/kernel/app_modules/card/migrations/2024_12_23_171228_create_card_table.php new file mode 100644 index 0000000..a226858 --- /dev/null +++ b/kernel/app_modules/card/migrations/2024_12_23_171228_create_card_table.php @@ -0,0 +1,61 @@ +schema->create('card_template', function (Blueprint $table) { + $table->increments('id')->from(105545); + $table->string('path')->nullable(false); + $table->string('title')->nullable(false); + + $table->integer('status')->default(1); + $table->timestamps(); + }); + + \kernel\App::$db->schema->create('card_file', function (Blueprint $table) { + $table->increments('id'); + $table->string('file')->nullable(false); + $table->integer('card_id')->nullable(false); + + $table->integer('status')->default(1); + $table->timestamps(); + }); + + \kernel\App::$db->schema->create('card', function (Blueprint $table) { + $table->increments('id')->from(105545); + $table->integer('user_id')->nullable(false); + $table->integer('balance')->nullable(false)->default(0); + $table->integer('payment_type')->nullable(false); + $table->integer('bank_id')->nullable(false); + $table->integer('info')->nullable(false); + $table->integer('program')->nullable(false); + $table->integer('cvc')->nullable(false); + $table->integer('pin')->nullable(false); + $table->string('username')->nullable(); + $table->integer('card_template_id')->nullable(); + $table->integer('card_file_id')->nullable(); + + $table->integer('status')->default(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + \kernel\App::$db->schema->dropIfExists('card'); + \kernel\App::$db->schema->dropIfExists('card_template'); + \kernel\App::$db->schema->dropIfExists('card_file'); + } +}; diff --git a/kernel/app_modules/card/models/Card.php b/kernel/app_modules/card/models/Card.php new file mode 100644 index 0000000..3627efb --- /dev/null +++ b/kernel/app_modules/card/models/Card.php @@ -0,0 +1,85 @@ + 'Заголовок', + // 'entity' => 'Сущность', + // 'slug' => 'Slug', + // 'status' => 'Статус', + // ] + + return [ + 'user_id' => 'ID пользователя', + 'payment_type' => 'Платежная система', + 'balance' => 'Баланс', + 'bank_id' => 'ID банка', + 'info' => 'Информация о банке', + 'program' => 'Программа', + 'cvc' => 'CVC', + 'pin' => 'PIN', + 'username' => 'Username', + 'card_template_id' => 'Шаблон', + 'card_file_id' => 'Карта', + 'status' => 'Статус', + ]; + } + + /** + * @return string[] + */ + public static function getStatus(): array + { + return [ + self::DISABLE_STATUS => "Не активный", + self::ACTIVE_STATUS => "Активный", + ]; + } + + public function cardTemplate(): \Illuminate\Database\Eloquent\Relations\BelongsTo + { + return $this->belongsTo(CardTemplate::class); + } + + public function cardFile(): \Illuminate\Database\Eloquent\Relations\BelongsTo + { + return $this->belongsTo(CardFile::class); + } + +// public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo +// { +// return $this->belongsTo(User::class); +// } + +} \ No newline at end of file diff --git a/kernel/app_modules/card/models/CardFile.php b/kernel/app_modules/card/models/CardFile.php new file mode 100644 index 0000000..9a31111 --- /dev/null +++ b/kernel/app_modules/card/models/CardFile.php @@ -0,0 +1,51 @@ + 'Заголовок', + // 'entity' => 'Сущность', + // 'slug' => 'Slug', + // 'status' => 'Статус', + // ] + + return [ + 'file' => 'Файл карты', + 'card_id' => 'Карта', + 'status' => 'Статус', + ]; + } + + /** + * @return string[] + */ + public static function getStatus(): array + { + return [ + self::DISABLE_STATUS => "Не активный", + self::ACTIVE_STATUS => "Активный", + ]; + } + +} \ No newline at end of file diff --git a/kernel/app_modules/card/models/CardTemplate.php b/kernel/app_modules/card/models/CardTemplate.php new file mode 100644 index 0000000..3a8cb47 --- /dev/null +++ b/kernel/app_modules/card/models/CardTemplate.php @@ -0,0 +1,50 @@ + 'Заголовок', + // 'entity' => 'Сущность', + // 'slug' => 'Slug', + // 'status' => 'Статус', + // ] + + return [ + 'path' => 'Шаблон', + 'title' => 'Название', + 'status' => 'Статус', + ]; + } + + /** + * @return string[] + */ + public static function getStatus(): array + { + return [ + self::DISABLE_STATUS => "Не активный", + self::ACTIVE_STATUS => "Активный", + ]; + } + +} \ No newline at end of file diff --git a/kernel/app_modules/card/models/forms/CreateCardForm.php b/kernel/app_modules/card/models/forms/CreateCardForm.php new file mode 100644 index 0000000..af91fb6 --- /dev/null +++ b/kernel/app_modules/card/models/forms/CreateCardForm.php @@ -0,0 +1,36 @@ + 'required|min-str-len:5|max-str-len:30', + // 'entity' => 'required', + // 'slug' => '', + // 'status' => '' + // ]; + return [ + 'user_id' => 'required|alpha-numeric', + 'payment_type' => 'required|alpha-numeric', + 'balance' => 'alpha-numeric', + 'bank_id' => 'required|alpha-numeric', + 'info' => 'required|alpha-numeric', + 'program' => 'required|alpha-numeric', + 'cvc' => 'required|alpha-numeric', + 'pin' => 'required|alpha-numeric', + 'username' => 'required|min-str-len:5|max-str-len:20', + 'card_template_id' => 'required|alpha-numeric', + 'card_file_id' => 'alpha-numeric', + 'status' => '', + ]; + } + +} \ No newline at end of file diff --git a/kernel/app_modules/card/models/forms/CreateCardTemplateForm.php b/kernel/app_modules/card/models/forms/CreateCardTemplateForm.php new file mode 100644 index 0000000..02b9f58 --- /dev/null +++ b/kernel/app_modules/card/models/forms/CreateCardTemplateForm.php @@ -0,0 +1,38 @@ + 'required|min-str-len:5|max-str-len:30', + // 'entity' => 'required', + // 'slug' => '', + // 'status' => '' + // ]; + return [ + 'path' => 'required|min-str-len:4', + 'title' => 'required', + 'status' => '' + ]; + } + + public function rulesForUpdate(): array + { + return [ + 'path' => '', + 'title' => 'required', + 'status' => '' + ]; + } + + + +} \ No newline at end of file diff --git a/kernel/app_modules/card/routs/card.php b/kernel/app_modules/card/routs/card.php new file mode 100644 index 0000000..96a39c4 --- /dev/null +++ b/kernel/app_modules/card/routs/card.php @@ -0,0 +1,41 @@ +group(["prefix" => "admin"], function (CgRouteCollector $router) { + App::$collector->group(["before" => "auth"], function (RouteCollector $router) { + App::$collector->group(["prefix" => "card"], function (CGRouteCollector $router) { + App::$collector->get('/', [\app\modules\card\controllers\CardController::class, 'actionIndex']); + App::$collector->get('/page/{page_number}', [\app\modules\card\controllers\CardController::class, 'actionIndex']); + App::$collector->get('/create', [\app\modules\card\controllers\CardController::class, 'actionCreate']); + App::$collector->post("/", [\app\modules\card\controllers\CardController::class, 'actionAdd']); + App::$collector->get('/{id}', [\app\modules\card\controllers\CardController::class, 'actionView']); + App::$collector->any('/update/{id}', [\app\modules\card\controllers\CardController::class, 'actionUpdate']); + App::$collector->any("/edit/{id}", [\app\modules\card\controllers\CardController::class, 'actionEdit']); + App::$collector->get('/delete/{id}', [\app\modules\card\controllers\CardController::class, 'actionDelete']); + }); + }); +}); + +App::$collector->group(["prefix" => "admin"], function (CgRouteCollector $router) { + App::$collector->group(["before" => "auth"], function (RouteCollector $router) { + App::$collector->group(["prefix" => "card_template"], function (CGRouteCollector $router) { + App::$collector->get('/', [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionIndex']); + App::$collector->get('/page/{page_number}', [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionIndex']); + App::$collector->get('/create', [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionCreate']); + App::$collector->post("/", [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionAdd']); + App::$collector->get('/{id}', [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionView']); + App::$collector->any('/update/{id}', [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionUpdate']); + App::$collector->any("/edit/{id}", [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionEdit']); + App::$collector->get('/delete/{id}', [\kernel\app_modules\card\controllers\CardTemplateController::class, 'actionDelete']); + }); + }); +}); + +App::$collector->group(["prefix" => "api"], function (CgRouteCollector $router){ + App::$collector->group(['before' => 'bearer'], function (CgRouteCollector $router){ + $router->rest("card", [\kernel\app_modules\card\controllers\CardRestController::class]); + }); +}); \ No newline at end of file diff --git a/kernel/app_modules/card/services/CardFileService.php b/kernel/app_modules/card/services/CardFileService.php new file mode 100644 index 0000000..8d70cbd --- /dev/null +++ b/kernel/app_modules/card/services/CardFileService.php @@ -0,0 +1,113 @@ +file = $cardFile; + $model->status = CardFile::ACTIVE_STATUS; + $model->card_id = $card->id; + // $model->slug = Slug::createSlug($form_model->getItem('title'), Card::class); // Генерация уникального slug + + if ($model->save()) { + return $model; + } + + return false; + } + + public function update(FormModel $form_model, CardFile $cardTemplate): false|CardFile + { + // Пример обновления: + $cardTemplate->file = $form_model->getItem('file'); + $cardTemplate->card_id = $form_model->getItem('card_id'); + $cardTemplate->status = $form_model->getItem('status'); + + if ($cardTemplate->save()) { + return $cardTemplate; + } + + return false; + } + + public static function createCardPNG(Card $card): false|string + { + if ($card->cardTemplate) { + $formatter = BankFormatter::create(); + + $customer = BankFactory::create()->paymentType($card->payment_type)->bank($card->bank_id, $card->info, $card->program)->client($card->id); + + $cardNumber = CardNumber::generate($customer, $formatter); + //Card + $newFileName = md5(time() . $card->id) . '.png'; + $uploadDir = "/resources/cards/"; + $uploadDirUri = $uploadDir . mb_substr($newFileName, 0, 2) . '/' . mb_substr($newFileName, 2, 2) . '/'; + $oldMask = umask(0); + mkdir(ROOT_DIR . $uploadDirUri, 0775, true); + umask($oldMask); + $uploadFileDir = ROOT_DIR . $uploadDirUri; + + $img = ROOT_DIR . "/" . $card->cardTemplate->path; // Ссылка на файл + $font = RESOURCES_DIR . "/tmp/arialmt.ttf"; // Ссылка на шрифт + + $qr = self::createQr($card->id); + $qrImg = new ImageGD($qr->getDataUri()); + $img = new ImageGD($img); + + $pngFilePath = RESOURCES_DIR . "/tmp/" . $card->id . ".png"; + $pngFileUrl = "/resources/tmp/" . $card->id . ".png"; + + $img->addText(font_size: 14, degree: 0, x: 15, y: 25, color: "#000000", font: $font, text: "KO coin"); + $img->addText(font_size: 14, degree: 0, x: 15, y: 45, color: "#000000", font: $font, text: "BGroup\ITGuild"); + $img->addText(font_size: 14, degree: 0, x: 15, y: 65, color: "#000000", font: $font, text: $card->cardTemplate->title . " card"); + $img->addText(font_size: 18, degree: 0, x: 15, y: 180, color: "#000000", font: $font, text: $cardNumber); + $img->addText(font_size: 12, degree: 0, x: 15, y: 200, color: "#000000", font: $font, text: $card->username); + $img->addImg($qrImg->getImg(), 200, 15, 0, 0, 124, 124, 100); + $img->save($uploadFileDir . $newFileName); + + return $uploadDirUri . $newFileName; + } + + return false; + } + + public static function createQr(string|int $text): \Endroid\QrCode\Writer\Result\ResultInterface + { + $writer = new PngWriter(); + + $qrCode = new QrCode( + data: $text, + encoding: new Encoding('UTF-8'), + errorCorrectionLevel: ErrorCorrectionLevel::Low, + size: 120, + margin: 2, + roundBlockSizeMode: RoundBlockSizeMode::Margin, + foregroundColor: new Color(0, 0, 0), + backgroundColor: new Color(255, 255, 255) + ); + + return $writer->write($qrCode); + } + +} \ No newline at end of file diff --git a/kernel/app_modules/card/services/CardService.php b/kernel/app_modules/card/services/CardService.php new file mode 100644 index 0000000..160a48b --- /dev/null +++ b/kernel/app_modules/card/services/CardService.php @@ -0,0 +1,108 @@ +cardFileService = new CardFileService(); + } + + public function create(FormModel $form_model): false|Card + { + $model = new Card(); + // Пример заполнения: + $model->user_id = $form_model->getItem('user_id'); + $model->payment_type = $form_model->getItem('payment_type') ?? 2; + $model->bank_id = $form_model->getItem('bank_id') ?? 232; + $model->info = $form_model->getItem('info') ?? 42; + $model->program = $form_model->getItem('program') ?? 74; + $model->balance = $form_model->getItem('balance') ?? 0; + $model->cvc = $form_model->getItem('cvc'); + $model->pin = $form_model->getItem('pin'); + $model->username = $form_model->getItem('username'); + $model->card_template_id = $form_model->getItem('card_template_id'); + $model->status = $form_model->getItem('status'); + + if ($model->save()) { + $cardFile = $this->cardFileService->create($model); + if ($cardFile) { + $model->card_file_id = $cardFile->id; + $model->save(); + } + + return $model; + } + + return false; + } + + public function update(FormModel $form_model, Card $card): false|Card + { + // Пример обновления: + $card->user_id = $form_model->getItem('user_id'); + $card->payment_type = $form_model->getItem('payment_type'); + $card->bank_id = $form_model->getItem('bank_id'); + $card->info = $form_model->getItem('info'); + $card->program = $form_model->getItem('program'); + $card->balance = $form_model->getItem('balance'); + $card->cvc = $form_model->getItem('cvc'); + $card->pin = $form_model->getItem('pin'); + $card->username = $form_model->getItem('username'); + $card->status = $form_model->getItem('status'); + + if ($card->card_template_id !== (int)$form_model->getItem('card_template_id')) { + $card->card_template_id = $form_model->getItem('card_template_id'); + $cardFile = $this->cardFileService->create($card); + if ($cardFile) { + $card->card_file_id = $cardFile->id; + } + } + + if ($card->save()) { + return $card; + } + + return false; + } + + public static function createCardPNG(Card $card): false|string + { + if ($card->cardTemplate) { + $formatter = BankFormatter::create(); + + $customer = BankFactory::create()->paymentType($card->payment_type)->bank($card->bank_id, $card->info, $card->program)->client($card->id); + + $cardNumber = CardNumber::generate($customer, $formatter); + //Card + $img = ROOT_DIR . "/" . $card->cardTemplate->path; // Ссылка на файл + $font = RESOURCES_DIR . "/tmp/arialmt.ttf"; // Ссылка на шрифт + + $img = new ImageGD($img); + + $pngFilePath = RESOURCES_DIR . "/tmp/" . $card->id . ".png"; + $pngFileUrl = "/resources/tmp/" . $card->id . ".png"; + + $img->addText(font_size: 14, degree: 0, x: 15, y: 25, color: "#000000", font: $font, text: "KO coin"); + $img->addText(font_size: 14, degree: 0, x: 15, y: 45, color: "#000000", font: $font, text: "BGroup\ITGuild"); + $img->addText(font_size: 18, degree: 0, x: 15, y: 180, color: "#000000", font: $font, text: $cardNumber); + $img->addText(font_size: 12, degree: 0, x: 15, y: 200, color: "#000000", font: $font, text: $card->username); + $img->save($pngFilePath); + + return $pngFileUrl; + } + + return false; + } +} \ No newline at end of file diff --git a/kernel/app_modules/card/services/CardTemplateService.php b/kernel/app_modules/card/services/CardTemplateService.php new file mode 100644 index 0000000..88c71f6 --- /dev/null +++ b/kernel/app_modules/card/services/CardTemplateService.php @@ -0,0 +1,55 @@ +path = $form_model->getItem('path'); + $model->status = $form_model->getItem('status'); + $model->title = $form_model->getItem('title'); + // $model->slug = Slug::createSlug($form_model->getItem('title'), Card::class); // Генерация уникального slug + + if ($model->save()) { + return $model; + } + + return false; + } + + public function update(FormModel $form_model, CardTemplate $cardTemplate): false|CardTemplate + { + // Пример обновления: + $cardTemplate->title = $form_model->getItem('title'); + $cardTemplate->path = $form_model->getItem('path') ?? $cardTemplate->path; + $cardTemplate->status = $form_model->getItem('status'); + + if ($cardTemplate->save()) { + return $cardTemplate; + } + + return false; + } + + public static function getTemplatesList(): array + { + $arr = []; + foreach (CardTemplate::all()->toArray() as $cardTemplate){ + $arr[$cardTemplate['id']] = $cardTemplate['title']; + } + if (!empty($arr)) { + return $arr; + } + + return []; + } + +} \ No newline at end of file diff --git a/kernel/app_modules/card/views/card_template/form.php b/kernel/app_modules/card/views/card_template/form.php new file mode 100644 index 0000000..fffb840 --- /dev/null +++ b/kernel/app_modules/card/views/card_template/form.php @@ -0,0 +1,63 @@ +beginForm(isset($model) ? "/admin/card_template/edit/" . $model->id : "/admin/card_template", 'multipart/form-data'); + +// Пример формы: + + +$form->field(\itguild\forms\inputs\TextInput::class, 'title', [ + 'class' => "form-control", + 'placeholder' => 'Название', + 'value' => $model->title ?? '' +]) + ->setLabel("Заголовок") + ->render(); + +$form->field(\itguild\forms\inputs\File::class, 'path', [ + 'class' => "form-control", + 'placeholder' => 'Путь к файлу', + 'value' => $model->path ?? '' +]) + ->setLabel(\kernel\app_modules\card\models\CardTemplate::labels()['path']) + ->render(); + +$form->field(class: \itguild\forms\inputs\Select::class, name: "status", params: [ + 'class' => "form-control", + 'value' => $model->status ?? '' +]) + ->setLabel("Статус") + ->setOptions(\kernel\app_modules\card\models\CardTemplate::getStatus()) + ->render(); + + +?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-submit", params: [ + 'class' => "btn btn-primary ", + 'value' => 'Отправить', + 'typeInput' => 'submit' + ]) + ->render(); + ?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-reset", params: [ + 'class' => "btn btn-warning", + 'value' => 'Сбросить', + 'typeInput' => 'reset' + ]) + ->render(); + ?> +
+
+endForm(); diff --git a/kernel/app_modules/card/views/card_template/index.php b/kernel/app_modules/card/views/card_template/index.php new file mode 100644 index 0000000..ecfe92f --- /dev/null +++ b/kernel/app_modules/card/views/card_template/index.php @@ -0,0 +1,81 @@ +setTitle("Список шаблонов card"); +$view->setMeta([ + 'description' => 'Список шаблонов card системы' +]); + +//Для использования таблицы с моделью, необходимо создать таблицу в базе данных +$table = new ListEloquentTable(new EloquentDataProvider(\kernel\app_modules\card\models\CardTemplate::class, [ + 'currentPage' => $page_number, + 'perPage' => 8, + 'params' => ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/card_template" +])); + + +//$table = new \Itguild\Tables\ListJsonTable(json_encode( +// [ +// 'meta' => [ +// 'total' => 0, +// 'totalWithFilters' => 0, +// 'columns' => [ +// 'title', +// 'slug', +// 'status', +// ], +// 'perPage' => 5, +// 'currentPage' => 1, +// 'baseUrl' => '/admin/some', +// 'params' => [ +// 'class' => 'table table-bordered', +// 'border' => 2 +// ] +// ], +// 'filters' => [], +// 'data' => [], +// ] +//)); + +$table->beforePrint(function () { + return IconBtnCreateWidget::create(['url' => '/admin/card_template/create'])->run(); +}); + +$table->columns([ + 'status' => [ + 'value' => function ($data) { + return \kernel\app_modules\card\models\CardTemplate::getStatus()[$data]; + } + ], + 'path' => [ + 'value' => function ($data) { + return \kernel\helpers\Html::img($data, ['width' => '200px']); + } + ] +]); + +$table->addAction(function($row) { + return IconBtnViewWidget::create(['url' => '/admin/card_template/' . $row['id']])->run(); +}); +$table->addAction(function($row) { + return IconBtnEditWidget::create(['url' => '/admin/card_template/update/' . $row['id']])->run(); +}); +$table->addAction(function($row) { + return IconBtnDeleteWidget::create(['url' => '/admin/card_template/delete/' . $row['id']])->run(); +}); +$table->create(); +$table->render(); \ No newline at end of file diff --git a/kernel/app_modules/card/views/card_template/view.php b/kernel/app_modules/card/views/card_template/view.php new file mode 100644 index 0000000..594c7f3 --- /dev/null +++ b/kernel/app_modules/card/views/card_template/view.php @@ -0,0 +1,34 @@ + ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/card_template", +])); + +$table->rows([ + 'status' => [ + 'value' => function ($data) { + return \kernel\app_modules\card\models\CardTemplate::getStatus()[$data]; + } + ] +]); + +$table->beforePrint(function () use ($card) { + $btn = IconBtnListWidget::create(['url' => '/admin/card_template'])->run(); + $btn .= IconBtnEditWidget::create(['url' => '/admin/card_template/update/' . $card->id])->run(); + $btn .= IconBtnDeleteWidget::create(['url' => '/admin/card_template/delete/' . $card->id])->run(); + return $btn; +}); + +$table->create(); +$table->render(); \ No newline at end of file diff --git a/kernel/app_modules/card/views/form.php b/kernel/app_modules/card/views/form.php new file mode 100644 index 0000000..ba6c749 --- /dev/null +++ b/kernel/app_modules/card/views/form.php @@ -0,0 +1,125 @@ +beginForm(isset($model) ? "/admin/card/edit/" . $model->id : "/admin/card", 'multipart/form-data'); + +// Пример формы: + +$form->field(class: \itguild\forms\inputs\Select::class, name: "user_id", params: [ + 'class' => "form-control", + 'value' => $model->user_id ?? '' +]) + ->setLabel("Пользователи") + ->setOptions(\kernel\modules\user\service\UserService::createUsernameArr()) + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'username', [ + 'class' => "form-control", + 'placeholder' => 'Username', + 'value' => $model->username ?? '' +]) + ->setLabel("Username") + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'balance', [ + 'class' => "form-control", + 'placeholder' => 'Баланс', + 'value' => $model->balance ?? '' +]) + ->setLabel("Баланс") + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'payment_type', [ + 'class' => "form-control", + 'placeholder' => 'Тип оплаты', + 'value' => $model->payment_type ?? '' +]) + ->setLabel("Тип оплаты") + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'bank_id', [ + 'class' => "form-control", + 'placeholder' => 'ID банка', + 'value' => $model->bank_id ?? '' +]) + ->setLabel("ID банка") + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'info', [ + 'class' => "form-control", + 'placeholder' => 'Информация', + 'value' => $model->info ?? '' +]) + ->setLabel("Информация") + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'program', [ + 'class' => "form-control", + 'placeholder' => 'Программа', + 'value' => $model->program ?? '' +]) + ->setLabel("Программа") + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'cvc', [ + 'class' => "form-control", + 'placeholder' => 'CVC', + 'value' => $model->cvc ?? '' +]) + ->setLabel("CVC") + ->render(); + +$form->field(\itguild\forms\inputs\TextInput::class, 'pin', [ + 'class' => "form-control", + 'placeholder' => 'PIN', + 'value' => $model->pin ?? '' +]) + ->setLabel("PIN") + ->render(); + +$form->field(class: \itguild\forms\inputs\Select::class, name: "card_template_id", params: [ + 'class' => "form-control", + 'value' => $model->card_template_id ?? '' +]) + ->setLabel("Шаблон") + ->setOptions(\kernel\app_modules\card\services\CardTemplateService::getTemplatesList()) + ->render(); + +$form->field(class: \itguild\forms\inputs\Select::class, name: "status", params: [ + 'class' => "form-control", + 'value' => $model->status ?? '' +]) + ->setLabel("Статус") + ->setOptions(Card::getStatus()) + ->render(); + +?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-submit", params: [ + 'class' => "btn btn-primary ", + 'value' => 'Отправить', + 'typeInput' => 'submit' + ]) + ->render(); + ?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-reset", params: [ + 'class' => "btn btn-warning", + 'value' => 'Сбросить', + 'typeInput' => 'reset' + ]) + ->render(); + ?> +
+
+endForm(); diff --git a/kernel/app_modules/card/views/index.php b/kernel/app_modules/card/views/index.php new file mode 100644 index 0000000..cf5e896 --- /dev/null +++ b/kernel/app_modules/card/views/index.php @@ -0,0 +1,92 @@ +setTitle("Список card"); +$view->setMeta([ + 'description' => 'Список card системы' +]); + +//Для использования таблицы с моделью, необходимо создать таблицу в базе данных +$table = new ListEloquentTable(new EloquentDataProvider(Card::class, [ + 'currentPage' => $page_number, + 'perPage' => 8, + 'params' => ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/card" +])); + +$table->columns([ + 'user_id' => [ + 'value' => function ($data) { + return User::find($data)->username ?? ''; + } + ], + 'card_template_id' => [ + 'value' => function ($data) { + return \kernel\app_modules\card\models\CardTemplate::find($data)->title; + } + ], + 'card_file_id' => [ + 'value' => function ($data) { + $file = \kernel\app_modules\card\models\CardFile::find($data)->file; + return $file ? \kernel\helpers\Html::img($file) : ""; + } + ], + 'status' => [ + 'value' => function ($data) { + return Card::getStatus()[$data]; + } + ] +]); + +//$table = new \Itguild\Tables\ListJsonTable(json_encode( +// [ +// 'meta' => [ +// 'total' => 0, +// 'totalWithFilters' => 0, +// 'columns' => [ +// 'title', +// 'slug', +// 'status', +// ], +// 'perPage' => 5, +// 'currentPage' => 1, +// 'baseUrl' => '/admin/some', +// 'params' => [ +// 'class' => 'table table-bordered', +// 'border' => 2 +// ] +// ], +// 'filters' => [], +// 'data' => [], +// ] +//)); + +$table->beforePrint(function () { + return IconBtnCreateWidget::create(['url' => '/admin/card/create'])->run(); +}); + +$table->addAction(function($row) { + return IconBtnViewWidget::create(['url' => '/admin/card/' . $row['id']])->run(); +}); +$table->addAction(function($row) { + return IconBtnEditWidget::create(['url' => '/admin/card/update/' . $row['id']])->run(); +}); +$table->addAction(function($row) { + return IconBtnDeleteWidget::create(['url' => '/admin/card/delete/' . $row['id']])->run(); +}); +$table->create(); +$table->render(); \ No newline at end of file diff --git a/kernel/app_modules/card/views/view.php b/kernel/app_modules/card/views/view.php new file mode 100644 index 0000000..7ebfc9e --- /dev/null +++ b/kernel/app_modules/card/views/view.php @@ -0,0 +1,71 @@ + ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/card", +])); +$table->beforePrint(function () use ($card) { + $btn = IconBtnListWidget::create(['url' => '/admin/card'])->run(); + $btn .= IconBtnEditWidget::create(['url' => '/admin/card/update/' . $card->id])->run(); + $btn .= IconBtnDeleteWidget::create(['url' => '/admin/card/delete/' . $card->id])->run(); + return $btn; +}); + +$table->rows([ + 'card_file_id' => function ($data) { + $file = \kernel\app_modules\card\models\CardFile::find($data)->file; + return $file ? \kernel\helpers\Html::img($file) : ""; + }, + 'status' => function ($data) { + return \kernel\app_modules\card\models\Card::getStatus()[$data]; + } +]); + +$table->create(); +$table->render(); + +//$writer = new PngWriter(); +// +//// Create QR code +//$qrCode = new QrCode( +// data: $card->id, +// encoding: new Encoding('UTF-8'), +// errorCorrectionLevel: ErrorCorrectionLevel::Low, +// size: 120, +// margin: 2, +// roundBlockSizeMode: RoundBlockSizeMode::Margin, +// foregroundColor: new Color(0, 0, 0), +// backgroundColor: new Color(255, 255, 255) +//); +// +// +//$result = $writer->write($qrCode); +//echo ""; +// +//$path = $card->cardFile->file; +//$mainImg = new \kernel\helpers\ImageGD(ROOT_DIR . $path); +//$qrImg = new \kernel\helpers\ImageGD($result->getDataUri()); +//$mainImg->addImg($qrImg->getImg(), 200, 15, 0, 0, 124, 124, 100); +//$mainImg->save(RESOURCES_DIR . "/tmp/with_qr.png"); + +//$cardFile = \kernel\app_modules\card\services\CardService::createCardPNG($card); +//echo \kernel\helpers\Html::img("/resources/tmp/card_tpl.png"); +//if ($cardFile) { +// echo \kernel\helpers\Html::img($cardFile); +//} + diff --git a/kernel/app_modules/tgbot/TgbotModule.php b/kernel/app_modules/tgbot/TgbotModule.php new file mode 100644 index 0000000..674e489 --- /dev/null +++ b/kernel/app_modules/tgbot/TgbotModule.php @@ -0,0 +1,39 @@ +menuService = new MenuService(); + $this->migrationService = new MigrationService(); + } + + /** + * @throws \Exception + */ + public function init(): void + { + $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tgbot/migrations"); + + $this->menuService->createItem([ + "label" => "TG bot", + "url" => "/admin/tg-bot", + "slug" => "tg-bot", + ]); + } + + public function deactivate() + { + $this->menuService->removeItemBySlug("tg-bot"); + $this->migrationService->rollbackAtPath("{KERNEL_APP_MODULES}/tgbot/migrations"); + } +} \ No newline at end of file diff --git a/kernel/app_modules/tgbot/controllers/TgBotRestController.php b/kernel/app_modules/tgbot/controllers/TgBotRestController.php new file mode 100644 index 0000000..17ddc58 --- /dev/null +++ b/kernel/app_modules/tgbot/controllers/TgBotRestController.php @@ -0,0 +1,91 @@ +model = new Tgbot(); + } + + #[NoReturn] public function actionStore(): void + { + $request = new Request(); + $data = $request->post(); + + $tgBot = $this->model->where("bot_id", $data['bot_id'])->where("dialog_id", $data['dialog_id'])->first(); + + if (!$tgBot){ + foreach ($this->model->getFillable() as $item){ + $this->model->{$item} = $data[$item] ?? null; + } + + $userService = new UserService(); + $userForm = new CreateUserForm(); + $username = $data['username']; + $userForm->load([ + 'username' => $username, + 'password' => TokenService::random_bytes(20), + 'email' => $username . "@hookahdnr.ru" + ]); + + $user = $userService->create($userForm); + if ($user) { + $this->model->user_id = $user->id; + } + + $this->model->save(); + + $this->renderApi($this->model->toArray()); + } + + $this->renderApi($tgBot->toArray()); + } + + #[NoReturn] public function actionCreateCard(): void + { + $cardService = new CardService(); + $request = new Request(); + $data = $request->post(); + $form = new CreateCardForm(); + $form->load($data); + $form->setItem('payment_type', 2); + $form->setItem('bank_id', 323); + $form->setItem('info', 42); + $form->setItem('program', 74); + $form->setItem('cvc', 101); + $form->setItem('pin', 1111); + $form->setItem('status', 1); + + if ($form->validate()){ + $model = $cardService->create($form); + + $this->renderApi($model->load(['cardFile'])->toArray()); + } + + $this->renderApi([]); + } + + #[NoReturn] public function actionGetByDialog(int $dialog_id, int $bot_id): void + { + $model = \kernel\app_modules\tgbot\models\Tgbot::where(['dialog_id' => $dialog_id, 'bot_id' => $bot_id])->first(); + if ($model) { + $this->renderApi($model->toArray()); + } + $this->renderApi([]); + } + +} \ No newline at end of file diff --git a/kernel/app_modules/tgbot/controllers/TgbotController.php b/kernel/app_modules/tgbot/controllers/TgbotController.php new file mode 100644 index 0000000..706d7bd --- /dev/null +++ b/kernel/app_modules/tgbot/controllers/TgbotController.php @@ -0,0 +1,111 @@ +cgView->viewPath = KERNEL_APP_MODULES_DIR . "/tgbot/views/tgbot/"; + $this->botService = new TgBotService(); + } + + public function actionCreate(): void + { + $this->cgView->render("form.php"); + } + + public function actionIndex($page_number = 1): void + { + $this->cgView->render("index.php", ['page_number' => $page_number]); + } + + #[NoReturn] public function actionAdd(): void + { + $tgForm = new CreateTgBotForm(); + $tgForm->load($_REQUEST); + if ($tgForm->validate()) { + $tg = $this->botService->create($tgForm); + if ($tg) { + $this->redirect("/admin/tg-bot/view/" . $tg->id); + } + } + $this->redirect("/admin/tg-bot/create"); + } + + /** + * @throws Exception + */ + public function actionUpdate($id): void + { + $model = Tgbot::find($id); + if (!$model) { + throw new Exception(message: "The dialog not found"); + } + + $this->cgView->render("form.php", ['model' => $model]); + } + + /** + * @throws Exception + */ + public function actionEdit($id): void + { + $tg = Tgbot::find($id); + if (!$tg) { + throw new Exception(message: "The tag not found"); + } + $tgForm = new CreateTgBotForm(); + $tgService = new TgBotService(); + $tgForm->load($_REQUEST); + if ($tgForm->validate()) { + $tg = $tgService->update($tgForm, $tg); + if ($tg) { + $this->redirect("/admin/tg-bot/view/" . $tg->id); + } + } + $this->redirect("/admin/tg-bot/update/" . $id); + } + + /** + * @throws Exception + */ + public function actionView($id): void + { + $tg = Tgbot::find($id); + + if (!$tg) { + throw new Exception(message: "The dialog not found"); + } + $this->cgView->render("view.php", ['tg' => $tg]); + } + + /** + * @throws Exception + */ + #[NoReturn] public function actionDelete(int $id): void + { + $post = Tgbot::find($id)->first(); + if (!$post){ + throw new Exception(message: "The tg client not found"); + } + + $post->delete(); + $this->redirect("/admin/tg-bot/"); + } + +} \ No newline at end of file diff --git a/kernel/app_modules/tgbot/migrations/2024_12_08_172205_create_tgbot_table.php b/kernel/app_modules/tgbot/migrations/2024_12_08_172205_create_tgbot_table.php new file mode 100644 index 0000000..e29c253 --- /dev/null +++ b/kernel/app_modules/tgbot/migrations/2024_12_08_172205_create_tgbot_table.php @@ -0,0 +1,35 @@ +schema->create('tgbot', function (Blueprint $table) { + $table->increments('id'); + $table->bigInteger('bot_id')->nullable(false); + $table->bigInteger('dialog_id')->nullable(false); + $table->integer('user_id')->nullable(); + $table->string('username', 255)->nullable(false); + $table->string('first_name', 255)->nullable(); + $table->string('last_name', 255)->nullable(); + $table->integer('status')->nullable()->default(1); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + \kernel\App::$db->schema->dropIfExists('tgbot'); + } +}; diff --git a/kernel/app_modules/tgbot/models/Tgbot.php b/kernel/app_modules/tgbot/models/Tgbot.php new file mode 100644 index 0000000..9d02763 --- /dev/null +++ b/kernel/app_modules/tgbot/models/Tgbot.php @@ -0,0 +1,51 @@ + 'Bot ID', + 'dialog_id' => 'Dialog ID', + 'user_id' => 'User ID', + 'username' => 'Username', + 'first_name' => 'First name', + 'last_name' => 'Last name', + 'status' => 'Статус', + ]; + } + + /** + * @return string[] + */ + public static function getStatus(): array + { + return [ + self::DISABLE_STATUS => "Не активный", + self::ACTIVE_STATUS => "Активный", + ]; + } + + +} \ No newline at end of file diff --git a/kernel/app_modules/tgbot/models/forms/CreateTgBotForm.php b/kernel/app_modules/tgbot/models/forms/CreateTgBotForm.php new file mode 100644 index 0000000..1859436 --- /dev/null +++ b/kernel/app_modules/tgbot/models/forms/CreateTgBotForm.php @@ -0,0 +1,30 @@ + 'required', + 'dialog_id' => 'required', + 'username' => 'required', + 'first_name' => '', + 'last_name' => '', + 'status' => '' + ]; + } + +} \ No newline at end of file diff --git a/kernel/app_modules/tgbot/routs/tgbot.php b/kernel/app_modules/tgbot/routs/tgbot.php new file mode 100644 index 0000000..020f712 --- /dev/null +++ b/kernel/app_modules/tgbot/routs/tgbot.php @@ -0,0 +1,33 @@ +group(["prefix" => "admin"], function (CgRouteCollector $router) { + App::$collector->group(["before" => "auth"], function (RouteCollector $router) { + App::$collector->group(["prefix" => "tg-bot"], function (CGRouteCollector $router) { + App::$collector->get('/', [\app\modules\tgbot\controllers\TgbotController::class, 'actionIndex']); + App::$collector->get('/page/{page_number}', [\app\modules\tag\controllers\TagController::class, 'actionIndex']); + App::$collector->get('/create', [\app\modules\tgbot\controllers\TgbotController::class, 'actionCreate']); + App::$collector->post("/", [\app\modules\tgbot\controllers\TgbotController::class, 'actionAdd']); + App::$collector->get('/view/{id}', [\app\modules\tgbot\controllers\TgbotController::class, 'actionView']); + App::$collector->any('/update/{id}', [\app\modules\tgbot\controllers\TgbotController::class, 'actionUpdate']); + App::$collector->any("/edit/{id}", [\app\modules\tgbot\controllers\TgbotController::class, 'actionEdit']); + App::$collector->get('/delete/{id}', [\app\modules\tgbot\controllers\TgbotController::class, 'actionDelete']); + }); + App::$collector->group(["prefix" => "settings"], function (CGRouteCollector $router) { + App::$collector->get('/tag', [\app\modules\tag\controllers\TagController::class, 'actionSettings']); + App::$collector->post('/tag/update', [\app\modules\tag\controllers\TagController::class, 'actionSaveSettings']); + }); + }); +}); + +App::$collector->group(["prefix" => "api"], function (CgRouteCollector $router){ + App::$collector->group(['before' => 'bearer'], function (CgRouteCollector $router){ + $router->rest("tg-bot", [\app\modules\tgbot\controllers\TgBotRestController::class]); + $router->post('/tg-bot/create-card', [\app\modules\tgbot\controllers\TgBotRestController::class, 'actionCreateCard']); + $router->get('/tg-bot/get-by-dialog/{dialog_id}/{bot_id}', [\app\modules\tgbot\controllers\TgBotRestController::class, 'actionGetByDialog']); + }); +}); \ No newline at end of file diff --git a/kernel/app_modules/tgbot/services/TgBotService.php b/kernel/app_modules/tgbot/services/TgBotService.php new file mode 100644 index 0000000..6beeab8 --- /dev/null +++ b/kernel/app_modules/tgbot/services/TgBotService.php @@ -0,0 +1,48 @@ +bot_id = $form_model->getItem('bot_id'); + $model->dialog_id = $form_model->getItem('dialog_id'); + $model->user_id = $form_model->getItem('user_id'); + $model->username = $form_model->getItem('username'); + $model->first_name = $form_model->getItem('first_name'); + $model->last_name = $form_model->getItem('last_name'); + $model->status = $form_model->getItem('status'); + if ($model->save()){ + return $model; + } + + return false; + } + + public function update(FormModel $form_model, Tgbot $model): false|Tgbot + { + $model->bot_id = $form_model->getItem('bot_id'); + $model->dialog_id = $form_model->getItem('dialog_id'); + $model->user_id = $form_model->getItem('user_id'); + $model->username = $form_model->getItem('username'); + $model->first_name = $form_model->getItem('first_name'); + $model->last_name = $form_model->getItem('last_name'); + $model->status = $form_model->getItem('status'); + + if ($model->save()){ + return $model; + } + + return false; + } + +} \ No newline at end of file diff --git a/kernel/app_modules/tgbot/views/tgbot/form.php b/kernel/app_modules/tgbot/views/tgbot/form.php new file mode 100644 index 0000000..98bf8f1 --- /dev/null +++ b/kernel/app_modules/tgbot/views/tgbot/form.php @@ -0,0 +1,83 @@ +beginForm(isset($model) ? "/admin/tg-bot/edit/" . $model->id : "/admin/tg-bot"); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "bot_id", params: [ + 'class' => "form-control", + 'placeholder' => 'Bot ID', + 'value' => $model->bot_id ?? '' +]) + ->setLabel("Bot ID") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "dialog_id", params: [ + 'class' => "form-control", + 'placeholder' => 'Dialog ID', + 'value' => $model->dialog_id ?? '' +]) + ->setLabel("Dialog ID") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "username", params: [ + 'class' => "form-control", + 'placeholder' => 'Username', + 'value' => $model->username ?? '' +]) + ->setLabel("Username") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "first_name", params: [ + 'class' => "form-control", + 'placeholder' => 'First name', + 'value' => $model->first_name ?? '' +]) + ->setLabel("First name") + ->render(); + +$form->field(class: \itguild\forms\inputs\TextInput::class, name: "last_name", params: [ + 'class' => "form-control", + 'placeholder' => 'Last name', + 'value' => $model->last_name ?? '' +]) + ->setLabel("Last name") + ->render(); + + +$form->field(\itguild\forms\inputs\Select::class, 'status', [ + 'class' => "form-control", + 'value' => $model->status ?? '' +]) + ->setLabel("Статус") + ->setOptions(Tgbot::getStatus()) + ->render(); +?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-submit", params: [ + 'class' => "btn btn-primary ", + 'value' => 'Отправить', + 'typeInput' => 'submit' + ]) + ->render(); + ?> +
+
+ field(\itguild\forms\inputs\Button::class, name: "btn-reset", params: [ + 'class' => "btn btn-warning", + 'value' => 'Сбросить', + 'typeInput' => 'reset' + ]) + ->render(); + ?> +
+
+endForm(); diff --git a/kernel/app_modules/tgbot/views/tgbot/index.php b/kernel/app_modules/tgbot/views/tgbot/index.php new file mode 100644 index 0000000..35249ca --- /dev/null +++ b/kernel/app_modules/tgbot/views/tgbot/index.php @@ -0,0 +1,59 @@ +setTitle("Список существующих диалогов"); + +$table = new ListEloquentTable(new EloquentDataProvider(\app\modules\tgbot\models\Tgbot::class, [ + 'currentPage' => $page_number, + 'perPage' => 8, + 'params' => ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/tg-bot", + 'searchPrefix' => "", + 'searchParams' => (new \kernel\Request())->get(), +])); + +$table->beforePrint(function () { + return PrimaryBtn::create("Создать", "/admin/tg-bot/create")->fetch(); +}); + +$table->columns([ + "status" => [ + "value" => function ($cell) { + return \app\modules\tgbot\models\Tgbot::getStatus()[$cell]; + } + ], + "username" => [ + "filter" => [ + "class" => \Itguild\Tables\Filter\InputTextFilter::class + ] + ], + "bot_id" => [ + "filter" => [ + "class" => \Itguild\Tables\Filter\InputTextFilter::class + ] + ], + "dialog_id" => [ + "filter" => [ + "class" => \Itguild\Tables\Filter\InputTextFilter::class + ] + ] +]); + + +$table->addAction(\kernel\IGTabel\action_column\ViewActionColumn::class); +$table->addAction(\kernel\IGTabel\action_column\DeleteActionColumn::class); +$table->addAction(\kernel\IGTabel\action_column\EditActionColumn::class); +$table->create(); +$table->render(); \ No newline at end of file diff --git a/kernel/app_modules/tgbot/views/tgbot/view.php b/kernel/app_modules/tgbot/views/tgbot/view.php new file mode 100644 index 0000000..1fcbda1 --- /dev/null +++ b/kernel/app_modules/tgbot/views/tgbot/view.php @@ -0,0 +1,30 @@ + ["class" => "table table-bordered", "border" => "2"], + 'baseUrl' => "/admin/tg-bot", +])); +$table->beforePrint(function () use ($tg) { + $btn = PrimaryBtn::create("Список", "/admin/tg-bot")->fetch(); + $btn .= SuccessBtn::create("Редактировать", "/admin/tg-bot/update/" . $tg->id)->fetch(); + $btn .= DangerBtn::create("Удалить", "/admin/tg-bot/delete/" . $tg->id)->fetch(); + return $btn; +}); +$table->rows([ + 'status' => (function ($data) { + return \app\modules\tgbot\models\Tgbot::getStatus()[$data]; + }) +]); +$table->create(); +$table->render(); \ No newline at end of file diff --git a/kernel/console/controllers/AdminThemeController.php b/kernel/console/controllers/AdminThemeController.php index 2fc1739..d33d44b 100644 --- a/kernel/console/controllers/AdminThemeController.php +++ b/kernel/console/controllers/AdminThemeController.php @@ -18,31 +18,15 @@ class AdminThemeController extends ConsoleController throw new \Exception('Missing admin theme path "--path" specified'); } - $zip = new ZipArchive; - $tmpThemeDir = md5(time()); - $res = $zip->open(ROOT_DIR . $this->argv['path']); - if ($res === TRUE) { - $tmpThemeDirFull = RESOURCES_DIR . '/tmp/ad/' . $tmpThemeDir . "/"; - $zip->extractTo($tmpThemeDirFull); - $zip->close(); - $this->out->r('Архив распакован', 'green'); + if (file_exists(ROOT_DIR . $this->argv['path'])) { + $adminThemeService = new AdminThemeService(); + if ($adminThemeService->install($this->argv['path'])) { + $this->out->r("Тема админ-панели установлена", 'green'); + } else { + $this->out->r("Ошибка установки темы админ-панели", 'red'); + } } else { - $this->out->r('Message: Ошибка чтения архива', 'red'); - } - - if (file_exists($tmpThemeDirFull . "meta/manifest.json")){ - $manifestJson = getConst(file_get_contents($tmpThemeDirFull . "meta/manifest.json")); - $manifest = Manifest::getWithVars($manifestJson); - $this->out->r('manifest.json инициализирован', 'green'); - - $fileHelper = new Files(); - $fileHelper->copy_folder($tmpThemeDirFull . "meta", $manifest['theme_path']); - $fileHelper->copy_folder($tmpThemeDirFull . "resources", $manifest['resource_path']); - - $this->out->r("Удаляем временные файлы", 'green'); - $fileHelper->recursiveRemoveDir($tmpThemeDirFull); - - $this->out->r("Тема " . $manifest['name'] . " установлена", 'green'); + $this->out->r("Тема админ-панели не найдена", 'red'); } } @@ -53,17 +37,11 @@ class AdminThemeController extends ConsoleController } if (file_exists(ROOT_DIR . $this->argv['path'])) { - $themeName = basename($this->argv['path']); - $active_admin_theme = Option::where("key", "active_admin_theme")->first(); - if ($active_admin_theme->value === ROOT_DIR . $this->argv['path']) { - $this->out->r("Меняем тему на базовую", 'green'); - $adminThemeService = new AdminThemeService(); - $adminThemeService->setActiveAdminTheme(KERNEL_ADMIN_THEMES_DIR . '/default'); - $this->out->r("Тема изменена", 'green'); - } - $fileHelper = new Files(); - $fileHelper->recursiveRemoveDir(ROOT_DIR . $this->argv['path']); - $fileHelper->recursiveRemoveDir(RESOURCES_DIR . '/' . $themeName); + $adminThemeService = new AdminThemeService(); + $adminThemeService->uninstall($this->argv['path']); + + + $this->out->r("Тема удалена", 'green'); } else { @@ -71,4 +49,22 @@ class AdminThemeController extends ConsoleController } } + /** + * @throws \Exception + */ + public function actionPackTheme(): void + { + if (!isset($this->argv['path'])) { + throw new \Exception('Missing admin theme path "--path" specified'); + } + + if (file_exists(ROOT_DIR . $this->argv['path'])) { + $adminThemeService = new AdminThemeService(); + $adminThemeService->pack($this->argv['path']); + $this->out->r("Тема админ-панели заархивирована", 'green'); + } else { + $this->out->r("Тема админ-панели не найдена", 'red'); + } + } + } \ No newline at end of file diff --git a/kernel/console/routs/cli.php b/kernel/console/routs/cli.php index d0f1032..4676cc7 100644 --- a/kernel/console/routs/cli.php +++ b/kernel/console/routs/cli.php @@ -35,6 +35,10 @@ App::$collector->group(["prefix" => "admin-theme"], callback: function (RouteCol [\kernel\console\controllers\AdminThemeController::class, 'actionUninstallTheme'], additionalInfo: ['description' => 'Удалить тему админ-панели', 'params' => ['--path' => 'Путь к удаляемой теме']] ); + App::$collector->console('pack', + [\kernel\console\controllers\AdminThemeController::class, 'actionPackTheme'], + additionalInfo: ['description' => 'Заархивировать тему админ-панели', 'params' => ['--path' => 'Путь к теме, которую нужно заархивировать']] + ); }); App::$collector->group(["prefix" => "secure"], callback: function (RouteCollector $router){ diff --git a/kernel/filters/BootstrapSelectFilter.php b/kernel/filters/BootstrapSelectFilter.php new file mode 100644 index 0000000..86daceb --- /dev/null +++ b/kernel/filters/BootstrapSelectFilter.php @@ -0,0 +1,23 @@ +name, [ + 'class' => 'form-control', + 'options' => $this->params['options'], + 'value' => $this->value, + 'prompt' => $this->params['prompt'] ?? null, + ]); + + return "" . $select->create()->fetch() . ""; + } +} \ No newline at end of file diff --git a/kernel/filters/BootstrapTextFilter.php b/kernel/filters/BootstrapTextFilter.php new file mode 100644 index 0000000..32aec8b --- /dev/null +++ b/kernel/filters/BootstrapTextFilter.php @@ -0,0 +1,21 @@ +name, [ + 'value' => $this->value, + 'class' => "form-control" + ]); + + return "" . $textInput->create()->fetch() . ""; + + } +} \ No newline at end of file diff --git a/kernel/helpers/ImageGD.php b/kernel/helpers/ImageGD.php new file mode 100644 index 0000000..3b15b05 --- /dev/null +++ b/kernel/helpers/ImageGD.php @@ -0,0 +1,48 @@ +img = imagecreatefrompng($resource); + } + else { + $this->img = imagecreatetruecolor($width, $height); + } + imagesavealpha($this->img, true); + } + + public function addText(string $font_size, int $degree, int $x, int $y, string $color, string $font, string $text): void + { + $rgbArr = $this->hexToRgb($color); + $color = imagecolorallocate($this->img, $rgbArr[0], $rgbArr[1], $rgbArr[2]); + imagettftext($this->img, $font_size, $degree, $x, $y, $color, $font, $text); + } + + public function addImg(\GdImage $gdImage, int $location_x, int $location_y, int $offset_src_x, int $offset_src_y, int $src_width, int $src_height, int $no_transparent): void + { + imagecopymerge($this->img, $gdImage, $location_x, $location_y, $offset_src_x, $offset_src_y, $src_width, $src_height, $no_transparent); + } + + public function getImg() + { + return $this->img; + } + + public function save(string $path): void + { + imagepng($this->img, $path); + imagedestroy($this->img); + } + + protected function hexToRgb(string $hex) + { + return sscanf($hex, "#%02x%02x%02x"); + } + +} \ No newline at end of file diff --git a/kernel/manifest.json b/kernel/manifest.json index 6521135..e19c591 100644 --- a/kernel/manifest.json +++ b/kernel/manifest.json @@ -1,6 +1,6 @@ { "name": "Kernel", - "version": "0.1.1", + "version": "0.1.2", "author": "ITGuild", "slug": "kernel", "type": "kernel", diff --git a/kernel/modules/menu/views/index.php b/kernel/modules/menu/views/index.php index 0cad83d..d3bbfcd 100644 --- a/kernel/modules/menu/views/index.php +++ b/kernel/modules/menu/views/index.php @@ -19,12 +19,15 @@ $table = new ListEloquentTable(new EloquentDataProvider(Menu::class, [ 'baseUrl' => "/admin/settings/menu", ])); $table->columns([ - 'parent_id' => (function ($data) { + 'parent_id' => function ($data) { if ($data == 0) return null; return Menu::find($data)->label; - }), + }, 'icon_file' => function ($data) { return $data ? "" : ""; + }, + 'status' => function ($data) { + return Menu::getStatus()[$data]; } ]); $table->beforePrint(function () { diff --git a/kernel/modules/module_shop_client/controllers/ModuleShopClientController.php b/kernel/modules/module_shop_client/controllers/ModuleShopClientController.php index d4d4102..13c4e6c 100644 --- a/kernel/modules/module_shop_client/controllers/ModuleShopClientController.php +++ b/kernel/modules/module_shop_client/controllers/ModuleShopClientController.php @@ -10,14 +10,12 @@ use kernel\Flash; use kernel\helpers\Debug; use kernel\helpers\Files; use kernel\helpers\RESTClient; -use kernel\helpers\SMTP; -use kernel\Mailing; +use kernel\modules\module_shop_client\services\ModuleShopClientService; use kernel\Request; use kernel\services\AdminThemeService; use kernel\services\KernelService; use kernel\services\ModuleService; use kernel\services\ModuleShopService; -use kernel\services\TokenService; use PHPMailer\PHPMailer\Exception; class ModuleShopClientController extends AdminController @@ -26,6 +24,7 @@ class ModuleShopClientController extends AdminController protected Client $client; protected ModuleService $moduleService; protected KernelService $kernelService; + protected ModuleShopClientService $moduleShopClientService; protected function init(): void { @@ -35,6 +34,7 @@ class ModuleShopClientController extends AdminController $this->client = new Client(); $this->moduleService = new ModuleService(); $this->kernelService = new KernelService(); + $this->moduleShopClientService = new ModuleShopClientService(); } /** @@ -42,7 +42,6 @@ class ModuleShopClientController extends AdminController */ public function actionIndex(int $page_number = 1): void { - if ($this->moduleService->issetModuleShopToken()) { if ($this->moduleService->isServerAvailable()) { @@ -157,24 +156,71 @@ class ModuleShopClientController extends AdminController $this->redirect('/admin/module_shop_client', 302); } +// public function actionSearch(int $page_number = 1): void +// { +// $request = new Request(); +// $filters = $request->get(); +//// Debug::dd($filters); +// if ($this->moduleService->issetModuleShopToken()) { +// if ($this->moduleService->isServerAvailable()) { +// $modules_info = []; +// $per_page = 8; +// $modules = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug'); +// $modules = json_decode($modules->getBody()->getContents(), true); +// foreach ($modules as $module) { +// foreach ($filters as $key => $value) { +// if ($value === '') continue; +// if ($module[$key] !== $value) { +// break; +// } +// +// $modules_info[] = $module; +// } +// } +// $module_count = count($modules_info); +// $modules_info = array_slice($modules_info, $per_page * ($page_number - 1), $per_page); +// +// $this->cgView->render("index.php", [ +// 'modules_info' => $modules_info, +// 'moduleService' => $this->moduleService, +// 'page_number' => $page_number, +// 'module_count' => $module_count, +// 'per_page' => $per_page, +// 'kernelService' => new KernelService(), +// 'adminThemeService' => new AdminThemeService(), +// 'filterValues' => $filters +// ]); +// } else { +// $this->cgView->render("module_shop_error_connection.php"); +// } +// +// } else { +// $this->cgView->render("login_at_module_shop.php"); +// } +// } + public function actionSearch(int $page_number = 1): void { $request = new Request(); $filters = $request->get(); if ($this->moduleService->issetModuleShopToken()) { if ($this->moduleService->isServerAvailable()) { - $modules_info = []; +// $modules_info = []; $per_page = 8; - $modules = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug'); - $modules = json_decode($modules->getBody()->getContents(), true); - foreach ($modules as $module) { - foreach ($filters as $key => $value) { + $modules_info = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug'); + $modules_info = json_decode($modules_info->getBody()->getContents(), true); + foreach ($modules_info as $key => $module) { + foreach ($filters as $column => $value) { if ($value === '') continue; - if ($module[$key] !== $value) { - break; + if (is_numeric($value)) { + if ($module[$column] !== $value) { + unset($modules_info[$key]); + } + } elseif (is_string($value)) { + if (!str_contains($module[$column], $value)) { + unset($modules_info[$key]); + } } - - $modules_info[] = $module; } } $module_count = count($modules_info); @@ -188,6 +234,7 @@ class ModuleShopClientController extends AdminController 'per_page' => $per_page, 'kernelService' => new KernelService(), 'adminThemeService' => new AdminThemeService(), + 'filterValues' => $filters ]); } else { $this->cgView->render("module_shop_error_connection.php"); @@ -209,7 +256,7 @@ class ModuleShopClientController extends AdminController $moduleShopService = new ModuleShopService(); $result = $moduleShopService->email_auth($address); - if ($result['status'] == 'success'){ + if ($result['status'] == 'success') { $this->cgView->render('enter_code.php', ['email' => $address]); } @@ -224,7 +271,7 @@ class ModuleShopClientController extends AdminController $moduleShopService = new ModuleShopService(); $result = $moduleShopService->code_check($code); - if (isset($result['access_token'])){ + if (isset($result['access_token'])) { $envFile = \EnvEditor\EnvFile::loadFrom(ROOT_DIR . "/.env"); diff --git a/kernel/modules/module_shop_client/services/ModuleShopClientService.php b/kernel/modules/module_shop_client/services/ModuleShopClientService.php new file mode 100644 index 0000000..d86afca --- /dev/null +++ b/kernel/modules/module_shop_client/services/ModuleShopClientService.php @@ -0,0 +1,22 @@ +getBody()->getContents(), true); +// return array_slice($modules_info, $perPage * ($pageNumber - 1), $perPage); +// } +// +// public function getModulesInfoWithFilters(string $url, int $perPage, int $pageNumber): \Psr\Http\Message\ResponseInterface +// { +// $modules_info = RESTClient::request($url); +// $modules_info = json_decode($modules_info->getBody()->getContents(), true); +// return array_slice($modules_info, $perPage * ($pageNumber - 1), $perPage); +// } +} \ No newline at end of file diff --git a/kernel/modules/module_shop_client/views/index.php b/kernel/modules/module_shop_client/views/index.php index 930793c..f3474d4 100644 --- a/kernel/modules/module_shop_client/views/index.php +++ b/kernel/modules/module_shop_client/views/index.php @@ -7,6 +7,7 @@ * @var \kernel\services\ModuleService $moduleService * @var \kernel\services\KernelService $kernelService * @var \kernel\services\AdminThemeService $adminThemeService + * @var array $filterValues */ use Itguild\Tables\ListJsonTable; @@ -42,15 +43,21 @@ $table->addAction(function ($row, $url) use ($moduleService) { $table->columns([ 'type' => [ 'filter' => [ - 'class' => \Itguild\Tables\Filter\SelectFilter::class, - 'param' => ['kernel', 'entity'], - 'value' => "kernel" + 'class' => \kernel\filters\BootstrapSelectFilter::class, + 'params' => [ + 'options' => [ + 'kernel' => 'kernel', + 'entity' => 'entity', + ], + 'prompt' => 'Не выбрано' + ], + 'value' => $filterValues['type'] ?? '' ], ] ]); -$table->addAction(function ($row, $url) use ($moduleService){ - if ($row['slug'] !== 'kernel') { +$table->addAction(function ($row, $url) use ($moduleService) { + if ($row['type'] === 'entity' || $row['type'] === 'additional_property') { if ($moduleService->isInstall($row['slug'])) { $url = "$url/delete/?slug=" . $row['slug']; @@ -61,16 +68,19 @@ $table->addAction(function ($row, $url) use ($moduleService){ return \kernel\widgets\IconBtn\IconBtnInstallWidget::create(['url' => $url])->run(); } } - return null; + + return false; }); $table->addAction(function ($row, $url) use ($moduleService) { - $slug = $row['slug']; - if ($moduleService->isInstall($slug)) { - if (!$moduleService->isLastVersion($slug)) { - $url = "$url/update/?slug=" . $slug; + if ($row['type'] === 'entity' || $row['type'] === 'additional_property') { + $slug = $row['slug']; + if ($moduleService->isInstall($slug)) { + if (!$moduleService->isLastVersion($slug)) { + $url = "$url/update/?slug=" . $slug; - return \kernel\widgets\IconBtn\IconBtnUpdateWidget::create(['url' => $url])->run(); + return \kernel\widgets\IconBtn\IconBtnUpdateWidget::create(['url' => $url])->run(); + } } } @@ -78,8 +88,7 @@ $table->addAction(function ($row, $url) use ($moduleService) { }); $table->addAction(function ($row, $url) use ($kernelService) { - $slug = $row['slug']; - if ($slug === 'kernel') { + if ($row['type'] === 'kernel') { if (!$kernelService->isLastVersion()) { $url = "$url/kernel/update_form/"; @@ -91,9 +100,8 @@ $table->addAction(function ($row, $url) use ($kernelService) { }); $table->addAction(function ($row, $url) use ($adminThemeService) { - $type = $row['type']; - $slug = $row['slug']; - if ($type === 'admin_theme') { + if ($row['type'] === 'admin_theme') { + $slug = $row['slug']; if ($adminThemeService->isInstall($slug)) { if (!$adminThemeService->isLastVersion($slug)) { $url = "$url/admin_theme/update/"; diff --git a/kernel/modules/post/views/index.php b/kernel/modules/post/views/index.php index 045feb1..4b47124 100644 --- a/kernel/modules/post/views/index.php +++ b/kernel/modules/post/views/index.php @@ -15,11 +15,15 @@ use kernel\widgets\IconBtn\IconBtnDeleteWidget; use kernel\widgets\IconBtn\IconBtnEditWidget; use kernel\widgets\IconBtn\IconBtnViewWidget; +$get = (new \kernel\Request())->get(); + $table = new ListEloquentTable(new EloquentDataProvider(Post::class, [ 'currentPage' => $page_number, 'perPage' => 3, 'params' => ["class" => "table table-bordered", "border" => "2"], - 'baseUrl' => "/admin/post" + 'baseUrl' => "/admin/post", + 'searchPrefix' => "", + 'searchParams' => $get, ])); $view->setTitle("Список постов"); @@ -36,36 +40,57 @@ foreach ($additionals as $additional) { }); } +//\kernel\helpers\Debug::dd($request); + $table->columns([ - 'created_at' => function ($data) { - if (!$data){ - return null; - } - - return (new DateTimeImmutable($data))->format("d-m-Y"); - }, + 'title' => [ + 'filter' => [ + 'class' => \kernel\filters\BootstrapTextFilter::class, + 'value' => $get['title'] ?? '' + ] + ], + 'content' => [ + 'filter' => [ + 'class' => \kernel\filters\BootstrapTextFilter::class, + 'value' => $get['content'] ?? '' + ] + ], + 'created_at' => [ + 'format' => 'date:d-m-Y', + ], 'updated_at' => function ($data) { - if (!$data){ + if (!$data) { return null; } return (new DateTimeImmutable($data))->format("d-m-Y"); }, - 'user_id' => (function ($data) { - return User::find($data)->username; - }) + 'user_id' => [ + 'value' => function ($data) { + return User::find($data)->username; + }, + 'filter' => [ + 'class' => \kernel\filters\BootstrapSelectFilter::class, + 'params' => [ + 'options' => \kernel\modules\user\service\UserService::createUsernameArr(), + 'prompt' => 'Не выбрано' + ], + 'value' => $get['user_id'] ?? '', + ], + ] ]); + $table->beforePrint(function () { return IconBtnCreateWidget::create(['url' => '/admin/post/create'])->run(); }); -$table->addAction(function($row) { +$table->addAction(function ($row) { return IconBtnViewWidget::create(['url' => '/admin/post/view/' . $row['id']])->run(); }); -$table->addAction(function($row) { +$table->addAction(function ($row) { return IconBtnEditWidget::create(['url' => '/admin/post/update/' . $row['id']])->run(); }); -$table->addAction(function($row) { +$table->addAction(function ($row) { return IconBtnDeleteWidget::create(['url' => '/admin/post/delete/' . $row['id']])->run(); }); $table->create(); diff --git a/kernel/modules/user/controllers/UserController.php b/kernel/modules/user/controllers/UserController.php index fdd8534..ddf0651 100644 --- a/kernel/modules/user/controllers/UserController.php +++ b/kernel/modules/user/controllers/UserController.php @@ -6,6 +6,8 @@ use Exception; use JetBrains\PhpStorm\NoReturn; use kernel\AdminController; use kernel\EntityRelation; +use kernel\FileUpload; +use kernel\helpers\Debug; use kernel\modules\user\models\forms\CreateUserForm; use kernel\modules\user\models\User; use kernel\modules\user\service\UserService; @@ -35,10 +37,17 @@ class UserController extends AdminController { $userForm = new CreateUserForm(); $userForm->load($_REQUEST); + + + if (isset($_FILES['user_photo']) && $_FILES['user_photo']['error'] === UPLOAD_ERR_OK) { + $file = new FileUpload($_FILES['user_photo'], ['jpg', 'jpeg', 'png']); + $file->upload(); + $userForm->setItem('user_photo', $file->getUploadFile()); + } + if ($userForm->validate()){ $user = $this->userService->create($userForm); - $entityRelation = new EntityRelation(); $entityRelation->saveEntityRelation(entity: "user", model: $user, request: new Request()); @@ -98,6 +107,13 @@ class UserController extends AdminController $userForm = new CreateUserForm(); $userService = new UserService(); $userForm->load($_REQUEST); + + if (isset($_FILES['user_photo']) && $_FILES['user_photo']['error'] === UPLOAD_ERR_OK) { + $file = new FileUpload($_FILES['user_photo'], ['jpg', 'jpeg', 'png']); + $file->upload(); + $userForm->setItem('user_photo', $file->getUploadFile()); + } + if ($userForm->validateForUpdate()){ $user = $userService->update($userForm, $user); @@ -128,4 +144,13 @@ class UserController extends AdminController $this->redirect("/admin/user/"); } + public function actionProfile(): void + { + $user = UserService::getAuthUser(); + if (!$user){ + throw new Exception(message: "The user not found"); + } + $this->cgView->render("view.php", ['user' => $user]); + } + } \ No newline at end of file diff --git a/kernel/modules/user/migrations/2024_09_23_125827_create_user_table.php b/kernel/modules/user/migrations/2024_09_23_125827_create_user_table.php index a762579..2b2ab0f 100644 --- a/kernel/modules/user/migrations/2024_09_23_125827_create_user_table.php +++ b/kernel/modules/user/migrations/2024_09_23_125827_create_user_table.php @@ -20,6 +20,7 @@ return new class extends Migration $table->string('username', 255)->nullable(false); $table->string('email', 255); $table->string('password_hash', 255); + $table->string('user_photo', 255)->nullable(); $table->integer('role')->default(1); $table->string('access_token', 255)->nullable(true); $table->dateTime('access_token_expires_at')->nullable(true); diff --git a/kernel/modules/user/models/User.php b/kernel/modules/user/models/User.php index 3dd03c1..78afe96 100644 --- a/kernel/modules/user/models/User.php +++ b/kernel/modules/user/models/User.php @@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Model; * @property string $username * @property string $email * @property string $password_hash + * @property string $user_photo * @property string $access_token * @property string $access_token_expires_at * @method static find($id) @@ -17,7 +18,7 @@ class User extends Model { const ADMIN_USER_ROLE = 9; protected $table = 'user'; - protected $fillable = ['username', 'email', 'password_hash', 'role', 'access_token', 'access_token_expires_at']; + protected $fillable = ['username', 'email', 'password_hash', 'user_photo', 'role', 'access_token', 'access_token_expires_at']; protected array $dates = ['deleted at']; public static function labels(): array @@ -25,6 +26,7 @@ class User extends Model { return [ 'username' => 'Логин', 'email' => 'Email', + 'user_photo' => 'Фото профиля', 'created_at' => 'Создан', 'updated_at' => 'Обновлен', ]; diff --git a/kernel/modules/user/models/forms/CreateUserForm.php b/kernel/modules/user/models/forms/CreateUserForm.php index 73c5f77..bcf37df 100644 --- a/kernel/modules/user/models/forms/CreateUserForm.php +++ b/kernel/modules/user/models/forms/CreateUserForm.php @@ -12,7 +12,8 @@ class CreateUserForm extends FormModel return [ 'username' => 'required|min-str-len:5|max-str-len:30', 'password' => 'required|min-str-len:5|max-str-len:30', - 'email' => 'required|email' + 'email' => 'required|email', + 'user_photo' => '' ]; } @@ -21,7 +22,9 @@ class CreateUserForm extends FormModel return [ 'username' => 'required|min-str-len:5|max-str-len:30', 'password' => '', - 'email' => 'required|email' + 'email' => 'required|email', + 'user_photo' => '' + ]; } diff --git a/kernel/modules/user/routs/user.php b/kernel/modules/user/routs/user.php index 5572c92..7360b89 100644 --- a/kernel/modules/user/routs/user.php +++ b/kernel/modules/user/routs/user.php @@ -17,6 +17,7 @@ App::$collector->group(["prefix" => "admin"], function (RouteCollector $router){ App::$collector->any('/update/{id}', [\kernel\modules\user\controllers\UserController::class, 'actionUpdate']); App::$collector->any("/edit/{id}", [\kernel\modules\user\controllers\UserController::class, 'actionEdit']); App::$collector->get('/delete/{id}', [\kernel\modules\user\controllers\UserController::class, 'actionDelete']); + App::$collector->get('/profile', [\kernel\modules\user\controllers\UserController::class, 'actionProfile']); }); }); }); \ No newline at end of file diff --git a/kernel/modules/user/service/UserService.php b/kernel/modules/user/service/UserService.php index 9e8dd5d..9915c2a 100644 --- a/kernel/modules/user/service/UserService.php +++ b/kernel/modules/user/service/UserService.php @@ -15,6 +15,7 @@ class UserService $model->username = $form_model->getItem('username'); $model->email = $form_model->getItem('email'); $model->password_hash = password_hash($form_model->getItem('password'), PASSWORD_DEFAULT); + $model->user_photo = $form_model->getItem('user_photo'); if ($model->save()){ return $model; } @@ -29,6 +30,7 @@ class UserService if ($form_model->getItem('password')) { $user->password_hash = password_hash($form_model->getItem('password'), PASSWORD_DEFAULT); } + $user->user_photo = $form_model->getItem('user_photo'); if ($user->save()){ return $user; } @@ -80,6 +82,28 @@ class UserService return ''; } + public static function getAuthUserId(): string + { + $user = self::getAuthUser(); + if ($user){ + return $user->id; + } + + return ''; + } + + public static function getAuthUserPhoto(): string|null + { + $user = self::getAuthUser(); + if ($user){ + if ($user->user_photo) { + return $user->user_photo; + } + } + + return null; + } + public function getByAccessToken(string $token) { return $this->getByField("access_token", $token); diff --git a/kernel/modules/user/views/form.php b/kernel/modules/user/views/form.php index e32d35f..89f94d2 100644 --- a/kernel/modules/user/views/form.php +++ b/kernel/modules/user/views/form.php @@ -32,6 +32,16 @@ $form->field(class: \itguild\forms\inputs\TextInput::class, name: "email", param ->setLabel("Email") ->render(); +if (!empty($model->user_photo)){ + echo "
"; +} +$form->field(class: \itguild\forms\inputs\File::class, name: "user_photo", params: [ + 'class' => "form-control", + 'value' => $model->user_photo ?? '' +]) + ->setLabel("Фото профиля") + ->render(); + $entityRelations = new \kernel\EntityRelation(); if (!isset($model)) { $model = new User(); diff --git a/kernel/modules/user/views/index.php b/kernel/modules/user/views/index.php index e492f5e..abfce5b 100644 --- a/kernel/modules/user/views/index.php +++ b/kernel/modules/user/views/index.php @@ -17,13 +17,15 @@ use kernel\widgets\IconBtn\IconBtnDeleteWidget; use kernel\widgets\IconBtn\IconBtnEditWidget; use kernel\widgets\IconBtn\IconBtnViewWidget; +$get = (new \kernel\Request())->get(); + $table = new ListEloquentTable(new EloquentDataProvider(User::class, [ 'currentPage' => $page_number, 'perPage' => 3, 'params' => ["class" => "table table-bordered", "border" => "2"], 'baseUrl' => "/admin/user", - 'filters' => ['email'], -])); + 'searchPrefix' => "", + 'searchParams' => $get,])); $entityRelation = new \kernel\EntityRelation(); $additionals = $entityRelation->getEntityRelationsBySlug("user"); @@ -37,9 +39,13 @@ foreach ($additionals as $additional) { $table->columns([ 'username' => [ "filter" => [ - 'class' => \Itguild\Tables\Filter\InputTextFilter::class + 'class' => \kernel\filters\BootstrapTextFilter::class, + 'value' => $get['username'] ?? null, ] ], + 'user_photo' => function ($data) { + return $data ? "" : ""; + }, 'created_at' => function ($data) { if (!$data){ return null; diff --git a/kernel/modules/user/views/view.php b/kernel/modules/user/views/view.php index 856186f..f234627 100644 --- a/kernel/modules/user/views/view.php +++ b/kernel/modules/user/views/view.php @@ -35,6 +35,9 @@ foreach ($additionals as $key => $additional) { } $table->rows([ + 'user_photo' => function ($data) { + return $data ? "" : ""; + }, 'created_at' => function ($data) { if (!$data){ return null; diff --git a/kernel/services/AdminThemeService.php b/kernel/services/AdminThemeService.php index 457fa02..f8d5aea 100644 --- a/kernel/services/AdminThemeService.php +++ b/kernel/services/AdminThemeService.php @@ -4,12 +4,16 @@ namespace kernel\services; use DirectoryIterator; use kernel\helpers\Debug; +use kernel\helpers\Files; use kernel\helpers\Manifest; use kernel\helpers\RESTClient; use kernel\models\Option; +use ZipArchive; class AdminThemeService { + protected array $errors = []; + protected Option $option; protected string $active_theme; protected ModuleService $moduleService; @@ -22,6 +26,24 @@ class AdminThemeService $this->moduleService = new ModuleService(); } + /** + * @return array + */ + public function getErrors(): array + { + return $this->errors; + } + + /** + * @param $msg + * @return void + */ + public function addError($msg): void + { + $this->errors[] = $msg; + } + + public function findActiveAdminTheme(): void { $model = Option::where("key", "active_admin_theme")->first(); @@ -50,7 +72,7 @@ class AdminThemeService $info = []; $theme = getConst($theme); $info['path'] = $theme; - if (file_exists($theme . "/manifest.json")){ + if (file_exists($theme . "/manifest.json")) { $manifest = file_get_contents($theme . "/manifest.json"); $manifest = Manifest::getWithVars($manifest); $manifest['preview'] = $manifest['resource'] . "/" . $manifest['preview']; @@ -60,6 +82,11 @@ class AdminThemeService return $info; } + public function getAdminThemeInfoBySlug(string $slug) + { + // TODO + } + public function isInstall(string $slug): bool { $adminThemePaths = Option::where("key", "admin_theme_paths")->first(); @@ -85,12 +112,13 @@ class AdminThemeService public function isLastVersion(string $slug): bool { if ($this->moduleService->isServerAvailable()) { - $modules_info = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug'); + $modulesInfo = RESTClient::request($_ENV['MODULE_SHOP_URL'] . '/api/module_shop/gb_slug'); - $modules_info = json_decode($modules_info->getBody()->getContents(), true); + $modulesInfo = json_decode($modulesInfo->getBody()->getContents(), true); $themeInfo = $this->getAdminThemeInfo($slug); - foreach ($modules_info as $mod) { +// Debug::dd($themeInfo); + foreach ($modulesInfo as $mod) { if ($mod['slug'] === $themeInfo['slug'] && $mod['version'] === $themeInfo['version']) { return true; } @@ -99,4 +127,79 @@ class AdminThemeService return false; } + + public function pack(string $path): void + { + $themeName = basename($path); + + $tmpThemeDirFull = RESOURCES_DIR . '/tmp/ad/' . $themeName . "/"; + + $fileHelper = new Files(); + $fileHelper->copy_folder(ROOT_DIR . $path, $tmpThemeDirFull . 'meta/'); + $fileHelper->copy_folder(RESOURCES_DIR . '/' . $themeName, $tmpThemeDirFull . 'resources/'); + + if (!is_dir(RESOURCES_DIR . '/tmp/admin_themes')) { + $old_mask = umask(0); + mkdir(RESOURCES_DIR . '/tmp/admin_themes', 0775, true); + umask($old_mask); + } + $fileHelper->pack($tmpThemeDirFull, RESOURCES_DIR . '/tmp/admin_themes/' . $themeName . '.igt'); + } + + public function install(string $path): bool + { + $zip = new ZipArchive; + $tmpThemeDir = md5(time()); + $res = $zip->open(ROOT_DIR . $path); + if ($res === TRUE) { + $tmpThemeDirFull = RESOURCES_DIR . '/tmp/ad/' . $tmpThemeDir . "/"; + $zip->extractTo($tmpThemeDirFull); + $zip->close(); + } else { + $this->addError('unable to open zip archive'); + return false; + } + + if (!file_exists($tmpThemeDirFull . "meta/manifest.json")){ + $this->addError('manifest.json not found'); + return false; + } + + $manifestJson = getConst(file_get_contents($tmpThemeDirFull . "meta/manifest.json")); + $manifest = Manifest::getWithVars($manifestJson); + + $fileHelper = new Files(); + if (isset($manifest['theme_path'])) { + $fileHelper->copy_folder($tmpThemeDirFull . "meta", $manifest['theme_path']); + } else { + $fileHelper->copy_folder($tmpThemeDirFull . "meta", APP_DIR . '/admin_themes/' . $manifest['slug']); + } + + if (isset($manifest['resource_path'])) { + $fileHelper->copy_folder($tmpThemeDirFull . "resources", $manifest['resource_path']); + } else { + $fileHelper->copy_folder($tmpThemeDirFull . "resources", RESOURCES_DIR . '/' . $manifest['slug']); + } + + $fileHelper->recursiveRemoveDir($tmpThemeDirFull); + unlink(ROOT_DIR . $path); + return true; + } + + public function uninstall(string $path): void + { + $themeInfo = $this->getAdminThemeInfo(APP_DIR . '/admin_themes/' . basename($path)); + + $active_admin_theme = Option::where("key", "active_admin_theme")->first(); + if ($active_admin_theme->value === ROOT_DIR . $path) { + $this->setActiveAdminTheme(KERNEL_ADMIN_THEMES_DIR . '/default'); + } + $fileHelper = new Files(); + if (file_exists(ROOT_DIR . $path)) { + $fileHelper->recursiveRemoveDir(ROOT_DIR . $path); + } + if (file_exists(RESOURCES_DIR . '/' . $themeInfo['slug'])) { + $fileHelper->recursiveRemoveDir(RESOURCES_DIR . '/' . $themeInfo['slug']); + } + } } \ No newline at end of file diff --git a/kernel/services/ModuleService.php b/kernel/services/ModuleService.php index 56ca7be..2a0eb69 100644 --- a/kernel/services/ModuleService.php +++ b/kernel/services/ModuleService.php @@ -362,11 +362,15 @@ class ModuleService if (file_exists(KERNEL_APP_MODULES_DIR . '/' . $moduleName)) { $fileHelper->copy_folder(KERNEL_APP_MODULES_DIR . '/' . $moduleName, $tmpModuleDirFull . 'kernel/'); } else { - mkdir($tmpModuleDirFull . 'kernel/'); + $old_mask = umask(0); + mkdir($tmpModuleDirFull . 'kernel/', 0775, true); + umask($old_mask); } if (!is_dir(RESOURCES_DIR . '/tmp/modules')) { - mkdir(RESOURCES_DIR . '/tmp/modules', 0777, true); + $old_mask = umask(0); + mkdir(RESOURCES_DIR . '/tmp/modules', 0775, true); + umask($old_mask); } $fileHelper->pack($tmpModuleDirFull, RESOURCES_DIR . '/tmp/modules/' . $moduleName . '.igm'); } diff --git a/kernel/templates/views/index_template b/kernel/templates/views/index_template index a7a7171..44953ea 100644 --- a/kernel/templates/views/index_template +++ b/kernel/templates/views/index_template @@ -51,6 +51,16 @@ $table = new \Itguild\Tables\ListJsonTable(json_encode( ] )); +// Пример фильтра +$table->columns([ + 'title' => [ + 'filter' => [ + 'class' => \Itguild\Tables\Filter\InputTextFilter::class, + 'value' => $get['title'] ?? '' + ] + ], +] + $table->beforePrint(function () { return IconBtnCreateWidget::create(['url' => '/admin/{slug}/create'])->run(); }); diff --git a/resources/cards/09/74/09746c31e3c2d4b9011b5ec7100327b9.png b/resources/cards/09/74/09746c31e3c2d4b9011b5ec7100327b9.png new file mode 100644 index 0000000000000000000000000000000000000000..55ee2d4a4584e15084c9b2d728cec0b0015fac43 GIT binary patch literal 10016 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 literal 0 HcmV?d00001 diff --git a/resources/cards/16/f6/16f6b7cc7cf87c9e01258d7a0c3cca2a.png b/resources/cards/16/f6/16f6b7cc7cf87c9e01258d7a0c3cca2a.png new file mode 100644 index 0000000000000000000000000000000000000000..b8dab6554ce9290a6285d4276ac5e37d0c308f51 GIT binary patch literal 9573 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 literal 0 HcmV?d00001 diff --git a/resources/cards/20/e0/20e02dddafbc4ce86b664f0f09054eaa.png b/resources/cards/20/e0/20e02dddafbc4ce86b664f0f09054eaa.png new file mode 100644 index 0000000000000000000000000000000000000000..a479239556bda152998e7fe471c255611c2e1089 GIT binary patch literal 9621 zcmb7q1yoh-w)R2^0civUBo!2-L6DA(bV+v#0@5I{DGBM8l2Q;s>28n~5TrKU-Q9WL z{hfQyIpf^>jq(4C0W1b zib&ub{KB-8(sG0#7CPiNiffkeI|!nNq+z0}t|?nnF1o53;~2YCEq%#O$}pHnk%Wl^ z8ZlgUNOQWpH8K2Ka`?7Q$XL9oe92fV_#&1a8a2*%DNoGwIS7jY2j;FU5;bjf|HBEM z>F|4_LA<#@cj$K;#Ppgug_|8o8Lhb_;Mr@36K4*H0Pwx4C{8VCuTE#mFU zH)H2*NGb8_4iUb~aGgh^>5XFtJ7pP7g~N;mvg6r)FqmF)l4(_QH_i4`5>tY$t6i;( zuVBr>?)xFyGvm)0o^VOn(2`bWqu=3dX6`bp#dtL#sVLt8f0(&>keODcypkHieF>@hJ1q^zA2@TrRC_Z@upS$G>V6YFlYPt!gap-#J zP-ap6&S?AO5#!R}Ef`F!xb;pY7r(T9&*v%RiDEy*kcTnNGLcac+gJq3E-IR91hmMI zxHw4$1=S>TXoZx2-8&kY$DVAo+gY{2SLPY=v6MQsMxmu;|3$-H795(;J0D1O zY&h2(cb}9^xw^ip3ZKgJl7!-6>fU5&p$Mb(-N&(r`N`^ZJHcbDkkC*=Gc$BWMO(Sl z^E(3Phn!{nd~VB0jb&B>wCA4eyiGq;baea*8>Uge51}d+Xy?imaC0M0ow{qEFfp~q zv?&_@^l3sK1{2Mg94uGvorajRJFQBw*T7&y+o*~~SOK?c-+4#G#2D9=y}O;4Z~gHi z;vv6JO3H+0shQv<`dxI0mzURMtc3eltqbYJv8{NcS3^;8v32=XT^)u0hwGrlk2BP< zowJLJAwMx=+0Eply6m;I9^4W1yle42I114@ySf_IpGi;6>&o{irrm|H!p4)Ta>vwg zp|KKzDm;!UA;bN}u{$_|A)A{MY|rDHXKe2*_v(dF3R0lfs}G&k*KG$!Y~L!+l&9Jz zE)#5;ndUoR5PC%4ZnV_3GP^!5TV4O{8<|F-o_}d+E=M&ZKTR~XU9;)X@G$kdjApL2 zxw*OVprq}*`{q4W)sN!zxe^M!))c%|x6OMgH7FAji6bL<8pErq43yOLFstiu-P~UA zzPqG;w|NOOx!GBsY|=3B3_1(ix*86{Oov8BT3T9Ux2okQR8$DroV#?(J1B%oNIA5a+as}?zDjc%T3JO-PCnb5 zXv8u9lO|%<$911v)_!+Z0eqB>%?^tm{f|#p*1ds&Si99eo7RpFT0TBPI>`tX^2{GK zgr1Xv#k0ltR+p9|K*UDRdPpWayF~Q$Bf7lFV6abjp8LtmgmgsH!Pz}V@5i+j(7(=l z3_(^_M~&ALqoXL0j7%tEyD;yEh`T$-`O!g>No2l{pC9MfS5GIW1oskz8v|UPd*Koh zshGYt�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 LUJX_zYaaAJi-1WC literal 0 HcmV?d00001 diff --git a/resources/cards/30/32/3032ee84a2000b5d7f9514121c0aea27.png b/resources/cards/30/32/3032ee84a2000b5d7f9514121c0aea27.png new file mode 100644 index 0000000000000000000000000000000000000000..af252dba496971a69afb37fb57e0aae957fd5282 GIT binary patch literal 8146 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 literal 0 HcmV?d00001 diff --git a/resources/cards/30/71/307191ee25a7e8c47ae7e4094dec9118.png b/resources/cards/30/71/307191ee25a7e8c47ae7e4094dec9118.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b78464475190fe8b5fec285e119309ce2c6d4c GIT binary patch literal 9661 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 z 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 literal 0 HcmV?d00001 diff --git a/resources/cards/52/26/52267e4abd7a8a916f2544f2dcc22652.png b/resources/cards/52/26/52267e4abd7a8a916f2544f2dcc22652.png new file mode 100644 index 0000000000000000000000000000000000000000..5352a62630240f4967e8e41be7eb5d5994b2fcc2 GIT binary patch literal 10200 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 JRw->9@IO+Ll~n)$ literal 0 HcmV?d00001 diff --git a/resources/cards/62/c7/62c7f9029e99617d3da083d601263243.png b/resources/cards/62/c7/62c7f9029e99617d3da083d601263243.png new file mode 100644 index 0000000000000000000000000000000000000000..f1a739c6e6a9eacff11ed1f052bfe1546909632c GIT binary patch literal 9123 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 literal 0 HcmV?d00001 diff --git a/resources/cards/77/1a/771a98a6059ab49065a88381d388af25.png b/resources/cards/77/1a/771a98a6059ab49065a88381d388af25.png new file mode 100644 index 0000000000000000000000000000000000000000..042a1b97979b12dabc053868df91d673a2532dfb GIT binary patch literal 9690 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 h*!pZXR@*n|A2$*Cmh2oceO=+Py5^xk`K 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 BRbT)B literal 0 HcmV?d00001 diff --git a/resources/cards/78/88/788828213d1587d63f32ccbee1cf934c.png b/resources/cards/78/88/788828213d1587d63f32ccbee1cf934c.png new file mode 100644 index 0000000000000000000000000000000000000000..bb51109c28f32681c32181beb11ab4507e7ac2c3 GIT binary patch literal 9665 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 bmhE`Jx0lteR>{s=E+|E7` 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 literal 0 HcmV?d00001 diff --git a/resources/cards/95/67/9567e1797dd6d7cab63824c8dbed79ce.png b/resources/cards/95/67/9567e1797dd6d7cab63824c8dbed79ce.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e1ec1a457b616128f822b2c81c66cac1cf8467 GIT binary patch literal 9083 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 BRbT)B literal 0 HcmV?d00001 diff --git a/resources/cards/ad/42/ad42d146847ac4016add0911576d3c1f.png b/resources/cards/ad/42/ad42d146847ac4016add0911576d3c1f.png new file mode 100644 index 0000000000000000000000000000000000000000..af252dba496971a69afb37fb57e0aae957fd5282 GIT binary patch literal 8146 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 literal 0 HcmV?d00001 diff --git a/resources/cards/b2/e9/b2e90173c24257cca05823ac68a969d1.png b/resources/cards/b2/e9/b2e90173c24257cca05823ac68a969d1.png new file mode 100644 index 0000000000000000000000000000000000000000..26bab4bb36321a9bd114bee921fa5df67a9cbccb GIT binary patch literal 10119 zcmbt)byQW+*6#*ES~!5xbwEmKR3xPl5Ky{PIt8Rdl#(_8rMpY%?(XK$BHhw;cnj|v z_ulu$z2A6aygz_**n6zK_F8k!U(6M(q#%ulO^yvg5Z-eciB}MWq5(et#=H%F&k_lq zgFjgIGMbJM#7=+ngW{SY@)m+$TUU0VlV( zHyb$>s$7%~E`_`5PQD0q&-1L#I9{6$!YwZ@!hf`jYIkpX!gH6`j|KmN6dPQ~VYVr+!cJYN`?PBTd=cG?mNh{<_RL0|yuzZJQ5ZLtcIN63e}Y z>k?AMn@MV4j_+G%K_0&Y3$DBKUDv`Gm+uB!@XJUz`TYEZt9)L?;LT~%l{)4^t&UTS z@pxzY>&ui_jM4AqE)o(aLLP@MQ9ItA>-lHf(kf}A^di<*B<~-7XEL-myPU9?z$bC+0JY8jzTF1>QL|HKG#u$!fgMnq6=RV8Nm&IVGy`LN0_N zSEY9ySJ|5;Be8OqxHX?552kADot-;EIBM_Yloqg5)na8ST=_k~BBA@N+SuKVU0;uM zJzeZr7|BX1nH}mm7`Sdr--Zp@g$$vnea_63@;tf9ij-yB>m9zEyMUOS^yO$chsMUZ zdy`IZZ{xaRf{&EKm-NEdmqLPNr|7t3++v~ZFxa>F1r)U$6{CY_=j{A1i(_~54DEK4 z`CaxF*op707@hr5#U$S&fEwG{sBlQwrMn8?Ta#7PSLf)>O-&^|=W?>xFtRhA;bFUH z>@h8UeMBisOooSRoMoGT4t~PiE@`=WUeVe`w~UQZrAdWLyPguuFxYso)+5j9f3LhY z?rW$=g*?lS#i7RZ=R5>tZV)cH8#f|s9LEx?6RCJUHyLMLSxZ9Ui%TH}M&!ry0DflTK4un{ z)+X_q5{D5ItqXmX*udTT3$&@Jb#vS3w2~5PFpSZX)b?^v5I><4n#b|X^VZh*#+fQP zPFnj&L{mT{BiLL1dD)8j?u&~C~VCBWNwa{O`Ja1N$ zNs(I0b&?*ux6#SY3v&w#QS&tudCVkiZEXP)(+s2CIW`$t*=IU4ZlR=HYQ_{tc+P7} z+aXhq_tIiwo?v6YDOnFJii}AL`}9ey?3ysOrYYk?&uj`-4j*lIBv5*o3(lviY>eVB>-rgl{6Jq>(H#iY(9m$=H#Kc1 z34=u;(ZVR}+>e@m`dkwI?t9~Tu-%bey|n2qG7rVZ#nD%U4B1@lBax!y12ud#C=fTd za_Mms2w^Dl)2GRG9R*v)@88K6x3=6*;^^SqpBBV_BCjwE_ET4tRPVPunfDG22;hf& z%gXSi!YCt#hY8a&W|bbKsjxa6&#-{?Gwxlp4?E)L<7>`R6ft?7VK|Sp$#^Yg#j zu3lK6(-jtdCc(h)67?YzN=6jE@tu`Ys2V@6BEMxsPR|d#v0Ck)dkP8X=osE}?>>Iy z*3i^SOVWqb@?9?qwO?PHpMnZwx3pGrC8MY)B^QEfYfFuZ_04yGi7}@T2NW7Tx7Uy0 z^!T(qJb2iWJTtRGT$aCGKLiLr9A_J`Q&GqHIV(EhukpfbTt#idgC{ee#c2YyY>J7- z?)Na?OA@E4E@zS3gts;NcFq!XBqT-yP@;om7;uXvB;YWcsF1aaUg8i|u>l8ip84Fo zi+x9~+tN4J41LFjzCS8jIt_k5JBugk)GK*BwYt0LGq343@#dxs-)u)Qr(*98Oo)@z zz?s*eQCvo$er|S_HuWNC$g#MKCHVAsIzm+>?%TJf;bH7VYCY1YmVzMF*Hki7Q;A;= zMS)`FC$APhKCU*2Ks3$PF@gGK_Gd&aB>o|vZ5$+B;k-Up4bV~jXv7j zYo;hFY9i4u6jf9EuCQHqzA-;|axC!1A6Xk4657d&rv3Xnry(nK+*6vqzBgaK&NipC zcm#O1D}7erg;mfe^YeMFr;qVGJugSO z`?NGPn)@ec0F>pr*Pp(@dzgL?6UPHhz@-2K>iu4Z*%A;w%rbv(@Nosml6O9rS43sP ziTp=6cc|vxe=WMYH8)p(YPlV##QeSFa6P8ParL%|NoM2R9IVAh#7ym^F0m&siy zIofD>A!SyH^{eZf9YWRO!OX(?JJS_DfdCL>7zkb6UFq&W!kYKFX3^5pQkf`Qo$l_H zZKFwY8%svAYHRJyo?MHHiuP|KV-{Px#5)HDn*J=?;5=&*eGj8@oJl^%OW9q$|K;}= z3D4`RETuVb3_CYT7VpX0d!nN6UyNgTtiFFIh%LU3_=;%*LdCi&cv1{A`;llh?Hedgss_Cq}w2PzjU5$rg?d5RX-tkVz z%#8fjTpd;y%S2SHD>}XqFD`hJ!``4RF$qbs*}$B8MGC&SFh|PPbj4lS48oDjKB>-F zEG1TLd*r2s1oib)`W0>UJk~LB(>EUJ{g?*f5SKY!|Ad;yw2eNriC)Kwx#%fBeh@;w zadClqNBxOqGOB?DXXVvKAePLc3w@LHX~9-3?9zmy<3yuCg}M>9AXhiHmaeWT21O#$ zb2qZQ^mKxZjQgbACTP@&f<(v1ckG?E-sLEpeY3XwuqH~k2A?R+`KhFNU;NjRzQcJh zthQkV@1ag9Ws|6Qb$sYtjSEk|K3~E4*$|l`9B#x90h*-6cHvtB7Q?~WdG||54~X|y zIq2QpwmIQtB886(n^oQ;hQ87z#SnD&$f1lSl`go*Qk!c zJg3YDXf`t|$mQ^hH(z7_F)vZo=cy7Zo{n z9{7fQY1nPsLTXH0$`9@B?!Q;f(xmZ84tHirUN2Wfe*0#rlyJT>{Yi!)yQoN6o8Xpj ze0-?FvYcGVOI_WZw+{h)gP_?v+{pz6O})Li0xpHpFTz%~ejwK3?0ULNFo-{zQu5bg zgoWW{7Zfx_(TmWr)j8T*TUaz@($tF?8dCrM!w4X)u|L5kA`p*?U)DJRRDO`+^4$1& z1FIPWb(TwuLqvLdbAYxqF1C1pxdvCCYsEixB;Ma&4XdI`ou_I!wlo2-!?W7Ms)-sm zklpzg=k)P{&ZJC=RBBW-Tt*Ln{US99cDk?OE9AJs+#mlGn}>%dHcoDFVc|n07ZIn| zxpmp5R2a6TNW(J;X~|!s>-u|3irREhG7D=99}LB%Tfp?K1kQg?lY`7$5jx{dO{IUS zr-u#5sNnh9XLHr^x7hqED})dA%LxVE7D_89+>TGs<$7!aZ*Jya-6JOzM3au#5!XCp ztE_T2pJAn-@j=<&CxI?q^784NuKrGZ|LCaW0Y^iyzV{iH=9EQod3n<)i{dj&!zSp$ zchGsUCw4RFX%z(N7hDmvwVk=1Byd#MJaCHO;$@0qQQLV@@_LN;-KpNWPVDE9pf%wp zNKS$QASE0gwb$hUanzlsL^h^AU4u;8|I8OPQ4u zDBZ~zXd|w^-*}INgqDfv76=Yz)^2HVdjhKU^XGJMdLJpRbG**wH+Dl6aj@U)t^3S1ef zRE(G|>0)euR1nrMVqVf6+r-n^T`5}j9l=7Ksvs`o=9-5UcGqt^mtT-Rd5lWLq~M>H z#`7`cpu~99Jzmg_bkQ(k0k9$aH*ea1Ne-kb(&)=DtN;vXM&1&z-`1j(mBk+W#QC=O z3>^~j+`D`55*9@(Pi;`dg#1`ttrbdr7aJnw;iq(PScOqgjJ@_P$SaamQzJh=!fA|u z8lu`!SLd}KBhrv}er9LqgOyKL2)%$mn64ygS3g>yfV za~Amb7NQJAQu2&^z$LzTH})XpEW4B7WJw`?$9-hXF6{ZL!2?#=sHmt=kipF}Gdj+m zqif|u)?01NVar-yx@*P@l$eVRTUJ3(1UC3^GD`L~0>Zivc!y#47bf25_1FVBij_1t z-0K^!Wox@sT3MN@@ncjdD5A#qTSR}LO70vR$!a;8FXGsX8YSbKy13?KwAFIrf&bXP&e1X%|{a8%T`|+I5HC~uar^#KH zZKj)GP(s5gR#oK&d8o2fWp;ha)T$Ti2Nc8Q)%!2GrKEnaPK+g-{}1dN z1&Zd-4!**83z#=Li0A(P!W%>ajQ?~c?pj<;jkP^Me$bt!S6cF%Te6!-d9X~^_}u#A zm&YfBE5G5x&4cke)zvYm`GwTKp`Liay-%?I78lM&LRjzz#Q`F+F5-ianXb#pT(A8T z|dOI z5l#{nO#0K_xK}K4&?eT1t2b8IYFM}E(QnLu@_s|#`*1?6TQ^Ut?383cO(AjJ$w)91 z%d+K?WG~)n{_k@T+a=^?#E)haysvc2H*`{!W)Hf{DdFtT+$#0!SQJhU*w zj|rwH!+z0>luiHVWdAV{lBysHgO6<_H!o*83OqLd4! z!|VD$?ypsPGGXL7;e=MBK8<@rZI#XPA4UQAd(tn)yzir9?Fwoyn`2V<7#y^)? zM1&$skw(%~jn&dB&(P4&U$3r~%Uy+3Dx5N_L>|~lscH04pA+6Oy3xDyRnhXfV#48> zH^i<9!BxuUWnz}K)KfGU`1vyq^7vR<>cp$>`@~B%Z@H{;eODw0CMK!5({*W1UQt`u z=Rk+0c2%JK0pN=oEIgA>JY*IW@>o~tP`4715EW$~zubHvI&EQX-Kd?XKZ-a$b@yMF@WZatH zl9PtC?Yt&mdx3hG6bMM{765H{^@_$DJn6mVHuK3j zIWWM7VtG8cYU?h<7$0;186WxOi?5J}k8gty0pN=0EYg`~hm>1qI9VwwtX#DA1ot?+ zsey;}4$vJPof)o!A-7my1wackXV*x-w!Z***ATFa#V($qv_PC2ZN9x7@_L~D_Japj z0DRz&9(85E#kG;6Y0wLn1RGN@f*WvL_u%5#Mp9Jt4ge4?8-#V*Mb--`DQs>YWf0}T z%ROqTMG-VWWxF45g@JF)EiE`@Wsd-MZKym3TI6P#fF{Gk!I2w6SkMR^6RqWy&>gL7 zGd|(K0a`CohC!p=`aU2Nh87m+iUWGC?p;0hE+-$vhC)Alkn{VJwqxkz+t)9P0pS8& zv2?cBfR6%on!HwGCWd^g9Fv-X)zb=ei%az!h-F~2K)wisW!g2{ecPu95LY;99< zZU&?4>Y16(KYFh4yw!h_`Nni>qDj1)?t>`3PQBy3b^;iengG*RSuXEO2B>k&%E5BA zP_HhOqh9B|pC9GnF3pDwIel0L6~xSHO(Ar=J*_`6J=`66e#oY*J#xI;*VUCVa`inf zE^i|zw~#oU(iuN33scWyn?`Hk$>Yb6`9;sf@&i|0FE&}*yC}X0b^Vm-q48*Tpa{!t zuJ46~9ch$rJ<`yga&jwB^0EWcs@_W*1yZJV)7i{cNkUqD){nde?QM!YTXJjgwsD*Q zwgvDea-aTgZ@*nxU1_{gs!58xAOK=MXgC~D*Ov|``2{vF=^nHouco6CKEDG-6Oh~V zCh~khxs088P|a zQs@VMTO0a~VE}9C$Q?5?f4V`PdVBKACgN+`k1d}=*6FB1FLh>OJ|bsah?C2RzqhaN#c;#hjLB65-ZlJxrpJAJrxV+B`tQ{`psepXaV+?9)z3lwl#;Ko7Fd|3FiNZEI z?mtkbLW1*zH|eXS6fce1H8)D+YmWXzp?4s@(#9i_QQmX8>=>0@JT9mFmS|3a2lA`L zVTr`t#-{D}^9V~XT-mvq55jZx_V)IuP`r=_YR!pt^`>Wf{Wj_JJqW0Y$?9b*pcHO~ zexD>bSg{KP$V+8qbS5UV(D6TC)jN?WN5eVVl zgacw|;a3JJFYjpZaJaBdS?MIm8UomV&#Q;;V>of>mS@>RU$?1(l-0OgZ26~h-33lMMVwcfgNGn zNsKq^QCKM9=9bg0tFl~CaUh#_u54!!xt|U z`-K`jvC|BUds5UiJ4-acrjJfS;!-eyfrdsej6?6`R9+}y|x&ug{`g3{nxAkhg9YiM=Q&(Q6Qk32?~64$+%tlZWvsoJ=REO z|0|D5-4vyTnJQ(-H>H6h$1y>yd}&?;6HA?A>C%6MR9G-wIa1`!ArthhNKY7atK9x3 zKHY23y^*xlyT{%tW#Rd>=j#VK(2x8e0e?3^HP3ys-z{q}Yo|j8Ky9$KDFhO3Nw>DH z1BA4>=y_5k>EM6@0)v^Iy)ist(*bx~P-6@JfC}3h>2P?84OZV^{Vkhaat5Rv1Yxk< zoCV+ly&=#P8_c4p-#I%&ZwB5c=r#h^0tTu}iW0Muj*jnc!!>b*?cJuiITSiNqUwwU zETXI%3lNmu$;x#c(D4-oZ#rIJWIc^!`}M281zd{|$(&Aez1fRzAYo7-c75RxDuIc# zY-Sojj6myJAxYRzx8^YfNrjSP2xxnx^}Iacy!gEoRuFJcjhXm#-bGJbSGPc6qTynP zB)8$PvhrZE%E~Lo&J`OkAyiZGAz+YR)7&cR^b*DwiNLI;cM2Hw~0**D5c0u5FxypXA2<+(B1IU~a4@$5BnP#KJqTb%+{qNG!VD#2?1b>V>;PV_UqFESSXhMJ2#PnYmF%l)cz-7f1W!s4021o%{2n^F)YsR)1DM|-U^3eS)$U7u1SUcS6dLh=N3xcz`braEzXbhPa1)czS0=fduIoK3r4%K61zJ@&%Eg+3K`8_NY6b`Gp;Ii&<12p!ix_S@Yl;I`kEkL4Uoe*9>*hIE@?=t{hp#n0=a zf=(DI7|re_Y4vur3IB?^4kYnFVx6Ri{xZOVprF`06chru)Pj^t?UDOZ#0J{Hv825mTClVgDb_>GK(ya?+Kc_`prfS;|6si~i^I|)cQUBeg})zqTt zISpuU+{M&X&w>dA0)aJ@t_HkODugu!i@ItTu=IQ`$d878*45EN$tBMn)kX@PoOi`4 z#3fE>L{Y5)HPa}!zOSP@TVl40FQ#JgCA=xGJd+$UFxyR*J)7CTKe=r;R8eP)NG($p zy5(0}m7}b!J6j_R*6987NN96y0nO3TQE3MtrQmynwyTebJl`}j>=$8LE(<>#NVx5b1Vk^98U8=B})EM z3?L@N)CywqCVttkzrqE5hD-PR_ex08xV#Y7kZ+*0;tiBy;BSiojSXTB1{U6IAhDGm zU*vX9>2}k{g@t)KcBCL^qf3DUAvf~!tLk0d@~QnfXPdwvY8^j2-q@p7)Xuo&)3XJI zl)Uk&^dPcIr?ZD@4OfKWmw$*>di6fMOcPUGT^;baO=rw#Fj0tiIz6wx08D>QvtxLf znS+@yKfbWA_v!BupI>z+NK`jvqUL7mA%ty*$3zAd+})mwiR8v@QoZq@PTC|4fPkvk zx@giZ@;I60keIH0CXvpe00XCiJ}9I8Kjibj8D9TpX8mIJx#g#36X5XbdClhmEH?+Z ze5VJR0ytdLdI#?B-}1$}6&!?XhA$G+ihpym>o#QSlE`1|Fkcvo-6rUZe~$pR-a&n( zn_fes&u`^@0V_+;iQq_hBr;iGftQ676y#)fpDYvit(BIenLRpxsKKqU!crdcqbbT6$11@c?gHQC#{0^Q^oHY`O4!P(#(Rz)g`uUKgz zxOqCA^F1CV+m)5>_8Y~g+DvSB^!H4i)zz;>4zjv4DomF4z{xu3xuk+bp_qZ+{{jwJ BWPShu literal 0 HcmV?d00001 diff --git a/resources/cards/bb/2c/bb2ca43576a194c74dad2c2cc20b019d.png b/resources/cards/bb/2c/bb2ca43576a194c74dad2c2cc20b019d.png new file mode 100644 index 0000000000000000000000000000000000000000..2df47dc86d69156ef49d64e8ffd14c63f89673f1 GIT binary patch literal 9660 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 literal 0 HcmV?d00001 diff --git a/resources/cards/bf/fd/bffdc6537e1c23db57fc6862688429d7.png b/resources/cards/bf/fd/bffdc6537e1c23db57fc6862688429d7.png new file mode 100644 index 0000000000000000000000000000000000000000..971b9018c5434a8da2dd2b988451690678ea6148 GIT binary patch literal 10159 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 K#R^4qy#5a*uZl(h literal 0 HcmV?d00001 diff --git a/resources/cards/d8/8d/d88d2da6914ade7332b4f056a037fd5c.png b/resources/cards/d8/8d/d88d2da6914ade7332b4f056a037fd5c.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4a35b1d1fb87661d79fd8520f72c67643291ca GIT binary patch literal 9693 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 literal 0 HcmV?d00001