diff --git a/app/Enums/StaticPageType.php b/app/Enums/StaticPageType.php index dd8436b3..0d86c143 100644 --- a/app/Enums/StaticPageType.php +++ b/app/Enums/StaticPageType.php @@ -29,6 +29,7 @@ enum StaticPageType: int case breedingHealth = 19; case search = 20; case sitemap = 21; + case rules = 22; /** * Optionnal labels definition. @@ -56,7 +57,8 @@ enum StaticPageType: int self::breedingFood->name => 'L\'alimentation des volailles', self::breedingHealth->name => 'La santé des volailles', self::search->name => 'Recherche', - self::sitemap->name => 'Plan du site', + self::sitemap->name => 'Plan du site', + self::rules->name => 'Règlement du jeu', ]; /** diff --git a/app/Http/Controllers/Fo/StaticPageController.php b/app/Http/Controllers/Fo/StaticPageController.php index f62636a7..daab53af 100644 --- a/app/Http/Controllers/Fo/StaticPageController.php +++ b/app/Http/Controllers/Fo/StaticPageController.php @@ -59,6 +59,19 @@ class StaticPageController extends Controller return view('fo.pages.sitemap', ['staticPageModel' => $sitemap, 'singlePages' => $singlePages]); } + /** + * Rules page. + * + * @param \App\Models\StaticPage $staticPage + * @return \Illuminate\Contracts\View\View + */ + public function rules(StaticPage $sitemap) + { + $rules = StaticPage::query()->where('type', StaticPageType::rules)->first(); + + return view('fo.pages.rules', ['staticPageModel' => $rules]); + } + /** * Termes and conditions selling page. * diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php index d9496dcf..6e151395 100644 --- a/app/Providers/ViewServiceProvider.php +++ b/app/Providers/ViewServiceProvider.php @@ -124,6 +124,7 @@ class ViewServiceProvider extends ServiceProvider ['name' => 'sellingStaticPageModel', 'value' => StaticPage::getCachedStaticPage(StaticPageType::selling)], ['name' => 'accessibilityStaticPageModel', 'value' => StaticPage::getCachedStaticPage(StaticPageType::accessibility)], ['name' => 'sitemapStaticPageModel', 'value' => StaticPage::getCachedStaticPage(StaticPageType::sitemap)], + ['name' => 'rulesStaticPageModel', 'value' => StaticPage::getCachedStaticPage(StaticPageType::rules)], ['name' => 'contactStaticPageModel', 'value' => StaticPage::getCachedStaticPage(StaticPageType::contact)], ['name' => 'productStaticPageModel', 'value' => StaticPage::getCachedStaticPage(StaticPageType::product)], ['name' => 'breedingPoultryStaticPageModel', 'value' => StaticPage::getCachedStaticPage(StaticPageType::breedingPoultry)], diff --git a/database/migrations/2025_04_03_095319_add_static_page_game_rules.php b/database/migrations/2025_04_03_095319_add_static_page_game_rules.php new file mode 100644 index 00000000..c37b1c7c --- /dev/null +++ b/database/migrations/2025_04_03_095319_add_static_page_game_rules.php @@ -0,0 +1,47 @@ +type = StaticPageType::rules; + $staticPage->seo_title = trans( + 'SEO title pour la page :label', + ['label' => StaticPageType::rules->label()] + ); + $staticPage->seo_description = trans( + 'SEO description pour la page :label', + ['label' => StaticPageType::rules->label()] + ); + $staticPage->title = trans(StaticPageType::rules->label()); + $staticPage->slug = Str::of(StaticPageType::rules->label())->slug(); + $staticPage->subtitle = null; + $staticPage->picture = null; + $staticPage->picture_alt = null; + $staticPage->picture_title = null; + $staticPage->content = trans('Le contenu de votre page'); + $staticPage->data = []; + $staticPage->saveQuietly(); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + StaticPage::query()->where('type', StaticPageType::rules)->first()->delete(); + } +}; diff --git a/database/seeders/Mandatory/StaticPageSeeder.php b/database/seeders/Mandatory/StaticPageSeeder.php index 9cc8ff31..bfa6c2a7 100644 --- a/database/seeders/Mandatory/StaticPageSeeder.php +++ b/database/seeders/Mandatory/StaticPageSeeder.php @@ -108,6 +108,7 @@ class StaticPageSeeder extends Seeder ]); $this->seedStaticPage(StaticPageType::search); $this->seedStaticPage(StaticPageType::sitemap); + $this->seedStaticPage(StaticPageType::rules); } /** diff --git a/resources/views/fo/layouts/footer/bottom-links.blade.php b/resources/views/fo/layouts/footer/bottom-links.blade.php index a5553662..7b33c32e 100644 --- a/resources/views/fo/layouts/footer/bottom-links.blade.php +++ b/resources/views/fo/layouts/footer/bottom-links.blade.php @@ -22,6 +22,10 @@