{# # ============================================================================ # ORGANISM: LANDING HEADER — Floating Pill Nav # ============================================================================ # # Header de navigation flottant (pill) pour les landing pages. # Logo mixte (sans-serif + serif italic), active pill, mega menu outils, CTA. # Fully parameterized: all labels, nav items and categories via Twig parameters. # # ============================================================================ # COMPOSITION # ============================================================================ # # - _atoms/logo/logo-with-text.html.twig # - _atoms/icon/icon.html.twig # # ============================================================================ # PARAMETRES # ============================================================================ # # | Parametre | Type | Defaut | Description | # |------------------|--------|----------------------|-----------------------------------| # | loginUrl | string | '#' | Login URL | # | loginLabel | string | 'Connexion' | Login link text | # | activeCode | string | null | Active tool code (e.g. 'moodia') | # | activeLabel | string | null | Active section label | # | allTools | array | [] | DB tool entities for color override| # | toolsLabel | string | 'Outils' | Mega menu trigger label | # | navItems | array | (default LMS/Tarifs/FAQ) | [{label, href}] | # | categories | array | (default 3 categories) | [{title, description, icon, color}] | # | toolDefs | array | (default 6 tools) | [{code, route, name, tagline, icon, color}] | # | footerLabel | string | 'Explorer tous les outils' | Mega menu footer link text | # | mobileToolsLabel | string | 'Outils' | Mobile menu tools section label | # | class | string | '' | Additional CSS classes | # # ============================================================================ #} {% set loginUrl = loginUrl ?? '#' %} {% set loginLabel = loginLabel ?? 'Connexion' %} {% set activeCode = activeCode ?? null %} {% set activeLabel = activeLabel ?? null %} {% set toolsLabel = toolsLabel ?? 'Outils' %} {% set mobileToolsLabel = mobileToolsLabel ?? 'Outils' %} {% set footerLabel = footerLabel ?? 'Explorer tous les outils' %} {% set class = class ?? '' %} {% set defaultNavItems = [ { label: 'Tarifs', href: path('app_landing') ~ '#tarifs' }, { label: 'F.A.Q', href: path('app_landing') ~ '#faq' } ] %} {% set navItems = navItems ?? defaultNavItems %} {% set defaultCategories = [ { title: 'Pour les Formateurs', description: 'Créez cours, diaporamas, podcasts et infographies en quelques minutes.', icon: 'book', color: '#0C81E4' }, { title: 'Pour les Établissements',description: 'Déploiement LMS, hébergement et maintenance inclus.', icon: 'buildings',color: '#7C3AED' }, { title: 'Pour les Responsables', description: 'Dashboard de suivi, gestion des cohortes et analytics.', icon: 'chart', color: '#06B6D4' } ] %} {% set categories = categories ?? defaultCategories %} {# Index des tools DB par code pour override des couleurs #} {% set dbToolsMap = {} %} {% for dbTool in (allTools ?? []) %} {% set dbToolsMap = dbToolsMap|merge({(dbTool.code): dbTool}) %} {% endfor %} {# Données statiques outils (taglines, routes) — couleurs overridées depuis DB si dispo #} {% set defaultToolDefs = [ { code: 'moodia', route: 'app_landing_moodia', name: 'Moodia', tagline: 'Transformez vos PDF en cours LMS', icon: 'bubul-moodia', color: '#0C81E4' }, { code: 'scormia', route: 'app_landing_scormia', name: 'Scormia', tagline: 'Créez des modules SCORM interactifs', icon: 'bubul-scormia', color: '#1E40AF', badge: 'BETA' }, { code: 'slidia', route: 'app_landing_slidia', name: 'Slidia', tagline: 'Des présentations pro en 1 clic', icon: 'bubul-slidia', color: '#E91E8C' }, { code: 'serenia', route: 'app_landing_serenia', name: 'Serenia', tagline: 'Votre assistant pédagogique IA', icon: 'bubul-serenia', color: '#7C3AED' }, { code: 'monalisia', route: 'app_landing_monalisia', name: 'Monalisia', tagline: 'Des infographies percutantes en 60s', icon: 'bubul-monalisia', color: '#ED8600' }, { code: 'castia', route: 'app_landing_castia', name: 'Castia', tagline: 'Donnez une voix à vos formations', icon: 'bubul-castia', color: '#309344' }, { code: 'pixia', route: 'app_landing_pixia', name: 'Pixia', tagline: 'Générez des images IA en quelques secondes', icon: 'bubul-pixia', color: '#6366F1' }, { code: 'promptly', route: 'app_landing_promptly', name: 'Promptly', tagline: 'Bibliothèque de prompts partagés', icon: 'bubul-promptly', color: '#F97316' }, { code: 'sam', route: 'app_landing_sam', name: 'SAM', tagline: 'Pilotez votre LMS sans effort', icon: 'bubul-sam', color: '#06B6D4' } ] %} {% set toolDefs = toolDefs ?? defaultToolDefs %} {# Build tools list avec couleurs DB si disponibles #} {% set tools = [] %} {% for t in toolDefs %} {% set db = dbToolsMap[t.code] ?? null %} {% set tools = tools|merge([{ code: t.code, route: t.route, name: db and db.name ? db.name : t.name, tagline: t.tagline, icon: db and db.icon ? ('bubul-' ~ db.code) : t.icon, color: db and db.colorPrimary ? db.colorPrimary : t.color, badge: t.badge ?? null }]) %} {% endfor %} {# ===== Header flottant ===== #}
{# Pill principale #}
{# ===== Logo ===== #} {% include '_atoms/logo/logo-with-text.html.twig' with { showIcon: true, showText: true, showBadge: false, size: 'md' } only %} {# ===== Navigation Desktop ===== #} {# ===== Actions droite ===== #}
{# Connexion — desktop uniquement #} {# Hamburger mobile #}
{# ===== Menu Mobile (sous la pill) ===== #}