{% extends '@Communication/communication/layout.html.twig' %} {% block communication_title %}Campagnes · Communication{% endblock %} {% block communication_header %}{% endblock %} {% block communication_content %} {% set statusLabels = { draft: 'Brouillon', active: 'Active', planned: 'Planifiée', completed: 'Terminée', archived: 'Archivée' } %} {% set objectiveLabels = { awareness: 'Notoriété', engagement: 'Engagement', traffic: 'Génération de trafic', lead_generation: 'Génération de prospects', conversion: 'Conversion', recruitment: 'Recrutement', employer_branding: 'Marque employeur', event: 'Événement', customer_success: 'Fidélisation client', education: 'Pédagogie', product_launch: 'Lancement de produit', community: 'Développement de communauté', other: 'Autre objectif' } %} {% set platformLabels = {generic:'Multicanal',linkedin:'LinkedIn',instagram:'Instagram',twitter:'X / Twitter',facebook:'Facebook'} %} {% set platformIcons = {generic:'solar:global-broken',linkedin:'mdi:linkedin',instagram:'mdi:instagram',twitter:'ri:twitter-x-fill',facebook:'mdi:facebook'} %}

Campagnes

{{ 'now'|date('d/m/Y') }} — Pilotez toutes vos campagnes de communication.

{% if is_granted('COMMUNICATION_CREATE') %} Nouvelle campagne {% endif %}
Total{{ index.counts.all }}Toutes les campagnes
Actives{{ index.counts.active }}En cours actuellement
Planifiées{{ index.counts.planned }}À venir prochainement
Publications{{ index.totals.posts }}{{ index.totals.publications }} diffusion{{ index.totals.publications > 1 ? 's' }}
Portée totale {{ index.totals.reach ? index.totals.reach|number_format(0, ',', ' ') : '—' }} {{ index.totals.reach ? 'Données consolidées' : 'Non disponible' }}
Engagement moyen {{ index.totals.engagement is not null ? index.totals.engagement|number_format(1, ',', ' ') ~ '%' : '—' }} {{ index.totals.engagement is not null ? 'Toutes plateformes' : 'Non disponible' }}
{% if index.counts.draft %} {% endif %}
{% for row in index.rows %} {% set campaign = row.campaign %} {% set status = row.status %}
{{ statusLabels[status] }}

{{ campaign.name }}

{{ objectiveLabels[campaign.objective]|default('Autre objectif') }}{% if campaign.targetAudience %} · {{ campaign.targetAudience|slice(0, 55) }}{% endif %}

{% if campaign.startDate or campaign.endDate %} {{ campaign.startDate ? campaign.startDate|date('d/m/Y') : 'Date libre' }} — {{ campaign.endDate ? campaign.endDate|date('d/m/Y') : 'Sans fin' }} {% else %} Dates à définir {% endif %}
{% for platform in row.platforms|slice(0, 4) %} {% else %} {% endfor %}
Avancement{{ row.published }} / {{ row.posts }} publication{{ row.posts > 1 ? 's' }}
{% if status == 'completed' %} Campagne terminée {% elseif status == 'archived' %} Archivée{% if campaign.archivedAt %} le {{ campaign.archivedAt|date('d/m/Y') }}{% endif %} {% elseif row.posts %} {{ row.progress }} % terminé · {{ row.posts - row.published }} restante{{ row.posts - row.published > 1 ? 's' }} {% else %} Aucune publication rattachée {% endif %}
Diffusions
{{ row.publications }}
Idées
{{ row.ideas }}
{{ row.reach ? 'Portée' : 'Publications' }}
{{ row.reach ? row.reach|number_format(0, ',', ' ') : row.posts }}
{{ row.views ? row.views|number_format(0, ',', ' ') ~ ' vues' : 'Vues indisponibles' }} {{ row.engagement is not null ? row.engagement|number_format(1, ',', ' ') ~ ' %' : '—' }} {{ row.shares ? row.shares|number_format(0, ',', ' ') ~ ' partages' : '—' }}
Ouvrir {% if is_granted('COMMUNICATION_CREATE') %}
{% endif %} {% if status != 'archived' and is_granted('COMMUNICATION_ARCHIVE', campaign) %}
{% endif %}
{% endfor %} {% if is_granted('COMMUNICATION_CREATE') %} Nouvelle campagne Créez une campagne avec ses objectifs, ses dates et ses publications. Créer une campagne {% endif %}

Vue d’ensemble des performances

Comparaison des résultats entre les campagnes

{% endblock %}