[prev in list] [next in list] [prev in thread] [next in thread]
List: smarty-dev
Subject: [SMARTY-DEV] [patch] mysql_mode for html_select_date
From: Sebastian Mendel <lists () sebastianmendel ! de>
Date: 2007-06-13 6:22:53
Message-ID: 466F8D3D.7080504 () sebastianmendel ! de
[Download RAW message or body]
Hi,
i added a mysql_mode parameter:
* overriding day/month_value_format
* overriding day/month/year_empty_value
* defines day/month/year_empty if not set
* do not list years from 0 to 2007 if year is 0000
also you now can define day/month/year_empty_value
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=11259
it could also be called ISO mode ...
--
Sebastian Mendel
www.sebastianmendel.de
["smarty_html_select_date_mysql_mode.patch" (text/plain)]
Index: libs/plugins/function.html_select_date.php
===================================================================
RCS file: /repository/smarty/libs/plugins/function.html_select_date.php,v
retrieving revision 1.36
diff -u -r1.36 function.html_select_date.php
--- libs/plugins/function.html_select_date.php 6 Mar 2007 20:13:55 -0000 1.36
+++ libs/plugins/function.html_select_date.php 12 Jun 2007 09:15:41 -0000
@@ -83,6 +83,13 @@
$month_empty = null;
$year_empty = null;
$extra_attrs = '';
+ $mysql_mode = false;
+ $day_empty_value = '';
+ $month_empty_value = '';
+ $year_empty_value = '';
foreach ($params as $_key=>$_value) {
switch ($_key) {
@@ -120,6 +124,7 @@
case 'display_years':
case 'year_as_text':
case 'reverse_years':
+ case 'mysql_mode':
$$_key = (bool)$_value;
break;
@@ -133,6 +138,24 @@
}
}
+ if ($mysql_mode) {
+ $month_value_format = "%m";
+ $day_value_format = "%d";
+ $day_empty_value = '00';
+ $month_empty_value = '00';
+ $year_empty_value = '0000';
+
+ if (null === $day_empty) {
+ $day_empty = $day_empty_value;
+ }
+ if (null === $month_empty) {
+ $month_empty = $month_empty_value;
+ }
+ if (null === $year_empty) {
+ $year_empty = $year_empty_value;
+ }
+ }
+
if (preg_match('!^-\d+$!', $time)) {
// negative timestamp, use date()
$time = date('Y-m-d', $time);
@@ -163,7 +186,7 @@
$start_year = strftime('%Y') - $match[2];
}
}
- if (strlen($time[0]) > 0) {
+ if (strlen($time[0]) > 0 && !($mysql_mode && $time[0] === '0000')) {
if ($start_year > $time[0] && !isset($params['start_year'])) {
// force start year to include given date if not explicitly set
$start_year = $time[0];
@@ -175,7 +198,7 @@
$month_values = array();
if(isset($month_empty)) {
$month_names[''] = $month_empty;
- $month_values[''] = '';
+ $month_values[''] = $month_empty_value;
}
for ($i = 1; $i <= 12; $i++) {
$month_names[$i] = strftime($month_format, mktime(0, 0, 0, $i, 1, 2000));
@@ -222,7 +245,7 @@
$days = array();
if (isset($day_empty)) {
$days[''] = $day_empty;
- $day_values[''] = '';
+ $day_values[''] = $day_empty_value;
}
for ($i = 1; $i <= 31; $i++) {
$days[] = sprintf($day_format, $i);
@@ -279,7 +304,7 @@
$yearvals = $years;
if(isset($year_empty)) {
array_unshift($years, $year_empty);
- array_unshift($yearvals, '');
+ array_unshift($yearvals, $year_empty_value);
}
$year_result .= '<select name="' . $year_name . '"';
if (null !== $year_size){
--
Smarty Development Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic