Personnaliser de façon avancée un document (Smarty)

Le langage Smarty offre de nombreuses possibilités de personnaliser un document que voici.

Voici différents cas d’usages :

Opération souhaitéeFonction SmartyExemple de syntaxe
Forcer un texte en majusculeupper{« $ops_personne_morale_billing_address_city » | upper}
Forcer un texte en minusculelower{« $ops_personne_morale_type_tier » | lower}
Forcer la 1ère lettre en majuscule et le reste en minusculelower et capitalize{« $ops_personne_morale_billing_address_city » | lower | capitalize}
Afficher un déterminant différent en fonction de la première lettre du mot suivant

(afficher d’ ou de selon que le mot suivant commence par une voyelle ou une consonne)

– assign : Attribue une valeur (value) à la variable « ville »
– ubstr : Permet d’extraire certains caractères dans une chaîne (ici, le premier caractère de la variable ville)
– in_array() : On vérifie si le caractère extrait est présent dans le tableau (voyelles).
{assign var = « ville » value = « $ops_personne_morale_billing_address_city »}
{if in_array(substr($ville, 0, 1), [‘A’, ‘E’, ‘I’, ‘O’, ‘U’, ‘Y’])}
d'{$ville}
{else}
de {$ville}
{/if}

Un cas plus complexe : générer une date avec le mois en entier et en français

Pour afficher le mois de la date de génération d’un document en toutes lettres (en français), vous pouvez utiliser une série de conditions pour traduire le mois de l’anglais vers le français et afficher la date dans un format spécifique.

Le code est le suivant :

{assign var= »mois » value=$smarty.now|date_format: »%B »}
{assign var= »mois_fr » value= » »}
{if $mois == « January »}{assign var= »mois_fr » value= »janvier »}
{elseif $mois == « February »}{assign var= »mois_fr » value= »février »}
{elseif $mois == « March »}{assign var= »mois_fr » value= »mars »}
{elseif $mois == « April »}{assign var= »mois_fr » value= »avril »}
{elseif $mois == « May »}{assign var= »mois_fr » value= »mai »}
{elseif $mois == « June »}{assign var= »mois_fr » value= »juin »}
{elseif $mois == « July »}{assign var= »mois_fr » value= »juillet »}
{elseif $mois == « August »}{assign var= »mois_fr » value= »août »}
{elseif $mois == « September »}{assign var= »mois_fr » value= »septembre »}
{elseif $mois == « October »}{assign var= »mois_fr » value= »octobre »}
{elseif $mois == « November »}{assign var= »mois_fr » value= »novembre »}
{elseif $mois == « December »}{assign var= »mois_fr » value= »décembre »}
{/if}

Fait le : {$smarty.now|date_format: »%d »} {$mois_fr} {$smarty.now|date_format: »%Y »}

Pour aller plus loin (le langage Smarty)

La syntaxe présentée ci-dessus est issue du langage Smarty.

Il s’agit d’un langage de programmation introduit dans les modèles de PDF ainsi que les modèles de mails, il comporte beaucoup d’autres possibilités que vous pouvez découvrir en suivant ce lien.

Pour qui

Administrateur fonctionnel

Chemin

CRM > Administration > Modèles de PDF

Version

Open CRM 3.0