diff --git a/app/Http/Controllers/Bo/ProductsController.php b/app/Http/Controllers/Bo/ProductsController.php index d462e293..ccfb544a 100644 --- a/app/Http/Controllers/Bo/ProductsController.php +++ b/app/Http/Controllers/Bo/ProductsController.php @@ -11,7 +11,6 @@ use App\Models\Ranges; use App\Models\MeatTypes; use App\Models\Recipes; use App\Models\SalesFamilies; -use App\Models\Countries; use App\Models\IncoNutritionalValues; use App\Models\Societies; use Illuminate\Support\Str; @@ -39,7 +38,6 @@ class ProductsController extends Controller $consumptionTimes = ConsumptionTimes::select('id', 'name')->get(); $recipes = Recipes::select('id', 'title')->get(); $salesFamilies = SalesFamilies::all(); - $countries = Countries::all(); $societies = Societies::all(); return view('bo.products.create', compact( 'pictosDatas', @@ -49,7 +47,6 @@ class ProductsController extends Controller 'consumptionTimes', 'recipes', 'salesFamilies', - 'countries', 'societies' )); } @@ -58,6 +55,8 @@ class ProductsController extends Controller { $request->validate([ 'name' => 'required|max:255', + 'seo_title' => 'required|max:255', + 'seo_description' => 'required|max:255', 'portion_description' => 'required|max:255', 'picture' => 'image|mimes:jpeg,png,jpg|max:2048|dimensions:width=324,height=328', 'tags' => 'max:255', @@ -79,6 +78,8 @@ class ProductsController extends Controller $name = $request->name; $slug = Str::slug($name); $portionDescription = $request->portion_description; + $seo_title = $request->seo_title; + $seo_description = $request->seo_description; $picture = $request->picture; $tags = $request->tags; $subtitle = $request->subtitle; @@ -144,6 +145,8 @@ class ProductsController extends Controller $p = new Products(); $p->name = $name; $p->slug = $slug; + $p->seo_title = $seo_title; + $p->seo_description = $seo_description; $p->portion_description = $portionDescription; $p->picture = 'uploads/images/produits/' . date('Y') . '/' . date('m') . '/' . $imageName; $p->tags = $tags; @@ -222,7 +225,7 @@ class ProductsController extends Controller return redirect()->route('bo.products.index'); } - public function edit($id) + public function edit(Products $p) { // Limitation aux champs dont on a besoin sur certaines requêtes pour ne pas surcharger ces dernières $pictograms = ProductPictograms::all(); @@ -236,9 +239,7 @@ class ProductsController extends Controller $consumptionTimes = ConsumptionTimes::select('id', 'name')->get(); $recipes = Recipes::select('id', 'title')->get(); $salesFamilies = SalesFamilies::all(); - $countries = Countries::all(); $societies = Societies::all(); - $p = Products::findOrFail($id); $pictosSelected = []; foreach ($p->pictograms as $pictoSelected) { $pictosSelected[] = [ @@ -257,15 +258,16 @@ class ProductsController extends Controller 'consumptionTimes', 'recipes', 'salesFamilies', - 'countries', 'societies' )); } - public function update(Request $request, $id) + public function update(Request $request, Products $p) { $request->validate([ 'name' => 'required|max:255', + 'seo_title' => 'required|max:255', + 'seo_description' => 'required|max:255', 'portion_description' => 'required|max:255', 'picture' => 'image|mimes:jpeg,png,jpg|max:2048|dimensions:width=324,height=328', 'tags' => 'max:255', @@ -292,6 +294,8 @@ class ProductsController extends Controller $name = $request->name; $slug = Str::slug($name); $portionDescription = $request->portion_description; + $seo_description = $request->seo_description; + $seo_title = $request->seo_title; $picture = $request->picture; $tags = $request->tags; $subtitle = $request->subtitle; @@ -359,8 +363,6 @@ class ProductsController extends Controller ]); } - $p = Products::findOrFail($id); - if ($picture !== null) { if (file_exists(public_path() . '/' . $p->picture)) { unlink(public_path() . '/' . $p->picture); @@ -414,6 +416,8 @@ class ProductsController extends Controller } $p->tags = $tags; $p->subtitle = $subtitle; + $p->seo_title = $seo_title; + $p->seo_description = $seo_description; $p->info1 = $info1; $p->info2 = $info2; $p->description = $description; diff --git a/app/Http/Controllers/Bo/RecipesController.php b/app/Http/Controllers/Bo/RecipesController.php index b035183a..b7fd7024 100644 --- a/app/Http/Controllers/Bo/RecipesController.php +++ b/app/Http/Controllers/Bo/RecipesController.php @@ -33,6 +33,8 @@ class RecipesController extends Controller $title = $request->title; $slug = Str::slug($title); $catchPhrase = $request->catch_phrase; + $seo_title = $request->seo_title; + $seo_description = $request->seo_description; $tags = $request->tags; $picture = $request->picture; $ingredients = $request->ingredients; @@ -53,6 +55,8 @@ class RecipesController extends Controller $request->validate([ 'title' => 'required|max:100', + 'seo_title' => 'required|max:255', + 'seo_description' => 'required|max:255', 'catch_phrase' => 'max:100', 'tags' => 'required|max:255', 'picture' => 'required|image|mimes:jpeg,png,jpg|max:2048|dimensions:width=683,height=434', @@ -73,6 +77,8 @@ class RecipesController extends Controller $r = new Recipes(); $r->title = $title; + $r->seo_title = $seo_title; + $r->seo_description = $seo_description; $r->slug = $slug; $r->catch_phrase = $catchPhrase; $r->tags = $tags; @@ -121,6 +127,8 @@ class RecipesController extends Controller $title = $request->title; $slug = Str::slug($title); $catchPhrase = $request->catch_phrase; + $seo_title = $request->seo_title; + $seo_description = $request->seo_description; $tags = $request->tags; $picture = $request->picture; $ingredients = $request->ingredients; @@ -141,6 +149,8 @@ class RecipesController extends Controller $request->validate([ 'title' => 'required|max:100', + 'seo_title' => 'required|max:255', + 'seo_description' => 'required|max:255', 'catch_phrase' => 'max:100', 'tags' => 'required|max:255', 'ingredients' => 'required|max:4000', @@ -173,6 +183,8 @@ class RecipesController extends Controller $r->title = $title; $r->slug = $slug; + $r->seo_title = $seo_title; + $r->seo_description = $seo_description; $r->catch_phrase = $catchPhrase; $r->tags = $tags; if ($picture !== null) { diff --git a/app/Models/Products.php b/app/Models/Products.php index c87bc1d2..60e3c653 100644 --- a/app/Models/Products.php +++ b/app/Models/Products.php @@ -11,6 +11,17 @@ class Products extends Model 'star' => 'boolean' ]; + protected static function booted() + { + static::creating(function ($product) { + if (!$product->incoNutritionalValues) { + $inc = new IncoNutritionalValues(); + $inc->incoNutritionalValues()->associate($inc); + } + return $product; + }); + } + public function pictograms() { return $this->belongsToMany( diff --git a/config/app.php b/config/app.php index a9dcf01b..64bceace 100644 --- a/config/app.php +++ b/config/app.php @@ -239,6 +239,7 @@ return [ 'View' => Illuminate\Support\Facades\View::class, 'Days' => \App\Enums\Days::class, 'RecipeType' => \App\Enums\RecipeType::class, + 'RecipeDifficulty' => \App\Enums\RecipeDifficulty::class, 'ContactFormCivility' => App\Enums\ContactFormCivility::class, 'ContactFormType' => App\Enums\ContactFormType::class, 'BalancedMenuType' => App\Enums\BalancedMenuType::class, diff --git a/database/migrations/2021_02_06_112145_migrate_old_data_base.php b/database/migrations/2021_02_06_112145_migrate_old_data_base.php index 856a70f7..3631c335 100644 --- a/database/migrations/2021_02_06_112145_migrate_old_data_base.php +++ b/database/migrations/2021_02_06_112145_migrate_old_data_base.php @@ -616,7 +616,7 @@ class MigrateOldDataBase extends LeGaulois2016Migration 'produit_tag.tag_id' )->get(['tag_label'])->transform(function ($obj) { return $obj->tag_label; - })->join('#|#'); + })->join(';'); }, 'name' => 'produit_id' ], diff --git a/database/migrations/2021_03_29_120820_add_seo_title_and_seo_description_on_recipes_table.php b/database/migrations/2021_03_29_120820_add_seo_title_and_seo_description_on_recipes_table.php new file mode 100644 index 00000000..65646a15 --- /dev/null +++ b/database/migrations/2021_03_29_120820_add_seo_title_and_seo_description_on_recipes_table.php @@ -0,0 +1,34 @@ +string('seo_title')->after('slug'); + $table->string('seo_description')->after('seo_title'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('recipes', function (Blueprint $table) { + $table->dropColumn('seo_title'); + $table->dropColumn('seo_description'); + }); + } +} diff --git a/database/migrations/2021_03_29_120837_add_seo_title_and_seo_description_on_products_table.php b/database/migrations/2021_03_29_120837_add_seo_title_and_seo_description_on_products_table.php new file mode 100644 index 00000000..1c05620b --- /dev/null +++ b/database/migrations/2021_03_29_120837_add_seo_title_and_seo_description_on_products_table.php @@ -0,0 +1,34 @@ +string('seo_title')->after('description'); + $table->string('seo_description')->after('seo_title'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('products', function (Blueprint $table) { + $table->dropColumn('seo_title'); + $table->dropColumn('seo_description'); + }); + } +} diff --git a/resources/views/bo/products/create.blade.php b/resources/views/bo/products/create.blade.php index 491cbeb2..72b09252 100644 --- a/resources/views/bo/products/create.blade.php +++ b/resources/views/bo/products/create.blade.php @@ -23,10 +23,20 @@ @endif
- + +
- + + +
+
+ + +
+
+ +

@@ -41,25 +51,32 @@
- + +
- + +
- + +
- + +
- + +
- + +
- + +
@@ -189,15 +206,6 @@
-
- - -
+ +
- + + +
+
+ + +
+
+ +

@@ -47,7 +57,8 @@
- + +
@@ -55,25 +66,32 @@
- + +
- + +
- + +
- + +
- + +
- + +
- + +
@@ -91,7 +109,7 @@ - + + Énergie kJ - - + + Protéines - - + + Glucides - - + + Sucres - - + + Matière grasse - - + + Acides Gras Saturés - - + + Fibres alimentaires - - + + Sel - - + + @@ -237,19 +255,6 @@
-
- - -
+ +
- + +
- + + +
+
+ + +
+
+ +
@@ -52,14 +63,12 @@

+ @foreach(RecipeType::toArray() as $rType) - + @endforeach
@@ -82,10 +91,9 @@
diff --git a/resources/views/bo/recipes/edit.blade.php b/resources/views/bo/recipes/edit.blade.php index 1a97725a..3c6eb3a1 100644 --- a/resources/views/bo/recipes/edit.blade.php +++ b/resources/views/bo/recipes/edit.blade.php @@ -8,8 +8,7 @@
@method('DELETE') @csrf - +
@@ -34,13 +33,24 @@
@endif
- + +
- + +
- + + +
+
+ + +
+
+ +
@@ -66,14 +76,12 @@

+ @foreach(RecipeType::toArray() as $rType) - + @endforeach
@@ -96,10 +104,9 @@
diff --git a/resources/views/front/products/product.blade.php b/resources/views/front/products/product.blade.php index 271b4273..9ed77422 100644 --- a/resources/views/front/products/product.blade.php +++ b/resources/views/front/products/product.blade.php @@ -29,7 +29,7 @@

{{ $product->name }}

{{ $product->subtitle }}

- @foreach (explode('#|#', $product->tags) as $tag) + @foreach (explode(';', $product->tags) as $tag)

{{ $tag }}

@endforeach
diff --git a/routes/web.php b/routes/web.php index 847bab6d..fc0c8d20 100644 --- a/routes/web.php +++ b/routes/web.php @@ -81,9 +81,9 @@ Route::prefix('bo') Route::resource('ocb', 'ContentOCBController'); Route::resource('product-pictograms', 'ProductPictogramsController'); Route::resource('product-slider-pictures', 'ProductSliderPicturesController'); - Route::resource('products', 'ProductsController'); + Route::resource('products', 'ProductsController')->except(['show']); Route::resource('ranges', 'RangesController'); - Route::resource('recipes', 'RecipesController'); + Route::resource('recipes', 'RecipesController')->except(['show']); Route::resource('users', 'UsersController'); });