Valider 248e9b9c rédigé par tcharlss's avatar tcharlss
Parcourir les fichiers

Ajout des microdatas dans le montant formaté.

parent e88f82e4
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+14 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -26,6 +26,7 @@ function montant_formater($montant, $options = array()) {
 *
 * Le montant retourné respecte les règles d'affichages propres à chaque langue et devise :
 * nombre de décimales, virgules et/ou points, emplacement de la devise, etc.
 * Il inclut les balises meta pour les micro-données.
 *
 * L'option `currency_display` permet d'avoir un format spécifique aux factures.
 * L'option `float_only` permet d'avoir le nombre flottant arrondi selon la devise.
@@ -128,14 +129,16 @@ function filtre_montant_formater_dist($montant, $options = array()) {
 * Encapsule un montant dans des <span> en isolant la devise, en mode BEM.
 *
 * @note
 * On n'encapsule pas le nombre dans un span car la devise peut être incluse dedans,
 * ex. : -AED123
 * La devise peut parfois être incluse dans le nombre, ex. : -AED123
 * C'est pourquoi on encapsule uniquement la devise dans un span, mais pas le nombre,
 * sinon cela ferait parfois une imbrication non voulue.
 *
 * @example
 *     (sans retour ligne, là c'est pour lisibilité)
 *     ````
 *     <span class="montant" data-montant-nombre="3.14" data-montant-devise="EUR">
 *       3,14 <span class="montant__devise">EUR</span>
 *       <meta itemprop="price" content="3.14" />
 *       <meta itemprop="priceCurrency" content="EUR" />
 *     </span>
 *    ````
 *
@@ -154,11 +157,17 @@ function intl_ajouter_markup($montant_formate, $montant, $devise, $classe = '')
	$classe = (!empty($classe) ? $classe : 'montant');
	$classe_devise = "${classe}__devise";

	// Markupisons
	// D'abord on isole la devise et on l'encapsule dans un span (mais pas le nombre, cf. @note)
	$cherche_devise = '/[^\d\-\.\,\(\)\s x{00a0}]+/u';
	$remplace_devise = "<span class=\"$classe_devise\">$0</span>";
	$montant_formate = preg_replace($cherche_devise, $remplace_devise, $montant_formate);
	$montant_formate = "<span class=\"$classe\" data-montant-nombre=\"$montant\" data-montant-devise=\"$devise\">" . $montant_formate . '</span>';
	// Puis on encpasule le tout dans un span, avec les microdatas
	$montant_formate =
		"<span class=\"$classe\" data-montant-nombre=\"$montant\" data-montant-devise=\"$devise\">"
		. "\n\t$montant_formate"
		. "\n\t<meta itemprop=\"price\" content=\"$montant\" />"
		. "\n\t<meta itemprop=\"priceCurrency\" content=\"$devise\" />"
		. "\n</span>";

	return $montant_formate;
}