ConLite/conlite/classes/datatypes/class.datatype.number.php

108 Zeilen
2.4 KiB
PHP

<?php
/**
* Project:
* Contenido Content Management System
*
* Description:
*
*
* Requirements:
* @con_php_req 5.0
*
*
* @package Contenido Backend classes
* @version 1.0
* @author
* @copyright four for business AG <www.4fb.de>
* @license http://www.contenido.org/license/LIZENZ.txt
* @link http://www.4fb.de
* @link http://www.contenido.org
*
* {@internal
* created
*
* $Id: class.datatype.number.php 2 2011-07-20 12:00:48Z oldperl $:
* }}
*
*/
if(!defined('CON_FRAMEWORK')) {
die('Illegal call');
}
class cDatatypeNumber extends cDatatype
{
var $_iPrecision;
var $_sThousandSeparatorCharacter;
var $_sDecimalPointCharacter;
function cDatatypeNumber ()
{
global $i18nLanguage;
/* Try to find out the current locale settings */
$aLocaleSettings = cLocaleConv($i18nLanguage);
$this->setDecimalPointCharacter($aLocaleSettings["mon_decimal_point"]);
$this->setThousandSeparatorCharacter($aLocaleSettings["mon_thousands_sep"]);
cDatatype::cDatatype();
}
function set ($value)
{
$this->_mValue = floatval($value);
}
function get ()
{
return $this->_mValue;
}
function setPrecision ($iPrecision)
{
$this->_iPrecision = $iPrecision;
}
function setDecimalPointCharacter ($sCharacter)
{
$this->_sDecimalPointCharacter = $sCharacter;
}
function getDecimalPointCharacter ()
{
return ($this->_sDecimalPointCharacter);
}
function setThousandSeparatorCharacter ($sCharacter)
{
$this->_sThousandSeparatorCharacter = $sCharacter;
}
function getThousandSeparatorCharacter ()
{
return($this->_sThousandSeparatorCharacter);
}
function parse ($value)
{
if ($this->_sDecimalPointCharacter == $this->_sThousandSeparatorCharacter)
{
cWarning(__FILE__, __LINE__, "Decimal point character cannot be the same as the thousand separator character. Current decimal point character is '{$this->_sDecimalPointCharacter}', current thousand separator character is '{$this->_sThousandSeparatorCharacter}'");
return;
}
/* Convert to standard english format */
$value = str_replace($this->_sThousandSeparatorCharacter, "", $value);
$value = str_replace($this->_sDecimalPointCharacter, ".", $value);
$this->_mValue = floatval($value);
}
function render ()
{
return number_format($this->_mValue, $this->_iPrecision, $this->_sDecimalPointCharacter, $this->_sThousandSeparatorCharacter);
}
}
?>