[Pieforms-commit] SF.net SVN: pieforms: [71] pieforms-php5/trunk/src/pieform/elements/date. php
Status: Alpha
Brought to you by:
oracleshinoda
|
From: <ora...@us...> - 2006-11-28 23:14:42
|
Revision: 71
http://svn.sourceforge.net/pieforms/?rev=71&view=rev
Author: oracleshinoda
Date: 2006-11-28 15:14:35 -0800 (Tue, 28 Nov 2006)
Log Message:
-----------
Many fixes to the date element, allowing it to be optionally unset. It now takes its value as a unix timestamp as well as returning it that way
Modified Paths:
--------------
pieforms-php5/trunk/src/pieform/elements/date.php
Modified: pieforms-php5/trunk/src/pieform/elements/date.php
===================================================================
--- pieforms-php5/trunk/src/pieform/elements/date.php 2006-11-25 02:46:35 UTC (rev 70)
+++ pieforms-php5/trunk/src/pieform/elements/date.php 2006-11-28 23:14:35 UTC (rev 71)
@@ -36,33 +36,61 @@
$name = $element['name'];
$element['minyear'] = (isset($element['minyear'])) ? intval($element['minyear']) : 1950;
$element['maxyear'] = (isset($element['maxyear'])) ? intval($element['maxyear']) : 2050;
- if (!isset($element['defaultvalue'])) {
- $element['defaultvalue'] = array(date('Y'), date('m'), date('d'));
+ if (!array_key_exists('defaultvalue', $element)) {
+ $element['defaultvalue'] = time();
}
// Year
$value = pieform_render_select_get_value('year', $element['minyear'], $element['maxyear'], $element, $form);
- $year = '<select name="' . $name . "_year\">\n";
+ $year = '<select name="' . $name . '_year" id="' . $name . '_year"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? 'disabled ' : '') . ">\n";
for ($i = $element['minyear']; $i <= $element['maxyear']; $i++) {
$year .= "\t<option value=\"$i\"" . (($value == $i) ? ' selected="selected"' : '') . ">$i</option>\n";
}
$year .= "</select>\n";
+ // Month
$value = pieform_render_select_get_value('month', 1, 12, $element, $form);
- $month = '<select name="' . $name . "_month\">\n";
+ $month = '<select name="' . $name . '_month" id="' . $name . '_month"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? 'disabled ' : '') . ">\n";
for ($i = 1; $i <= 12; $i++) {
$month .= "\t<option value=\"$i\"" . (($value == $i) ? ' selected="selected"' : '') . '>' . date('M', strtotime("2000-$i-01")) . "</option>\n";
}
$month .= "</select>\n";
+ // Day
$value = pieform_render_select_get_value('day', 1, 31, $element, $form);
- $day = '<select name="' . $name . "_day\">\n";
+ $day = '<select name="' . $name . '_day" id="' . $name . '_day"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? 'disabled ' : '') . ">\n";
for ($i = 1; $i <= 31; $i++) {
$day .= "\t<option value=\"$i\"" . (($value == $i) ? ' selected="selected"' : '') . ">$i</option>\n";
}
$day .= '</select>';
$result = $year . $month . $day;
+
+ // Optional control
+ if (isset($element['optional'])) {
+ $optional = <<<EOF
+ <script type="text/javascript">
+ function {$name}_toggle(x) {
+ if ( x.checked ) {
+ $('{$name}_day').disabled = true;
+ $('{$name}_month').disabled = true;
+ $('{$name}_year').disabled = true;
+ }
+ else {
+ $('{$name}_day').disabled = false;
+ $('{$name}_month').disabled = false;
+ $('{$name}_year').disabled = false;
+ }
+ }
+ </script>
+EOF;
+
+ $optional .= ' ' . get_string('or') . ' <input type="checkbox" ' . ( isset($element['defaultvalue']) ? '' : 'checked ') . 'name="' . $name . '_optional" id="' . $name . '_optional" onchange="' . $name . '_toggle(this)">';
+ $optional .= ' <label for="' . $name . '_optional">' . get_string('notspecified');
+
+ $result .= $optional;
+ }
+
return $result;
}
@@ -70,11 +98,15 @@
function pieform_get_value_date($element, Pieform $form) {
$name = $element['name'];
$global = ($form->get_method() == 'get') ? $_GET : $_POST;
- $time = mktime(0, 0, 0, $global[$name . '_month'], $global[$name . '_day'], $global[$name . '_year']);
- if (false === $time) {
- return null;
+ if ( isset($global[$name . '_day']) && isset($global[$name . '_month']) && isset($global[$name . '_year']) ) {
+ $time = mktime(0, 0, 0, $global[$name . '_month'], $global[$name . '_day'], $global[$name . '_year']);
+ if (false === $time) {
+ return null;
+ }
+ return $time;
}
- return $time;
+
+ return null;
}
function pieform_get_value_js_date($element, Pieform $form) {
@@ -114,15 +146,25 @@
return $value;
}
- if (isset($element['defaultvalue'][$index])) {
- $value = $element['defaultvalue'][$index];
- if ($value < $min || $value > $max) {
- $value = $min;
- }
- return $value;
+ $value = time();
+
+ if (isset($element['defaultvalue'])) {
+ $value = $element['defaultvalue'];
}
- return null;
+ switch ($timeperiod) {
+ case 'day':
+ $value = date('j', $value);
+ break;
+ case 'month':
+ $value = date('m', $value);
+ break;
+ case 'year':
+ $value = date('Y', $value);
+ break;
+ }
+
+ return $value;
}
?>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|