241 lines
12 KiB
Twig
241 lines
12 KiB
Twig
<!doctype html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<title>E-Cosplay | {% block title %}Accueil{% endblock %}</title>
|
|
<meta name="description" content="{% block meta_description '' %}">
|
|
|
|
{# OPEN GRAPH / TWITTER CARD / SEO META #}
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}">
|
|
<meta property="og:title" content="E-Cosplay | {{ block('title') }}">
|
|
<meta property="og:description" content="{{ block('meta_description') }}">
|
|
<meta property="og:image" content="{{ asset('assets/images/logo.jpg') | imagine_filter('webp') }}">
|
|
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:url" content="{{ url(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}">
|
|
<meta name="twitter:title" content="E-Cosplay | {{ block('title') }}">
|
|
<meta name="twitter:description" content="{{ block('meta_description') }}">
|
|
<meta name="twitter:image" content="{{ asset('assets/images/logo.jpg') | imagine_filter('webp') }}">
|
|
<meta name="twitter:site" content="@E_Cosplay_asso">
|
|
|
|
<meta name="author" content="Association E-Cosplay">
|
|
<meta name="keywords" content="cosplay, concours cosplay, organisation, événement, geek">
|
|
|
|
{% if no_index is defined %}
|
|
<meta name="robots" content="noindex, nofollow">
|
|
{% endif %}
|
|
|
|
{# FAVICONS & Manifest #}
|
|
<link rel="icon" type="image/png" href="{{ asset('favicon/favicon-96x96.png') }}" sizes="96x96" />
|
|
<link rel="icon" type="image/svg+xml" href="{{ asset('favicon/favicon.svg') }}" />
|
|
<link rel="shortcut icon" href="{{ asset('favicon/favicon.ico') }}" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('favicon/apple-touch-icon.png') }}" />
|
|
<meta name="apple-mobile-web-app-title" content="E-Cosplay" />
|
|
<link rel="manifest" href="{{ asset('favicon/site.webmanifest') }}" />
|
|
|
|
{% block canonical_url %}{% endblock %}
|
|
|
|
{# SCHÉMAS JSON-LD #}
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@graph": [
|
|
{
|
|
"@type": "WebSite",
|
|
"name": "E-Cosplay",
|
|
"url": "{{ app.request.schemeAndHttpHost }}"
|
|
},
|
|
{
|
|
"@type": "Organization",
|
|
"name": "Association E-Cosplay",
|
|
"url": "{{ app.request.schemeAndHttpHost }}",
|
|
"logo": "{{ asset('assets/images/logo.jpg') | imagine_filter('webp') }}",
|
|
"sameAs": [
|
|
"https://www.facebook.com/assocationecosplay",
|
|
"https://www.instagram.com/asso_ecosplay/"
|
|
],
|
|
"address": {
|
|
"@type": "PostalAddress",
|
|
"streetAddress": "42 rue de Saint-Quentin",
|
|
"addressLocality": "Beautor",
|
|
"postalCode": "02800",
|
|
"addressCountry": "FRANCE"
|
|
},
|
|
"member": [
|
|
{ "@id": "#shoko" },
|
|
{ "@id": "#marta" }
|
|
]
|
|
},
|
|
{
|
|
"@type": "Person",
|
|
"@id": "#shoko",
|
|
"name": "ShokoCosplay",
|
|
"jobTitle": "Président",
|
|
"memberOf": { "@id": "{{ app.request.schemeAndHttpHost }}#organization" }
|
|
},
|
|
{
|
|
"@type": "Person",
|
|
"@id": "#marta",
|
|
"name": "Marta Gator",
|
|
"jobTitle": "Secrétaire",
|
|
"memberOf": { "@id": "{{ app.request.schemeAndHttpHost }}#organization" }
|
|
}
|
|
]
|
|
}
|
|
</script>
|
|
|
|
{% block breadcrumb_schema %}{% endblock %}
|
|
{% block stylesheets %}{% endblock %}
|
|
|
|
{{ vite_asset('app.js', []) }}
|
|
|
|
</head>
|
|
{# Le corps aura un fond gris clair pour correspondre au fond du logo #}
|
|
<body class="flex flex-col min-h-screen bg-gray-100">
|
|
{% set links = [
|
|
{ 'name': 'Accueil', 'route': 'app_home' },
|
|
{ 'name': 'Qui sommes-nous', 'route': 'app_about' },
|
|
{ 'name': 'Nos membres', 'route': 'app_members' },
|
|
{ 'name': 'Nos événements', 'route': 'app_events' },
|
|
{ 'name': 'Contact', 'route': 'app_contact' }
|
|
] %}
|
|
<header class="bg-white shadow-md sticky top-0 z-40">
|
|
<nav class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
<div class="flex justify-between items-center h-16">
|
|
{# LOGO / NOM DU SITE #}
|
|
<div class="flex-shrink-0 flex items-center">
|
|
<a href="{{ path('app_home') }}" class="flex items-center space-x-2 text-xl font-bold text-gray-900">
|
|
<img class="h-8 w-auto" src="{{ asset('assets/images/logo.jpg') | imagine_filter('webp') }}" alt="E-Cosplay Logo">
|
|
{# Le texte du nom du site peut rester en noir pour la lisibilité #}
|
|
<span class="text-gray-900">E-Cosplay</span>
|
|
</a>
|
|
</div>
|
|
|
|
{# LIENS DE NAVIGATION (Desktop) #}
|
|
<div class="hidden md:flex md:space-x-4">
|
|
<div class="hidden md:flex md:space-x-1">
|
|
{% for link in links %}
|
|
{% set is_active = (app.request.get('_route') == link.route) %}
|
|
|
|
<a href="{{ path(link.route) }}"
|
|
class="{% if is_active %}bg-gray-100 text-red-600{% else %}text-gray-700 hover:bg-gray-100 hover:text-red-600{% endif %} px-3 py-2 rounded-md text-sm font-medium">
|
|
{{ link.name }}
|
|
</a>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
{# BOUTON MOBILE (Burger Icon) - Couleur adaptée #}
|
|
<div class="md:hidden">
|
|
<button type="button" class="text-red-500 hover:text-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 p-2 rounded-md" aria-controls="mobile-menu" aria-expanded="false">
|
|
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
|
|
</div>
|
|
</nav>
|
|
|
|
{# MENU MOBILE (Contenu caché) #}
|
|
<div class="md:hidden" id="mobile-menu">
|
|
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
|
|
{% for link in links %}
|
|
{% set is_active = (app.request.get('_route') == link.route) %}
|
|
|
|
<a href="{{ path(link.route) }}"
|
|
class="{% if is_active %}bg-gray-100 text-red-600{% else %}text-gray-700 hover:bg-gray-100 hover:text-red-600{% endif %} px-3 py-2 rounded-md text-sm font-medium">
|
|
{{ link.name }}
|
|
</a>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<main role="main" class="flex-grow">
|
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
|
{% block body %}{% endblock %}
|
|
</div>
|
|
</main>
|
|
|
|
<footer class="bg-[#FABF04] text-gray-900 border-t border-red-600">
|
|
<div class="max-w-7xl mx-auto py-8 px-4 sm:px-6 lg:px-8">
|
|
|
|
{# BLOC DE CONTACT ET RÉSEAUX (Utilise le block footer pour l'emplacement) #}
|
|
{% block footer %}
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 pb-6 mb-4 border-b border-gray-600">
|
|
|
|
{# 1. Coordonnées #}
|
|
<div>
|
|
<h3 class="text-lg font-semibold mb-3 text-gray-900">Contact</h3>
|
|
<p class="text-sm text-gray-700">
|
|
42 rue de Saint-Quentin<br>
|
|
02800 Beautor, FRANCE
|
|
</p>
|
|
<p class="text-sm text-gray-700 mt-2">
|
|
<a href="mailto:contact@e-cosplay.fr" class="hover:text-red-600 transition duration-150 ease-in-out">contact@e-cosplay.fr</a>
|
|
</p>
|
|
</div>
|
|
|
|
{# 2. Réseaux Sociaux #}
|
|
<div>
|
|
<h3 class="text-lg font-semibold mb-3 text-gray-900">Suivez-nous</h3>
|
|
<div class="flex space-x-4">
|
|
<a href="https://www.facebook.com/assocationecosplay" target="_blank" rel="noopener noreferrer" class="text-gray-700 hover:text-red-600 transition duration-150 ease-in-out">
|
|
<svg class="h-6 w-6 fill-current" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<path d="M14.07 3.59h2.36v3.2h-2.36c-1.2 0-1.42.57-1.42 1.4v2.02h3.76l-.6 3.96h-3.16v9.81H8.56v-9.81H5.43v-3.96h3.13V7.12c0-3.1 1.84-4.78 4.7-4.78z"/>
|
|
</svg>
|
|
</a>
|
|
<a href="https://www.instagram.com/asso_ecosplay/" target="_blank" rel="noopener noreferrer" class="text-gray-700 hover:text-red-600 transition duration-150 ease-in-out">
|
|
<svg class="h-6 w-6 fill-current" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<path d="M7.8 2h8.4C18.15 2 20 3.85 20 6.2v8.4c0 2.35-1.85 4.2-4.2 4.2H7.8C5.45 18.8 3.6 16.95 3.6 14.6V6.2C3.6 3.85 5.45 2 7.8 2zm8.4 1.8H7.8C6.44 3.8 5.4 4.84 5.4 6.2v8.4c0 1.36 1.04 2.4 2.4 2.4h8.4c1.36 0 2.4-1.04 2.4-2.4V6.2c0-1.36-1.04-2.4-2.4-2.4z"/>
|
|
<path d="M12 7.6c-2.43 0-4.4 1.97-4.4 4.4s1.97 4.4 4.4 4.4 4.4-1.97 4.4-4.4-1.97-4.4-4.4-4.4zm0 6.6c-1.21 0-2.2-0.99-2.2-2.2s0.99-2.2 2.2-2.2 2.2 0.99 2.2 2.2-0.99 2.2-2.2 2.2z"/>
|
|
<circle cx="16.4" cy="7.2" r="0.8"/>
|
|
</svg>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
{# 3. Bloc Personnalisable (ou laissons-le vide pour le moment) #}
|
|
<div>
|
|
<h3 class="text-lg font-semibold mb-3 text-gray-900">E-Cosplay</h3>
|
|
Association cosplay spécialisée dans la <strong>gestion de concours cosplay</strong>, les <strong>ateliers cosplay</strong> et le <strong>Coshopital</strong> (réparation/aide). </div>
|
|
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{# LIGNE DE COPYRIGHT ET MENTIONS LÉGALES (Bas du footer) #}
|
|
<div class="md:flex md:justify-between md:items-center">
|
|
|
|
{# Copyright et Mention Légale Association #}
|
|
<div class="text-center md:text-left mb-4 md:mb-0">
|
|
<p class="text-sm text-gray-700">
|
|
© {{ "now"|date("Y") }} E-Cosplay. Tous droits réservés.
|
|
</p>
|
|
<p class="text-xs text-gray-600 mt-1">
|
|
Association à but non lucratif loi 1901 - RNA : W022006988
|
|
</p>
|
|
</div>
|
|
|
|
{# Liens Légaux #}
|
|
<div class="flex flex-wrap justify-center md:justify-end space-x-4 text-sm font-medium">
|
|
<a href="{{ path('app_legal') }}" class="text-gray-800 hover:text-red-600 transition duration-150 ease-in-out">Mentions Légales</a>
|
|
<a href="{{ path('app_cookies') }}" class="text-gray-800 hover:text-red-600 transition duration-150 ease-in-out">Politique de Cookies</a>
|
|
<a href="{{ path('app_hosting') }}" class="text-gray-800 hover:text-red-600 transition duration-150 ease-in-out">Hébergements</a>
|
|
<a href="{{ path('app_rgpd') }}" class="text-gray-800 hover:text-red-600 transition duration-150 ease-in-out">Politique RGPD</a>
|
|
<a href="{{ path('app_cgu') }}" class="text-gray-800 hover:text-red-600 transition duration-150 ease-in-out">CGU</a>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</footer>
|
|
|
|
{% block javascripts %}{% endblock %}
|
|
|
|
</body>
|
|
</html>
|