{# Template de génération de carte de visite digitale PWA Génère un fichier HTML autonome (standalone) avec CSS + JS inline Variables : b (Beneficiaire), theme (array CSS vars), cardType (essentiel|premium|forcevente), slug #} {% set fullName = (b.prenom ?? '') ~ ' ' ~ (b.nom ?? '') %} {% set fullName = fullName|trim %} {% set entreprise = b.entreprise ?? '' %} {% set fonction = b.fonction ?? '' %} {% set mobile = b.mobile ?? '' %} {% set fixe = b.fixe ?? '' %} {% set email = b.email ?? '' %} {% set siteWeb = b.siteWeb ?? '' %} {% set adresse = b.adresse ?? '' %} {% set slogan = b.slogan ?? '' %} {% set linkedin = b.linkedin ?? '' %} {% set facebook = b.facebook ?? '' %} {% set youtube = b.youtube ?? '' %} {% set tiktok = b.tiktok ?? '' %} {% set insta = b.insta ?? '' %} {% set xTwitter = b.x ?? '' %} {% set threads = b.threads ?? '' %} {% set zoom = b.zoom ?? '' %} {% set googleMeet = b.googleMeet ?? '' %} {% set microsoftTeams = b.microsoftTeams ?? '' %} {% set service1 = b.service1 ?? '' %} {% set service2 = b.service2 ?? '' %} {% set service3 = b.service3 ?? '' %} {% set service4 = b.service4 ?? '' %} {% set hasServices = service1 or service2 or service3 or service4 %} {% set hasSocials = linkedin or facebook or youtube or tiktok or insta or xTwitter or threads %} {% set isPremium = cardType in ['premium', 'forcevente'] %} {% set isForceVente = cardType == 'forcevente' %} {# vCard data URL #} {% set vcardData = 'BEGIN:VCARD\nVERSION:3.0\nN:' ~ (b.nom ?? '') ~ ';' ~ (b.prenom ?? '') ~ ';;;\nFN:' ~ fullName ~ '\n' %} {% if entreprise %}{% set vcardData = vcardData ~ 'ORG:' ~ entreprise ~ '\n' %}{% endif %} {% if fonction %}{% set vcardData = vcardData ~ 'TITLE:' ~ fonction ~ '\n' %}{% endif %} {% if mobile %}{% set vcardData = vcardData ~ 'TEL;TYPE=CELL,VOICE:' ~ mobile ~ '\n' %}{% endif %} {% if fixe %}{% set vcardData = vcardData ~ 'TEL;TYPE=WORK,VOICE:' ~ fixe ~ '\n' %}{% endif %} {% if email %}{% set vcardData = vcardData ~ 'EMAIL;TYPE=WORK:' ~ email ~ '\n' %}{% endif %} {% if siteWeb %}{% set vcardData = vcardData ~ 'URL:' ~ siteWeb ~ '\n' %}{% endif %} {% if adresse %}{% set vcardData = vcardData ~ 'ADR;TYPE=WORK:;;' ~ adresse ~ '\n' %}{% endif %} {% set vcardData = vcardData ~ 'END:VCARD' %} {# ═══ Apple iOS PWA ═══ #} {{ fullName }} - {{ entreprise ?: 'Num-Ecard' }}
{# ===== HEADER ===== #}
{% if logoFile is defined and logoFile %} {% else %} {# Pas de logo → initiales nom/prénom dans un cercle aux couleurs du thème #} {% set initialesNP = (b.prenom ?? '')|slice(0,1)|upper ~ (b.nom ?? '')|slice(0,1)|upper %} {% endif %}
{{ entreprise ?: 'NUM-ECARD' }}
{% if slogan %}
{{ slogan }}
{% elseif entreprise %} {# Pas de slogan mais entreprise → initiales entreprise #} {% set mots = entreprise|split(' ') %} {% set initialesE = '' %} {% for mot in mots %} {% if mot|length > 0 %} {% set initialesE = initialesE ~ mot|slice(0,1)|upper %} {% endif %} {% endfor %}
{{ initialesE }}
{% else %}
Votre carte de visite qui travaille 24h/24
{% endif %}
{% if isForceVente %} {# ===== PROFIL FORCE DE VENTE (label/valeur) ===== #}
{% set initialesNP = (b.prenom ?? '')|slice(0,1)|upper ~ (b.nom ?? '')|slice(0,1)|upper %}
{{ initialesNP }}
{{ fullName }}
{% if fonction %}
{{ fonction }}
{% endif %} {% if slogan %}
{{ slogan }}
{% endif %}
{# Contacts en format label/valeur #}
{% if mobile %}
Mobile : {{ mobile }}
{% endif %} {% if fixe %}
Fixe : {{ fixe }}
{% endif %} {% if email %}
{{ email }}
{% endif %} {% if adresse %}
{{ adresse }}
{% endif %}
{# Bouton Ajouter aux contacts FV #} Ajouter aux contacts {% else %} {# ===== PROFIL ESSENTIEL / PREMIUM (boutons pleine largeur) ===== #}
{{ fullName }}
{% if fonction %}
{{ fonction }}
{% endif %} {% if slogan %}
{{ slogan }}
{% endif %}
{% if mobile %} Mobile ({{ mobile }}) {% endif %} {% if fixe %} Fixe ({{ fixe }}) {% endif %} {% if email %} {{ email }} {% endif %} {# vCard download #} Ajouter aux contacts
{% endif %} {# ===== STATS (Premium / Force de Vente) ===== #} {% if isPremium and (b.expertise is defined and b.expertise or b.seances is defined and b.seances or b.satisfaction is defined and b.satisfaction) %}
{% if b.expertise is defined and b.expertise %}
{{ b.expertise }}
ans d'exp.
{% endif %} {% if b.seances is defined and b.seances %}
{{ b.seances }}
réalisations
{% endif %} {% if b.satisfaction is defined and b.satisfaction %}
{{ b.satisfaction }}%
satisfaction
{% endif %}
{% endif %} {# ===== SERVICES ===== #} {% if hasServices %}

{{ isPremium ? 'Nos services' : 'Votre carte digitale professionnelle' }}

{% if service1 %}{{ service1 }}{% endif %} {% if service2 %}{{ service2 }}{% endif %} {% if service3 %}{{ service3 }}{% endif %} {% if service4 %}{{ service4 }}{% endif %}
{% elseif not isPremium %}

Votre carte digitale professionnelle

Innovante Permanente Écologique Illimitée
{% endif %} {# ===== ADRESSE ===== #} {% if adresse and not isForceVente %}

📍 {{ adresse }}

{% endif %} {# ===== RÉSEAUX SOCIAUX ===== #} {% if hasSocials %}

🔗 Retrouvez-moi

{% endif %} {# ===== VISIOCONFÉRENCE (si au moins un lien renseigné) ===== #} {% if zoom or googleMeet or microsoftTeams %} {% endif %} {# ===== VISIOCONFÉRENCE ===== #} {% if zoom or googleMeet or microsoftTeams %} {% endif %} {# ===== LIEN PERSONNALISÉ (Premium) ===== #} {% if isPremium and b.lienPersonnalise is defined and b.lienPersonnalise %} {% endif %} {# ===== FORMULAIRE RECOMMANDATION (Force de Vente uniquement) ===== #} {# Injecté dynamiquement par CardGeneratorService::injectRecommendationForm() #} {# ⚠️ RGPD Art. 13 — ACTION REQUISE côté PHP (2026) : La notice Art. 13 DOIT être incluse dans le HTML généré par injectRecommendationForm(). Ajouter APRÈS le bouton "Envoyer la recommandation", avant la fermeture
du formulaire :

🔒 Les données saisies sont transmises au professionnel titulaire de cette carte à des fins de mise en relation (Art. 6.1.a RGPD — consentement). Vous disposez d'un droit d'accès, de rectification et de suppression. Politique de confidentialité.

Voir : src/Service/CardGeneratorService.php → injectRecommendationForm() #} {# ===== PUSH NOTIFICATIONS ===== #}
{# ===== FIN PUSH ===== #} {# ===== CTA NUM-ECARD (toutes les cartes) ===== #}
🚀

Vous aussi, passez au digital !

Fini le gaspillage de cartes papier !
Une carte permanente, toujours à jour, partageable à l'infini.
À partir de 199€ • ROI immédiat

⚡ Commander votre carte
{# ===== PARTAGE ===== #}

📤 Partager cette carte de visite

Transmettez mes coordonnées facilement
{# ===== SITE WEB ===== #} {% if siteWeb %} {% else %} {% endif %}
✅ Lien copié !
{# ===== PWA INSTALL BANNER ===== #} {# ===== SCHEMA.ORG ===== #}