You are here

public function FrxControls::number in Forena Reports 7.3

Same name and namespace in other branches
  1. 6.2 plugins/FrxControls.inc \FrxControls::number()
  2. 6 plugins/FrxControls.inc \FrxControls::number()
  3. 7 plugins/FrxControls.inc \FrxControls::number()
  4. 7.2 plugins/FrxControls.inc \FrxControls::number()
  5. 7.4 plugins/FrxControls.inc \FrxControls::number()

File

plugins/FrxControls.inc, line 114
contains various methods for extending report formating, layout, transformation and design.

Class

FrxControls
@file contains various methods for extending report formating, layout, transformation and design.

Code

public function number($value, $format_str, $data = '') {

  // Determine number nubmer formatter from the string.
  $chars = str_replace(array(
    '9',
    '0',
    '$',
  ), '', $format_str);
  if (strlen($chars) > 1) {
    $th_sep = substr($chars, 0, 1);
    $dec_sep = substr($chars, 1, 1);
    $dec_pos = strrpos($format_str, $dec_sep);
    if ($dec_pos) {
      $dec = strlen($format_str) - $dec_pos - 1;
    }
    else {
      $dec = 0;
      $dec_sep = '';
    }
  }
  elseif (strlen($chars) == 1) {
    $th_sep = substr($chars, 0, 1);
    $dec_sep = '';
    $dec = 0;
  }
  else {
    $dec_sep = '';
    $th_sep = '';
    $dec = 0;
  }
  if ($value && $this
    ->is_number($value)) {
    $value = number_format($value, $dec, $dec_sep, $th_sep);
  }
  return $value;
}