/**
  * Fixes broken UserInput.
  * 
  * @param mixed  $http           Class eZHTTPTool.
  * @param string $base           Seems to be always 'ContentObjectAttribute'.
  * @param mixed  $classAttribute Class eZContentClassAttribute.
  *
  * @return void
  */
 public function fixupClassAttributeHTTPInput($http, $base, $classAttribute)
 {
     $minValueName = $base . self::MIN_VARIABLE . $classAttribute->attribute("id");
     $maxValueName = $base . self::MAX_VARIABLE . $classAttribute->attribute("id");
     if ($http->hasPostVariable($minValueName) and $http->hasPostVariable($maxValueName)) {
         $locale = eZLocale::instance();
         $minValueValue = $http->postVariable($minValueName);
         $minValueValue = str_replace(" ", "", $minValueValue);
         $minValueValue = $locale->internalNumber($minValueValue);
         $maxValueValue = $http->postVariable($maxValueName);
         $maxValueValue = str_replace(" ", "", $maxValueValue);
         $maxValueValue = $locale->internalNumber($maxValueValue);
         if ($minValueValue > $maxValueValue) {
             $this->FloatValidator->setRange($minValueValue, false);
             $maxValueValue = $this->FloatValidator->fixup($maxValueValue);
             $http->setPostVariable($maxValueName, $maxValueValue);
         }
     }
 }
/**
 * Validates currency data:
 *  - checks that custom_rate_value & rate_factor are provided and are floats.
 *
 * @param array $currencyData Currenty data as submitted. Will be modified to
 *        remove invalid values since it is passed by reference
 * @return false|string True if data is valid, an error message if it's not
 */
function validateCurrencyData(&$currencyData)
{
    $return = false;
    $floatValidator = new eZFloatValidator(0);
    if ($floatValidator->validate($currencyData['custom_rate_value']) == eZInputValidator::STATE_INVALID) {
        $return = ezpI18n::tr('kernel/shop', "'%value' is not a valid custom rate value (positive number expected)", 'Error message', array('%value' => $currencyData['custom_rate_value']));
        $currencyData['custom_rate_value'] = '';
    }
    if ($floatValidator->validate($currencyData['rate_factor']) == eZInputValidator::STATE_INVALID) {
        if ($return === false) {
            $return = ezpI18n::tr('kernel/shop', "'%value' is not a valid rate_factor value (positive number expected)", 'Error message', array('%value' => $currencyData['rate_factor']));
        }
        $currencyData['rate_factor'] = '';
    }
    return $return;
}
 function processEditActions(&$validation, $params)
 {
     parent::processEditActions($validation, $params);
     $http = eZHTTPTool::instance();
     $locale = eZLocale::instance();
     $prefix = eZSurveyType::PREFIX_ATTRIBUTE;
     $attributeID = $params['contentobjectattribute_id'];
     $postNumHidden = $prefix . '_ezsurvey_question_' . $this->ID . '_num_hidden_' . $attributeID;
     if ($http->hasPostVariable($postNumHidden)) {
         $postNum = $prefix . '_ezsurvey_question_' . $this->ID . '_num_' . $attributeID;
         if ($http->hasPostVariable($postNum)) {
             $newNum = 1;
         } else {
             $newNum = 0;
         }
         if ($this->attribute('num') != $newNum) {
             $this->setAttribute('num', $newNum);
         }
     }
     if ($this->attribute('num')) {
         $reqInteger = true;
         $validator = new eZIntegerValidator();
     } else {
         $reqInteger = false;
         $validator = new eZFloatValidator();
     }
     $this->setAttribute('text2', trim($this->attribute('text2')));
     $this->setAttribute('text3', trim($this->attribute('text3')));
     $this->setAttribute('default_value', trim($this->attribute('default_value')));
     if (strlen($this->attribute('text2')) > 0) {
         $data = $this->attribute('text2');
         $data = trim($data);
         $data = $locale->internalNumber($data);
         if ($reqInteger && is_numeric($data) and (int) $data == $data) {
             $data = (int) $data;
         }
         if ($validator->validate($data) == eZInputValidator::STATE_ACCEPTED) {
             $this->setAttribute('text2', $data);
         }
     }
     if (strlen($this->attribute('text3')) > 0) {
         $data = $this->attribute('text3');
         $data = trim($data);
         $data = $locale->internalNumber($data);
         if ($reqInteger && is_numeric($data) && (int) $data == $data) {
             $data = (int) $data;
         }
         if ($validator->validate($data) == eZInputValidator::STATE_ACCEPTED) {
             $this->setAttribute('text3', $data);
         }
     }
     if (strlen($this->attribute('default_value')) > 0) {
         $data = $this->attribute('default_value');
         $data = trim($data);
         $data = $locale->internalNumber($data);
         if ($reqInteger && is_numeric($data) && (int) $data == $data) {
             $data = (int) $data;
         }
         if ($validator->validate($data) == eZInputValidator::STATE_ACCEPTED) {
             $this->setAttribute('default_value', $data);
         }
     }
 }