{# templates/analytics/_bloc_comparatif.html.twig ───────────────────────────────────────────────────────────────────────────── Bloc comparatif — Multi-Cartes uniquement. Paramètres attendus : statsParCarte (array) → [beneficiaire_id => { vues: int, clics: int }] trié par vues décroissantes (depuis le repository) beneficiaires (array) → collection de Beneficiaire ───────────────────────────────────────────────────────────────────────────── #} {# ── Index des bénéficiaires par id pour lookup rapide ── #} {% set benefIndex = {} %} {% for b in beneficiaires %} {% set benefIndex = benefIndex | merge({ (b.id): b }) %} {% endfor %} {# ── Valeur max pour normaliser les barres ── #} {% set maxVues = 1 %} {% for id, stats in statsParCarte %} {% if stats.vues > maxVues %} {% set maxVues = stats.vues %} {% endif %} {% endfor %} {# ── Palette couleurs (même ordre que _bloc_parc) ── #} {% set palette = ['#667eea', '#764ba2', '#22c55e', '#f59e0b', '#ef4444', '#06b6d4', '#8b5cf6', '#ec4899'] %}
Aucune donnée disponible pour comparer les cartes.
{% else %} {# ══════════════════════════════════════════════════════════════════ TABLEAU COMPARATIF ══════════════════════════════════════════════════════════════════ #}| # | Carte | Vues | Clics | Engagement | Performance |
|---|---|---|---|---|---|
| {% if rang == 1 %} 🥇 {% elseif rang == 2 %} 🥈 {% elseif rang == 3 %} 🥉 {% else %} {{ rang }} {% endif %} | {# Identité #}{% if benef %} {{ benef.fullName }} {% if benef.entreprise %} {{ benef.entreprise }} {% endif %} {% else %} Carte #{{ id }} {% endif %} | {# Vues #}{{ stats.vues }} | {# Clics #}{{ stats.clics }} | {# Taux engagement #}{% if engagement > 0 %} {{ engagement }}% {% else %} — {% endif %} | {# Barre performance relative #}