Skip to:
Content

BuddyPress.org

Ticket #5143: 5143-01.patch

File 5143-01.patch, 3.4 KB (added by hnla, 11 years ago)

Adds new messages widget & checks for acvtive widget.

  • bp-core/bp-core-widgets.php

     
    1414        add_action('widgets_init', create_function('', 'return register_widget("BP_Core_Members_Widget");') );
    1515        add_action('widgets_init', create_function('', 'return register_widget("BP_Core_Whos_Online_Widget");') );
    1616        add_action('widgets_init', create_function('', 'return register_widget("BP_Core_Recently_Active_Widget");') );
     17        // We don't want the widget if site running bp-default as it's hardcoded to sidebar
     18        if( bp_is_theme_compat_active() ) {
     19                add_action('widgets_init', create_function('', 'return register_widget("BP_Core_sitewide_messages_Widget");') );
     20        }
    1721}
    1822add_action( 'bp_register_widgets', 'bp_core_register_widgets' );
    1923
     
    287291        <?php
    288292        }
    289293}
     294/*** SITEWIDE MESSAGES WIDGET **********/
    290295
     296class BP_CORE_sitewide_messages_Widget extends WP_Widget {
     297
     298        function __construct() {       
     299                parent::__construct(
     300                        'BP_CORE_sitewide_messages_Widget',
     301                        __('(BuddyPress) Sitewide Messages', 'buddypress'),
     302                        array( 'classname' => 'widget_bp_core_sitewide_messages buddypress widget', 'description' => __('Displays the BP admin \'all users\' sitewide messages', 'buddypress'), )
     303                );
     304        }
     305
     306        public function widget( $args, $instance ) {
     307               
     308                if( !is_user_logged_in() || is_super_admin() )
     309                        return;
     310                       
     311                extract( $args );
     312 
     313                $title = apply_filters( 'widget_title', empty($instance['title']) ? '' : $instance['title'], $instance );
     314               
     315                echo $before_widget;
     316                echo $before_title .
     317                        $title .
     318                  $after_title;
     319       
     320                // output content to display ?>
     321       
     322                        <?php if ( bp_is_active( 'messages' )  ) : ?>
     323                       
     324                                <div class="bp-site-wide-message">
     325                                        <?php bp_message_get_notices();  ?>
     326                                </div>
     327                       
     328                        <?php endif; ?>
     329
     330        <?php
     331                //end  markup output
     332       
     333                echo $after_widget;
     334       
     335        }// close function 'widget'
     336       
     337        public function update( $new_instance, $old_instance ) {
     338                $instance = $old_instance;
     339                $instance['title'] = strip_tags($new_instance['title']);
     340                return $instance;
     341        }
     342        public function form( $instance ) {
     343                $instance = wp_parse_args( (array) $instance, array( 'title' => '') );
     344                $title = strip_tags($instance['title']);
     345 
     346  ?>
     347                <p>
     348  <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
     349                <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
     350  </p>
     351                <?php }
     352}
    291353/** Widget AJAX ******************/
    292354
    293355function bp_core_ajax_widget_members() {
  • bp-templates/bp-legacy/buddypress-functions.php

     
    122122                /** Notices ***********************************************************/
    123123
    124124                if ( bp_is_active( 'messages' ) ) {
    125                         add_action( 'wp_footer', array( $this, 'sitewide_notices' ), 9999 );
     125                        if( !is_active_widget( false, false, 'bp_core_sitewide_messages_widget', true ) ) {
     126                                add_action( 'wp_footer', array( $this, 'sitewide_notices' ), 9999 );
     127                        }
    126128                }
    127129
    128130                /** Ajax **************************************************************/