From 67168b0ea5781951eaf6a7566762b44acc17d12c Mon Sep 17 00:00:00 2001 From: nickw Date: Mon, 5 Apr 2010 22:21:29 +0000 Subject: Adding a datetime view for use with blog publication. git-svn-id: http://code.elgg.org/elgg/trunk@5630 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/blog/actions/blog/save.php | 18 ++++++------ mod/blog/views/default/blog/css.php | 10 +++++++ mod/blog/views/default/blog/forms/edit.php | 2 +- mod/blog/views/default/input/datetime.php | 46 ++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 mod/blog/views/default/input/datetime.php (limited to 'mod/blog') 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 @@ + '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"; -- cgit v1.2.3