From 566c28a952bf361ba9a22d7c39d5c335f6956ab2 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 29 Jun 2016 11:42:36 -0400
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(+), 0 deletions(-)

diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 1376d7d..503bd24 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -235,6 +235,24 @@
 		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 5adbdf7..0c9cda5 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -562,6 +562,18 @@
 						$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 @@
 
 					$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']);

--
Gitblit v1.9.1