Skip to:
Content

bbPress.org

Ticket #2740: 2740.patch

File 2740.patch, 3.3 KB (added by johnjamesjacoby, 7 years ago)
  • src/includes/core/actions.php

     
    180180add_action( 'bbp_edit_forum_post_extras',        'bbp_save_forum_extras', 2 );
    181181add_action( 'bbp_forum_attributes_metabox_save', 'bbp_save_forum_extras', 2 );
    182182
     183// Forum visibility save actions
     184add_action( 'bbp_register_post_statuses', 'bbp_register_default_forum_visibility_save_actions', 10 );
     185
     186 No newline at end of file
    183187// New/Edit Reply
    184188add_action( 'bbp_new_reply',  'bbp_update_reply', 10, 7 );
    185189add_action( 'bbp_edit_reply', 'bbp_update_reply', 10, 7 );
  • src/includes/forums/functions.php

     
    651651
    652652        /** Forum Visibility **************************************************/
    653653
    654         if ( !empty( $_POST['bbp_forum_visibility'] ) && in_array( $_POST['bbp_forum_visibility'], array( bbp_get_public_status_id(), bbp_get_private_status_id(), bbp_get_hidden_status_id() ) ) ) {
     654        if ( !empty( $_POST['bbp_forum_visibility'] ) && in_array( $_POST['bbp_forum_visibility'], array_keys( bbp_get_forum_visibilities() ) ) ) {
    655655
    656                 // Get forums current visibility
    657                 $visibility = bbp_get_forum_visibility( $forum_id );
     656                // Sanitize new visibility
     657                $new_visibility = sanitize_key( $_POST['bbp_forum_visibility'] );
    658658
    659                 // What is the new forum visibility setting?
    660                 switch ( $_POST['bbp_forum_visibility'] ) {
    661 
    662                         // Hidden
    663                         case bbp_get_hidden_status_id()  :
    664                                 bbp_hide_forum( $forum_id, $visibility );
    665                                 break;
    666 
    667                         // Private
    668                         case bbp_get_private_status_id() :
    669                                 bbp_privatize_forum( $forum_id, $visibility );
    670                                 break;
    671 
    672                         // Publish (default)
    673                         case bbp_get_public_status_id()  :
    674                         default        :
    675                                 bbp_publicize_forum( $forum_id, $visibility );
    676                                 break;
    677                 }
     659                /**
     660                 * Handles forum visibility changes.
     661                 *
     662                 * Hook in here if you have a custom visibility.
     663                 *
     664                 * @since bbPress (r5586)
     665                 * @see bbp_get_forum_visibilities()
     666                 * @see bbp_register_default_forum_visibility_save_actions()
     667                 */
     668                do_action( "bbp_save_forum_visibility_{$new_visibility}", $forum_id, bbp_get_forum_visibility( $forum_id ) );
    678669        }
    679670}
    680671
    681 /** Forum Actions *************************************************************/
     672/** Forum Open/Close **********************************************************/
    682673
    683674/**
    684675 * Closes a forum
     
    729720        return $forum_id;
    730721}
    731722
     723/** Forum Type ****************************************************************/
     724
    732725/**
    733726 * Make the forum a category
    734727 *
     
    773766        return $forum_id;
    774767}
    775768
     769/** Forum Visibility **********************************************************/
     770
    776771/**
     772 * Register default forum visibility save actions
     773 *
     774 * This helper function ensures public, private, and hidden forum visibilities
     775 * are made available by default.
     776 *
     777 * @since bbPress (r5586)
     778 */
     779function bbp_register_default_forum_visibility_save_actions() {
     780
     781        // Public
     782        add_action( 'bbp_save_forum_visibility_' . bbp_get_public_status_id(),  'bbp_publicize_forum', 10, 2 );
     783
     784        // Private
     785        add_action( 'bbp_save_forum_visibility_' . bbp_get_private_status_id(), 'bbp_privatize_forum', 10, 2 );
     786
     787        // Hidden
     788        add_action( 'bbp_save_forum_visibility_' . bbp_get_hidden_status_id(),  'bbp_hide_forum',      10, 2 );
     789}
     790
     791/**
    777792 * Mark the forum as public
    778793 *
    779794 * @since bbPress (r2746)