aboutsummaryrefslogtreecommitdiff
path: root/mod/blog
diff options
context:
space:
mode:
Diffstat (limited to 'mod/blog')
-rw-r--r--mod/blog/actions/blog/save.php18
-rw-r--r--mod/blog/views/default/blog/css.php10
-rw-r--r--mod/blog/views/default/blog/forms/edit.php2
-rw-r--r--mod/blog/views/default/input/datetime.php46
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";