diff options
-rw-r--r-- | mod/blog/actions/blog/save.php | 18 | ||||
-rw-r--r-- | mod/blog/views/default/blog/css.php | 10 | ||||
-rw-r--r-- | mod/blog/views/default/blog/forms/edit.php | 2 | ||||
-rw-r--r-- | mod/blog/views/default/input/datetime.php | 46 |
4 files changed, 66 insertions, 10 deletions
diff --git a/mod/blog/actions/blog/save.php b/mod/blog/actions/blog/save.php index 7115acaa4..db9ea77e8 100644 --- a/mod/blog/actions/blog/save.php +++ b/mod/blog/actions/blog/save.php @@ -45,7 +45,6 @@ $values = array( 'title' => '', 'description' => '', 'status' => 'draft', - 'publish_date' => time(), 'access_id' => ACCESS_DEFAULT, 'comments_on' => 'On', 'excerpt' => '', @@ -99,14 +98,6 @@ foreach ($values as $name => $default) { } break; - case 'publish_date': - if (!$value = strtotime($value)) { - $value = time(); - } - - $values[$name] = $value; - break; - // don't try to set the guid case 'guid': unset($values['guid']); @@ -118,6 +109,15 @@ foreach ($values as $name => $default) { } } +// build publish_date +$publish_month = get_input('publish_month'); +$publish_day = get_input('publish_day'); +$publish_year = get_input('publish_year'); +$publish_hour = get_input('publish_hour'); +$publish_minute = get_input('publish_minute'); +$datetime = "$publish_year-$publish_month-$publish_day $publish_hour:$publish_minute:00"; +$values['publish_date'] = date('U', strtotime($datetime)); + // assign values to the entity, stopping on error. if (!$error) { foreach ($values as $name => $value) { diff --git a/mod/blog/views/default/blog/css.php b/mod/blog/views/default/blog/css.php index 3cddd3105..834be737e 100644 --- a/mod/blog/views/default/blog/css.php +++ b/mod/blog/views/default/blog/css.php @@ -19,4 +19,14 @@ } .blogpost .body p { line-height: 1.4em; +} + +input.blog_publish_day, +input.blog_publish_hour, +input.blog_publish_minute { + width: 25px; +} + +input.blog_publish_year { + width: 50px; }
\ No newline at end of file diff --git a/mod/blog/views/default/blog/forms/edit.php b/mod/blog/views/default/blog/forms/edit.php index b2b494c7a..7fc5d6c91 100644 --- a/mod/blog/views/default/blog/forms/edit.php +++ b/mod/blog/views/default/blog/forms/edit.php @@ -137,7 +137,7 @@ $access_input = elgg_view('input/access', array( )); $publish_date_label = elgg_echo('blog:publish_date'); -$publish_date_input = elgg_view('input/datepicker', array( +$publish_date_input = elgg_view('input/datetime', array( 'internalname' => 'publish_date', 'internalid' => 'blog_publish_date', 'value' => $values['publish_date'] diff --git a/mod/blog/views/default/input/datetime.php b/mod/blog/views/default/input/datetime.php new file mode 100644 index 000000000..5586464f1 --- /dev/null +++ b/mod/blog/views/default/input/datetime.php @@ -0,0 +1,46 @@ +<?php +/** + * A date-time view for the blog publication date. + */ + +// default date to current time +$publish_date = ($vars['value']) ? $vars['value'] : time(); + +$months = array(); +for ($i=1; $i <= 12; $i++) { + $value = str_pad($i, 2, '0', STR_PAD_LEFT); + $months[$value] = date('M', strtotime("$value/01/2010")); +} + +$month = elgg_view('input/pulldown', array( + 'internalname' => 'publish_month', + 'value' => date('m', $publish_date), + 'options_values' => $months, + 'class' => 'blog_publish_month', +)); + +$day = elgg_view('input/text', array( + 'internalname' => 'publish_day', + 'value' => date('d', $publish_date), + 'class' => 'blog_publish_day', +)); + +$year = elgg_view('input/text', array( + 'internalname' => 'publish_year', + 'value' => date('Y', $publish_date), + 'class' => 'blog_publish_year', +)); + +$hour = elgg_view('input/text', array( + 'internalname' => 'publish_hour', + 'value' => date('H', $publish_date), + 'class' => 'blog_publish_hour', +)); + +$minute = elgg_view('input/text', array( + 'internalname' => 'publish_minute', + 'value' => date('i', $publish_date), + 'class' => 'blog_publish_minute', +)); + +echo "$month $day, $year @ $hour:$minute"; |