[Pieforms-commit] SF.net SVN: pieforms: [118] pieforms-php5/trunk/src/pieform/elements/date. php
Status: Alpha
Brought to you by:
oracleshinoda
|
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.
|