Compare commits
59 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e7eb92a54 | ||
|
|
1ede2a47c2 | ||
|
|
879b19dfc8 | ||
|
|
b3eebd1948 | ||
|
|
661002db85 | ||
|
|
1f9a0f2269 | ||
|
|
95adc4b94b | ||
|
|
7f9ea2e3c1 | ||
|
|
9c4650643b | ||
|
|
e5cbb51dba | ||
|
|
51420e8ab3 | ||
|
|
3794d0a5da | ||
|
|
c471e51739 | ||
|
|
4bd372d84f | ||
|
|
43c6c3b8ad | ||
|
|
ea18b9b6d6 | ||
|
|
785cde00f5 | ||
|
|
376ee52513 | ||
|
|
5fb89c46d6 | ||
|
|
772fca6831 | ||
|
|
453da276ef | ||
|
|
3840fe5c0e | ||
|
|
ac7342da82 | ||
| 92082baaa1 | |||
| 1a5747c8e6 | |||
|
|
8807752af4 | ||
|
|
9b395b4673 | ||
|
|
bdb4418caf | ||
|
|
6f0fa65a3a | ||
|
|
3f64a19ebb | ||
|
|
fa8cc74d96 | ||
|
|
65d97360d4 | ||
|
|
36c1addad0 | ||
|
|
d8ae22646b | ||
|
|
35eba790e8 | ||
|
|
d4d25e13a9 | ||
|
|
611f2e9436 | ||
|
|
86ce4686d7 | ||
|
|
fc17baa2a5 | ||
|
|
2b661c3888 | ||
|
|
7072a800ef | ||
|
|
94bcdf173d | ||
|
|
f278dcffb4 | ||
|
|
14841dd84c | ||
|
|
81078d791a | ||
|
|
4e300a4631 | ||
|
|
c04006f2d3 | ||
|
|
5cd0caa5ae | ||
|
|
18da05fd25 | ||
|
|
53d116110d | ||
|
|
687f16c848 | ||
|
|
a72e1559f6 | ||
|
|
6cb4fb258c | ||
|
|
bde2d0ba97 | ||
|
|
7c0797b712 | ||
|
|
9f93643923 | ||
|
|
2deddd5ecd | ||
|
|
eb29e1bb05 | ||
|
|
293e5067fb |
20
RGPD.md
|
|
@ -1,20 +0,0 @@
|
|||
# RGPD
|
||||
|
||||
## Site
|
||||
|
||||
### En base de données
|
||||
|
||||
| Table | Colonne | Contenu | Utilisation |
|
||||
| ----- | ------- | ------- | ----------- |
|
||||
| activity_logs | user_id | Identifiant de l'utilisateur (back) | Tracer les actions dans le BO |
|
||||
| --- | --- | --- | --- |
|
||||
| users | first_name | Prénom | Affichage à différents endroits du BO |
|
||||
| users | last_name | Nom | Affichage à différents endroits du BO |
|
||||
| users | email | Adresse mail | Identifiant, sert à la connexion au BO |
|
||||
|
||||
## Cookies
|
||||
|
||||
| Service | Utilité |
|
||||
| ------- | ------- |
|
||||
| Matomo | Mesure d'audience |
|
||||
| Youtube | Visionner du contenu disponible sur la plateforme Youtube |
|
||||
|
|
@ -2,7 +2,10 @@
|
|||
|
||||
namespace App\Http\Requests\Bo\GeneralConfigs;
|
||||
|
||||
use App\Enums\GeneralConfigType;
|
||||
use App\Http\Requests\Bo\UpdateMiniCrudRequest;
|
||||
use App\Rules\WysiwygLength;
|
||||
|
||||
|
||||
class UpdateGeneralConfigRequest extends UpdateMiniCrudRequest
|
||||
{
|
||||
|
|
@ -12,4 +15,21 @@ class UpdateGeneralConfigRequest extends UpdateMiniCrudRequest
|
|||
* @var string
|
||||
*/
|
||||
protected $modelName = 'general_config';
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$rules = parent::rules();
|
||||
|
||||
if ($this->route('general_config')?->type === GeneralConfigType::engagement) {
|
||||
foreach ([1, 2, 3, 4] as $i) {
|
||||
$rules['data.engagement_' . $i . '_text.value'] = [
|
||||
'required',
|
||||
'string',
|
||||
new WysiwygLength(10, 1500),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $rules;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
use App\Enums\GeneralConfigType;
|
||||
use App\Models\GeneralConfig;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$bandeau = GeneralConfig::query()->where('type', GeneralConfigType::bandeau)->firstOrFail();
|
||||
$data = json_decode(json_encode($bandeau->data), true);
|
||||
|
||||
$data['bandeau_image_subtitle']['validate'] = 'nullable|min:4|max:180';
|
||||
|
||||
$bandeau->data = $data;
|
||||
$bandeau->saveQuietly();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
$bandeau = GeneralConfig::query()->where('type', GeneralConfigType::bandeau)->firstOrFail();
|
||||
|
||||
$data = json_decode(json_encode($bandeau->data), true);
|
||||
$data['bandeau_image_subtitle']['validate'] = 'required|min:4|max:255';
|
||||
|
||||
$bandeau->data = $data;
|
||||
$bandeau->saveQuietly();
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
use App\Enums\GeneralConfigType;
|
||||
use App\Models\GeneralConfig;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$demarche = GeneralConfig::query()->where('type', GeneralConfigType::demarche)->firstOrFail();
|
||||
$data = json_decode(json_encode($demarche->data), true);
|
||||
|
||||
$data['demarche_pictures_subtitle']['validate'] = 'nullable|min:4|max:150';
|
||||
|
||||
$demarche->data = $data;
|
||||
$demarche->saveQuietly();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
$demarche = GeneralConfig::query()->where('type', GeneralConfigType::demarche)->firstOrFail();
|
||||
$data = json_decode(json_encode($demarche->data), true);
|
||||
|
||||
$data['demarche_pictures_subtitle']['validate'] = 'required|min:4|max:150';
|
||||
|
||||
$demarche->data = $data;
|
||||
$demarche->saveQuietly();
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,195 @@
|
|||
<?php
|
||||
|
||||
use App\Enums\GeneralConfigType;
|
||||
use App\Enums\InputType;
|
||||
use App\Models\GeneralConfig;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
private array $backup = [
|
||||
"engagement_5_text" => [
|
||||
"label" => "Contenu 5",
|
||||
"inputType" => ["label" => "text", "value" => 3],
|
||||
"validate" => "string|min:10",
|
||||
"value" =>
|
||||
"<p>Nature d’Éleveurs, <strong>la santé des volailles</strong> préservée :<br>- L’hygiène et la sécurité sanitaire renforcées à toutes les étapes de la filière : protocoles de protection des élevages, tenues dédiées aux poulaillers, etc.<br>- L’encadrement de la santé par les vétérinaires,<br>- Des solutions naturelles sont développées comme alternatives aux antibiotiques, utilisés en dernier recours pour soigner les animaux.</p>",
|
||||
],
|
||||
"engagement_5_banner" => [
|
||||
"label" => "Banniere 5",
|
||||
"inputType" => ["label" => "Image", "value" => 1],
|
||||
"dimensions" => ["width" => 1312, "height" => 639],
|
||||
"alt" => "voluptatem sint et ea",
|
||||
"value" =>
|
||||
"storage/images/general_configs/f02fa939-26e0-4514-8179-ec29edbe25d5-eng-eleveur.jpg",
|
||||
"validate" => "required",
|
||||
],
|
||||
"engagement_6_text" => [
|
||||
"label" => "Contenu 6",
|
||||
"inputType" => ["label" => "text", "value" => 3],
|
||||
"validate" => "string|min:10",
|
||||
"value" =>
|
||||
"<p>Nature d’Éleveurs, le <strong>respect de la nature</strong> par une démarche de progrès :<br>- L’intégration paysagère des élevages (plantations d’arbres et de haies, etc.),<br>- La préservation des ressources (énergie, eau, carbone, etc.),<br>- Le recyclage des déchets.<br>Nature d’Éleveurs <strong>valorise les territoires</strong> et <strong>repose sur des filières locales</strong>.</p>",
|
||||
],
|
||||
"engagement_6_banner" => [
|
||||
"label" => "Banniere 6",
|
||||
"inputType" => ["label" => "Image", "value" => 1],
|
||||
"dimensions" => ["width" => 1312, "height" => 414],
|
||||
"alt" => "vel odio veritatis eligendi",
|
||||
"value" =>
|
||||
"storage/images/general_configs/26529e76-ec2d-4949-ad76-496944ce366b-eng-batiment.jpg",
|
||||
"validate" => "required",
|
||||
],
|
||||
"engagement_7_text" => [
|
||||
"label" => "Contenu 7",
|
||||
"inputType" => ["label" => "text", "value" => 3],
|
||||
"validate" => "string|min:10",
|
||||
"value" =>
|
||||
"<p>Nature d’Éleveurs, des <strong>filières de qualité, transparentes</strong> et <strong>contrôlées chaque année</strong>.<br>Des <strong>organismes indépendants</strong> garantissent, via 70 points de contrôle, le respect des engagements du cahier des charges auprès de <strong>chaque élevage</strong>.</p>",
|
||||
],
|
||||
"engagement_7_banner" => [
|
||||
"label" => "Banniere 7",
|
||||
"inputType" => ["label" => "Image", "value" => 1],
|
||||
"dimensions" => ["width" => 1775, "height" => 560],
|
||||
"alt" => "et ut illo ex",
|
||||
"value" =>
|
||||
"storage/images/general_configs/40f0301c-b18e-40d0-aff0-5fbc76d88023-eng-stylo.jpg",
|
||||
"validate" => "required",
|
||||
],
|
||||
"engagement_8_text" => [
|
||||
"label" => "Contenu 8",
|
||||
"inputType" => ["label" => "text", "value" => 3],
|
||||
"validate" => "string|min:10",
|
||||
"value" =>
|
||||
"<p>Nature d’Éleveurs, une démarche qui <strong>fédère les filières</strong> et <strong>accompagne les éleveurs</strong> :<br>- Au niveau technique : comme c’est le cas dans tous les élevages, et conformément à la réglementation, des formations au bien-être animal, à la sécurité sanitaire, à la conduite d’élevage, …<br>- Au niveau économique : des prix sécurisés par des contrats, des primes qualité, des aides aux investissements…</p>",
|
||||
],
|
||||
"engagement_8_banner" => [
|
||||
"label" => "Banniere 8",
|
||||
"inputType" => ["label" => "Image", "value" => 1],
|
||||
"dimensions" => ["width" => 1775, "height" => 865],
|
||||
"alt" => "est sed est quis",
|
||||
"value" =>
|
||||
"storage/images/general_configs/fc5fb1b7-63a1-46ef-a6d4-ad1f141d17aa-eng-groupe-volaille.jpg",
|
||||
"validate" => "required",
|
||||
],
|
||||
];
|
||||
|
||||
private array $reordered = [
|
||||
'engagement_title' => [
|
||||
'label' => 'Titre bandeau',
|
||||
'inputType' => ['label' => 'string', 'value' => 2],
|
||||
'value' => 'NOS ENGAGEMENTS VOLAILLE',
|
||||
'validate' => 'required|min:4|max:100',
|
||||
],
|
||||
'engagement_subtitle' => [
|
||||
'label' => 'Sous-titre bandeau',
|
||||
'inputType' => ['label' => 'string', 'value' => 2],
|
||||
'value' => 'EN 8 POINTS CLÉS',
|
||||
'validate' => 'required|min:4|max:100',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$engagement = GeneralConfig::query()->where('type', GeneralConfigType::engagement)->firstOrFail();
|
||||
$data = json_decode(json_encode($engagement->data), true);
|
||||
|
||||
for ($i = 5; $i <= 8; $i++) {
|
||||
unset($data['engagement_' . $i . '_text']);
|
||||
unset($data['engagement_' . $i . '_banner']);
|
||||
}
|
||||
|
||||
foreach ([1, 2, 3, 4] as $i) {
|
||||
unset($data['engagement_' . $i . '_2_banner']);
|
||||
|
||||
$logo = [
|
||||
'label' => "Logo engagement n°$i",
|
||||
'inputType' => [
|
||||
"label" => InputType::image->label(),
|
||||
"value" => InputType::image->value(),
|
||||
],
|
||||
'dimensions' => [
|
||||
'width' => 200,
|
||||
'height' => 200
|
||||
],
|
||||
'alt' => "",
|
||||
'title' => "",
|
||||
'value' => null,
|
||||
'required' => true,
|
||||
'validate' => 'required',
|
||||
];
|
||||
|
||||
$title = [
|
||||
'label' => 'Titre engagement n°' . $i,
|
||||
'inputType' => [
|
||||
'label' => InputType::string->label(),
|
||||
'value' => InputType::string->value(),
|
||||
],
|
||||
'value' => '',
|
||||
'validate' => 'required|min:4|max:80',
|
||||
];
|
||||
|
||||
$subtitle = [
|
||||
'label' => 'Sous titre engagement n°' . $i,
|
||||
'inputType' => [
|
||||
'label' => InputType::string->label(),
|
||||
'value' => InputType::string->value(),
|
||||
],
|
||||
'value' => '',
|
||||
'validate' => 'nullable|min:4|max:120',
|
||||
];
|
||||
|
||||
// change dimension for banner
|
||||
$data['engagement_' . $i . '_banner']['dimensions'] = [
|
||||
'width' => 885,
|
||||
'height' => 300,
|
||||
];
|
||||
|
||||
if (isset($data['engagement_' . $i . '_2_banner'])) {
|
||||
$data['engagement_' . $i . '_2_banner']['dimensions'] = [
|
||||
'width' => 885,
|
||||
'height' => 300,
|
||||
];
|
||||
}
|
||||
|
||||
$this->reordered['engagement_' . $i . '_banner'] = $data['engagement_' . $i . '_banner'];
|
||||
|
||||
if (isset($data['engagement_' . $i . '_2_banner'])) {
|
||||
$this->reordered['engagement_' . $i . '_2_banner'] = $data['engagement_' . $i . '_2_banner'];
|
||||
}
|
||||
|
||||
$this->reordered['engagement_' . $i . '_logo'] = $logo;
|
||||
$this->reordered['engagement_' . $i . '_banner'] = $data['engagement_' . $i . '_banner'];
|
||||
$this->reordered['engagement_' . $i . '_title'] = $title;
|
||||
$this->reordered['engagement_' . $i . '_subtitle'] = $subtitle;
|
||||
$this->reordered['engagement_' . $i . '_text'] = $data['engagement_' . $i . '_text'];
|
||||
}
|
||||
|
||||
$engagement->data = $this->reordered;
|
||||
$engagement->saveQuietly();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
$engagement = GeneralConfig::query()->where('type', GeneralConfigType::engagement)->firstOrFail();
|
||||
$data = json_decode(json_encode($engagement->data), true);
|
||||
|
||||
for ($i = 1; $i <= 4; $i++) {
|
||||
unset($data['engagement_' . $i . '_logo']);
|
||||
unset($data['engagement_' . $i . '_title']);
|
||||
unset($data['engagement_' . $i . '_subtitle']);
|
||||
}
|
||||
|
||||
$data = array_merge($data, $this->backup);
|
||||
|
||||
$engagement->data = $data;
|
||||
$engagement->saveQuietly();
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
use App\Enums\GeneralConfigType;
|
||||
use App\Models\GeneralConfig;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$engagement = GeneralConfig::query()->where('type', GeneralConfigType::engagement)->firstOrFail();
|
||||
$data = json_decode(json_encode($engagement->data), true);
|
||||
foreach ([1, 2, 3, 4] as $i) {
|
||||
$data['engagement_' . $i . '_title']['validate'] = 'nullable|min:4|max:80';
|
||||
}
|
||||
|
||||
$engagement->data = $data;
|
||||
$engagement->saveQuietly();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
$engagement = GeneralConfig::query()
|
||||
->where('type', GeneralConfigType::engagement)
|
||||
->firstOrFail();
|
||||
|
||||
$data = json_decode(json_encode($engagement->data), true);
|
||||
|
||||
foreach ([1, 2, 3, 4] as $i) {
|
||||
$data['engagement_' . $i . '_title']['validate'] = 'required|min:4|max:80';
|
||||
}
|
||||
|
||||
$engagement->data = $data;
|
||||
$engagement->saveQuietly();
|
||||
}
|
||||
};
|
||||
|
|
@ -80,9 +80,9 @@ spec:
|
|||
imagePullSecrets:
|
||||
- name: docker-registry-credentials
|
||||
securityContext:
|
||||
runAsUser: 33
|
||||
runAsGroup: 33
|
||||
fsGroup: 33
|
||||
runAsUser: 82
|
||||
runAsGroup: 82
|
||||
fsGroup: 82
|
||||
fsGroupChangePolicy: "OnRootMismatch"
|
||||
volumes:
|
||||
- name: storage
|
||||
|
|
@ -168,8 +168,8 @@ spec:
|
|||
persistentVolumeClaim:
|
||||
claimName: ${CI_PROJECT_PATH_SLUG}-pvc-storage
|
||||
securityContext:
|
||||
runAsUser: 33
|
||||
runAsGroup: 33
|
||||
fsGroup: 33
|
||||
runAsUser: 82
|
||||
runAsGroup: 82
|
||||
fsGroup: 82
|
||||
fsGroupChangePolicy: "OnRootMismatch"
|
||||
restartPolicy: OnFailure
|
||||
|
|
|
|||
2743
package-lock.json
generated
BIN
resources/assets/fonts/Poppins/Poppins-Black.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-BlackItalic.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-Bold.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-BoldItalic.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-Italic.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-Light.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-Medium.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-Regular.ttf
Normal file
BIN
resources/assets/fonts/Poppins/Poppins-SemiBold.ttf
Normal file
3
resources/assets/images/bea/coeur.svg
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="108" height="108" viewBox="0 0 108 108" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M104.492 48.4181C100.67 60.1225 94.7398 70.9442 87.3675 79.8302C85.9257 81.5634 84.4302 83.2612 82.8803 84.8228C80.7646 87.2306 78.414 89.3922 75.9016 91.3468C59.3762 104.228 36.3246 107.963 36.3246 107.963C33.6282 107.52 26.4674 97.2729 20.5617 88.0457C17.9584 84.0773 15.4174 79.9953 13.0357 75.8182C12.2143 74.429 11.7321 73.5823 11.7072 73.5022C11.7072 73.5022 11.7118 73.4779 11.7165 73.4536C8.2699 67.162 5.23377 60.6225 2.93227 53.7217C2.81789 53.373 2.70352 53.0245 2.58914 52.6758C0.811171 46.9311 -0.135125 40.2153 0.0156226 33.5598C0.324677 19.3706 5.5941 5.38113 18.3648 1.12661C26.1608 -1.47079 34.3677 0.609583 40.7529 5.4558C43.6869 7.70355 49.819 17.326 51.2083 20.5835C53.1412 23.845 54.7225 26.8379 56.0006 29.5212C60.5848 23.9191 65.635 18.9342 71.0452 14.697C77.309 9.79469 84.3595 4.36504 91.5366 5.09145C98.0241 5.73554 102.877 10.6893 105.536 17.4075C107.259 21.7596 108.061 26.8141 107.816 31.9688C107.55 37.5467 106.221 43.0962 104.492 48.4181Z" fill="#E00A1E"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
92
resources/assets/images/bea/logo_bea.svg
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
resources/assets/images/bea/nat-sign.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
8
resources/assets/images/bea/soleil.svg
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="294" height="337" viewBox="0 0 294 337" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12.4228 111.776C14.6117 110.408 25.7752 110.685 28.852 111.103C37.1063 112.231 64.4775 121.512 69.5848 127.591C70.4727 128.638 72.0427 131.006 71.9117 132.281C71.2439 133.656 70.4943 135.273 69.007 135.8C64.0032 137.596 39.3983 133.232 33.1303 131.412C28.0684 129.948 0.834785 119.02 12.4179 111.762" fill="white"/>
|
||||
<path d="M2.97139 193.412C4.55436 191.287 15.073 187.284 18.0841 186.505C26.1789 184.414 54.8679 182.618 61.7042 186.336C62.8749 186.981 65.1454 188.588 65.4632 189.813C65.3042 191.356 65.1572 193.152 63.9439 194.213C59.8699 197.795 35.4282 203.133 28.956 203.822C23.7339 204.385 -5.39998 204.59 2.96651 193.398" fill="white"/>
|
||||
<path d="M75.2995 40.5103C77.803 40.9766 86.0923 48.8901 88.1699 51.3401C93.7375 57.8946 108.805 83.7796 108.956 91.9089C108.984 93.2947 108.718 96.178 107.854 97.0673C106.509 97.6501 104.936 98.3556 103.492 97.741C98.5929 95.6417 82.6162 75.3846 78.9803 69.6842C76.0412 65.0878 62.0826 38.0233 75.3044 40.5244" fill="white"/>
|
||||
<path d="M151.519 3.32306C153.617 4.87176 158.163 15.7889 159.131 18.9375C161.715 27.4087 165.61 57.8236 162.682 65.3407C162.179 66.6428 160.86 69.1607 159.724 69.5796C158.289 69.5181 156.593 69.479 155.501 68.2594C151.841 64.1709 144.975 38.5187 143.82 31.6839C142.897 26.167 140.429 -4.81499 151.519 3.32306Z" fill="white"/>
|
||||
<path d="M252.66 22.1829C253.318 24.7802 250.104 36.0545 248.91 39.068C245.694 47.1654 230.038 72.5666 223.176 76.188C221.998 76.8158 219.438 77.7851 218.31 77.3393C217.248 76.3078 215.978 75.104 215.89 73.4619C215.601 67.8917 226.072 44.0237 229.37 38.114C232.047 33.3611 249.15 8.50266 252.647 22.1881" fill="white"/>
|
||||
<path d="M87.8419 179.142C94.5684 132.863 133.992 97.2846 176.139 87.677C204.358 81.0745 234.752 88.5554 256.665 106.934C312.841 154.252 315.672 242.841 251.639 287.943L251.319 288.16C299.285 254.332 309.052 191.702 275.906 144.766C245.4 100.22 190.312 89.7794 145.72 121.366C124.838 135.187 108.355 156.232 103.18 181.721C91.9838 233.582 124.292 292.602 174.098 304.765C197.844 311.099 222.819 304.456 244.572 292.265C222.667 304.706 197.998 312.303 173.514 307.368C119.264 297.745 78.7607 237.682 87.8419 179.142ZM244.614 292.242C246.465 291.19 248.298 290.104 250.109 288.987L251.319 288.16C250.92 288.442 250.518 288.723 250.113 289.001C248.305 290.119 246.471 291.201 244.614 292.242Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 861 KiB After Width: | Height: | Size: 52 KiB |
BIN
resources/assets/images/logo_ldc.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
24
resources/lang/en/front.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
return [
|
||||
'bea_banner' => [
|
||||
'region_label' => 'Animal welfare and Nature d\'éleveurs commitments',
|
||||
'logo_alt' => 'Animal Welfare Logo - Committed Agricultural Chain',
|
||||
'commitments_intro' => 'Discover our commitments :br on',
|
||||
'site_url_text' => 'www.bienetreanimal.fr',
|
||||
'site_link_title' => 'Visit the website www.bienetreanimal.fr (new window)',
|
||||
'site_link_aria' => 'Visit the website www.bienetreanimal.fr (new window)',
|
||||
'company' => 'Nature d\'éleveurs',
|
||||
'title' => 'Member company of the collective',
|
||||
'subtitle' => 'Committed Agricultural Chain to elevate Animal Welfare',
|
||||
'description' => '100% French origin chicken :br raised with RESPECT FOR ANIMAL WELFARE:br by a COMMITTED AGRICULTURAL CHAIN',
|
||||
'description_html' => '100% French origin chicken :br raised with RESPECT FOR ANIMAL WELFARE:br by a COMMITTED AGRICULTURAL CHAIN',
|
||||
'ldc_alt' => 'Nature d\'éleveurs logo',
|
||||
'cta_text' => 'Discover our commitments here',
|
||||
'cta_title' => 'Discover our commitments to animal welfare on www.bienetreanimal.fr (new window)',
|
||||
'cta_aria' => 'Discover our commitments to animal welfare on www.bienetreanimal.fr (new window)',
|
||||
'new_window' => 'new window',
|
||||
],
|
||||
];
|
||||
24
resources/lang/fr/front.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
return [
|
||||
'bea_banner' => [
|
||||
'region_label' => 'Bien-être animal et engagements Nature d\'éleveurs',
|
||||
'logo_alt' => 'Logo Bien-être Animal - Filière Agricole Engagée',
|
||||
'commitments_intro' => 'Retrouvez nos engagements :br sur',
|
||||
'site_url_text' => 'www.bienetreanimal.fr',
|
||||
'site_link_title' => 'Visiter le site www.bienetreanimal.fr (nouvelle fenêtre)',
|
||||
'site_link_aria' => 'Visiter le site www.bienetreanimal.fr (nouvelle fenêtre)',
|
||||
'company' => 'Nature d\'éleveurs',
|
||||
'title' => 'Entreprise adhérente au collectif',
|
||||
'subtitle' => 'Filière Agricole Engagée pour élever le Bien-être Animal',
|
||||
'description' => 'Du poulet 100% origine France :br élevé dans le RESPECT DU BIEN-ÊTRE ANIMAL :br par une FILIÈRE AGRICOLE ENGAGÉE',
|
||||
'description_html' => 'Du poulet 100% origine France :br élevé dans le RESPECT DU BIEN-ÊTRE ANIMAL :br par une FILIÈRE AGRICOLE ENGAGÉE',
|
||||
'ldc_alt' => 'Logo Nature d\'éleveurs',
|
||||
'cta_text' => 'Retrouvez nos engagements ici',
|
||||
'cta_title' => 'Retrouvez nos engagements en faveur du bien-être animal sur www.bienetreanimal.fr (nouvelle fenêtre)',
|
||||
'cta_aria' => 'Retrouvez nos engagements en faveur du bien-être animal sur www.bienetreanimal.fr (nouvelle fenêtre)',
|
||||
'new_window' => 'nouvelle fenêtre',
|
||||
],
|
||||
];
|
||||
|
|
@ -29,3 +29,90 @@
|
|||
url("@/fonts/Barlow-Bold.woff2") format("ttf"),
|
||||
url("@/fonts/Barlow-Bold.svg") format("svg"),
|
||||
url("@/fonts/Barlow-Bold.eot") format("eot"); }
|
||||
|
||||
|
||||
|
||||
/* Poppins - Light */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: Poppins;
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url('@/fonts/Poppins/Poppins-Light.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Regular */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: Poppins;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('@/fonts/Poppins/Poppins-Regular.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Italic */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: Poppins;
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: url('@/fonts/Poppins/Poppins-Italic.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Medium */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: Poppins;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url('@/fonts/Poppins/Poppins-Medium.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Semi Bold */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: Poppins;
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url('@/fonts/Poppins/Poppins-SemiBold.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Bold */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: Poppins;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url('@/fonts/Poppins/Poppins-Bold.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Bold Italic */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: Poppins;
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: url('@/fonts/Poppins/Poppins-BoldItalic.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Black */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: 'Poppins Black';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
src: url('@/fonts/Poppins/Poppins-Black.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Poppins - Black Italic */
|
||||
@font-face {
|
||||
font-display: swap;
|
||||
font-family: 'Poppins Black';
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
src: url('@/fonts/Poppins/Poppins-BlackItalic.ttf') format('truetype');
|
||||
}
|
||||
|
||||
.f-poppins {
|
||||
font-family: Poppins, sans-serif;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
}
|
||||
|
||||
#demarche ul li {
|
||||
max-width: 10rem;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
|
|
|
|||
|
|
@ -1,104 +1,75 @@
|
|||
#engagements .general {
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
#engagements {
|
||||
.engagement-icon {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
flex-shrink: 0;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
#engagements .number {
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.engagement-image-col {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* stylelint-disable-next-line selector-no-qualifying-type */
|
||||
#engagements div.supertitle {
|
||||
display: flex;
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 100%;
|
||||
background-color: var(--yellow);
|
||||
}
|
||||
.engagement-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
#engagements .desc {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
}
|
||||
.flag {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#engagements .icon {
|
||||
width: 20rem;
|
||||
max-width: 20rem;
|
||||
height: auto;
|
||||
max-height: 15rem;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.flag::after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 14rem;
|
||||
height: 1rem;
|
||||
background-image: url("@/images/eng_drapeau.svg");
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
content: "";
|
||||
}
|
||||
|
||||
#engagements .flag {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.engagement-item {
|
||||
margin-bottom: 5rem !important;
|
||||
}
|
||||
|
||||
#engagements .flag::after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 14rem;
|
||||
height: 1rem;
|
||||
background-image: url("@/images/eng_drapeau.svg");
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
content: "";
|
||||
}
|
||||
|
||||
#engagements .imgs img {
|
||||
width: 100%;
|
||||
.eng-title,
|
||||
.eng-subtitle {
|
||||
font-size: 22px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (width <= 767px) {
|
||||
#engagements ul {
|
||||
margin: 0;
|
||||
}
|
||||
#engagements {
|
||||
.engagement-icon {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
#navigation ul li {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
.flag {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
#engagements .general {
|
||||
margin: 1rem;
|
||||
}
|
||||
|
||||
#engagements .general,
|
||||
#engagements .general div:first-child {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#engagements .number {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#engagements .number span {
|
||||
margin: 0 0 1rem;
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
#engagements .icon {
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#engagements .flag {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
#engagements .flag::after {
|
||||
top: auto;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 0.5rem;
|
||||
.flag::after {
|
||||
top: auto;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (width <= 991px) {
|
||||
#engagements {
|
||||
.eng-title,
|
||||
.eng-subtitle {
|
||||
font-size: 20px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7,16 +7,42 @@
|
|||
background-size: cover;
|
||||
}
|
||||
|
||||
#home h1 {
|
||||
#home .hero-content {
|
||||
position: absolute;
|
||||
bottom: 4rem;
|
||||
left: 6rem;
|
||||
bottom: 2rem;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#home .hero-title {
|
||||
max-width: 35rem;
|
||||
margin: 0 0 3rem 6rem;
|
||||
}
|
||||
|
||||
#home .hero-subtitle {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 1.2rem 12rem;
|
||||
margin: 0;
|
||||
background-color: rgb(52 38 23 / 80%);
|
||||
color: $color-white;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
@media (width <= 1080px) {
|
||||
#home {
|
||||
background-position: right;
|
||||
}
|
||||
|
||||
#home .hero-title {
|
||||
margin: 0 0 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#home .hero-subtitle {
|
||||
padding: 1rem;
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (width <= 767px) {
|
||||
|
|
@ -26,9 +52,20 @@
|
|||
background-position: right;
|
||||
}
|
||||
|
||||
#home h1 {
|
||||
#home .hero-content {
|
||||
position: absolute;
|
||||
bottom: -15%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#home .hero-title {
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#home .hero-subtitle {
|
||||
display: none;
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,14 @@
|
|||
@foreach ($model->data as $k => $input)
|
||||
@php
|
||||
$input = json_decode(json_encode($input), true);
|
||||
$isRequired = \Illuminate\Support\Str::contains($input['validate'] ?? '', 'required')
|
||||
&& !\Illuminate\Support\Str::contains($input['validate'] ?? '', ['nullable', 'sometimes', 'required_']);
|
||||
@endphp
|
||||
@switch(intval($input['inputType']['value']))
|
||||
@case(intval(\App\Enums\InputType::string->value))
|
||||
<div class="minicrud-input col-12 col-md-6 mb-3">
|
||||
<fieldset class="h-100 border p-3">
|
||||
<legend>{{ $input['label'] }} *</legend>
|
||||
<legend>{{ $input['label'] }}{{ $isRequired ? ' *' : '' }}</legend>
|
||||
<div class="row">
|
||||
<div class="col-12 mb-3">
|
||||
@include('bo.partials.inputs.varchar', [
|
||||
|
|
@ -16,7 +18,7 @@
|
|||
'hasWordCounter' => true,
|
||||
'name' => 'data[' . $k . '][value]',
|
||||
'value' => old("data.{$k}.value", $input['value'] ?? null),
|
||||
'required' => isset($input['required']) ? !empty($input['required']) : true,
|
||||
'required' => $isRequired,
|
||||
'model' => $model ?? null,
|
||||
'helper' => __('validation.between.string', [
|
||||
'attribute' => $input['label'],
|
||||
|
|
@ -50,9 +52,10 @@
|
|||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="form-group">
|
||||
<input class="form-control" id="number{{ $k }}" name="data[{{ $k }}][value]" type="number"
|
||||
value="{{ old("data.{$k}.value") ?? ($input['value'] ?? '') }}" aria-describedby="NumberHelp{{ $k }}"
|
||||
step="0.01" placeholder="{{ $input['label'] }}" @if (!isset($input['required']) or $input['required']) required @endif>
|
||||
<input class="form-control" id="number{{ $k }}" name="data[{{ $k }}][value]"
|
||||
type="number" value="{{ old("data.{$k}.value") ?? ($input['value'] ?? '') }}"
|
||||
aria-describedby="NumberHelp{{ $k }}" step="0.01"
|
||||
placeholder="{{ $input['label'] }}" @if (!isset($input['required']) or $input['required']) required @endif>
|
||||
@include('modules.input-error', [
|
||||
'inputName' => "data.{$k}.value",
|
||||
'helperId' => "NumberHelp{$k}",
|
||||
|
|
@ -101,8 +104,9 @@
|
|||
<label class="col-form-label"
|
||||
for="{{ Str::slug($input['label']) }}"><b>{{ __('crud.minicrud.visibility_label') }}</b></label>
|
||||
<div class="form-check form-switch ms-2">
|
||||
<input class="form-check-input ml-2" id="{{ Str::slug($input['label']) }}" name="data[{{ $k }}][value]"
|
||||
type="checkbox" value="1" aria-describedby="{{ Str::slug($input['label']) }}Help"
|
||||
<input class="form-check-input ml-2" id="{{ Str::slug($input['label']) }}"
|
||||
name="data[{{ $k }}][value]" type="checkbox" value="1"
|
||||
aria-describedby="{{ Str::slug($input['label']) }}Help"
|
||||
@if (old("data.{$k}.value", old('_token') ? false : $input['value'] ?? (null ?? false))) checked @endif>
|
||||
</div>
|
||||
@include('modules.input-error', [
|
||||
|
|
@ -185,9 +189,9 @@
|
|||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="form-group">
|
||||
<input class="form-control" id="title{{ $k }}" name="data[{{ $k }}][value]" type="email"
|
||||
value="{{ old("data.{$k}.value") ?? ($input['value'] ?? '') }}" placeholder="{{ $input['label'] }}"
|
||||
@if (!isset($input['required']) or $input['required']) required @endif>
|
||||
<input class="form-control" id="title{{ $k }}" name="data[{{ $k }}][value]"
|
||||
type="email" value="{{ old("data.{$k}.value") ?? ($input['value'] ?? '') }}"
|
||||
placeholder="{{ $input['label'] }}" @if (!isset($input['required']) or $input['required']) required @endif>
|
||||
@include('modules.input-error', [
|
||||
'inputName' => "data.{$k}.value",
|
||||
'helperId' => "{$k}StringHelp",
|
||||
|
|
|
|||
|
|
@ -8,14 +8,16 @@
|
|||
<body class="overflow-x-hidden">
|
||||
@include('fo.layouts.nav-menu')
|
||||
<main class="@yield('bg-color')">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-6">
|
||||
@include('modules.flash-messages')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col col-md-6">
|
||||
@include('modules.flash-messages')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-md-10 col-lg-8 mt-3">
|
||||
@include('modules.breadcrumbs.breadcrumb-body')
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-md-10 col-lg-8 mt-3">
|
||||
@include('modules.breadcrumbs.breadcrumb-body')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@yield('content')
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
<a class="logo-ldc" href="https://www.ldc.fr/nos-engagements/elever-durablement">
|
||||
<img src="{{ Vite::asset('resources/assets/images/logo_ldc.svg') }}" alt="Logo LDC">
|
||||
<img src="{{ Vite::asset('resources/assets/images/logo_ldc.png') }}" alt="Logo LDC">
|
||||
</a>
|
||||
<a class="arrow" href="#"></a>
|
||||
</footer>
|
||||
|
|
|
|||
|
|
@ -36,11 +36,13 @@
|
|||
@endif
|
||||
@endfor
|
||||
</ul>
|
||||
<p class="text-italic text-center">
|
||||
{{ $configDemarche->data['demarche_pictures_subtitle']['value'] }}
|
||||
</p>
|
||||
@if (!empty($configBandeau->data['demarche_pictures_subtitle']['value']))
|
||||
<p class="text-italic text-center">
|
||||
{{ $configDemarche->data['demarche_pictures_subtitle']['value'] }}
|
||||
</p>
|
||||
@endif
|
||||
@endif
|
||||
<h3 class="subtitle text-yellow mt2 text-center">
|
||||
{{-- <h3 class="subtitle text-yellow mt2 text-center">
|
||||
{{ $configDemarche->data['demarche_pictures_video_title']['value'] }}
|
||||
</h3>
|
||||
<div class="flex-center mt2 mr4 mb2 ml4 videos flex">
|
||||
|
|
@ -60,5 +62,5 @@
|
|||
</strong>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div> --}}
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<img class="eleveur" src="{{ asset($configDemarche->data['elevage_engage_picture']['value']) }}"
|
||||
alt="{{ $configDemarche->data['elevage_engage_picture']['value'] }}">
|
||||
<div class="mt2 mr4 mb2 ml4 ck-content">
|
||||
{!! clean($configDemarche->data['elevage_text']['value']) !!}
|
||||
{!! clean($configDemarche->data['elevage_engage_text']['value']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="ovhidden flex">
|
||||
|
|
|
|||
|
|
@ -1,23 +1,26 @@
|
|||
<div class="general flex">
|
||||
<div class="text mb1 flex flex-grow">
|
||||
<div class="number flex">
|
||||
<div class="supertitle mr1 ml4 flex-center flex text-center text-white">{{ $index }}</div>
|
||||
</div>
|
||||
<div class="desc @if (isset($flag)) flag @endif ck-content flex">
|
||||
{!! clean($textField['value']) !!}
|
||||
@php
|
||||
$hasHeading = !empty($titleField['value']) || !empty($subtitleField['value']);
|
||||
@endphp
|
||||
<div class="row align-items-center gy-3 engagement-block">
|
||||
<div class="col-12 col-lg-6 d-flex flex-column flex-lg-row align-items-center {{ $hasHeading ? 'gap-lg-5' : 'justify-content-lg-center' }} text-center text-lg-start order-1 {{ isset($reverse) ? 'order-lg-2 flex-lg-row-reverse' : 'order-lg-1' }}">
|
||||
<div class="col-12 {{ $hasHeading ? 'col-lg-4' : 'col-lg-12' }} text-center {{ $hasHeading ? (!isset($reverse) ? 'text-lg-start' : 'text-lg-end') : 'text-lg-center' }}">
|
||||
<img src="{{ asset($icon['picture']) }}" alt="{{ $icon['alt'] }}" class="engagement-icon">
|
||||
</div>
|
||||
@if ($hasHeading)
|
||||
<div class="col-12 col-lg text-center engagement-heading pt-3">
|
||||
@if (!empty($titleField['value']))
|
||||
<p class="fw-bold mb-0 eng-title">{{ $titleField['value'] }}</p>
|
||||
@endif
|
||||
@if (!empty($subtitleField['value']))
|
||||
<p class="fw-bold mb-0 eng-subtitle">{{ $subtitleField['value'] }}</p>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@if (isset($icon))
|
||||
<div class="icon flex">
|
||||
<img src="{{ Vite::asset('resources/assets/images/' . $icon['picture']) }}" alt="{{ $icon['alt'] }}">
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="imgs mb1">
|
||||
<img class="illustration" src="{{ asset($bannerField['value']) }}" alt="{{ $bannerField['alt'] }}">
|
||||
</div>
|
||||
@if (isset($banner2Field))
|
||||
<div class="imgs mb1">
|
||||
<img class="illustration" src="{{ asset($banner2Field['value']) }}" alt="{{ $banner2Field['alt'] }}">
|
||||
<div class="col-12 order-2 order-lg-3 ck-content @if (isset($flag)) flag @endif">
|
||||
{!! clean($textField['value']) !!}
|
||||
</div>
|
||||
@endif
|
||||
<div class="col-12 col-lg-6 order-3 {{ isset($reverse) ? 'order-lg-1' : 'order-lg-2' }}">
|
||||
<img src="{{ asset($bannerField['value']) }}" alt="{{ $bannerField['alt'] }}" class="img-fluid w-100 engagement-image">
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -2,88 +2,64 @@
|
|||
$configDemarche = $configList->get(App\Enums\GeneralConfigType::engagement->value());
|
||||
@endphp
|
||||
<section id="engagements">
|
||||
<div class="hook flex-center mb2 flex">
|
||||
<div class="hook flex-center flex mb-0">
|
||||
<h2 class="supertitle flex-column flex text-center text-white">
|
||||
{{ $configDemarche->data['engagement_title']['value'] }}
|
||||
<em class="text-yellow">{{ $configDemarche->data['engagement_subtitle']['value'] }}</em>
|
||||
</h2>
|
||||
</div>
|
||||
<ul class="ml4 mb4 mr4">
|
||||
<li>
|
||||
<ul class="ml4 mb4 mr4 mt2">
|
||||
<li class="engagement-item">
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 1,
|
||||
'flag' => true,
|
||||
'bannerField' => $configDemarche->data['engagement_1_banner'],
|
||||
'titleField' => $configDemarche->data['engagement_1_title'],
|
||||
'subtitleField' => $configDemarche->data['engagement_1_subtitle'],
|
||||
'textField' => $configDemarche->data['engagement_1_text'],
|
||||
])
|
||||
</li>
|
||||
<li>
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 2,
|
||||
'bannerField' => $configDemarche->data['engagement_2_banner'],
|
||||
'textField' => $configDemarche->data['engagement_2_text'],
|
||||
'icon' => [
|
||||
'picture' => 'eng_cereales.svg',
|
||||
'alt' => 'Céréales',
|
||||
'picture' => $configDemarche->data['engagement_1_logo']['value'],
|
||||
'alt' => $configDemarche->data['engagement_1_logo']['alt'],
|
||||
],
|
||||
])
|
||||
</li>
|
||||
<li>
|
||||
<li class="engagement-item">
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 2,
|
||||
'reverse' => true,
|
||||
'bannerField' => $configDemarche->data['engagement_2_banner'],
|
||||
'titleField' => $configDemarche->data['engagement_2_title'],
|
||||
'subtitleField' => $configDemarche->data['engagement_2_subtitle'],
|
||||
'textField' => $configDemarche->data['engagement_2_text'],
|
||||
'icon' => [
|
||||
'picture' => $configDemarche->data['engagement_2_logo']['value'],
|
||||
'alt' => $configDemarche->data['engagement_2_logo']['alt'],
|
||||
],
|
||||
])
|
||||
</li>
|
||||
<li class="engagement-item">
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 3,
|
||||
'bannerField' => $configDemarche->data['engagement_3_banner'],
|
||||
'banner2Field' => $configDemarche->data['engagement_3_2_banner'],
|
||||
'textField' => $configDemarche->data['engagement_3_text'],
|
||||
'titleField' => $configDemarche->data['engagement_3_title'],
|
||||
'subtitleField' => $configDemarche->data['engagement_3_subtitle'],
|
||||
'icon' => [
|
||||
'picture' => $configDemarche->data['engagement_3_logo']['value'],
|
||||
'alt' => $configDemarche->data['engagement_3_logo']['alt'],
|
||||
],
|
||||
])
|
||||
</li>
|
||||
<li>
|
||||
<li class="engagement-item">
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 4,
|
||||
'reverse' => true,
|
||||
'bannerField' => $configDemarche->data['engagement_4_banner'],
|
||||
'textField' => $configDemarche->data['engagement_4_text'],
|
||||
])
|
||||
</li>
|
||||
<li>
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 5,
|
||||
'bannerField' => $configDemarche->data['engagement_5_banner'],
|
||||
'textField' => $configDemarche->data['engagement_5_text'],
|
||||
'titleField' => $configDemarche->data['engagement_4_title'],
|
||||
'subtitleField' => $configDemarche->data['engagement_4_subtitle'],
|
||||
'icon' => [
|
||||
'picture' => 'eng_plume.png',
|
||||
'alt' => 'Plume',
|
||||
],
|
||||
])
|
||||
</li>
|
||||
<li>
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 6,
|
||||
'bannerField' => $configDemarche->data['engagement_6_banner'],
|
||||
'textField' => $configDemarche->data['engagement_6_text'],
|
||||
'icon' => [
|
||||
'picture' => 'eng_abeille.svg',
|
||||
'alt' => 'Abeille',
|
||||
],
|
||||
])
|
||||
</li>
|
||||
<li>
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 7,
|
||||
'bannerField' => $configDemarche->data['engagement_7_banner'],
|
||||
'textField' => $configDemarche->data['engagement_7_text'],
|
||||
'icon' => [
|
||||
'picture' => 'eng_tampon.png',
|
||||
'alt' => 'Tampon',
|
||||
],
|
||||
])
|
||||
</li>
|
||||
<li>
|
||||
@include('fo.partials.engagement', [
|
||||
'index' => 8,
|
||||
'bannerField' => $configDemarche->data['engagement_8_banner'],
|
||||
'textField' => $configDemarche->data['engagement_8_text'],
|
||||
'icon' => [
|
||||
'picture' => 'eng_content.svg',
|
||||
'alt' => 'Éleveur content',
|
||||
'picture' => $configDemarche->data['engagement_4_logo']['value'],
|
||||
'alt' => $configDemarche->data['engagement_4_logo']['alt'],
|
||||
],
|
||||
])
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -2,10 +2,14 @@
|
|||
$configBandeau = $configList->get(App\Enums\GeneralConfigType::bandeau->value());
|
||||
@endphp
|
||||
<section class="w100" id="home">
|
||||
<h1 class="supertitle text-brown text-center">
|
||||
<span>{{ $configBandeau->data['bandeau_image_title']['value'] }}</span><br>
|
||||
<span>{{ $configBandeau->data['bandeau_image_subtitle']['value'] }}</span>
|
||||
</h1>
|
||||
<div class="hero-content">
|
||||
<h1 class="hero-title supertitle text-brown">
|
||||
{{ $configBandeau->data['bandeau_image_title']['value'] }}
|
||||
</h1>
|
||||
@if (!empty($configBandeau->data['bandeau_image_subtitle']['value']))
|
||||
<p class="hero-subtitle subtitle">{{ $configBandeau->data['bandeau_image_subtitle']['value'] }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@push('styles')
|
||||
|
|
|
|||