app modules classes move to kerel app modules
This commit is contained in:
		| @@ -2,114 +2,7 @@ | |||||||
|  |  | ||||||
| namespace app\modules\photo; | namespace app\modules\photo; | ||||||
|  |  | ||||||
| use Cassandra\Decimal; | class PhotoModule extends \kernel\app_modules\photo\PhotoModule | ||||||
| use Illuminate\Database\Eloquent\Model; |  | ||||||
| use itguild\forms\builders\FileBuilder; |  | ||||||
| use kernel\app_modules\photo\models\Photo; |  | ||||||
| use kernel\app_modules\photo\services\PhotoService; |  | ||||||
| use kernel\app_modules\tag\services\TagEntityService; |  | ||||||
| use kernel\FileUpload; |  | ||||||
| use kernel\helpers\Debug; |  | ||||||
| use kernel\helpers\Html; |  | ||||||
| use kernel\Module; |  | ||||||
| use kernel\modules\menu\service\MenuService; |  | ||||||
| use kernel\Request; |  | ||||||
| use kernel\services\MigrationService; |  | ||||||
|  |  | ||||||
| class PhotoModule extends Module |  | ||||||
| { | { | ||||||
|  |  | ||||||
|     public MenuService $menuService; |  | ||||||
|     public MigrationService $migrationService; |  | ||||||
|  |  | ||||||
|     public function __construct() |  | ||||||
|     { |  | ||||||
|         $this->menuService = new MenuService(); |  | ||||||
|         $this->migrationService = new MigrationService(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * @throws \Exception |  | ||||||
|      */ |  | ||||||
|     public function init(): void |  | ||||||
|     { |  | ||||||
|         $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/photo/migrations"); |  | ||||||
|  |  | ||||||
|         $this->menuService->createItem([ |  | ||||||
|             "label" => "Фото", |  | ||||||
|             "url" => "/admin/photo", |  | ||||||
|             "slug" => "photo", |  | ||||||
|         ]); |  | ||||||
|  |  | ||||||
|         $this->menuService->createItem([ |  | ||||||
|             "label" => "Фото", |  | ||||||
|             "url" => "/admin/settings/photo", |  | ||||||
|             "slug" => "photo_settings", |  | ||||||
|             "parent_slug" => "settings" |  | ||||||
|         ]); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function deactivate(): void |  | ||||||
|     { |  | ||||||
|         $this->menuService->removeItemBySlug("photo"); |  | ||||||
|         $this->menuService->removeItemBySlug("photo_settings"); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function formInputs(string $entity, Model $model = null): void |  | ||||||
|     { |  | ||||||
|         if (isset($model->id)) { |  | ||||||
|             $value = PhotoService::getByEntity($entity, $model->id); |  | ||||||
|             echo Html::img($value, ['width' => '200px']); |  | ||||||
|         } |  | ||||||
|         $input = FileBuilder::build("image", [ |  | ||||||
|             'class' => 'form-control', |  | ||||||
|             'value' => $value ?? '', |  | ||||||
|         ]); |  | ||||||
|         $input->setLabel("Фото"); |  | ||||||
|         $input->create()->render(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function saveInputs(string $entity, Model $model, Request $request): void |  | ||||||
|     { |  | ||||||
|         Photo::where("entity", $entity)->where("entity_id", $model->id)->delete(); |  | ||||||
|  |  | ||||||
|         if (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) { |  | ||||||
|             $file = new FileUpload($_FILES['image'], ['jpg', 'jpeg', 'png']); |  | ||||||
|             $file->upload(); |  | ||||||
|             $image = $file->getUploadFile(); |  | ||||||
|             $photo = new Photo(); |  | ||||||
|             $photo->entity = $entity; |  | ||||||
|             $photo->entity_id = $model->id; |  | ||||||
|             $photo->image = $image; |  | ||||||
|             $photo->save(); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     public function getItems(string $entity, Model $model): array|string |  | ||||||
|     { |  | ||||||
|         $photos = Photo::where("entity", $entity)->where("entity_id", $model->id)->get(); |  | ||||||
|         $photoStr = ""; |  | ||||||
|         foreach ($photos as $photo) { |  | ||||||
|             $photoStr .= "<img src='$photo->image' width='150px'>" . " "; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return substr($photoStr, 0, -1); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function getItem(string $entity, string $entity_id): string |  | ||||||
|     { |  | ||||||
|         $photos = Photo::where("entity", $entity)->where("entity_id", $entity_id)->get(); |  | ||||||
|         $photoStr = ""; |  | ||||||
|         foreach ($photos as $photo) { |  | ||||||
|             $photoStr .= "<img src='$photo->image' width='150px'>" . " "; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return substr($photoStr, 0, -1); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function deleteItems(string $entity, Model $model): void |  | ||||||
|     { |  | ||||||
|         Photo::where("entity", $entity)->where("entity_id", $model->id)->delete(); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| @@ -2,122 +2,7 @@ | |||||||
|  |  | ||||||
| namespace app\modules\tag; | namespace app\modules\tag; | ||||||
|  |  | ||||||
| use Illuminate\Database\Eloquent\Model; | class TagModule extends \kernel\app_modules\tag\TagModule | ||||||
| use itguild\forms\builders\SelectBuilder; |  | ||||||
| use itguild\forms\builders\TextInputBuilder; |  | ||||||
| use itguild\forms\inputs\Select; |  | ||||||
| use kernel\app_modules\tag\models\Tag; |  | ||||||
| use kernel\app_modules\tag\models\TagEntity; |  | ||||||
| use kernel\app_modules\tag\services\TagEntityService; |  | ||||||
| use kernel\helpers\Debug; |  | ||||||
| use kernel\helpers\Slug; |  | ||||||
| use kernel\Module; |  | ||||||
| use kernel\modules\menu\service\MenuService; |  | ||||||
| use kernel\modules\option\service\OptionService; |  | ||||||
| use kernel\Request; |  | ||||||
| use kernel\services\MigrationService; |  | ||||||
|  |  | ||||||
| class TagModule extends Module |  | ||||||
| { | { | ||||||
|  |  | ||||||
|     public MenuService $menuService; |  | ||||||
|     public MigrationService $migrationService; |  | ||||||
|  |  | ||||||
|     public function __construct() |  | ||||||
|     { |  | ||||||
|         $this->menuService = new MenuService(); |  | ||||||
|         $this->migrationService = new MigrationService(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * @throws \Exception |  | ||||||
|      */ |  | ||||||
|     public function init(): void |  | ||||||
|     { |  | ||||||
|         $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tag/migrations/tag"); |  | ||||||
|         $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tag/migrations/tag_entity"); |  | ||||||
|  |  | ||||||
|         $this->menuService->createItem([ |  | ||||||
|             "label" => "Тэги", |  | ||||||
|             "url" => "/admin/tag", |  | ||||||
|             "slug" => "tag", |  | ||||||
|         ]); |  | ||||||
|  |  | ||||||
|         $this->menuService->createItem([ |  | ||||||
|             "label" => "Тэги", |  | ||||||
|             "url" => "/admin/settings/tag", |  | ||||||
|             "slug" => "tag_settings", |  | ||||||
|             "parent_slug" => "settings" |  | ||||||
|         ]); |  | ||||||
|  |  | ||||||
|         OptionService::createFromParams("entity_tag_list", "{}", "Список тегов"); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function deactivate(): void |  | ||||||
|     { |  | ||||||
|         $this->menuService->removeItemBySlug("tag"); |  | ||||||
|         $this->menuService->removeItemBySlug("tag_settings"); |  | ||||||
|         OptionService::removeOptionByKey("entity_tag_list"); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function formInputs(string $entity, Model $model = null): void |  | ||||||
|     { |  | ||||||
|         if (isset($model->id)) { |  | ||||||
|             $value = TagEntityService::getTagsByEntity($entity, $model->id); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         $input = SelectBuilder::build("tag[]", [ |  | ||||||
|             'class' => 'form-control', |  | ||||||
|             'placeholder' => 'Теги', |  | ||||||
|             'value' => $value ?? '', |  | ||||||
|             'multiple' => "multiple", |  | ||||||
|             'options' => Tag::getTagLabelByEntity($entity) |  | ||||||
|         ]); |  | ||||||
|         $input->setLabel("Теги"); |  | ||||||
|         $input->create()->render(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function saveInputs(string $entity, Model $model, Request $request): void |  | ||||||
|     { |  | ||||||
|         TagEntity::where("entity", $entity)->where("entity_id", $model->id)->delete(); |  | ||||||
|  |  | ||||||
|         $tags = $request->post("tag"); |  | ||||||
|         if (is_array($tags)) { |  | ||||||
|             foreach ($tags as $tag) { |  | ||||||
|                 $tagEntity = new TagEntity(); |  | ||||||
|                 $tagEntity->entity = $entity; |  | ||||||
|                 $tagEntity->entity_id = $model->id; |  | ||||||
|                 $tagEntity->tag_id = $tag; |  | ||||||
|                 $tagEntity->save(); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     public function getItems(string $entity, Model $model): array|string |  | ||||||
|     { |  | ||||||
|         $tags = TagEntity::where("entity", $entity)->where("entity_id", $model->id)->with("tag")->get(); |  | ||||||
|         $tagsStr = ""; |  | ||||||
|         foreach ($tags as $tag) { |  | ||||||
|             $tagsStr .= $tag->tag->label . ", "; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return substr($tagsStr, 0, -2); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function getItem(string $entity, string $entity_id): string |  | ||||||
|     { |  | ||||||
|         $tags = TagEntity::where("entity", $entity)->where("entity_id", $entity_id)->get(); |  | ||||||
|         $tagsStr = ""; |  | ||||||
|         foreach ($tags as $tag) { |  | ||||||
|             $tagsStr .= $tag->tag->label . ", "; |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return substr($tagsStr, 0, -2); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public function deleteItems(string $entity, Model $model): void |  | ||||||
|     { |  | ||||||
|         TagEntity::where("entity", $entity)->where("entity_id", $model->id)->delete(); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "Tags", |   "name": "Tags", | ||||||
|   "version": "0.2", |   "version": "0.1", | ||||||
|   "author": "ITGuild", |   "author": "ITGuild", | ||||||
|   "slug": "tag", |   "slug": "tag", | ||||||
|   "type": "additional_property", |   "type": "additional_property", | ||||||
|   | |||||||
							
								
								
									
										112
									
								
								kernel/app_modules/photo/PhotoModule.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								kernel/app_modules/photo/PhotoModule.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,112 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace kernel\app_modules\photo; | ||||||
|  |  | ||||||
|  | use Illuminate\Database\Eloquent\Model; | ||||||
|  | use itguild\forms\builders\FileBuilder; | ||||||
|  | use kernel\app_modules\photo\models\Photo; | ||||||
|  | use kernel\app_modules\photo\services\PhotoService; | ||||||
|  | use kernel\FileUpload; | ||||||
|  | use kernel\helpers\Html; | ||||||
|  | use kernel\Module; | ||||||
|  | use kernel\modules\menu\service\MenuService; | ||||||
|  | use kernel\Request; | ||||||
|  | use kernel\services\MigrationService; | ||||||
|  |  | ||||||
|  | class PhotoModule extends Module | ||||||
|  | { | ||||||
|  |  | ||||||
|  |     public MenuService $menuService; | ||||||
|  |     public MigrationService $migrationService; | ||||||
|  |  | ||||||
|  |     public function __construct() | ||||||
|  |     { | ||||||
|  |         $this->menuService = new MenuService(); | ||||||
|  |         $this->migrationService = new MigrationService(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @throws \Exception | ||||||
|  |      */ | ||||||
|  |     public function init(): void | ||||||
|  |     { | ||||||
|  |         $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/photo/migrations"); | ||||||
|  |  | ||||||
|  |         $this->menuService->createItem([ | ||||||
|  |             "label" => "Фото", | ||||||
|  |             "url" => "/admin/photo", | ||||||
|  |             "slug" => "photo", | ||||||
|  |         ]); | ||||||
|  |  | ||||||
|  |         $this->menuService->createItem([ | ||||||
|  |             "label" => "Фото", | ||||||
|  |             "url" => "/admin/settings/photo", | ||||||
|  |             "slug" => "photo_settings", | ||||||
|  |             "parent_slug" => "settings" | ||||||
|  |         ]); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function deactivate(): void | ||||||
|  |     { | ||||||
|  |         $this->menuService->removeItemBySlug("photo"); | ||||||
|  |         $this->menuService->removeItemBySlug("photo_settings"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function formInputs(string $entity, Model $model = null): void | ||||||
|  |     { | ||||||
|  |         if (isset($model->id)) { | ||||||
|  |             $value = PhotoService::getByEntity($entity, $model->id); | ||||||
|  |             echo Html::img($value, ['width' => '200px']); | ||||||
|  |         } | ||||||
|  |         $input = FileBuilder::build("image", [ | ||||||
|  |             'class' => 'form-control', | ||||||
|  |             'value' => $value ?? '', | ||||||
|  |         ]); | ||||||
|  |         $input->setLabel("Фото"); | ||||||
|  |         $input->create()->render(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function saveInputs(string $entity, Model $model, Request $request): void | ||||||
|  |     { | ||||||
|  |         Photo::where("entity", $entity)->where("entity_id", $model->id)->delete(); | ||||||
|  |  | ||||||
|  |         if (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) { | ||||||
|  |             $file = new FileUpload($_FILES['image'], ['jpg', 'jpeg', 'png']); | ||||||
|  |             $file->upload(); | ||||||
|  |             $image = $file->getUploadFile(); | ||||||
|  |             $photo = new Photo(); | ||||||
|  |             $photo->entity = $entity; | ||||||
|  |             $photo->entity_id = $model->id; | ||||||
|  |             $photo->image = $image; | ||||||
|  |             $photo->save(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     public function getItems(string $entity, Model $model): array|string | ||||||
|  |     { | ||||||
|  |         $photos = Photo::where("entity", $entity)->where("entity_id", $model->id)->get(); | ||||||
|  |         $photoStr = ""; | ||||||
|  |         foreach ($photos as $photo) { | ||||||
|  |             $photoStr .= "<img src='$photo->image' width='150px'>" . " "; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return substr($photoStr, 0, -1); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function getItem(string $entity, string $entity_id): string | ||||||
|  |     { | ||||||
|  |         $photos = Photo::where("entity", $entity)->where("entity_id", $entity_id)->get(); | ||||||
|  |         $photoStr = ""; | ||||||
|  |         foreach ($photos as $photo) { | ||||||
|  |             $photoStr .= "<img src='$photo->image' width='150px'>" . " "; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return substr($photoStr, 0, -1); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function deleteItems(string $entity, Model $model): void | ||||||
|  |     { | ||||||
|  |         Photo::where("entity", $entity)->where("entity_id", $model->id)->delete(); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										119
									
								
								kernel/app_modules/tag/TagModule.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								kernel/app_modules/tag/TagModule.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,119 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | namespace kernel\app_modules\tag; | ||||||
|  |  | ||||||
|  | use Illuminate\Database\Eloquent\Model; | ||||||
|  | use itguild\forms\builders\SelectBuilder; | ||||||
|  | use kernel\app_modules\tag\models\Tag; | ||||||
|  | use kernel\app_modules\tag\models\TagEntity; | ||||||
|  | use kernel\app_modules\tag\services\TagEntityService; | ||||||
|  | use kernel\Module; | ||||||
|  | use kernel\modules\menu\service\MenuService; | ||||||
|  | use kernel\modules\option\service\OptionService; | ||||||
|  | use kernel\Request; | ||||||
|  | use kernel\services\MigrationService; | ||||||
|  |  | ||||||
|  | class TagModule extends Module | ||||||
|  | { | ||||||
|  |  | ||||||
|  |     public MenuService $menuService; | ||||||
|  |     public MigrationService $migrationService; | ||||||
|  |  | ||||||
|  |     public function __construct() | ||||||
|  |     { | ||||||
|  |         $this->menuService = new MenuService(); | ||||||
|  |         $this->migrationService = new MigrationService(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * @throws \Exception | ||||||
|  |      */ | ||||||
|  |     public function init(): void | ||||||
|  |     { | ||||||
|  |         $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tag/migrations/tag"); | ||||||
|  |         $this->migrationService->runAtPath("{KERNEL_APP_MODULES}/tag/migrations/tag_entity"); | ||||||
|  |  | ||||||
|  |         $this->menuService->createItem([ | ||||||
|  |             "label" => "Тэги", | ||||||
|  |             "url" => "/admin/tag", | ||||||
|  |             "slug" => "tag", | ||||||
|  |         ]); | ||||||
|  |  | ||||||
|  |         $this->menuService->createItem([ | ||||||
|  |             "label" => "Тэги", | ||||||
|  |             "url" => "/admin/settings/tag", | ||||||
|  |             "slug" => "tag_settings", | ||||||
|  |             "parent_slug" => "settings" | ||||||
|  |         ]); | ||||||
|  |  | ||||||
|  |         OptionService::createFromParams("entity_tag_list", "{}", "Список тегов"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function deactivate(): void | ||||||
|  |     { | ||||||
|  |         $this->menuService->removeItemBySlug("tag"); | ||||||
|  |         $this->menuService->removeItemBySlug("tag_settings"); | ||||||
|  |         OptionService::removeOptionByKey("entity_tag_list"); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function formInputs(string $entity, Model $model = null): void | ||||||
|  |     { | ||||||
|  |         if (isset($model->id)) { | ||||||
|  |             $value = TagEntityService::getTagsByEntity($entity, $model->id); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         $input = SelectBuilder::build("tag[]", [ | ||||||
|  |             'class' => 'form-control', | ||||||
|  |             'placeholder' => 'Теги', | ||||||
|  |             'value' => $value ?? '', | ||||||
|  |             'multiple' => "multiple", | ||||||
|  |             'options' => Tag::getTagLabelByEntity($entity) | ||||||
|  |         ]); | ||||||
|  |         $input->setLabel("Теги"); | ||||||
|  |         $input->create()->render(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function saveInputs(string $entity, Model $model, Request $request): void | ||||||
|  |     { | ||||||
|  |         TagEntity::where("entity", $entity)->where("entity_id", $model->id)->delete(); | ||||||
|  |  | ||||||
|  |         $tags = $request->post("tag"); | ||||||
|  |         if (is_array($tags)) { | ||||||
|  |             foreach ($tags as $tag) { | ||||||
|  |                 $tagEntity = new TagEntity(); | ||||||
|  |                 $tagEntity->entity = $entity; | ||||||
|  |                 $tagEntity->entity_id = $model->id; | ||||||
|  |                 $tagEntity->tag_id = $tag; | ||||||
|  |                 $tagEntity->save(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     public function getItems(string $entity, Model $model): array|string | ||||||
|  |     { | ||||||
|  |         $tags = TagEntity::where("entity", $entity)->where("entity_id", $model->id)->with("tag")->get(); | ||||||
|  |         $tagsStr = ""; | ||||||
|  |         foreach ($tags as $tag) { | ||||||
|  |             $tagsStr .= $tag->tag->label . ", "; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return substr($tagsStr, 0, -2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function getItem(string $entity, string $entity_id): string | ||||||
|  |     { | ||||||
|  |         $tags = TagEntity::where("entity", $entity)->where("entity_id", $entity_id)->get(); | ||||||
|  |         $tagsStr = ""; | ||||||
|  |         foreach ($tags as $tag) { | ||||||
|  |             $tagsStr .= $tag->tag->label . ", "; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return substr($tagsStr, 0, -2); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public function deleteItems(string $entity, Model $model): void | ||||||
|  |     { | ||||||
|  |         TagEntity::where("entity", $entity)->where("entity_id", $model->id)->delete(); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user