Skip to content

Commit a320eeb

Browse files
committed
Separate setting "Default status for new anonymous posts"
1 parent b52d453 commit a320eeb

5 files changed

Lines changed: 17 additions & 7 deletions

File tree

inc/collections/_collections.init.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,7 @@ function handle_htsrv_action()
12861286
break; // already exited here
12871287

12881288
case 'create_post':
1289-
// Create new post from front-office:
1289+
// Create new post from front-office by anonymous user:
12901290
global $dummy_fields, $Plugins;
12911291

12921292
load_class( 'items/model/_item.class.php', 'Item' );
@@ -1314,7 +1314,7 @@ function handle_htsrv_action()
13141314
$item_Blog = & $new_Item->get_Blog();
13151315

13161316
// Set default status:
1317-
$new_Item->set( 'status', $item_Blog->get_setting( 'default_post_status' ) );
1317+
$new_Item->set( 'status', $item_Blog->get_setting( 'default_post_status_anon' ) );
13181318

13191319
if( $DB->get_var( 'SELECT user_ID FROM T_users WHERE user_email = '.$DB->quote( utf8_strtolower( $user_email ) ) ) )
13201320
{ // Don't allow the duplicate emails for users:

inc/collections/model/_blog.class.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -855,6 +855,7 @@ function load_from_Request( $groups = array() )
855855
$this->set_setting( 'post_anonymous', param( 'post_anonymous', 'integer', 0 ) );
856856

857857
$this->set_setting( 'default_post_status', param( 'default_post_status', 'string', NULL ) );
858+
$this->set_setting( 'default_post_status_anon', param( 'default_post_status_anon', 'string', NULL ) );
858859

859860
param( 'old_content_alert', 'integer', NULL );
860861
param_check_range( 'old_content_alert', 1, 12, T_('Stale content alert must be configured with a number of months.').'(1 - 12)', false );

inc/collections/model/_collsettings.class.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,8 @@ class CollectionSettings extends AbstractSettings
174174
'editing_goto_blog' => 'post', // 'no' - No redirect, 'blog' - Go to blog after editing post, 'post' - Redirect to permanent post url
175175
'default_post_type' => '1', // Default type for new posts, value is ID of post type from table T_items__type
176176
'post_anonymous' => 0, // Allow to create new posts by anonymous users
177-
// 'default_post_status' => 'draft', // Default status for new posts ("published", "community", "protected", "private", "review", "draft", "deprecated", "redirected"). We don't specify a general default because it depends from the blog type ( see @Blog::get_setting() )
177+
// 'default_post_status' => 'draft', // Default status for new posts in backoffice ("published", "community", "protected", "private", "review", "draft", "deprecated", "redirected"). We don't specify a general default because it depends from the blog type ( see @Blog::get_setting() )
178+
'default_post_status_anon' => 'review', // Default status for new posts from anonymous user ("published", "community", "protected", "private", "review", "draft", "deprecated", "redirected").
178179
'post_categories' => 'main_extra_cat_post', // Post category setting
179180
'post_navigation' => 'same_blog', // Default post by post navigation should stay in the same blog, category, author or tag
180181
'blog_head_includes' => '',

inc/collections/views/_coll_features.form.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,22 @@
197197
'title_format' => 'notes-string',
198198
'exclude_statuses' => $exclude_statuses,
199199
) );
200-
$Form->info( T_('Default status'), $default_status_field, T_('Default status for new posts by anonymous users.') );
200+
$Form->info( T_('Default status for new posts in backoffice'), $default_status_field, T_('Typically Draft if you want to make sure you don\'t publish by mistake.') );
201201
$Form->hidden( 'default_post_status', $edited_Blog->get_setting('default_post_status') );
202+
$default_status_field_anon = get_status_dropdown_button( array(
203+
'name' => 'default_post_status_anon',
204+
'value' => $edited_Blog->get_setting( 'default_post_status_anon' ),
205+
'title_format' => 'notes-string',
206+
'exclude_statuses' => $exclude_statuses,
207+
) );
208+
$Form->info( T_('Default status for new anonymous posts'), $default_status_field_anon, T_('Typically Review if you want to prevent Spam.') );
209+
$Form->hidden( 'default_post_status_anon', $edited_Blog->get_setting( 'default_post_status_anon' ) );
202210
echo_form_dropdown_js();
203211
}
204212
else
205213
{ // Use standard select element for other skins:
206-
$Form->select_input_array( 'default_post_status', $edited_Blog->get_setting('default_post_status'), get_visibility_statuses( 'notes-string', $exclude_statuses ), T_('Default status'), T_('Default status for new posts') );
214+
$Form->select_input_array( 'default_post_status', $edited_Blog->get_setting( 'default_post_status' ), get_visibility_statuses( 'notes-string', $exclude_statuses ), T_('Default status for new posts in backoffice'), T_('Typically Draft if you want to make sure you don\'t publish by mistake.') );
215+
$Form->select_input_array( 'default_post_status_anon', $edited_Blog->get_setting( 'default_post_status_anon' ), get_visibility_statuses( 'notes-string', $exclude_statuses ), T_('Default status for new anonymous posts'), T_('Typically Review if you want to prevent Spam.') );
207216
}
208217

209218
// Moderation statuses setting:

inc/items/items.ctrl.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,8 +651,7 @@
651651
$edited_Item->set_creator_location( 'subregion' );
652652
$edited_Item->set_creator_location( 'city' );
653653

654-
$def_status = get_highest_publish_status( 'post', $Blog->ID, false );
655-
$edited_Item->status = param( 'post_status', 'string', $def_status ); // 'published' or 'draft' or ...
654+
$edited_Item->status = param( 'post_status', 'string', $Blog->get_setting( 'default_post_status' ) ); // 'published' or 'draft' or ...
656655
// We know we can use at least one status,
657656
// but we need to make sure the requested/default one is ok:
658657
$edited_Item->status = $Blog->get_allowed_item_status( $edited_Item->status );

0 commit comments

Comments
 (0)