Exemple #1
0
 function rate()
 {
     return smart_currency($this->getVar('rate', 'e'));
 }
Exemple #2
0
function smart_float($var)
{
    return smart_currency($var);
}
Exemple #3
0
 /**
  * clean values of all variables of the object for storage.
  * also add slashes whereever needed
  *
  * We had to put this method in the SmartObject because the XOBJ_DTYPE_ARRAY does not work properly
  * at least on PHP 5.1. So we have created a new type XOBJ_DTYPE_SIMPLE_ARRAY to handle 1 level array
  * as a string separated by |
  *
  * @return bool true if successful
  * @access public
  */
 function cleanVars()
 {
     $ts =& MyTextSanitizer::getInstance();
     $existing_errors = $this->getErrors();
     $this->_errors = array();
     foreach ($this->vars as $k => $v) {
         $cleanv = $v['value'];
         if (!$v['changed']) {
         } else {
             $cleanv = is_string($cleanv) ? trim($cleanv) : $cleanv;
             switch ($v['data_type']) {
                 case XOBJ_DTYPE_TXTBOX:
                     if ($v['required'] && $cleanv != '0' && $cleanv == '') {
                         $this->setErrors(sprintf(_XOBJ_ERR_REQUIRED, $k));
                         continue;
                     }
                     if (isset($v['maxlength']) && strlen($cleanv) > intval($v['maxlength'])) {
                         $this->setErrors(sprintf(_XOBJ_ERR_SHORTERTHAN, $k, intval($v['maxlength'])));
                         continue;
                     }
                     if (!$v['not_gpc']) {
                         $cleanv = $ts->stripSlashesGPC($ts->censorString($cleanv));
                     } else {
                         $cleanv = $ts->censorString($cleanv);
                     }
                     break;
                 case XOBJ_DTYPE_TXTAREA:
                     if ($v['required'] && $cleanv != '0' && $cleanv == '') {
                         $this->setErrors(sprintf(_XOBJ_ERR_REQUIRED, $k));
                         continue;
                     }
                     if (!$v['not_gpc']) {
                         $cleanv = $ts->stripSlashesGPC($ts->censorString($cleanv));
                     } else {
                         $cleanv = $ts->censorString($cleanv);
                     }
                     break;
                 case XOBJ_DTYPE_SOURCE:
                     if (!$v['not_gpc']) {
                         $cleanv = $ts->stripSlashesGPC($cleanv);
                     } else {
                         $cleanv = $cleanv;
                     }
                     break;
                 case XOBJ_DTYPE_INT:
                 case XOBJ_DTYPE_TIME_ONLY:
                     $cleanv = intval($cleanv);
                     break;
                 case XOBJ_DTYPE_CURRENCY:
                     $cleanv = smart_currency($cleanv);
                     break;
                 case XOBJ_DTYPE_FLOAT:
                     $cleanv = smart_float($cleanv);
                     break;
                 case XOBJ_DTYPE_EMAIL:
                     if ($v['required'] && $cleanv == '') {
                         $this->setErrors(sprintf(_XOBJ_ERR_REQUIRED, $k));
                         continue;
                     }
                     if ($cleanv != '' && !preg_match("/^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+([\\.][a-z0-9-]+)+\$/i", $cleanv)) {
                         $this->setErrors("Invalid Email");
                         continue;
                     }
                     if (!$v['not_gpc']) {
                         $cleanv = $ts->stripSlashesGPC($cleanv);
                     }
                     break;
                 case XOBJ_DTYPE_URL:
                     if ($v['required'] && $cleanv == '') {
                         $this->setErrors(sprintf(_XOBJ_ERR_REQUIRED, $k));
                         continue;
                     }
                     if ($cleanv != '' && !preg_match("/^http[s]*:\\/\\//i", $cleanv)) {
                         $cleanv = 'http://' . $cleanv;
                     }
                     if (!$v['not_gpc']) {
                         $cleanv =& $ts->stripSlashesGPC($cleanv);
                     }
                     break;
                 case XOBJ_DTYPE_SIMPLE_ARRAY:
                     $cleanv = implode('|', $cleanv);
                     break;
                 case XOBJ_DTYPE_ARRAY:
                     $cleanv = serialize($cleanv);
                     break;
                 case XOBJ_DTYPE_STIME:
                 case XOBJ_DTYPE_MTIME:
                 case XOBJ_DTYPE_LTIME:
                     $cleanv = !is_string($cleanv) ? intval($cleanv) : strtotime($cleanv);
                     if (!($cleanv > 0)) {
                         $cleanv = strtotime($cleanv);
                     }
                     break;
                 default:
                     break;
             }
         }
         $this->cleanVars[$k] =& $cleanv;
         unset($cleanv);
     }
     if (count($this->_errors) > 0) {
         $this->_errors = array_merge($existing_errors, $this->_errors);
         return false;
     }
     $this->_errors = array_merge($existing_errors, $this->_errors);
     $this->unsetDirty();
     return true;
 }