]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #3580 adding blog preview button that uses save action
authorcash <cash.costello@gmail.com>
Sat, 18 Jun 2011 20:24:52 +0000 (16:24 -0400)
committercash <cash.costello@gmail.com>
Sat, 18 Jun 2011 20:24:52 +0000 (16:24 -0400)
mod/blog/actions/blog/save.php
mod/blog/views/default/forms/blog/save.php

index 0720d61638ace28901d9f15818c670fb87377ba8..8be67ec6c34868c4cf2ffba8bce341057d061bc8 100644 (file)
@@ -8,6 +8,9 @@
 // start a new sticky form session in case of failure
 elgg_make_sticky_form('blog');
 
+// save or preview
+$save = (bool)get_input('save');
+
 // store errors to pass along
 $error = FALSE;
 $error_forward_url = REFERER;
@@ -106,6 +109,11 @@ foreach ($values as $name => $default) {
        }
 }
 
+// if preview, force status to be draft
+if ($save == false) {
+       $values['status'] = 'draft';
+}
+
 // assign values to the entity, stopping on error.
 if (!$error) {
        foreach ($values as $name => $value) {
@@ -154,7 +162,7 @@ if (!$error) {
                        ));
                }
 
-               if ($blog->status == 'published') {
+               if ($blog->status == 'published' || $save == false) {
                        forward($blog->getURL());
                } else {
                        forward("blog/edit/$blog->guid");
index 5b3a758ba7cf1fb89bd7f850092a2d19c9336439..d99f45f013e209cc5225e90714d125801db2e061 100644 (file)
@@ -5,6 +5,8 @@
  * @package Blog
  */
 
+$blog = get_entity($vars['guid']);
+
 $draft_warning = $vars['draft_warning'];
 if ($draft_warning) {
        $draft_warning = '<span class="message warning">' . $draft_warning . '</span>';
@@ -12,6 +14,7 @@ if ($draft_warning) {
 
 $action_buttons = '';
 $delete_link = '';
+$preview_button = '';
 
 if ($vars['guid']) {
        // add a delete button if editing
@@ -23,8 +26,20 @@ if ($vars['guid']) {
        ));
 }
 
-$save_button = elgg_view('input/submit', array('value' => elgg_echo('save')));
-$action_buttons = $save_button . $delete_link;
+// published blogs do not get the preview button
+if (!$vars['guid'] || ($blog && $blog->status != 'published')) {
+       $preview_button = elgg_view('input/submit', array(
+               'value' => elgg_echo('preview'),
+               'name' => 'preview',
+               'class' => 'mls',
+       ));
+}
+
+$save_button = elgg_view('input/submit', array(
+       'value' => elgg_echo('save'),
+       'name' => 'save',
+));
+$action_buttons = $save_button . $preview_button . $delete_link;
 
 $title_label = elgg_echo('title');
 $title_input = elgg_view('input/text', array(