Exemplo n.º 1
0
function price_format($price, $sf_user = false)
{
    if (!$sf_user) {
        $sf_user = sfContext::getInstance()->getUser();
    }
    $cur = $sf_user->getCurrency();
    $culture = $sf_user->getCulture();
    $numberFormat = new sfNumberFormat($culture);
    $ar = sfNumberFormatInfo::getCurrencyInstance($culture)->getPattern();
    if ($cur->getAbbr() != 'EUR' && $cur->getAbbr() != 'USD') {
        $pattern = str_replace('¤', '', $ar['positive']);
        $pattern = trim(str_replace('¤', '', $ar['positive'])) . ' ' . $cur->getAbbr();
    } else {
        $pattern = $ar['positive'];
    }
    return $numberFormat->format($cur->getFactor() * $price, $pattern, $cur->getAbbr());
}
Exemplo n.º 2
0
$n = sfNumberFormatInfo::getInstance();
$n1 = sfNumberFormatInfo::getInstance();
$n->setPattern(sfNumberFormatInfo::CURRENCY);
$pattern = $n->getPattern();
$n1->setPattern(sfNumberFormatInfo::PERCENTAGE);
$pattern1 = $n1->getPattern();
$t->isnt($pattern, $pattern1, '->getPattern() ->setPattern() changes the current pattern');
$n = sfNumberFormatInfo::getInstance();
$n1 = sfNumberFormatInfo::getInstance();
$n->Pattern = sfNumberFormatInfo::CURRENCY;
$n1->setPattern(sfNumberFormatInfo::CURRENCY);
$t->is($n->getPattern(), $n1->getPattern(), '->setPattern() is equivalent to ->Pattern = ');
$t->is($n->getPattern(), $n->Pattern, '->getPattern() is equivalent to ->Pattern');
// ::getCurrencyInstance()
$t->diag('::getCurrencyInstance()');
$t->is(sfNumberFormatInfo::getCurrencyInstance()->getPattern(), sfNumberFormatInfo::getInstance(null, sfNumberFormatInfo::CURRENCY)->getPattern(), '::getCurrencyInstance() is a shortcut for ::getInstance() and type sfNumberFormatInfo::CURRENCY');
// ::getPercentageInstance()
$t->diag('::getPercentageInstance()');
$t->is(sfNumberFormatInfo::getPercentageInstance()->getPattern(), sfNumberFormatInfo::getInstance(null, sfNumberFormatInfo::PERCENTAGE)->getPattern(), '::getPercentageInstance() is a shortcut for ::getInstance() and type sfNumberFormatInfo::PERCENTAGE');
// ::getScientificInstance()
$t->diag('::getScientificInstance()');
$t->is(sfNumberFormatInfo::getScientificInstance()->getPattern(), sfNumberFormatInfo::getInstance(null, sfNumberFormatInfo::SCIENTIFIC)->getPattern(), '::getScientificInstance() is a shortcut for ::getInstance() and type sfNumberFormatInfo::SCIENTIFIC');
$tests = array('fr' => array('DecimalDigits' => -1, 'DecimalSeparator' => ',', 'GroupSeparator' => ' ', 'CurrencySymbol' => '$US', 'NegativeInfinitySymbol' => '-∞', 'PositiveInfinitySymbol' => '+∞', 'NegativeSign' => '-', 'PositiveSign' => '+', 'NaNSymbol' => 'NaN', 'PercentSymbol' => '%', 'PerMilleSymbol' => '‰'), 'en' => array('DecimalDigits' => -1, 'DecimalSeparator' => '.', 'GroupSeparator' => ',', 'CurrencySymbol' => '$', 'NegativeInfinitySymbol' => '-∞', 'PositiveInfinitySymbol' => '+∞', 'NegativeSign' => '-', 'PositiveSign' => '+', 'NaNSymbol' => 'NaN', 'PercentSymbol' => '%', 'PerMilleSymbol' => '‰'));
foreach ($tests as $culture => $fixtures) {
    $n = sfNumberFormatInfo::getInstance($culture);
    foreach ($fixtures as $method => $result) {
        $getter = 'get' . $method;
        $t->is($n->{$getter}(), $result, sprintf('->%s() returns "%s" for culture "%s"', $getter, $result, $culture));
    }
}
// setters/getters