feat ✨ make migration and config Bo and Fo for raise page

This commit is contained in:
Abdel LAMRANI 2026-06-08 17:47:51 +02:00
parent 4a1acb461b
commit 61d5703c3f
13 changed files with 939 additions and 315 deletions

View file

@ -37,6 +37,7 @@ enum StaticPageType: int
case respectTheEarth = 27;
case forLivingTogether = 28;
case poultryBrand = 29;
case raiseSustainably = 30;
/**
* Optionnal labels definition.
@ -74,6 +75,7 @@ enum StaticPageType: int
self::forLivingTogether->name => 'Favoriser le mieux vivre ensemble',
self::poultryBrand->name => 'la marque de volaille 100% française',
self::raiseSustainably->name => 'Élever durablement',
];
/**
@ -115,6 +117,7 @@ enum StaticPageType: int
self::respectTheEarth,
self::forLivingTogether,
self::poultryBrand,
self::raiseSustainably,
];
}

View file

@ -41,4 +41,15 @@ class CommitmentController extends Controller
$staticPageModel->load(['sections.blocks', 'sections.pictos']);
return view('fo.pages.commitments.brand', ['staticPageModel' => $staticPageModel]);
}
/**
* Display the given page.
* @return \Illuminate\Contracts\View\View
*/
public function getRaiseSustainably(): \Illuminate\Contracts\View\View
{
$staticPageModel = StaticPage::getCachedStaticPage(StaticPageType::raiseSustainably);
$staticPageModel->load(['sections.blocks', 'sections.pictos']);
return view('fo.pages.commitments.raise', ['staticPageModel' => $staticPageModel]);
}
}

View file

@ -75,4 +75,35 @@ class UpdateSectionPageRequest extends UpdateMiniCrudRequest
], 422)
);
}
public function attributes(): array
{
$attributes = [
'data.title' => 'Titre',
'data.description' => 'Description',
'data.media' => 'Media',
'data.media.value' => 'Media',
'data.media.alt' => 'Media Alt',
'data.media.title' => 'Media Title',
'data.media_picto.value' => 'Picto',
'data.media_picto.alt' => 'Picto Alt',
'data.media_picto.title' => 'Picto Title',
];
for ($i = 1; $i <= 8; $i++) {
$attributes["data.title_{$i}.value"] = "Titre du point {$i}";
}
foreach (['left' => 'gauche', 'right' => 'droite', 'center' => 'centre'] as $key => $label) {
$attributes["data.title_{$key}.value"] = "Titre {$label}";
$attributes["data.description_{$key}.value"] = "Description {$label}";
$attributes["data.media_{$key}.value"] = "Picto {$label}";
$attributes["data.media_{$key}.alt"] = "Picto {$label} alt";
$attributes["data.media_{$key}.title"] = "Picto {$label} title";
}
$attributes["data.title_sec.value"] = "Titre de l'encart";
return $attributes;
}
}

View file

@ -153,7 +153,9 @@ class UpdateStaticPageRequest extends UpdateMiniCrudRequest
!$staticPageModel->type->equals(StaticPageType::ouiCBon) &&
!$staticPageModel->type->equals(StaticPageType::respectTheEarth) &&
!$staticPageModel->type->equals(StaticPageType::forLivingTogether) &&
!$staticPageModel->type->equals(StaticPageType::poultryBrand)
!$staticPageModel->type->equals(StaticPageType::poultryBrand) &&
!$staticPageModel->type->equals(StaticPageType::raiseSustainably)
) {
$rules = \array_merge(
$rules,
@ -174,7 +176,9 @@ class UpdateStaticPageRequest extends UpdateMiniCrudRequest
!$staticPageModel->type->equals(StaticPageType::ouiCBon) &&
!$staticPageModel->type->equals(StaticPageType::respectTheEarth) &&
!$staticPageModel->type->equals(StaticPageType::forLivingTogether) &&
!$staticPageModel->type->equals(StaticPageType::poultryBrand)
!$staticPageModel->type->equals(StaticPageType::poultryBrand) &&
!$staticPageModel->type->equals(StaticPageType::raiseSustainably)
) {
$rules = \array_merge(
$rules,
@ -191,7 +195,7 @@ class UpdateStaticPageRequest extends UpdateMiniCrudRequest
*/
public function attributes(): array
{
return [
$attributes = [
'seo_title' => trans('validation.custom.seo_title'),
'seo_description' => trans('validation.custom.seo_description'),
'title' => trans('validation.attributes.title'),
@ -202,5 +206,11 @@ class UpdateStaticPageRequest extends UpdateMiniCrudRequest
'picture_title' => trans('validation.custom.attribute_title'),
'data' => trans('validation.attributes.data'),
];
$attributes["data.picto_banner.value"] = "Picto banner";
$attributes["data.picto_banner.alt"] = "Alt picto banner";
$attributes["data.picto_banner.tile"] = "Title picto banner";
return $attributes;
}
}

View file

@ -0,0 +1,685 @@
<?php
use App\Enums\BlockTypeEnum;
use App\Enums\InputType;
use App\Enums\StaticPageType;
use App\Lib\Helpers\FileStorageHelper;
use App\Models\Block;
use App\Models\Picto;
use App\Models\StaticPage;
use Illuminate\Database\Migrations\Migration;
return new class extends Migration
{
private function getSections(): array
{
return [
[
'name' => 'section 2',
'data' => [
'title' => [
'label' => 'Section 2 : Titre',
'inputType' => InputType::string->value,
'value' => 'Nature d’éleveurs : une démarche éthique et durable',
'validate' => 'required|string|between:3,255',
'required' => true
],
'description' => [
'label' => 'Section 2 : Description',
'inputType' => InputType::text->value,
'value' => "<p><a href='https://www.naturedeleveurs.fr/' target='_blank'>Nature d’Éleveurs</a> est une démarche d’élevage durable pour les volailles françaises élevées en poulailler. Elle fédère en filière les éleveurs et leurs partenaires : couvoirs, fabricants d’aliments, organisations de production et abattoirs.<br><br><a href='https://www.naturedeleveurs.fr/' target='_blank'>Nature d’Éleveurs</a> est un contrat de progrès évolutif qui vise l’amélioration continue des conditions d’élevage et fixe des obligations de résultats. Contrôlée et garantie par des organismes indépendants, Nature d’Éleveurs engage au respect d’exigences en faveur de l’origine France, de l’environnement, de l’amélioration du bien-être, de la santé des animaux et de la qualité des produits.</p>",
'validate' => 'required|string|min:15',
'required' => true
],
'media' => [
'label' => 'Section 2 : Media',
'inputType' => InputType::selectImageVideo->value,
'dimensions' => [
'width' => 479,
'height' => 291
],
'required' => true,
'validate' => 'required|array',
'value' => [
'video' => [
'id' => 'GobjpJr5jm4',
'alt' => 'video alt',
'title' => 'video title',
]
],
],
'media_picto' => [
'label' => 'Section 2 : Picto du media',
'inputType' => InputType::image->value,
'dimensions' => [
'width' => 206,
'height' => 214
],
'alt' => 'Logo Nature d’Éleveurs, démarche d’élevage durable du groupe LDC pour ses volailles françaises élevées en poulailler',
'title' => 'Logo Nature d\'Éleveurs',
'value' => 'commitments/commitment-2/logo-nature-eleveurs.png',
'validate' => 'nullable',
'required' => false
],
],
'blocks' => [
'reductionBlock' => true,
]
],
[
'name' => 'section 3',
'data' => [
'title' => [
'label' => 'Section 3 : Titre',
'inputType' => InputType::string->value,
'value' => 'cette démarche repose sur :nbrKeyList points clés',
'validate' => 'required|string|between:3,255',
'required' => true
],
'title_1' => [
'label' => 'Section 3 : Titre du point 1',
'inputType' => InputType::string->value,
'value' => 'la relocalisation de l’alimentation',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
'title_2' => [
'label' => 'Section 3 : Titre du point 2',
'inputType' => InputType::string->value,
'value' => 'l’origine france garantie',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
'title_3' => [
'label' => 'Section 3 : Titre du point 3',
'inputType' => InputType::string->value,
'value' => 'la diversité des filières d’élevages',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
'title_4' => [
'label' => 'Section 3 : Titre du point 4',
'inputType' => InputType::string->value,
'value' => 'le confort et les comportements naturels des animaux',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
'title_5' => [
'label' => 'Section 3 : Titre du point 5',
'inputType' => InputType::string->value,
'value' => 'la santé des animaux via l’hygiène et la sécurité sanitaire',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
'title_6' => [
'label' => 'Section 3 : Titre du point 6',
'inputType' => InputType::string->value,
'value' => 'le respect de la nature',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
'title_7' => [
'label' => 'Section 3 : Titre du point 7',
'inputType' => InputType::string->value,
'value' => 'le contrôle par des organismes indépendants et la transparence',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
'title_8' => [
'label' => 'Section 3 : Titre du point 8',
'inputType' => InputType::string->value,
'value' => 'l’accompagnement du bien-être des éleveurs',
'validate' => 'nullable|string|between:3,255',
'required' => false
],
],
'blocks' => [
'has_pictos' => true,
'max_pictos' => 4,
]
],
[
'name' => 'section 4',
'data' => [
'title' => [
'label' => 'Section 4 : Titre',
'inputType' => InputType::string->value,
'value' => 'Oui c’est Bon ! : Oui à d’avantage d’engagements',
'validate' => 'required|string|between:3,255',
'required' => true
],
'description' => [
'label' => 'Section 4 : Description',
'inputType' => InputType::text->value,
'value' => '<p>Pour aller plus loin, Le Gaulois a mis en place le cahier des charges d’élevage spécifique “Oui c’est Bon !“ pour garantir des produits de qualité à un prix accessible et ainsi prendre, encore davantage en compte, l’amélioration du bien-être animal, la préservation de la santé des volailles et l’environnement.<br><br>La démarche ”Oui c’est Bon !”, ce sont des garanties Nature d’Eleveurs auxquelles s’ajoutent des exigences supérieures.</p>',
'validate' => 'required|string|min:15',
'required' => true
],
'media' => [
'label' => 'Section 4 : Media',
'inputType' => InputType::selectImageVideo->value,
'dimensions' => [
'width' => 479,
'height' => 291
],
'required' => true,
'validate' => 'required|array',
'value' => [
'picture' => [
'path' => 'commitments/common/breeder-2.jpg',
'alt' => 'Éleveur porte une volaille dans ses bras et regarde la qualité de ses pattes',
'title' => 'Éleveur Oui c’est Bon porte sa volaille dans les bras pour inspecter les pattes du poulet',
]
],
],
'media_picto' => [
'label' => 'Section 4 : Picto du media',
'inputType' => InputType::image->value,
'dimensions' => [
'width' => 245,
'height' => 245
],
'alt' => 'Logo Le Gaulois "Oui c’est bon", démarche respectant un cahier des charges d’élevage spécifique qui vise à améliorer le bien-être animal, à préserver la santé des volailles et l’environnement',
'title' => 'Logo Le Gaulois Oui c’est Bon',
'value' => 'commitments/common/logo-ouicestbon.png',
'validate' => 'nullable',
'required' => false
],
],
'blocks' => [
'reductionBlock' => true,
'has_pictos' => true,
'max_pictos' => 4,
]
],
[
'name' => 'section 5',
'data' => [
'title' => [
'label' => 'Section 5 : Titre',
'inputType' => InputType::string->value,
'value' => 'sortant à l’extérieur : une démarche qui va encore plus loin',
'validate' => 'required|string|between:3,255',
'required' => true
],
'description' => [
'label' => 'Section 5 : Description',
'inputType' => InputType::text->value,
'value' => '<p><strong>Le Gaulois continue à s’engager dans l’amélioration du bien-être animal à travers « Sortant à l’Extérieur ». Cette nouvelle démarche, inédite, rassemble déjà plusieurs centaines d’éleveurs partenaires autour d’un cahier des charges ambitieux : élever des volailles qui sortent à l’extérieur dans les prés de l’ouest de la France pendant au moins 50% de leur élevage !</strong><br><br>La « Sortant à l’Extérieur », ce sont des volailles nées et élevées en France, qui ont accès quotidiennement à un parcours extérieur pendant au minimum 8 heures par jour !<br><br>Les portes des poulaillers sont ouvertes toute la journée, les poulets décident donc s’ils veulent sortir ou rester dans le bâtiment. Nourries avec des céréales entières 100% françaises et garanties sans OGM, nos volailles ont par ailleurs à disposition des jouets afin de leur garantir des conditions d’élevage les plus proches possible de leur milieu naturel.</p>',
'validate' => 'required|string|min:15',
'required' => true
],
'media' => [
'label' => 'Section 5 : Media',
'inputType' => InputType::selectImageVideo->value,
'dimensions' => [
'width' => 479,
'height' => 291
],
'required' => true,
'validate' => 'required|array',
'value' => [
'picture' => [
'path' => 'commitments/common/breeder-1.jpg',
'alt' => 'Éleveur de volaille Le Gaulois dans un champs, souriant avec une poule dans les mains',
'title' => 'Eleveur de volaille dans un champs avec une poule',
]
],
],
'media_picto' => [
'label' => 'Section 5 : Picto du media',
'inputType' => InputType::image->value,
'dimensions' => [
'width' => 245,
'height' => 245
],
'alt' => 'Logo Le Gaulois "Sortant à l’extérieur", démarche s’engageant à ce que les volailles sortent à l’extérieur, tous les jours pour améliorer le bien-être animal, préserver la santé des volailles et respecter l’environnement',
'title' => 'Logo Le Gaulois Sortant à l’extérieur',
'value' => 'commitments/common/logo-sal.png',
'validate' => 'nullable',
'required' => false
],
],
'blocks' => [
'reductionBlock' => true,
'has_pictos' => true,
'max_pictos' => 3,
]
],
[
'name' => 'section 6',
'data' => [
'title' => [
'label' => 'Section 6 : Titre',
'inputType' => InputType::string->value,
'value' => 'la santé de nos volailles : on en prend le plus grand soin',
'validate' => 'required|string|between:3,255',
'required' => true
],
'description' => [
'label' => 'Section 6 : Description',
'inputType' => InputType::text->value,
'value' => '<p>Le Gaulois est engagé dans une démarche volontariste et continue afin de mieux protéger la santé des volailles. Les antibiotiques ne sont utilisés qu’en dernier recours et uniquement sur prescription vétérinaire, en respectant des délais garantissant la sécurité sanitaire des consommateurs.</p>',
'validate' => 'required|string|min:15',
'required' => true
],
'media' => [
'label' => 'Section 6 : Media',
'inputType' => InputType::selectImageVideo->value,
'dimensions' => [
'width' => 479,
'height' => 291
],
'required' => true,
'validate' => 'required|array',
'value' => [
'picture' => [
'path' => 'commitments/common/poultries-1.jpg',
'alt' => 'Volailles dans le poulailler en train de marcher',
'title' => 'Volailles en bonne santé marchant le poulailler librement',
]
],
],
'media_picto' => [
'label' => 'Section 6 : Picto du media',
'inputType' => InputType::image->value,
'dimensions' => [
'width' => 74,
'height' => 92
],
'alt' => '',
'title' => '',
'value' => '',
'validate' => 'nullable',
'required' => false
],
],
'blocks' => [
'reductionBlock' => true,
]
],
[
'name' => 'section 7',
'data' => [
'title' => [
'label' => 'Section 7 : Titre',
'inputType' => InputType::string->value,
'value' => 'stop aux idées reçues',
'validate' => 'required|string|between:3,255',
'required' => true
],
'description' => [
'label' => 'Section 7 : Description',
'inputType' => InputType::text->value,
'value' => '<p>les antibiotiques ne sont pas automatiques</p>',
'validate' => 'required|string|min:15',
'required' => true
],
'media_picto' => [
'label' => 'Section 7 : Picto du media',
'inputType' => InputType::image->value,
'dimensions' => [
'width' => 74,
'height' => 92
],
'alt' => 'Antibiotiques non automatiques pour soigner les volailles',
'title' => 'Pictogramme d’un stop aux antibiotiques',
'value' => 'commitments/pictograms/picto-prohibition.svg',
'validate' => 'nullable',
'required' => false
],
],
'blocks' => [
'has_pictos' => true,
'max_pictos' => 3,
]
],
[
'name' => 'section 8',
'data' => [
'title' => [
'label' => 'Section 8 : Titre',
'inputType' => InputType::string->value,
'value' => 'la nature fait bien les choses',
'validate' => 'required|string|between:3,255',
'required' => true
],
'description' => [
'label' => 'Section 8 : Description',
'inputType' => InputType::text->value,
'value' => '<p>développement de solutions alternatives natuelles</p>',
'validate' => 'required|string|min:15',
'required' => true
],
'media_picto' => [
'label' => 'Section 8 : Picto du media',
'inputType' => InputType::image->value,
'dimensions' => [
'width' => 74,
'height' => 92
],
'alt' => 'Nature permet de développer des solutions alternatives naturelles de soins pour les volailles',
'title' => 'Pictogramme d’une plante',
'value' => 'commitments/pictograms/picto-germ-colored.svg',
'validate' => 'nullable',
'required' => false
],
],
'blocks' => [
'has_pictos' => true,
'max_pictos' => 3,
]
]
];
}
private function getPictos(): array
{
return [
'section 3' => [
[
'title' => str(__('lumière naturelle'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-sun.svg',
'picto_alt' => __('Accès à la lumière naturelle dans les poulaillers Le Gaulois'),
'picto_title' => __('Pictogramme du soleil qui diffuse une lumière naturelle dans les poulaillers Le Gaulois'),
],
[
'title' => str(__('des céréales entières 100% françaises'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-cereals.svg',
'picto_alt' => __('Céréales cultivées en France pour nourrir les volailles Le Gaulois'),
'picto_title' => __('Pictogramme de céréales pour l\'alimentation des volailles Le Gaulois'),
],
[
'title' => str(__('des poulaillers à basse consommation'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-henhouse.svg',
'picto_alt' => __('Poulaillers d\'élevage à basse consommation'),
'picto_title' => __('Pictogramme d\'un poulailler à basse consommation pour les volailles Le Gaulois'),
],
[
'title' => str(__('plantation de haies, arbustes autour du poulailler'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-hurdle.svg',
'picto_alt' => __('Plantation de haies et arbustes autour des poulaillers d\'élevage'),
'picto_title' => __('Pictogramme d\'une plantation de haies et arbustes pour paysager l\'environnement des poulaillers'),
],
],
'section 4' => [
[
'title' => __('Poulets élévés SANS TRAITEMENT ANTIBIOTIQUE'),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-germ.svg',
'picto_alt' => __('Extrait de végétaux pour des soins de volaille sans traitement antibiotique'),
'picto_title' => __('Pictogramme d\'extraits végétaux comme alternative au traitement antibiotique'),
],
[
'title' => str(__('fond musical dans les élevages'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-music.svg',
'picto_alt' => __('Diffusion d\'un fond musical dans les élevages de volailles Le Gaulois'),
'picto_title' => __('Pictogramme d\'une note de musique'),
],
[
'title' => str(__('ballots de paille'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-straw-bales.svg',
'picto_alt' => __('Ballots de paille mis à disposition dans les poulaillers pour les volailles'),
'picto_title' => __('Pictogramme de ballots de paille'),
],
[
'title' => str(__('perchois'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-poultry-perches.svg',
'picto_alt' => __('Deux poulets sur un perchoir'),
'picto_title' => __('Pictogramme d\'un perchoir pour les volailles'),
],
],
'section 5' => [
[
'title' => str(__('nourries sans ogm'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-poultry-without-ogm.svg',
'picto_alt' => 'Volailles Le Gaulois nourries sans OGM',
'picto_title' => 'Pictogramme sans OGM',
],
[
'title' => str(__('volailles sortent à l’extérieur'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-natural-field.svg',
'picto_alt' => 'Volaille française présentée sur un perchoir avec badge "1ère place"',
'picto_title' => 'Pictogramme d\'une volaille Le Gaulois sur son perchoir avec son badge de 1ère place',
],
[
'title' => str(__('perchoirs'))->upper(),
'description' => '<p><strong>bruts et élaborés</strong> fabriqués en France</p>',
'picto' => 'assets/images/commitments/pictograms/picto-poultry-perches.svg',
'picto_alt' => 'Deux poulets sur un perchoir',
'picto_title' => 'Pictogramme d’un perchoir pour les volailles',
]
],
'section 7' => [
[
'title' => str(__('-65% d’utilisation d’antibiotique'))->upper(),
'description' => '<p>en 10ans</p>',
'picto' => 'assets/images/commitments/pictograms/picto-medications.svg',
'picto_alt' => 'Baisse de l’utilisation d’antibiotique pour soigner les volailles',
'picto_title' => 'Pictogramme de médicaments',
],
[
'title' => str(__('alimentation de nos volailles'))->upper(),
'description' => '<p>sans antibiotique et sans hormone de croissances</p>',
'picto' => 'assets/images/commitments/pictograms/picto-medications.svg',
'picto_alt' => 'Pas d’utilisation de flacon d’antibiotique ni d’hormone de croissance dans l’alimentation équilibrée des volailles',
'picto_title' => 'Pictogramme d’un flacon d’antibiotique barré',
],
[
'title' => str(__('zéro antibiotique'))->upper(),
'description' => '<p>critique pour nos volailles</p>',
'picto' => 'assets/images/commitments/pictograms/picto-poultry-without-medications.svg',
'picto_alt' => 'Volaille élevée sans présence d’antibiotique dans son alimentation',
'picto_title' => 'Pictogramme d’une volaille élevée avec zéro antibiotique',
],
],
'section 8' => [
[
'title' => str('extraits végétaux')->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-germ.svg',
'picto_alt' => 'Extrait de végétaux pour des soins de volaille sans traitement antibiotique',
'picto_title' => 'Pictogramme d’extraits végétaux comme alternative au traitement antibiotique',
],
[
'title' => str(__('extraits d\'algues'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-seaweeds.svg',
'picto_alt' => __('Solution alternative aux antibiotiques avec des extraits d\'algues pour soigner les volailles'),
'picto_title' => __('Pictogramme d\'extraits d\'algues'),
],
[
'title' => str(__('probiotiques'))->upper(),
'description' => null,
'picto' => 'assets/images/commitments/pictograms/picto-probiotiques.svg',
'picto_alt' => __('Alimenation enrichie en probiotiques pour la santé des volailles'),
'picto_title' => __('Pictogramme de probiotiques'),
],
]
];
}
/**
* Run the migrations.
*/
public function up(): void
{
$page = new StaticPage();
$picture = FileStorageHelper::storeFile(
$page,
new \SplFileInfo(\resource_path('assets/images/commitments/commitment-2/banner.jpg'))
);
$picto = FileStorageHelper::storeFile(
$page,
new \SplFileInfo(\resource_path('assets/images/commitments/navigation/picto-raise.svg'))
);
$sourcePage = StaticPage::where('type', StaticPageType::respectTheEarth)->first();
$sourceData = is_array($sourcePage->data) ? $sourcePage->data : json_decode($sourcePage->data, true);
$commonSection = $sourceData['common_section'] ?? [];
$data = [
'picto_banner' => [
'label' => 'Banner : Picto standard',
'inputType' => InputType::image->value,
'dimensions' => [
'width' => 42,
'height' => 42
],
'alt' => 'Icône d’une volaille..',
'title' => 'Icône de l’élevage durable.',
'value' => $picto,
'validate' => 'nullable',
'required' => false
],
'common_section' => $commonSection
];
$staticPage = StaticPage::query()
->where('type', StaticPageType::raiseSustainably)
->with(['sections.blocks', 'sections.pictos'])
->first();
if ($staticPage) {
$staticPage->data = $data;
$staticPage->saveQuietly();
} else {
$staticPage = StaticPage::query()->forceCreateQuietly(
[
'type' => StaticPageType::raiseSustainably->value,
'seo_title' => 'élever durablement',
'seo_description' => 'Marque engagée et soucieuse de la qualité, à l\'amélioration du bien-être des volailles et au respect de l\'environnement. Rejoignez-nous pour un élevage durable !',
'title' => 'élever durablement',
'slug' => 'elever-durablement',
'content' => '<p>Engagé dans un modèle d’élevage plus durable, Le Gaulois accompagne et protège le revenu des éleveurs, garantit l’origine française des animaux et de leur alimentation. Elle met en oeuvre des démarches qualité contrôlées qui améliorent le bien-être animal, la santé des volailles, la qualité des produits et le respect de l’environnement et de la biodiversité.</p>',
'picture' => $picture,
'picture_alt' => 'Éleveur content avec une vollaile dans ses mains.',
'picture_title' => 'Bannière de la page engagement n°2',
'data' => $data
]
);
}
$staticPage->load(['sections.blocks', 'sections.pictos']);
foreach ($this->getSections() as $sectionConfig) {
$section = $staticPage->sections->firstWhere('name', $sectionConfig['name']);
if (!$section) {
$section = $staticPage->sections()->create([
'name' => $sectionConfig['name'],
'visibility' => true,
'data' => [],
]);
}
$sectionData = $sectionConfig['data'];
foreach ($sectionData as $key => &$value) {
if (isset($value['inputType']) && $value['inputType'] === InputType::image->value && !empty($value['value'])) {
$value['value'] = FileStorageHelper::storeFile(
$staticPage,
new \SplFileInfo(resource_path('assets/images/' . $value['value']))
);
}
if (isset($value['inputType']) && $value['inputType'] === InputType::selectImageVideo->value) {
if (!empty($value['value']['picture']['path'])) {
$value['value']['picture']['path'] = FileStorageHelper::storeFile(
$staticPage,
new \SplFileInfo(resource_path('assets/images/' . $value['value']['picture']['path']))
);
}
}
}
unset($value);
if (!empty($sectionConfig['blocks']['has_pictos'])) {
$sectionData['has_pictos'] = true;
$sectionData['max_pictos'] = $sectionConfig['blocks']['max_pictos'] ?? 6;
}
$section->update([
'data' => $sectionData,
'visibility' => true,
]);
$blocks = [];
if (!empty($sectionConfig['blocks']['reductionBlock'])) {
$blocks[] = BlockTypeEnum::redirection->defaultConfig();
}
foreach ($blocks as $index => $blockConfig) {
Block::updateOrCreate([
'section_id' => $section->id,
'type' => $blockConfig['type']->value,
'data' => $blockConfig['data'],
'order' => $index,
]);
}
}
$staticPage = StaticPage::where('type', StaticPageType::raiseSustainably)->with('sections')->first();
// Pictos
foreach ($this->getPictos() as $sectionName => $pictos) {
$section = $staticPage->sections->firstWhere('name', $sectionName);
if (!$section) {
continue;
}
foreach ($pictos as $order => $pictoData) {
$pictoPath = FileStorageHelper::storeFile(
$staticPage,
new \SplFileInfo(resource_path($pictoData['picto']))
);
Picto::updateOrCreate(
[
'title' => $pictoData['title'],
'description' => $pictoData['description'],
'picture' => $pictoPath,
'picture_alt' => $pictoData['picto_alt'],
'picture_title' => $pictoData['picto_title'],
'section_id' => $section->id,
'order' => $order + 1,
]
);
}
}
}
/**
* Reverse the migrations.
*/
public function down(): void
{
$pages = StaticPage::query()
->where('type', StaticPageType::raiseSustainably->value)
->with(['sections.blocks', 'sections.pictos'])
->get();
foreach ($pages as $page) {
foreach ($page->sections as $section) {
$section->blocks()->delete();
$section->pictos()->delete();
$section->delete();
}
}
}
};

View file

@ -33,6 +33,8 @@ return [
'publish_at' => ':model will be published from this date.',
'unpublish_at' => ':model will be unpublished from this date.',
'year' => 'Must be a year between :yearStart and :yearEnd.',
'update_size_picture_helper' => 'Image dimensions can be adjusted after creation.',
],
'libs' => [

View file

@ -83,6 +83,7 @@ return [
les personnes malvoyantes (5 à 6 mots).',
'video_alt_label' => 'Attribut Alt de la vidéo',
'text_warning' => 'Relisez votre contenu avant de le publier.',
'update_size_picture_helper' => 'Les dimensions de l\'image peuvent être modifiées après la création.'
],
'pagination' => [

View file

@ -1,4 +1,6 @@
import sweetalert from "../../modules/sweetalertConfirm";
import * as bootstrap from 'bootstrap';
window.addEventListener("DOMContentLoaded", () => {
/**
@ -61,6 +63,8 @@ window.addEventListener("DOMContentLoaded", () => {
}
});
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
tooltipTriggerList.forEach(el => new bootstrap.Tooltip(el))

View file

@ -1294,7 +1294,10 @@
url()->current() ===
route('bo.static_pages.edit', $commitmmentPage->type->value()),
])></i>
{{ sprintf('Page %s', $commitmmentPage->type->label()) }}
<span data-bs-toggle="tooltip"
title="{{ sprintf('Page %s', $commitmmentPage->type->label()) }}">
{{ Str::limit(sprintf('Page %s', $commitmmentPage->type->label()), 30) }}
</span>
</a>
</li>
@endforeach

View file

@ -148,6 +148,7 @@
{{ str(__('sauvegarder taille'))->ucfirst() }}
</button>
</div>
<small class="form-text text-body-secondary">{{__('crud.minicrud.update_size_picture_helper')}}</small>
</div>
</div>
{{-- PICTURE --}}

View file

@ -124,7 +124,8 @@
!$staticPageModel->type->equals(StaticPageType::ouiCBon) &&
!$staticPageModel->type->equals(StaticPageType::respectTheEarth) &&
!$staticPageModel->type->equals(StaticPageType::forLivingTogether) &&
!$staticPageModel->type->equals(StaticPageType::poultryBrand))
!$staticPageModel->type->equals(StaticPageType::poultryBrand) &&
!$staticPageModel->type->equals(StaticPageType::raiseSustainably))
{{-- SUBTITLE --}}
<div class="col-12 col-md-6 mb-3">
<fieldset class="h-100 border p-3">

View file

@ -1,18 +1,52 @@
@php
$commitmentId = 2;
$staticPageModel = new stdClass();
$staticPageModel->seo_title = str('élever durablement')->ucFirst();
$staticPageModel->seo_description =
"Marque engagée et soucieuse de la qualité, à l'amélioration du bien-être des volailles et au respect de l'environnement. Rejoignez-nous pour un élevage durable ! ";
$staticPageModel->title = str('élever durablement')->ucFirst();
$staticPageModel->subtitle =
'Engagé dans un modèle d’élevage plus durable, Le Gaulois accompagne et protège le revenu des éleveurs, garantit l’origine française des animaux et de leur alimentation. Elle met en oeuvre des démarches qualité contrôlées qui améliorent le bien-être animal, la santé des volailles, la qualité des produits et le respect de l’environnement et de la biodiversité.';
$staticPageModel->picture = Vite::asset("resources/assets/images/commitments/commitment-{$commitmentId}/banner.jpg");
$staticPageModel->picture_alt = 'Éleveur content avec une vollaile dans ses mains.';
$staticPageModel->picture_title = "Bannière de la page engagement n°{$commitmentId}";
$badge = new stdClass();
$badge->label = str("engagement n°{$commitmentId}")->upper();
$badge->color = '#006633';
$section_2_model = $staticPageModel->sections[0];
$section_2 = $section_2_model->data;
$reduction_2 = $section_2_model->blocks[0]->data;
$section_3_model = $staticPageModel->sections[1];
$section_3 = $section_3_model->data;
$section_3_pictos = $section_3_model->pictos;
$section_4_model = $staticPageModel->sections[2];
$section_4 = $section_4_model->data;
$section_4_pictos = $section_4_model->pictos;
$reduction_4 = $section_4_model->blocks[0]->data;
$section_5_model = $staticPageModel->sections[3];
$section_5 = $section_5_model->data;
$section_5_pictos = $section_5_model->pictos;
$reduction_5 = $section_5_model->blocks[0]->data;
$section_6_model = $staticPageModel->sections[4];
$section_6 = $section_6_model->data;
$reduction_6 = $section_6_model->blocks[0]->data;
$section_7_model = $staticPageModel->sections[5];
$section_7 = $section_7_model->data;
$section_7_pictos = $section_7_model->pictos;
$section_8_model = $staticPageModel->sections[6];
$section_8 = $section_8_model->data;
$section_8_pictos = $section_8_model->pictos;
$collectionkeyItems = collect(range(1, 8))
->map(function ($i) use ($section_3) {
$key = "title_{$i}";
$value = $section_3->$key->value ?? null;
if (!$value) {
return null;
}
$item = new stdClass();
$item->title = str(__($value))->upper();
return $item;
})
->filter()
->values();
@endphp
@extends('fo.layout', ['brParam' => $staticPageModel])
@ -27,318 +61,156 @@
@include('fo.partials.commitments.navigation')
{{-- HEADER --}}
@include('fo.layouts.header-banner', [
'picto' => Vite::asset('resources/assets/images/commitments/navigation/picto-raise.svg'),
'picto_alt' => __('Icône d’une volaille.'),
'picto_title' => __('Icône de l’élevage durable.'),
'picto' => asset($staticPageModel->picture),
'picto_alt' => __($staticPageModel->picture_alt),
'picto_title' => __($staticPageModel->picture_title),
'picto_baner' => $staticPageModel->data['picto_banner'],
])
{{-- PARAGRAPH WITH PICTURE --}}
@if ($section_2_model->visibility)
@include('fo.partials.commitments.paragraph-with-visual', [
'title' => __('Nature d’éleveurs : une démarche éthique et durable'),
'text' => nl2br(
__(
':linkStartNature d’Éleveurs:linkEnd est une démarche d’élevage durable pour les volailles françaises élevées en poulailler. Elle fédère en filière les éleveurs et leurs partenaires : couvoirs, fabricants d’aliments, organisations de production et abattoirs.',
[
'strongStart' => '<strong>',
'strongEnd' => '</strong>',
'linkStart' => '<a href="https://www.naturedeleveurs.fr/" target="_blank">',
'linkEnd' => '</a>',
]) .
'</br></br>' .
__(
':linkStartNature d’Éleveurs:linkEnd est un contrat de progrès évolutif qui vise l’amélioration continue des conditions d’élevage et fixe des obligations de résultats. Contrôlée et garantie par des organismes indépendants, Nature d’Éleveurs engage au respect d’exigences en faveur de l’origine France, de l’environnement, de l’amélioration du bien-être, de la santé des animaux et de la qualité des produits.',
[
'strongStart' => '<strong>',
'strongEnd' => '</strong>',
'linkStart' => '<a href="https://www.naturedeleveurs.fr/" target="_blank">',
'linkEnd' => '</a>',
])),
'title' => $section_2->title->value,
'text' => $section_2->description->value,
'background_color' => 'light',
'btn_color' => 'secondary',
'video_id' => 'GobjpJr5jm4',
'picto' => Vite::asset('resources/assets/images/commitments/commitment-2/logo-nature-eleveurs.png'),
'picto_alt' => __(
'Logo Nature d’Éleveurs, démarche d’élevage durable du groupe LDC pour ses volailles françaises élevées en poulailler'),
'picto_title' => __('Logo Nature d’Éleveurs'),
'picture' =>
$section_2->media->value->picture->path ?? null
? asset($section_2->media->value->picture->path)
: null,
'video_id' => $section_2->media->value->video->id ?? null,
'picture_alt' => $section_2->media->value->picture->alt ?? null,
'picture_title' => $section_2->media->value->picture->title ?? null,
'picto' => asset($section_2->media_picto->value),
'picto_alt' => __($section_2->media_picto->alt),
'picto_title' => __($section_2->media_picto->title),
'reduction' => $reduction_2,
])
@endif
{{-- KEYS LIST --}}
@php
// Item 1
$keyItem1 = new stdClass();
$keyItem1->title = str(__('la relocalisation de l’alimentation'))->upper();
// Item 2
$keyItem2 = new stdClass();
$keyItem2->title = str(__('l’origine france garantie'))->upper();
// Item 3
$keyItem3 = new stdClass();
$keyItem3->title = str(__('la diversité des filières d’élevages'))->upper();
// Item 4
$keyItem4 = new stdClass();
$keyItem4->title = str(__('le confort et les comportements naturels des animaux'))->upper();
// Item 5
$keyItem5 = new stdClass();
$keyItem5->title = str(__('la santé des animaux via l’hygiène et la sécurité sanitaire'))->upper();
// Item 6
$keyItem6 = new stdClass();
$keyItem6->title = str(__('le respect de la nature'))->upper();
// Item 7
$keyItem7 = new stdClass();
$keyItem7->title = str(__('le contrôle par des organismes indépendants et la transparence'))->upper();
// Item 8
$keyItem8 = new stdClass();
$keyItem8->title = str(__('l’accompagnement du bien-être des éleveurs'))->upper();
// All
$collectionkeyItems = collect([$keyItem1, $keyItem2, $keyItem3, $keyItem4, $keyItem5, $keyItem6, $keyItem7, $keyItem8]);
@endphp
@if ($section_3_model->visibility)
@include('fo.partials.commitments.keys-list', [
'text' => nl2br(
__('cette démarche repose sur :nbrKeyList points clés', [
'nbrKeyList' => "<div class='display-inline-block'><span class='d-flex justify-content-center align-items-center bg-quint rounded-pill'>{$collectionkeyItems->count()}</span></div>",
])),
'text' => str(__($section_3->title->value))->replace(
':nbrKeyList',
"<div class='display-inline-block'><span class='d-flex justify-content-center align-items-center bg-quint rounded-pill'>{$collectionkeyItems->count()}</span></div>"),
'collection' => $collectionkeyItems,
])
{{-- COMPLEX FLEX ITEMS --}}
@php
// Item 1
$complexItem1 = new stdClass();
$complexItem1->title = str(__('lumière naturelle'))->upper();
$complexItem1->picto = 'resources/assets/images/commitments/pictograms/picto-sun.svg';
$complexItem1->picto_alt = __('Accès à la lumière naturelle dans les poulaillers Le Gaulois');
$complexItem1->picto_title = __('Pictogramme du soleil qui diffuse une lumière naturelle dans les poulaillers Le Gaulois');
// Item 2
$complexItem2 = new stdClass();
$complexItem2->title = str(__('des céréales entières 100% françaises'))->upper();
$complexItem2->picto = 'resources/assets/images/commitments/pictograms/picto-cereals.svg';
$complexItem2->picto_alt = __('Céréales cultivées en France pour nourrir les volailles Le Gaulois');
$complexItem2->picto_title = __('Pictogramme de céréales pour l’alimentation des volailles Le Gaulois');
// Item 3
$complexItem3 = new stdClass();
$complexItem3->title = str(__('des poulaillers à basse consommation'))->upper();
$complexItem3->picto = 'resources/assets/images/commitments/pictograms/picto-henhouse.svg';
$complexItem3->picto_alt = __('Poulaillers d’élevage à basse consommation');
$complexItem3->picto_title = __('Pictogramme d’un poulailler à basse consommation pour les volailles Le Gaulois');
// Item 4
$complexItem4 = new stdClass();
$complexItem4->title = str(__('plantation de haies, arbustes autour du poulailler'))->upper();
$complexItem4->picto = 'resources/assets/images/commitments/pictograms/picto-hurdle.svg';
$complexItem4->picto_alt = __('Plantation de haies et arbustes autour des poulaillers d’élevage');
$complexItem4->picto_title = __('Pictogramme d’une plantation de haies et arbustes pour paysager l’environnement des poulaillers');
// All
$collectionComplexItems = collect([$complexItem1, $complexItem2, $complexItem3, $complexItem4]);
@endphp
@include('fo.partials.commitments.complex-flex-items', [
'background_color' => 'tertiary',
'collection' => $collectionComplexItems,
'collection' => $section_3_pictos,
])
@endif
{{-- PARAGRAPH WITH PICTURE --}}
@if ($section_4_model->visibility)
<section class="line-border-large bg-green-wood mb-5 p-0">
<div class="container">
@include('fo.partials.commitments.paragraph-with-visual', [
'title' => __('Oui c’est Bon ! : Oui à d’avantage d’engagements'),
'text' => nl2br(
__(
'Pour aller plus loin, Le Gaulois a mis en place le cahier des charges d’élevage spécifique “Oui c’est Bon !“ pour garantir des produits de qualité à un prix accessible et ainsi prendre, encore davantage en compte, l’amélioration du bien-être animal, la préservation de la santé des volailles et l’environnement.') .
'</br></br>' .
__(
'La démarche ”Oui c’est Bon !”, ce sont des garanties Nature d’Eleveurs auxquelles s’ajoutent des exigences supérieures.')),
'title' => $section_4->title->value,
'text' => nl2br($section_4->description->value),
'background_color' => 'transparent',
'btn_color' => 'secondary',
'picture' => Vite::asset('resources/assets/images/commitments/common/breeder-2.jpg'),
'picture_alt' => __('Éleveur porte une volaille dans ses bras et regarde la qualité de ses pattes'),
'picture_title' => __('Éleveur Oui c’est Bon porte sa volaille dans les bras pour inspecter les pattes du poulet'),
'picto' => Vite::asset('resources/assets/images/commitments/common/logo-ouicestbon.png'),
'picto_alt' => __(
'Logo Le Gaulois "Oui c’est bon", démarche respectant un cahier des charges d’élevage spécifique qui vise à améliorer le bien-être animal, à préserver la santé des volailles et l’environnement'),
'picto_title' => __('Logo Le Gaulois Oui c’est Bon'),
'picture' =>
$section_4->media->value->picture->path ?? null
? asset($section_4->media->value->picture->path)
: null,
'video_id' => $section_4->media->value->video->id ?? null,
'picture_alt' => $section_4->media->value->picture->alt ?? null,
'picture_title' => $section_4->media->value->picture->title ?? null,
'picto' => asset($section_4->media_picto->value),
'picto_alt' => __($section_4->media_picto->alt),
'picto_title' => __($section_4->media_picto->title),
'reduction' => $reduction_4,
'btnLabel' => str(__('découvrir la démarche'))->upper(),
'btnLink' => route('fo.breeding.oui-c-est-bon'),
'reversed' => true,
])
{{-- COMPLEX FLEX ITEMS --}}
@php
// Item 1
$complexItem1 = new stdClass();
$complexItem1->title = __('Poulets élévés SANS TRAITEMENT ANTIBIOTIQUE');
$complexItem1->picto = 'resources/assets/images/commitments/pictograms/picto-germ.svg';
$complexItem1->picto_alt = __('Extrait de végétaux pour des soins de volaille sans traitement antibiotique');
$complexItem1->picto_title = __('Pictogramme d’extraits végétaux comme alternative au traitement antibiotique');
// Item 2
$complexItem2 = new stdClass();
$complexItem2->title = str(__('fond musical dans les élevages'))->upper();
$complexItem2->picto = 'resources/assets/images/commitments/pictograms/picto-music.svg';
$complexItem2->picto_alt = __('Diffusion d’un fond musical dans les élevages de volailles Le Gaulois');
$complexItem2->picto_title = __('Pictogramme d’une note de musique');
// Item 3
$complexItem3 = new stdClass();
$complexItem3->title = str(__('ballots de paille'))->upper();
$complexItem3->picto = 'resources/assets/images/commitments/pictograms/picto-straw-bales.svg';
$complexItem3->picto_alt = __('Ballots de paille mis à disposition dans les poulaillers pour les volailles');
$complexItem3->picto_title = __('Pictogramme de ballots de paille');
// Item 4
$complexItem4 = new stdClass();
$complexItem4->title = str(__('perchois'))->upper();
$complexItem4->picto = 'resources/assets/images/commitments/pictograms/picto-poultry-perches.svg';
$complexItem4->picto_alt = __('Deux poulets sur un perchoir');
$complexItem4->picto_title = __('Pictogramme d’un perchoir pour les volailles');
// All
$collectionComplexItems = collect([$complexItem1, $complexItem2, $complexItem3, $complexItem4]);
@endphp
@include('fo.partials.commitments.complex-flex-items', [
'background_color' => 'transparent',
'collection' => $collectionComplexItems,
'collection' => $section_4_pictos,
])
</div>
</section>
@endif
{{-- PARAGRAPH WITH PICTURE --}}
@if ($section_5_model->visibility)
@include('fo.partials.commitments.paragraph-with-visual', [
'title' => __('sortant à l’extérieur : une démarche qui va encore plus loin'),
'text' => nl2br(
__(
':strongStartLe Gaulois continue à s’engager dans l’amélioration du bien-être animal à travers « Sortant à l’Extérieur ». Cette nouvelle démarche, inédite, rassemble déjà plusieurs centaines d’éleveurs partenaires autour d’un cahier des charges ambitieux : élever des volailles qui sortent à l’extérieur dans les prés de l’ouest de la France pendant au moins 50% de leur élevage !:strongEnd',
[
'strongStart' => '<strong>',
'strongEnd' => '</strong>',
]) .
'</br></br>' .
__(
'La « Sortant à l’Extérieur », ce sont des volailles nées et élevées en France, qui ont accès quotidiennement à un parcours extérieur pendant au minimum 8 heures par jour !') .
'</br></br>' .
__(
'Les portes des poulaillers sont ouvertes toute la journée, les poulets décident donc s’ils veulent sortir ou rester dans le bâtiment. Nourries avec des céréales entières 100% françaises et garanties sans OGM, nos volailles ont par ailleurs à disposition des jouets afin de leur garantir des conditions d’élevage les plus proches possible de leur milieu naturel.')),
'title' => $section_5->title->value,
'text' => nl2br($section_5->description->value),
'background_color' => 'light',
'btn_color' => 'secondary',
'picture' => Vite::asset('resources/assets/images/commitments/common/breeder-1.jpg'),
'picture_alt' => __('Éleveur de volaille Le Gaulois dans un champs, souriant avec une poule dans les mains'),
'picture_title' => __('Eleveur de volaille dans un champs avec une poule'),
'picto' => Vite::asset('resources/assets/images/commitments/common/logo-sal.png'),
'picto_alt' => __(
'Logo Le Gaulois "Sortant à l’extérieur", démarche s’engageant à ce que les volailles sortent à l’extérieur, tous les jours pour améliorer le bien-être animal, préserver la santé des volailles et respecter l’environnement'),
'picto_title' => __('Logo Le Gaulois Sortant à l’extérieur'),
'picture' =>
$section_5->media->value->picture->path ?? null
? asset($section_5->media->value->picture->path)
: null,
'video_id' => $section_5->media->value->video->id ?? null,
'picture_alt' => $section_5->media->value->picture->alt ?? null,
'picture_title' => $section_5->media->value->picture->title ?? null,
'picto' => asset($section_5->media_picto->value),
'picto_alt' => __($section_5->media_picto->alt),
'picto_title' => __($section_5->media_picto->title),
'reduction' => $reduction_5,
'btnLabel' => str(__('découvrir la démarche'))->upper(),
'btnLink' => route('fo.breeding.sortant-a-l-exterieur'),
'reversed' => true,
])
{{-- COMPLEX FLEX ITEMS --}}
@php
// Item 1
$complexItem1 = new stdClass();
$complexItem1->title = str(__('nourries sans ogm'))->upper();
$complexItem1->picto = 'resources/assets/images/commitments/pictograms/picto-poultry-without-ogm.svg';
$complexItem1->picto_alt = __('Volailles Le Gaulois nourries sans OGM');
$complexItem1->picto_title = __('Pictogramme sans OGM');
// Item 2
$complexItem2 = new stdClass();
$complexItem2->title = str(__('volailles sortent à l’extérieur'))->upper();
$complexItem2->picto = 'resources/assets/images/commitments/pictograms/picto-natural-field.svg';
$complexItem2->picto_alt = __('Volailles sortent à l’extérieur des poulaillers');
$complexItem2->picto_title = __('Pictogramme de volailles dans les champs ');
// Item 3
$complexItem3 = new stdClass();
$complexItem3->title = str(__('perchoirs'))->upper();
$complexItem3->picto = 'resources/assets/images/commitments/pictograms/picto-poultry-perches.svg';
$complexItem3->picto_alt = __('Deux poulets sur un perchoir');
$complexItem3->picto_title = __('Pictogramme d’un perchoir pour les volailles');
// All
$collectionComplexItems = collect([$complexItem1, $complexItem2, $complexItem3]);
@endphp
<section class="line-border-large container mb-5 p-0">
@include('fo.partials.commitments.complex-flex-items', [
'background_color' => 'transparent',
'collection' => $collectionComplexItems,
'collection' => $section_5_pictos,
])
</section>
@endif
{{-- PARAGRAPH WITH PICTURE --}}
@if ($section_6_model->visibility)
@include('fo.partials.commitments.paragraph-with-visual', [
'title' => __('la santé de nos volailles : on en prend le plus grand soin'),
'text' => __(
'Le Gaulois est engagé dans une démarche volontariste et continue afin de mieux protéger la santé des volailles. Les antibiotiques ne sont utilisés qu’en dernier recours et uniquement sur prescription vétérinaire, en respectant des délais garantissant la sécurité sanitaire des consommateurs.'),
'title' => $section_6->title->value,
'text' => nl2br(__($section_6->description->value)),
'background_color' => 'light',
'btn_color' => 'secondary',
'picture' => Vite::asset('resources/assets/images/commitments/common/poultries-1.jpg'),
'picture_alt' => __('Volailles dans le poulailler en train de marcher'),
'picture_title' => __('Volailles en bonne santé marchant le poulailler librement'),
'picture' =>
$section_6->media->value->picture->path ?? null
? asset($section_6->media->value->picture->path)
: null,
'video_id' => $section_6->media->value->video->id ?? null,
'picture_alt' => $section_6->media->value->picture->alt ?? null,
'picture_title' => $section_6->media->value->picture->title ?? null,
'picto' => asset($section_6->media_picto->value),
'picto_alt' => __($section_6->media_picto->alt),
'picto_title' => __($section_6->media_picto->title),
'reduction' => $reduction_6,
])
@endif
{{-- COMPLEX FLEX ITEMS --}}
@php
// Item 1
$complexItem1 = new stdClass();
$complexItem1->title = str(__('-65% d’utilisation d’antibiotique'))->upper();
$complexItem1->text = __('en 10ans');
$complexItem1->picto = 'resources/assets/images/commitments/pictograms/picto-medications.svg';
$complexItem1->picto_alt = __('Baisse de l’utilisation d’antibiotique pour soigner les volailles');
$complexItem1->picto_title = __('Pictogramme de médicaments');
// Item 2
$complexItem2 = new stdClass();
$complexItem2->title = str(__('alimentation de nos volailles'))->upper();
$complexItem2->text = __('sans antibiotique et sans hormone de croissance');
$complexItem2->picto = 'resources/assets/images/commitments/pictograms/picto-without-medications-box.svg';
$complexItem2->picto_alt = __(
'Pas d’utilisation de flacon d’antibiotique ni d’hormone de croissance dans l’alimentation équilibrée des volailles',
);
$complexItem2->picto_title = __('Pictogramme d’un flacon d’antibiotique barré');
// Item 3
$complexItem3 = new stdClass();
$complexItem3->title = str(__('zéro antibiotique'))->upper();
$complexItem3->text = __('critique pour nos volailles');
$complexItem3->picto = 'resources/assets/images/commitments/pictograms/picto-poultry-without-medications.svg';
$complexItem3->picto_alt = __('Volaille élevée sans présence d’antibiotique dans son alimentation');
$complexItem3->picto_title = __('Pictogramme d’une volaille élevée avec zéro antibiotique');
// All
$collectionComplexItems = collect([$complexItem1, $complexItem2, $complexItem3]);
@endphp
@if ($section_7_model->visibility)
@include('fo.partials.commitments.complex-flex-items', [
'title' => str('stop aux idées reçues')->upper(),
'subtitle' => str('les antibiotiques ne sont pas automatiques')->upper(),
'picto' => 'resources/assets/images/commitments/pictograms/picto-prohibition.svg',
'picto_alt' => __('Antibiotiques non automatiques pour soigner les volailles'),
'picto_title' => __('Pictogramme d’un stop aux antibiotiques'),
'title' => str($section_7->title->value)->upper(),
'subtitle' => str($section_7->description->value)->upper(),
'picto' => $section_7->media_picto->value,
'picto_alt' => __($section_7->media_picto->alt),
'picto_title' => __($section_7->media_picto->title),
'background_color' => 'white',
'collection' => $collectionComplexItems,
'collection' => $section_7_pictos,
])
@endif
{{-- COMPLEX FLEX ITEMS --}}
@php
// Item 1
$complexItem1 = new stdClass();
$complexItem1->title = str(__('extraits végétaux'))->upper();
$complexItem1->picto = 'resources/assets/images/commitments/pictograms/picto-germ.svg';
$complexItem1->picto_alt = __('Extrait de végétaux pour des soins de volaille sans traitement antibiotique');
$complexItem1->picto_title = __('Pictogramme d’extraits végétaux comme alternative au traitement antibiotique');
// Item 2
$complexItem2 = new stdClass();
$complexItem2->title = str(__('extraits d’algues'))->upper();
$complexItem2->picto = 'resources/assets/images/commitments/pictograms/picto-seaweeds.svg';
$complexItem2->picto_alt = __('Solution alternative aux antibiotiques avec des extraits d’algues pour soigner les volailles');
$complexItem2->picto_title = __('Pictogramme d’extraits d’algues');
// Item 3
$complexItem3 = new stdClass();
$complexItem3->title = str(__('probiotiques'))->upper();
$complexItem3->picto = 'resources/assets/images/commitments/pictograms/picto-probiotiques.svg';
$complexItem3->picto_alt = __('Alimenation enrichie en probiotiques pour la santé des volailles');
$complexItem3->picto_title = __('Pictogramme de probiotiques');
// All
$collectionComplexItems = collect([$complexItem1, $complexItem2, $complexItem3]);
@endphp
@if ($section_8_model->visibility)
@include('fo.partials.commitments.complex-flex-items', [
'title' => str('la nature fait bien les choses')->upper(),
'subtitle' => str('développement de solutions alternatives natuelles')->upper(),
'picto' => 'resources/assets/images/commitments/pictograms/picto-germ-colored.svg',
'picto_alt' => __('Nature permet de développer des solutions alternatives naturelles de soins pour les volailles'),
'picto_title' => __('Pictogramme d’une plante'),
'title' => str($section_8->title->value)->upper(),
'subtitle' => str($section_8->description->value)->upper(),
'picto' => $section_8->media_picto->value,
'picto_alt' => __($section_8->media_picto->alt),
'picto_title' => __($section_8->media_picto->title),
'background_color' => 'quint',
'collection' => $collectionComplexItems,
'collection' => $section_8_pictos,
])
@endif
{{-- OTHER COMMITMENTS --}}
@include('fo.partials.commitments.other-commitments', [
'number' => $commitmentId,
'title' => 'Découvrez plus d’engagements Le Gaulois',
'text' => nl2br(
__('Face aux enjeux de notre époque, Le Gaulois répond présent.') .
'</br>' .
__(
'Chaque jour, nous avançons pas à pas avec :strongStartles équipes, les partenaires et les consommateurs:strongEnd pour élaborer des produits gourmands, de qualité et ainsi créer de bons moments de convivialité à table et en cuisine. Découvrez nos 5 engagements et nos actions pour :strongStartminimiser l’impact de notre activité sur l’environnement, veiller au bien-être animal et améliorer notre alimentation et notre qualité de vie:strongEnd.',
[
'strongStart' => '<strong>',
'strongEnd' => '</strong>',
])),
'title' => $staticPageModel->data['common_section']['title'],
'text' => $staticPageModel->data['common_section']['content'],
])
@endsection

View file

@ -127,7 +127,7 @@ Route::middleware(['throttle:web'])->name('fo.')->group(function () {
// FIXME: En attente d'une évolution. Le blade est actuellement vide. A décommenter quand ça sera décidé.
// Route::view('/', 'fo.pages.commitments.index')->name('index');
Route::get('/la-marque-100-francaise', [CommitmentController::class,'getBrandPoultry'])->name('brand');
Route::view('/elever-durablement', 'fo.pages.commitments.raise')->name('raise');
Route::get('/elever-durablement', [CommitmentController::class, 'getRaiseSustainably'])->name('raise');
Route::view('/bien-nourrir-les-francais', 'fo.pages.commitments.eat')->name('eat');
Route::get('/favoriser-le-mieux-vivre-ensemble', [CommitmentController::class, 'getLivingToghether'])->name('life');
Route::get('/respecter-la-terre', [CommitmentController::class, 'getRestpectEarthPage'])->name('respect');