From 566c28a952bf361ba9a22d7c39d5c335f6956ab2 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Wed, 29 Jun 2016 17:42:36 +0200 Subject: [PATCH] Added "DATE" form type that works like the "DATETIME" type incl. date picker, just without time details. --- interface/lib/classes/tform.inc.php | 18 ++++++++++++++++++ interface/lib/classes/tform_base.inc.php | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 1376d7ded9..503bd24eb8 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -235,6 +235,24 @@ class tform extends tform_base { return $diffrec; } + + /** + * Generate HTML for DATE fields. + * + * @access private + * @param string $form_element Name of the form element. + * @param string $default_value Selected value for fields. + * @return string HTML + */ + function _getDateHTML($form_element, $default_value) + { + $_date = ($default_value && $default_value != '0000-00-00' ? strtotime($default_value) : false); + $_showdate = ($_date === false) ? false : true; + + $tmp_dt = strtr($this->dateformat,array('d' => 'dd', 'm' => 'mm', 'Y' => 'yyyy', 'y' => 'yy')); + + return '<input type="text" class="form-control" name="' . $form_element . '" value="' . ($_showdate ? date($this->dateformat, $_date) : '') . '" data-input-element="date" data-date-format="' . $tmp_dt . '" />'; + } /** diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index 5adbdf7d68..0c9cda5f51 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -562,6 +562,18 @@ class tform_base { $new_record[$key] = $this->_getDateTimeHTML($key, $dt_value, $display_seconds); break; + case 'DATE': + if (strtotime($val) !== false) { + $dt_value = $val; + } elseif ( isset($field['default']) && (strtotime($field['default']) !== false) ) { + $dt_value = $field['default']; + } else { + $dt_value = 0; + } + + $new_record[$key] = $this->_getDateHTML($key, $dt_value); + break; + default: if(isset($record[$key])) { $new_record[$key] = htmlspecialchars($record[$key]); @@ -672,6 +684,12 @@ class tform_base { $new_record[$key] = $this->_getDateTimeHTML($key, $dt_value, $display_seconds); break; + + case 'DATE': + $dt_value = (isset($field['default'])) ? $field['default'] : 0; + + $new_record[$key] = $this->_getDateHTML($key, $dt_value); + break; default: $new_record[$key] = htmlspecialchars($field['default']); -- GitLab