1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-06 06:38:00 +02:00

Fix for datepicker(). Tested!

This commit is contained in:
lonalore
2016-06-09 10:18:41 +02:00
parent 5a820eaf52
commit f1846dc955

View File

@@ -966,29 +966,27 @@ class e_form
*/ */
function datepicker($name, $datestamp = false, $options = null) function datepicker($name, $datestamp = false, $options = null)
{ {
if(vartrue($options) && is_string($options)) if(vartrue($options) && is_string($options))
{ {
parse_str($options,$options); parse_str($options,$options);
} }
$type = varset($options['type']) ? trim($options['type']) : "date"; // OR 'datetime' $type = varset($options['type']) ? trim($options['type']) : "date"; // OR 'datetime'
$dateFormat = varset($options['format']) ? trim($options['format']) :e107::getPref('inputdate', '%Y-%m-%d'); $dateFormat = varset($options['format']) ? trim($options['format']) :e107::getPref('inputdate', '%Y-%m-%d');
$ampm = (preg_match("/%l|%I|%p|%P/",$dateFormat)) ? 'true' : 'false'; $ampm = (preg_match("/%l|%I|%p|%P/",$dateFormat)) ? 'true' : 'false';
$value = null; $value = null;
$useUnix = (isset($options['return']) && ($options['return'] === 'string')) ? 'false' : 'true'; $hiddenValue = null;
$useUnix = (isset($options['return']) && ($options['return'] === 'string')) ? 'false' : 'true';
$id = $this->name2id($name);
$classes = array('date' => 'e-date', 'datetime' => 'e-datetime');
if($type == 'datetime' && !varset($options['format'])) if($type == 'datetime' && !varset($options['format']))
{ {
$dateFormat .= " ".e107::getPref('inputtime', '%H:%M:%S'); $dateFormat .= " ".e107::getPref('inputtime', '%H:%M:%S');
} }
$dformat = e107::getDate()->toMask($dateFormat); $dformat = e107::getDate()->toMask($dateFormat);
$id = $this->name2id($name);
$classes = array('date' => 'e-date', 'datetime' => 'e-datetime');
// If default value is set. // If default value is set.
if ($datestamp) if ($datestamp)
{ {
@@ -997,22 +995,24 @@ class e_form
$datestamp = strtotime($datestamp); $datestamp = strtotime($datestamp);
} }
// Convert date to proper (selected) format. // Convert date to proper (selected) format.
$value = e107::getDate()->convert_date($datestamp, $dformat); $hiddenValue = $value = e107::getDate()->convert_date($datestamp, $dformat);
if ($useUnix === 'true')
{
$hiddenValue = $datestamp;
}
} }
$text = ""; $text = "";
// $text .= 'dformat='.$dformat.' defdisp='.$dateFormat;
$class = (isset($classes[$type])) ? $classes[$type] : "tbox e-date"; $class = (isset($classes[$type])) ? $classes[$type] : "tbox e-date";
$size = vartrue($options['size']) ? intval($options['size']) : 40; $size = vartrue($options['size']) ? intval($options['size']) : 40;
$required = vartrue($options['required']) ? "required" : ""; $required = vartrue($options['required']) ? "required" : "";
$firstDay = vartrue($options['firstDay']) ? $options['firstDay'] : 0; $firstDay = vartrue($options['firstDay']) ? $options['firstDay'] : 0;
$xsize = (vartrue($options['size']) && !is_numeric($options['size'])) ? $options['size'] : 'xlarge'; $xsize = (vartrue($options['size']) && !is_numeric($options['size'])) ? $options['size'] : 'xlarge';
$disabled = vartrue($options['disabled']) ? "disabled" : ""; $disabled = vartrue($options['disabled']) ? "disabled" : "";
if(vartrue($options['inline'])) if(vartrue($options['inline']))
{ {
$text .= "<div class='{$class}' id='inline-{$id}' data-date-format='{$dformat}' data-date-ampm='{$ampm}' data-date-firstday='{$firstDay}' ></div> $text .= "<div class='{$class}' id='inline-{$id}' data-date-format='{$dformat}' data-date-ampm='{$ampm}' data-date-firstday='{$firstDay}' ></div>
@@ -1020,11 +1020,11 @@ class e_form
"; ";
} }
else else
{ {
$text .= "<input class='{$class} input-".$xsize." form-control' type='text' size='{$size}' id='e-datepicker-{$id}' value='{$value}' data-date-unix ='{$useUnix}' data-date-format='{$dformat}' data-date-ampm='{$ampm}' data-date-language='".e_LAN."' data-date-firstday='{$firstDay}' {$required} {$disabled} />"; $text .= "<input class='{$class} input-".$xsize." form-control' type='text' size='{$size}' id='e-datepicker-{$id}' value='{$value}' data-date-unix ='{$useUnix}' data-date-format='{$dformat}' data-date-ampm='{$ampm}' data-date-language='".e_LAN."' data-date-firstday='{$firstDay}' {$required} {$disabled} />";
$ftype = (!empty($options['debug'])) ? 'text' : 'hidden'; $ftype = (!empty($options['debug'])) ? 'text' : 'hidden';
$text .= "<input type='{$ftype}' name='{$name}' id='{$id}' value='{$value}' />"; $text .= "<input type='{$ftype}' name='{$name}' id='{$id}' value='{$hiddenValue}' />";
} }
// $text .= "ValueFormat: ".$dateFormat." Value: ".$value; // $text .= "ValueFormat: ".$dateFormat." Value: ".$value;