diff --git a/src/Controller/PagesController.php b/src/Controller/PagesController.php index c052c77..e7f2e4b 100644 --- a/src/Controller/PagesController.php +++ b/src/Controller/PagesController.php @@ -19,6 +19,7 @@ class PagesController extends AbstractController public function index(): Response { return $this->render('pages.twig',[ + 'cosplayers' => [] ]); } diff --git a/src/EventSubscriber/SitemapSubscriber.php b/src/EventSubscriber/SitemapSubscriber.php index f92efd9..2467892 100644 --- a/src/EventSubscriber/SitemapSubscriber.php +++ b/src/EventSubscriber/SitemapSubscriber.php @@ -172,7 +172,7 @@ class SitemapSubscriber $decoratedUrlMembers->addImage(new GoogleImage($this->cacheManager->resolve('assets/images/logo.jpg','webp'))); $decoratedUrlMembers = new GoogleMultilangUrlDecorator($decoratedUrlMembers); foreach ($langs as $lang) { - $decoratedUrlMembers->addLink($urlGenerator->generate('app_ruless',['lang'=>$lang], UrlGeneratorInterface::ABSOLUTE_URL), $lang); + $decoratedUrlMembers->addLink($urlGenerator->generate('app_rules',['lang'=>$lang], UrlGeneratorInterface::ABSOLUTE_URL), $lang); } $urlContainer->addUrl($decoratedUrlMembers, 'default'); $cites =[ diff --git a/templates/about.twig b/templates/about.twig index f1cec2d..ca24fd7 100644 --- a/templates/about.twig +++ b/templates/about.twig @@ -3,8 +3,7 @@ {% block title %}{{'about_title'|trans}}{% endblock %} {% block meta_description %}{{'about_description'|trans}}{% endblock %} -{% block canonical_url %} -{% endblock %} +{% block canonical_url %}{% endblock %} {% block breadcrumb_schema %} + {# Les schémas d'images restent identiques pour le SEO #} - {% endblock %} {% block body %} +
+ + {# --- HEADER HERO --- #} +
+
+

+ {{'about_title'|trans}} + {{ 'brand_name'|trans }} +

+
+
+ {# Filigrane de fond #} + +
+ + {# --- SECTION PASSION --- #} +
+
+

+ #01 + {{'about_section_passion_title'|trans}} +

+
+

+ {{ 'about_passion_p1'|trans({ + '%association%': '' ~ 'about_passion_association_details'|trans ~ '', + '%mission%': '' ~ 'about_passion_mission_details'|trans ~ '' + })|raw }} +

+
+

+ {{ 'about_passion_p2'|trans({ + '%fait_main%': '' ~ 'about_passion_costume_handmade'|trans ~ '', + '%egalite%': '' ~ 'about_passion_equality'|trans ~ '' + })|raw }} +

+
+
+
+
+ + {# --- LES FONDATEURS (CHARACTER SELECT STYLE) --- #} +
+
+

+ {{'about_founders_title'|trans}} +

+
+ + {# Desktop View #} + + + {# Mobile View Cards #} +
+ {% for founder in [ + {name: 'ShokoCosplay', role: 'about_founder_shoko_role', img: 'shoko.jpg', color: 'indigo-600'}, + {name: 'Marta Gator', role: 'about_founder_marta_role', img: 'marta.jpg', color: 'yellow-500'} + ] %} +
+
+ +
+
+

{{ founder.name }}

+

{{ founder.role|trans }}

+
+
Social Links
+
+
+
+ {% endfor %} +
+
+ + {# --- OBJECTIFS (NEUBRUTALIST GRID) --- #} +
+

+ {{'about_goals_title'|trans}} +

+
+ {% set goals = [ + {'icon': '🎨', 'title': 'about_goal1_title', 'text': 'about_goal1_text', 'color': 'bg-indigo-600'}, + {'icon': '🤝', 'title': 'about_goal2_title', 'text': 'about_goal2_text', 'color': 'bg-yellow-500'}, + {'icon': '🎭', 'title': 'about_goal3_title', 'text': 'about_goal3_text', 'color': 'bg-indigo-600'}, + {'icon': '❤️‍🔥', 'title': 'about_goal4_title', 'text': 'about_goal4_text', 'color': 'bg-red-600'} + ] %} + {% for goal in goals %} +
+
+ {{ goal.icon }} +
+

{{ goal.title|trans }}

+

+ {% if loop.last %} + {{ 'about_goal4_text'|trans({ + '%ouverte%': '' ~ 'about_goal4_open_details'|trans ~ '', + '%friendly%': '' ~ 'about_goal4_friendly_details'|trans ~ '' + })|raw }} + {% else %} + {{ goal.text|trans }} + {% endif %} +

+
+ {% endfor %} +
+
+ + {# --- TIMELINE (STREET / BRUTALIST STYLE) --- #} +
+
+

+ {{'timeline_title'|trans}} +

+ +
+ {# Ligne centrale Esport #} + + +
+ {% set events = [ + {'date': 'event_creation_date', 'title': 'event_creation_text_title', 'text': 'event_creation_text', 'pos': 'left'}, + {'date': 'event_partnership_date', 'title': 'event_partnership_text_title', 'text': 'event_partnership_text', 'pos': 'right'}, + {'date': 'event_first_show_date', 'title': 'event_first_show_title', 'text': 'event_first_show_text', 'pos': 'left'}, + {'date': 'event_miss_tergnier_date', 'title': 'event_miss_tergnier_title', 'text': 'event_miss_tergnier_text', 'pos': 'right'}, + {'date': 'event_website_launch_date', 'title': 'event_website_launch_title', 'text': 'event_website_launch_text', 'pos': 'left'} + ] %} + + {% for event in events %} +
+
+
+ {{ event.date|trans }} +
+
+

{{ event.title|trans }}

+

{{ event.text|trans }}

+
+
+ + +
+ {% endfor %} +
+
+
+ {# Texture technique de fond #} +
+
+ + {# --- ACTIVITÉS (RANKING STYLE) --- #} +
+

+ {{'about_activities_title'|trans}} +

+ +
+ {% for activity in [ + {'icon': '🏆', 'title': 'about_activity1_title', 'text': 'about_activity1_text', 'tags': ['%concours%', '%ouverts%', '%craftsmanship%', '%acting%']}, + {'icon': '🛠️', 'title': 'about_activity2_title', 'text': 'about_activity2_text', 'tags': ['%ateliers%']}, + {'icon': '🩹', 'title': 'about_activity3_title', 'text': 'about_activity3_text', 'tags': ['%coshopital%', '%reparation%']} + ] %} +
+ {{ activity.icon }} +
+

{{ activity.title|trans }}

+

+ {% set text = activity.text|trans %} + {% for tag in activity.tags %} + {% set tag_val = tag|replace({'%': ''}) ~ '_detail' %} + {% set text = text|replace({ (tag): '' ~ (tag|replace({'%': ''})|trans) ~ '' }) %} + {% endfor %} + {{ text|raw }} +

+
+
+ {% endfor %} +
+
+ + {# --- FINAL CALL TO ACTION --- #} + + +
+ - -
-

{{'about_title'|trans}}

- -
-

{{'about_section_passion_title'|trans}}

-

- {{ 'about_passion_p1'|trans({ - '%association%': '' ~ 'about_passion_association_details'|trans ~ '', - '%mission%': '' ~ 'about_passion_mission_details'|trans ~ '' - })|raw }} -

- {{ 'about_passion_p2'|trans({ - '%fait_main%': '' ~ 'about_passion_costume_handmade'|trans ~ '', - '%egalite%': '' ~ 'about_passion_equality'|trans ~ '' - })|raw }} -

-
- -
-

{{'about_founders_title'|trans}}

- -
- -
-

ShokoCosplay

-

{{'about_founder_shoko_role'|trans}}

-

{{'about_email_label'|trans}}: shoko-cosplay@e-cosplay.fr

- -
- -
-

Marta Gator

-

{{'about_founder_marta_role'|trans}}

-

{{'about_email_label'|trans}}: marta_gator@e-cosplay.fr

- -
- -
-
- - -
-

{{'about_goals_title'|trans}}

-
-
-
🎨
-

{{'about_goal1_title'|trans}}

-

{{'about_goal1_text'|trans}}

-
- -
-
🤝
-

{{'about_goal2_title'|trans}}

-

{{'about_goal2_text'|trans}}

-
- -
-
🎭
-

{{'about_goal3_title'|trans}}

-

{{'about_goal3_text'|trans}}

-
- -
-
❤️‍🔥
-

{{'about_goal4_title'|trans}}

-

- {{ 'about_goal4_text'|trans({ - '%ouverte%': '' ~ 'about_goal4_open_details'|trans ~ '', - '%friendly%': '' ~ 'about_goal4_friendly_details'|trans ~ '' - })|raw }} -

-
-
-
- - {# --- NEW TIMELINE SECTION --- #} -
-

{{'timeline_title'|trans}}

- -
- - {# Event 1: Creation #} -
-
- {{'event_creation_date'|trans}} -
-
-
-

{{'event_creation_text_title'|trans}}

-

- {{'event_creation_text'|trans}} -

-
-
- - {# Event 2: Partnership #} -
-
-

{{'event_partnership_text_title'|trans}}

-

- {{'event_partnership_text'|trans}} -

-
-
-
- {{'event_partnership_date'|trans}} -
-
- - {# Event 3: First Event #} -
-
- {{'event_first_show_date'|trans}} -
-
-
-

{{'event_first_show_title'|trans}}

-

- {{'event_first_show_text'|trans}} -

-
-
- - {# Event 4: Miss Tergnier 2025 #} -
-
-

{{'event_miss_tergnier_title'|trans}}

-

- {{'event_miss_tergnier_text'|trans}} -

-
-
-
- {{'event_miss_tergnier_date'|trans}} -
-
- - {# Event 5: Website Launch #} -
-
- {{'event_website_launch_date'|trans}} -
-
-
-

{{'event_website_launch_title'|trans}}

-

- {{'event_website_launch_text'|trans}} -

-
-
- -
-
- {# --- END NEW TIMELINE SECTION --- #} - -
-

{{'about_activities_title'|trans}}

- -
-
-
🏆
-
-

{{'about_activity1_title'|trans}}

-

- {{ 'about_activity1_text'|trans({ - '%concours%': '' ~ 'about_activity1_comp_detail'|trans ~ '', - '%ouverts%': '' ~ 'about_activity1_open_detail'|trans ~ '', - '%craftsmanship%': '' ~ 'about_activity1_craft_detail'|trans ~ '', - '%acting%': '' ~ 'about_activity1_acting_detail'|trans ~ '' - })|raw }} -

-
-
- -
-
🛠️
-
-

{{'about_activity2_title'|trans}}

-

- {{ 'about_activity2_text'|trans({ - '%ateliers%': '' ~ 'about_activity2_workshop_detail'|trans ~ '' - })|raw }} -

-
-
- -
-
🩹
-
-

{{'about_activity3_title'|trans}}

-

- {{ 'about_activity3_text'|trans({ - '%coshopital%': '' ~ 'about_activity3_coshospital_detail'|trans ~ '', - '%reparation%': '' ~ 'about_activity3_repair_detail'|trans ~ '' - })|raw }} -

-
-
-
-
- -
-

- {{'about_call_to_action_text'|trans}} -

- - {{'about_call_to_action_button'|trans}} - -
-
{% endblock %} diff --git a/templates/base.twig b/templates/base.twig index a3fecae..21a936b 100644 --- a/templates/base.twig +++ b/templates/base.twig @@ -4,144 +4,60 @@ - {# --- LOGIQUE DE NOËL (15 Déc au 05 Jan) --- #} + {# --- LOGIQUE DE NOËL (Adaptée au style Brutaliste) --- #} {% set current_date = "now"|date("m-d") %} {% set is_christmas = (current_date >= "12-15" or current_date <= "01-05") %} E-Cosplay | {% block title %}Accueil{% endblock %} - {# OPEN GRAPH / TWITTER CARD / SEO META #} + {# SEO & Open Graph (Conservés) #} - + - - - - - - - - - - - {% if no_index is defined %} - - {% endif %} - {# FAVICONS & Manifest #} + {# FAVICONS #} - - - - + - - {% block canonical_url %}{% endblock %} - {# STYLES SPÉCIFIQUES NOËL #} - {% if is_christmas %} - - {% endif %} + {# CONFIGURATION DES COULEURS NEUBRUTALISTES #} + + + {# SCHÉMAS JSON-LD (Conservés) #} {% block breadcrumb_schema %}{% endblock %} - {% block stylesheets %}{% endblock %} - + {{ vite_asset('app.js', []) }} - {% if app.environment == "prod" %} - - - - {% endif %} - + + {% set menu_links = [ { 'name': 'Accueil'|trans, 'route': 'app_home' }, @@ -156,104 +72,83 @@ { 'name': 'Contact'|trans, 'route': 'app_contact' } ] %} -
-