Thread: [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. |
From: <ora...@us...> - 2006-12-10 10:57:42
|
Revision: 89 http://svn.sourceforge.net/pieforms/?rev=89&view=rev Author: oracleshinoda Date: 2006-12-10 02:57:41 -0800 (Sun, 10 Dec 2006) Log Message: ----------- Fixed HTML validity when using 'disabled' attribute. Added a couple of TODO items 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-12-10 10:56:51 UTC (rev 88) +++ pieforms-php5/trunk/src/pieform/elements/date.php 2006-12-10 10:57:41 UTC (rev 89) @@ -42,7 +42,7 @@ // Year $value = pieform_render_select_get_value('year', $element['minyear'], $element['maxyear'], $element, $form); - $year = '<select name="' . $name . '_year" id="' . $name . '_year"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? 'disabled ' : '') . ">\n"; + $year = '<select name="' . $name . '_year" id="' . $name . '_year"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') . ">\n"; for ($i = $element['minyear']; $i <= $element['maxyear']; $i++) { $year .= "\t<option value=\"$i\"" . (($value == $i) ? ' selected="selected"' : '') . ">$i</option>\n"; } @@ -50,7 +50,7 @@ // Month $value = pieform_render_select_get_value('month', 1, 12, $element, $form); - $month = '<select name="' . $name . '_month" id="' . $name . '_month"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? 'disabled ' : '') . ">\n"; + $month = '<select name="' . $name . '_month" id="' . $name . '_month"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? ' disabled="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"; } @@ -58,7 +58,7 @@ // Day $value = pieform_render_select_get_value('day', 1, 31, $element, $form); - $day = '<select name="' . $name . '_day" id="' . $name . '_day"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? 'disabled ' : '') . ">\n"; + $day = '<select name="' . $name . '_day" id="' . $name . '_day"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') . ">\n"; for ($i = 1; $i <= 31; $i++) { $day .= "\t<option value=\"$i\"" . (($value == $i) ? ' selected="selected"' : '') . ">$i</option>\n"; } @@ -84,7 +84,9 @@ } </script> EOF; - + // @todo this needs cleaning up, namely: + // - get_string is a mahara-ism + // - 'optional' => true should be 'required' => false shouldn't it? $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'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2006-12-23 04:04:11
|
Revision: 118 http://svn.sourceforge.net/pieforms/?rev=118&view=rev Author: oracleshinoda Date: 2006-12-22 20:04:11 -0800 (Fri, 22 Dec 2006) Log Message: ----------- Updated to use the new APIs. The 'optional' flag is now gone, replaced with responding to the 'required' rule, which makes much more sense 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-12-23 04:03:12 UTC (rev 117) +++ pieforms-php5/trunk/src/pieform/elements/date.php 2006-12-23 04:04:11 UTC (rev 118) @@ -27,38 +27,45 @@ /** * Provides a date picker, in the form of three dropdowns. * + * @param Pieform $form The form to render the element for * @param array $element The element to render - * @param Pieform $form The form to render the element for * @return string The HTML for the element */ -function pieform_render_date($element, Pieform $form) { +function pieform_element_date(Pieform $form, $element) { $result = ''; - $name = $element['name']; + $name = $element['name']; $element['minyear'] = (isset($element['minyear'])) ? intval($element['minyear']) : 1950; $element['maxyear'] = (isset($element['maxyear'])) ? intval($element['maxyear']) : 2050; - if (!array_key_exists('defaultvalue', $element)) { + if (!isset($element['defaultvalue'])) { $element['defaultvalue'] = time(); } + $required = (!empty($element['rules']['required'])); // Year - $value = pieform_render_select_get_value('year', $element['minyear'], $element['maxyear'], $element, $form); - $year = '<select name="' . $name . '_year" id="' . $name . '_year"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') . ">\n"; + $value = pieform_element_date_get_timeperiod_value('year', $element['minyear'], $element['maxyear'], $element, $form); + $year = '<select name="' . $name . '_year" id="' . $name . '_year"' + . (!$required && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') + . ' tabindex="' . $element['tabindex'] . "\">\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" id="' . $name . '_month"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') . ">\n"; + $value = pieform_element_date_get_timeperiod_value('month', 1, 12, $element, $form); + $month = '<select name="' . $name . '_month" id="' . $name . '_month"' + . (!$required && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') + . ' tabindex="' . $element['tabindex'] . "\">\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" id="' . $name . '_day"' . (isset($element['optional']) && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') . ">\n"; + $value = pieform_element_date_get_timeperiod_value('day', 1, 31, $element, $form); + $day = '<select name="' . $name . '_day" id="' . $name . '_day"' + . (!$required && !isset($element['defaultvalue']) ? ' disabled="disabled"' : '') + . ' tabindex="' . $element['tabindex'] . "\">\n"; for ($i = 1; $i <= 31; $i++) { $day .= "\t<option value=\"$i\"" . (($value == $i) ? ' selected="selected"' : '') . ">$i</option>\n"; } @@ -67,7 +74,7 @@ $result = $year . $month . $day; // Optional control - if (isset($element['optional'])) { + if (!$required) { $optional = <<<EOF <script type="text/javascript"> function {$name}_toggle(x) { @@ -87,8 +94,11 @@ // @todo this needs cleaning up, namely: // - get_string is a mahara-ism // - 'optional' => true should be 'required' => false shouldn't it? - $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'); + $optional .= ' ' . $form->i18n('element', 'date', 'or', $element) . ' <input type="checkbox" ' + . (isset($element['defaultvalue']) ? '' : 'checked="checked" ') + . 'name="' . $name . '_optional" id="' . $name . '_optional" onchange="' . $name . '_toggle(this)" ' + . 'tabindex="' . $element['tabindex'] . '">'; + $optional .= ' <label for="' . $name . '_optional">' . $form->i18n('element', 'date', 'notspecified', $element); $result .= $optional; } @@ -96,10 +106,16 @@ return $result; } -/** gets the value explicitly from the request */ -function pieform_get_value_date($element, Pieform $form) { +/** + * Gets the value of the date element from the request and converts it into a + * unix timestamp. + * + * @param Pieform $form The form the element is attached to + * @param array $element The element to get the value for + */ +function pieform_element_date_get_value(Pieform $form, $element) { $name = $element['name']; - $global = ($form->get_method() == 'get') ? $_GET : $_POST; + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; 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) { @@ -111,19 +127,17 @@ return null; } -function pieform_get_value_js_date($element, Pieform $form) { - $formname = $form->get_name(); - $name = $element['name']; - return <<<EOF - data['{$name}_year'] = document.forms['$formname'].elements['{$name}_year'].value; - data['{$name}_month'] = document.forms['$formname'].elements['{$name}_month'].value; - data['{$name}_day'] = document.forms['$formname'].elements['{$name}_day'].value; - -EOF; +function pieform_element_date_i18n() { + return array( + 'en.utf8' => array( + 'or' => 'or', + 'notspecified' => 'Not specified' + ) + ); } /** helper: used when rendering the element, to get the value for it */ -function pieform_render_select_get_value($timeperiod, $min, $max, $element, Pieform $form) { +function pieform_element_date_get_timeperiod_value($timeperiod, $min, $max, $element, Pieform $form) { static $lookup = array( 'year' => 0, 'month' => 1, @@ -139,7 +153,7 @@ return $value; } - $global = ($form->get_method() == 'get') ? $_GET : $_POST; + $global = ($form->get_property('method') == 'get') ? $_GET : $_POST; if (isset($global[$element['name'] . '_' . $timeperiod])) { $value = $global[$element['name'] . '_' . $timeperiod]; if ($value < $min || $value > $max) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-08-01 12:29:57
|
Revision: 208 http://pieforms.svn.sourceforge.net/pieforms/?rev=208&view=rev Author: oracleshinoda Date: 2007-08-01 05:29:58 -0700 (Wed, 01 Aug 2007) Log Message: ----------- German translation for date element (thanks to Heinz) 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 2007-08-01 12:27:19 UTC (rev 207) +++ pieforms-php5/trunk/src/pieform/elements/date.php 2007-08-01 12:29:58 UTC (rev 208) @@ -132,7 +132,11 @@ 'en.utf8' => array( 'or' => 'or', 'notspecified' => 'Not specified' - ) + ), + 'de.utf8' => array( + 'or' => 'oder', + 'notspecified' => 'Nicht festgelegt' + ), ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ora...@us...> - 2007-11-30 04:05:33
|
Revision: 223 http://pieforms.svn.sourceforge.net/pieforms/?rev=223&view=rev Author: oracleshinoda Date: 2007-11-29 20:05:36 -0800 (Thu, 29 Nov 2007) Log Message: ----------- Apply patch from Richard Mansfield - if element is not required, make sure default value is 'none selected' rather than the current time. 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 2007-11-15 01:14:54 UTC (rev 222) +++ pieforms-php5/trunk/src/pieform/elements/date.php 2007-11-30 04:05:36 UTC (rev 223) @@ -36,10 +36,10 @@ $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'])) { + $required = (!empty($element['rules']['required'])); + if ($required && !isset($element['defaultvalue'])) { $element['defaultvalue'] = time(); } - $required = (!empty($element['rules']['required'])); // Year $value = pieform_element_date_get_timeperiod_value('year', $element['minyear'], $element['maxyear'], $element, $form); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |