Skip to content

Commit 566c28a

Browse files
author
Till Brehm
committed
Added "DATE" form type that works like the "DATETIME" type incl. date picker, just without time details.
1 parent 56a9c76 commit 566c28a

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

interface/lib/classes/tform.inc.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,24 @@ function getDiffRecord($record_old, $record_new) {
235235
return $diffrec;
236236

237237
}
238+
239+
/**
240+
* Generate HTML for DATE fields.
241+
*
242+
* @access private
243+
* @param string $form_element Name of the form element.
244+
* @param string $default_value Selected value for fields.
245+
* @return string HTML
246+
*/
247+
function _getDateHTML($form_element, $default_value)
248+
{
249+
$_date = ($default_value && $default_value != '0000-00-00' ? strtotime($default_value) : false);
250+
$_showdate = ($_date === false) ? false : true;
251+
252+
$tmp_dt = strtr($this->dateformat,array('d' => 'dd', 'm' => 'mm', 'Y' => 'yyyy', 'y' => 'yy'));
253+
254+
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 . '" />';
255+
}
238256

239257

240258
/**

interface/lib/classes/tform_base.inc.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,18 @@ function getHTML($record, $tab, $action = 'NEW') {
562562
$new_record[$key] = $this->_getDateTimeHTML($key, $dt_value, $display_seconds);
563563
break;
564564

565+
case 'DATE':
566+
if (strtotime($val) !== false) {
567+
$dt_value = $val;
568+
} elseif ( isset($field['default']) && (strtotime($field['default']) !== false) ) {
569+
$dt_value = $field['default'];
570+
} else {
571+
$dt_value = 0;
572+
}
573+
574+
$new_record[$key] = $this->_getDateHTML($key, $dt_value);
575+
break;
576+
565577
default:
566578
if(isset($record[$key])) {
567579
$new_record[$key] = htmlspecialchars($record[$key]);
@@ -672,6 +684,12 @@ function getHTML($record, $tab, $action = 'NEW') {
672684

673685
$new_record[$key] = $this->_getDateTimeHTML($key, $dt_value, $display_seconds);
674686
break;
687+
688+
case 'DATE':
689+
$dt_value = (isset($field['default'])) ? $field['default'] : 0;
690+
691+
$new_record[$key] = $this->_getDateHTML($key, $dt_value);
692+
break;
675693

676694
default:
677695
$new_record[$key] = htmlspecialchars($field['default']);

0 commit comments

Comments
 (0)