Changeset 93054 in spip-zone


Ignore:
Timestamp:
Nov 21, 2015, 11:48:32 AM (4 years ago)
Author:
abelass@…
Message:

fonction pour fomatter un prix avec la possibilité de fournir la devise

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservation_evenement/trunk/reservation_evenement_fonctions.php

    r93050 r93054  
    102102  return $infos;
    103103}
     104
     105/*
     106 * Formater un nombre pour l'afficher comme un prix avec une devise
     107 *
     108 * @param float $prix Valeur du prix à formater
     109 * @param string $devise devise
     110 * @return string Retourne une chaine contenant le prix formaté avec une devise (par défaut l'euro)
     111 */
     112function prix_formater_devise($montant,$devise){
     113  include_spip('inc/config');
     114  include_spip('inc/cookie');
     115
     116  $montant = number_format($montant, 2);
     117
     118  // Si prix objets installés on recupère ses configs
     119  $config = lire_config('prix_objets');
     120  $devises = isset($config['devises']) ? $config['devises'] : array();
     121
     122  //Si il y a un cookie 'geo_devise' et qu'il figure parmis les devises diponibles on le prend
     123  if (!$devise) {
     124    if (isset($_COOKIE['geo_devise']) AND in_array($_COOKIE['geo_devise'], $devises))
     125      $devise = $_COOKIE['geo_devise'];
     126    // Sinon on regarde si il ya une devise defaut valable
     127    elseif ($config['devise_default'] AND in_array($config['devise_default'], $devises))
     128      $devise = $config['devise_default'];
     129    // Sinon on prend la première des devises choisies
     130    elseif (isset($devises[0]))
     131      $devise = $devises[0];
     132    // Sinon on met l'Euro
     133    elseif(! defined('DEVISE_DEFAUT')) {
     134       $devise = 'EUR';
     135      }
     136    else $devise = DEVISE_DEFAUT;
     137     
     138
     139    //On met le cookie
     140    spip_setcookie('geo_devise', $devise, time() + 3660 * 24 * 365, '/');
     141    define('DEVISE_DEFAUT',$devise);
     142  }
     143
     144  //On détermine la langue du contexte
     145  $lang = $GLOBALS['spip_lang'];
     146
     147  // Si PECL intl est présent on dermine le format de l'affichage de la devise selon la langue du contexte
     148  if (function_exists('numfmt_create')) {
     149    $fmt = numfmt_create($lang, NumberFormatter::CURRENCY);
     150    $montant = numfmt_format_currency($fmt, $montant, $devise);
     151  }
     152  //Sinon on formate à la française
     153  elseif (function_exists('traduire_devise'))
     154    $montant = $montant . ' ' . traduire_devise($devise);
     155  else
     156    $montant = $montant . ' ' . $devise;
     157 
     158  return $montant;
     159}
Note: See TracChangeset for help on using the changeset viewer.