Merge pull request #1046 from Jennydmz/BUG-7569

BUG-7569 Date Fields are not applying the mask when displaying saved dates.
This commit is contained in:
julceslauhub
2012-12-04 08:31:42 -08:00

View File

@@ -4057,11 +4057,6 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
//$this->defaultValue = G::replaceDataField( $this->defaultValue, $owner->values);
$id = "form[$this->name]";
if ($this->renderMode != 'edit' && $value == 'today') {
$mask = str_replace( "%", "", $this->mask );
$value = date( masktophp($mask) );
return $value;
}
return $this->__draw_widget( $id, $value, $owner );
}
@@ -4094,7 +4089,7 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
}
if ($v == 'today') {
$mask = str_replace( "%", "", $this->mask );
$v = date( masktophp($mask) );
$v = date( masktophp($mask, $v) );
}
$html = '<input ' . $this->NSRequiredValue() . ' class="module_app_input___gray" id="form[' . $owner->name . '][' . $r . '][' . $this->name . ']" name="form[' . $owner->name . '][' . $r . '][' . $this->name . ']" type ="text" size="' . $this->size . '" maxlength="' . $this->maxLength . '" value="' . $this->htmlentities( $v, ENT_COMPAT, 'utf-8' ) . '" required="' . $isRequired . '" style="display:none;' . htmlentities( $this->style, ENT_COMPAT, 'utf-8' ) . '"/>' . htmlentities( $v, ENT_COMPAT, 'utf-8' );
} else {
@@ -4169,8 +4164,8 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
$mask = '%Y-%m-%d'; //set default
}
if ($this->defaultValue == "today") {
$defaultValue = masktophp( $mask );
if ($this->defaultValue != "") {
$defaultValue = masktophp( $mask, $defaultValue);
}
if (strpos( $mask, '%' ) === false) {
@@ -4210,15 +4205,8 @@ class XmlForm_Field_Date extends XmlForm_Field_SimpleText
if (trim( $value ) == '' or $value == null) {
$value = ''; //date ($tmp);
} else {
switch (strtolower( $value )) {
case 'today':
$value = masktophp( $mask ); // $value = date($tmp);
break;
default:
if (! $this->verifyDateFormat( $value )) {
//$value='';
break;
}
if ($value != "") {
$value = masktophp( $mask, $value);
}
}
@@ -5458,7 +5446,7 @@ class XmlForm_Field_Image extends XmlForm_Field
}
//mask function to php
function masktophp ($mask)
function masktophp ($mask, $value)
{
$tmp = str_replace("%", "", $mask);
if (preg_match('/M/',$tmp)) {
@@ -5473,7 +5461,45 @@ function masktophp ($mask)
if (preg_match('/S/',$tmp)) {
$tmp = str_replace("S", "s", $tmp);
}
$value = date($tmp);
if (preg_match('/o/',$tmp)) {
$tmp = str_replace("o", "n", $tmp);
}
if (preg_match('/a/',$tmp)) {
$tmp = str_replace("a", "D", $tmp);
}
if (preg_match('/l/',$tmp)) {
$tmp = str_replace("l", "g", $tmp);
}
if (preg_match('/A/',$tmp)) {
$tmp = str_replace("A", "l", $tmp);
}
if (preg_match('/I/',$tmp)) {
$tmp = str_replace("I", "h", $tmp);
}
if (preg_match('/j/',$tmp)) {
$tmp = str_replace("j", "z", $tmp);
}
if (preg_match('/k/',$tmp)) {
$tmp = str_replace("k", "G", $tmp);
}
if (preg_match('/e/',$tmp)) {
$tmp = str_replace("e", "j", $tmp);
}
if (preg_match('/u/',$tmp)) {
$tmp = str_replace("u", "N", $tmp);
}
if (preg_match('/p/',$tmp)) {
$tmp = str_replace("p", "A", $tmp);
}
if (preg_match('/P/',$tmp)) {
$tmp = str_replace("P", "a", $tmp);
}
if ($value == 'today') {
$value = date($tmp);
} else {
$value = date($tmp, strtotime ($value));
}
return $value;
}