From 316452d7b7ffc9386e78158d93703d8a77bde7ea Mon Sep 17 00:00:00 2001 From: A1Gard Date: Wed, 2 Oct 2024 04:39:14 +0330 Subject: [PATCH] added canonical tag to post, product, group, category --- .../Controllers/Admin/CategoryController.php | 3 +++ app/Http/Controllers/Admin/GroupController.php | 3 +++ app/Http/Controllers/Admin/PostController.php | 4 ++++ .../Controllers/Admin/ProductController.php | 5 +++++ app/Http/Requests/CategorySaveRequest.php | 1 + app/Http/Requests/GroupSaveRequest.php | 1 + app/Http/Requests/PostSaveRequest.php | 1 + app/Http/Requests/ProductSaveRequest.php | 3 ++- .../2024_05_07_123332_create_groups_table.php | 1 + .../2024_05_07_123414_create_posts_table.php | 1 + ...024_05_07_125838_create_categories_table.php | 1 + .../2024_05_07_130016_create_products_table.php | 1 + .../admin/categories/category-form.blade.php | 16 ++++++++++++++++ .../views/admin/groups/group-form.blade.php | 15 +++++++++++++++ resources/views/admin/posts/post-form.blade.php | 16 ++++++++++++++++ .../products/sub-pages/product-step3.blade.php | 9 +++++++++ .../views/website/inc/website-head.blade.php | 17 +++++++++++++++++ 17 files changed, 97 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/CategoryController.php b/app/Http/Controllers/Admin/CategoryController.php index 6438253..fbd1068 100644 --- a/app/Http/Controllers/Admin/CategoryController.php +++ b/app/Http/Controllers/Admin/CategoryController.php @@ -60,6 +60,9 @@ class CategoryController extends XController if ($category->parent_id != ''){ $category->parent_id = $request->input('parent_id',null); } + if ($request->has('canonical') && trim($request->input('canonical')) != ''){ + $category->canonical = $request->input('canonical'); + } $category->slug = $this->getSlug($category); if ($request->has('image')) { $category->image = $this->storeFile('image', $category, 'categories'); diff --git a/app/Http/Controllers/Admin/GroupController.php b/app/Http/Controllers/Admin/GroupController.php index 0d0f3d7..a226794 100644 --- a/app/Http/Controllers/Admin/GroupController.php +++ b/app/Http/Controllers/Admin/GroupController.php @@ -59,6 +59,9 @@ class GroupController extends XController if ($group->parent_id != ''){ $group->parent_id = $request->input('parent_id',null); } + if ($request->has('canonical') && trim($request->input('canonical')) != ''){ + $group->canonical = $request->input('canonical'); + } $group->slug = $this->getSlug($group); if ($request->has('image')){ $group->image = $this->storeFile('image',$group, 'groups'); diff --git a/app/Http/Controllers/Admin/PostController.php b/app/Http/Controllers/Admin/PostController.php index 8de63b4..62f8eb6 100644 --- a/app/Http/Controllers/Admin/PostController.php +++ b/app/Http/Controllers/Admin/PostController.php @@ -61,6 +61,10 @@ class PostController extends XController $post->table_of_contents = $request->has('table_of_contents'); $post->icon = $request->input('icon'); + if ($request->has('canonical') && trim($request->input('canonical')) != ''){ + $post->canonical = $request->input('canonical'); + } + if ($post->hash == null) { $post->hash = date('Ym') . str_pad(dechex(crc32($post->slug)), 8, '0', STR_PAD_LEFT); } diff --git a/app/Http/Controllers/Admin/ProductController.php b/app/Http/Controllers/Admin/ProductController.php index 6ee71e0..94998a5 100644 --- a/app/Http/Controllers/Admin/ProductController.php +++ b/app/Http/Controllers/Admin/ProductController.php @@ -77,11 +77,16 @@ class ProductController extends XController $product->user_id = auth()->id(); $product->status = $request->input('status'); $tags = array_filter(explode(',,', $request->input('tags'))); + if ($request->has('canonical') && trim($request->input('canonical')) != ''){ + $product->canonical = $request->input('canonical'); + } + $product->save(); $product->categories()->sync($request->input('cat')); if (count($tags) > 0){ $product->syncTags($tags); } + foreach ($product->getMedia() as $media) { in_array($media->id, request('medias', [])) ?: $media->delete(); } diff --git a/app/Http/Requests/CategorySaveRequest.php b/app/Http/Requests/CategorySaveRequest.php index dfdeff4..372cce4 100644 --- a/app/Http/Requests/CategorySaveRequest.php +++ b/app/Http/Requests/CategorySaveRequest.php @@ -28,6 +28,7 @@ class CategorySaveRequest extends FormRequest 'bg' => ['nullable', 'file', 'mimes:jpg,svg,png'], 'description' => ['nullable', 'string',], 'parent_id' => ['nullable', 'exists:categories,id'], + 'canonical' => ['nullable', 'url', 'min:5', 'max:128'], ]; } } diff --git a/app/Http/Requests/GroupSaveRequest.php b/app/Http/Requests/GroupSaveRequest.php index 35fcd94..b8376d2 100644 --- a/app/Http/Requests/GroupSaveRequest.php +++ b/app/Http/Requests/GroupSaveRequest.php @@ -28,6 +28,7 @@ class GroupSaveRequest extends FormRequest 'bg' => ['nullable', 'file', 'mimes:jpg,svg,png'], 'description' => ['nullable', 'string',], 'parent_id' => ['nullable', 'exists:groups,id'], + 'canonical' => ['nullable', 'url', 'min:5', 'max:128'], ]; } } diff --git a/app/Http/Requests/PostSaveRequest.php b/app/Http/Requests/PostSaveRequest.php index c9cc74f..3a574a4 100644 --- a/app/Http/Requests/PostSaveRequest.php +++ b/app/Http/Requests/PostSaveRequest.php @@ -30,6 +30,7 @@ class PostSaveRequest extends FormRequest 'image' => ['nullable', 'image', 'mimes:jpeg,png,jpg,gif,svg', 'max:2048'], 'icon' => ['nullable', 'string', 'min:3'], 'group_id' => ['required', 'exists:groups,id'], + 'canonical' => ['nullable', 'url', 'min:5', 'max:128'], ]; } } diff --git a/app/Http/Requests/ProductSaveRequest.php b/app/Http/Requests/ProductSaveRequest.php index 2a27d03..114f856 100644 --- a/app/Http/Requests/ProductSaveRequest.php +++ b/app/Http/Requests/ProductSaveRequest.php @@ -29,7 +29,8 @@ class ProductSaveRequest extends FormRequest 'active' => ['nullable', 'boolean'], 'meta' => ['nullable'], 'category_id' => ['required', 'exists:categories,id'], - 'image.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048' + 'image.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048', + 'canonical' => ['nullable', 'url', 'min:5', 'max:128'], ]; } } diff --git a/database/migrations/2024_05_07_123332_create_groups_table.php b/database/migrations/2024_05_07_123332_create_groups_table.php index af4b56e..4d62d81 100644 --- a/database/migrations/2024_05_07_123332_create_groups_table.php +++ b/database/migrations/2024_05_07_123332_create_groups_table.php @@ -22,6 +22,7 @@ return new class extends Migration $table->integer('sort')->default(0); $table->unsignedInteger('parent_id')->nullable()->default(null)->index(); $table->json('theme')->nullable(); + $table->text('canonical')->nullable(); $table->softDeletes(); $table->timestamps(); }); diff --git a/database/migrations/2024_05_07_123414_create_posts_table.php b/database/migrations/2024_05_07_123414_create_posts_table.php index 91bbd3f..81512e7 100644 --- a/database/migrations/2024_05_07_123414_create_posts_table.php +++ b/database/migrations/2024_05_07_123414_create_posts_table.php @@ -28,6 +28,7 @@ return new class extends Migration $table->string('icon', 128)->nullable(); $table->boolean('table_of_contents')->default(0); $table->json('theme')->nullable(); + $table->text('canonical')->nullable(); $table->string('promote')->nullable(); $table->softDeletes(); $table->timestamps(); diff --git a/database/migrations/2024_05_07_125838_create_categories_table.php b/database/migrations/2024_05_07_125838_create_categories_table.php index 110b6dc..e15295c 100644 --- a/database/migrations/2024_05_07_125838_create_categories_table.php +++ b/database/migrations/2024_05_07_125838_create_categories_table.php @@ -22,6 +22,7 @@ return new class extends Migration $table->string('bg',2048)->nullable()->default(null); $table->unsignedInteger('parent_id')->nullable()->default(null)->index(); $table->json('theme')->nullable(); + $table->text('canonical')->nullable(); $table->softDeletes(); $table->timestamps(); }); diff --git a/database/migrations/2024_05_07_130016_create_products_table.php b/database/migrations/2024_05_07_130016_create_products_table.php index dd476d9..27e7d18 100644 --- a/database/migrations/2024_05_07_130016_create_products_table.php +++ b/database/migrations/2024_05_07_130016_create_products_table.php @@ -36,6 +36,7 @@ return new class extends Migration $table->unsignedBigInteger('sell')->default(0); $table->unsignedTinyInteger('image_index')->default(0); $table->json('theme')->nullable(); + $table->text('canonical')->nullable(); $table->string('promote')->nullable(); $table->softDeletes(); $table->timestamps(); diff --git a/resources/views/admin/categories/category-form.blade.php b/resources/views/admin/categories/category-form.blade.php index 1cf099c..d5844e2 100644 --- a/resources/views/admin/categories/category-form.blade.php +++ b/resources/views/admin/categories/category-form.blade.php @@ -51,6 +51,22 @@ @endif + @if(isset($item)) +
+
+
+ + +
+
+
+ @endif +
diff --git a/resources/views/admin/groups/group-form.blade.php b/resources/views/admin/groups/group-form.blade.php index 5895f97..d479696 100644 --- a/resources/views/admin/groups/group-form.blade.php +++ b/resources/views/admin/groups/group-form.blade.php @@ -49,6 +49,21 @@
@endif + @if(isset($item)) +
+
+
+ + +
+
+
+ @endif diff --git a/resources/views/admin/posts/post-form.blade.php b/resources/views/admin/posts/post-form.blade.php index 7f5b0c3..90ab705 100644 --- a/resources/views/admin/posts/post-form.blade.php +++ b/resources/views/admin/posts/post-form.blade.php @@ -80,6 +80,22 @@ @endif + @if(isset($item)) +
+
+
+ + +
+
+
+ @endif +
diff --git a/resources/views/admin/products/sub-pages/product-step3.blade.php b/resources/views/admin/products/sub-pages/product-step3.blade.php index be4cc54..ab7f0da 100644 --- a/resources/views/admin/products/sub-pages/product-step3.blade.php +++ b/resources/views/admin/products/sub-pages/product-step3.blade.php @@ -44,6 +44,15 @@
+
+ + +