diff options
author | cash <cash.costello@gmail.com> | 2011-07-04 12:01:31 -0400 |
---|---|---|
committer | cash <cash.costello@gmail.com> | 2011-07-04 12:01:31 -0400 |
commit | e88f0a18cf7ad7a029b8c8ba6affdae6f9e079a9 (patch) | |
tree | b50283670fa6ed1e6db75191933fe0c5e700129b /views | |
parent | de111da23258cd2b513c8f4ab84712ee50272b23 (diff) | |
download | elgg-e88f0a18cf7ad7a029b8c8ba6affdae6f9e079a9.tar.gz elgg-e88f0a18cf7ad7a029b8c8ba6affdae6f9e079a9.tar.bz2 |
Fixes #3560 input/date and output/date support ISO 8601 (YYYY-MM-DD) and Unix timestamps. Need to think about how to handle alternate text formats.
Diffstat (limited to 'views')
-rw-r--r-- | views/default/input/date.php | 39 | ||||
-rw-r--r-- | views/default/output/date.php | 12 |
2 files changed, 37 insertions, 14 deletions
diff --git a/views/default/input/date.php b/views/default/input/date.php index e21a5f8f5..ceeb2105c 100644 --- a/views/default/input/date.php +++ b/views/default/input/date.php @@ -3,11 +3,18 @@ * Elgg date input * Displays a text field with a popup date picker. * - * @package Elgg - * @subpackage Core + * The elgg.ui JavaScript library initializes the jQueryUI datepicker based + * on the CSS class .elgg-input-date. It uses the ISO 8601 standard for date + * representation: yyyy-mm-dd. * - * @uses $vars['value'] The current value, if any (as a unix timestamp) - * @uses $vars['class'] Additional CSS class + * Unix timestamps are supported by setting the 'timestamp' parameter to true. + * The date is still displayed to the user in a text format but is submitted as + * a unix timestamp in seconds. + * + * @uses $vars['value'] The current value, if any (as a unix timestamp) + * @uses $vars['class'] Additional CSS class + * @uses $vars['timestamp'] Store as a Unix timestamp in seconds. Default = false + * Note: you cannot use an id with the timestamp option. */ //@todo popup_calendar deprecated in 1.8. Remove in 2.0 @@ -20,16 +27,30 @@ if (isset($vars['class'])) { $defaults = array( 'value' => '', 'disabled' => false, + 'timestamp' => false, ); $vars = array_merge($defaults, $vars); +$timestamp = $vars['timestamp']; +unset($vars['timestamp']); + +if ($timestamp) { + echo elgg_view('input/hidden', array( + 'name' => $vars['name'], + 'value' => $vars['value'], + )); -if ($vars['value'] > 86400) { - $vars['value'] = date('n/d/Y', $vars['value']); + $vars['class'] = "{$vars['class']} elgg-input-timestamp"; + $vars['id'] = $vars['name']; + unset($vars['name']); + unset($vars['internalname']); } -$attributes = elgg_format_attributes($vars); +// convert timestamps to text for display +if (is_numeric($vars['value'])) { + $vars['value'] = gmdate('Y/m/d', $vars['value']); +} -?> -<input type="text" <?php echo $attributes; ?> />
\ No newline at end of file +$attributes = elgg_format_attributes($vars); +echo "<input type=\"text\" $attributes />"; diff --git a/views/default/output/date.php b/views/default/output/date.php index fda7668e7..7c98dddc9 100644 --- a/views/default/output/date.php +++ b/views/default/output/date.php @@ -6,10 +6,12 @@ * @package Elgg * @subpackage Core * - * @uses $vars['value'] A UNIX epoch timestamp - * + * @uses $vars['value'] Date as text or a Unix timestamp in seconds */ -if ($vars['value'] > 86400) { - echo date("n/d/Y", $vars['value']); -}
\ No newline at end of file +// convert timestamps to text for display +if (is_numeric($vars['value'])) { + $vars['value'] = gmdate('Y/m/d', $vars['value']); +} + +echo $vars['value']; |