[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/i18n/src/template/tags/i18n/ -> number.filter.php (source)

   1  <?php
   2  /*
   3   * Limb PHP Framework
   4   *
   5   * @link http://limb-project.com 
   6   * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)
   7   * @license    LGPL http://www.gnu.org/copyleft/lesser.html 
   8   */
   9  /**
  10   * @filter i18n_number
  11   * @max_attributes 5
  12   * @package i18n
  13   * @version $Id: number.filter.php 5945 2007-06-06 08:31:43Z pachanga $
  14   */
  15  class lmbI18NNumberFilter extends WactCompilerFilter
  16  {
  17    var $locale_var;
  18  
  19    function getValue()
  20    {
  21      $value = $this->base->getValue();
  22  
  23      $toolkit = lmbToolkit :: instance();
  24  
  25      if(isset($this->parameters[0]) && $this->parameters[0]->getValue())
  26        $locale = $toolkit->getLocaleObject($this->parameters[0]->getValue());
  27      else
  28        $locale = $toolkit->getLocaleObject();
  29  
  30      if(isset($this->parameters[1]) && $this->parameters[1]->getValue())
  31        $fract_digits = $this->parameters[1]->getValue();
  32      else
  33        $fract_digits = $locale->fract_digits;
  34  
  35      if(isset($this->parameters[2]) && $this->parameters[2]->getValue())
  36        $decimal_symbol = $this->parameters[2]->getValue();
  37      else
  38        $decimal_symbol = $locale->decimal_symbol;
  39  
  40      if(isset($this->parameters[3]) && $this->parameters[3]->getValue())
  41        $thousand_separator = $this->parameters[3]->getValue();
  42      else
  43        $thousand_separator = $locale->thousand_separator;
  44  
  45      if ($this->isConstant())
  46        return number_format($value, $fract_digits, $decimal_symbol, $thousand_separator);
  47      else
  48        $this->raiseUnresolvedBindingError();
  49    }
  50  
  51    function generatePreStatement($code)
  52    {
  53      $toolkit_var = $code->getTempVarRef();
  54      $this->locale_var = $code->getTempVarRef();
  55  
  56      $code->writePHP($toolkit_var . ' = lmbToolkit :: instance();' . "\n");
  57      $code->writePHP($this->locale_var . ' = ');
  58  
  59      if(isset($this->parameters[0]) && $this->parameters[0]->getValue())
  60      {
  61        $code->writePHP($toolkit_var . '->getLocaleObject("' . $this->parameters[0]->getValue(). '");');
  62      }
  63      else
  64      {
  65        $code->writePHP($toolkit_var . '->getLocaleObject();');
  66      }
  67    }
  68  
  69    function generateExpression($code)
  70    {
  71      $code->writePHP('number_format(');
  72      $this->base->generateExpression($code);
  73      $code->writePHP(',');
  74  
  75      if(isset($this->parameters[1]) && $this->parameters[1]->getValue())
  76        $this->parameters[1]->generateExpression($code);
  77      else
  78        $code->writePHP($this->locale_var . '->fract_digits');
  79  
  80      $code->writePHP(',');
  81  
  82      if(isset($this->parameters[2]) && $this->parameters[2]->getValue())
  83        $this->parameters[2]->generateExpression($code);
  84      else
  85        $code->writePHP($this->locale_var . '->decimal_symbol');
  86  
  87      $code->writePHP(',');
  88  
  89      if(isset($this->parameters[3]) && $this->parameters[3]->getValue())
  90        $this->parameters[3]->generateExpression($code);
  91      else
  92        $code->writePHP($this->locale_var . '->thousand_separator');
  93  
  94      $code->writePHP(')');
  95    }
  96  }
  97  
  98  ?>


Generated: Tue Oct 7 05:02:03 2008 Cross-referenced by PHPXref 0.7