BP_Latest_Activities
A widget to display the latest activities of your community!
Description
Source
File: bp-templates/bp-nouveau/includes/activity/widgets.php
class BP_Latest_Activities extends WP_Widget { /** * Construct the widget. * * @since BuddyPress 3.0.0 */ public function __construct() { /** * Filters the widget options for the BP_Latest_Activities widget. * * @since BuddyPress 3.0.0 * * @param array $value Array of widget options. */ $widget_ops = apply_filters( 'bp_latest_activities', array( 'classname' => 'bp-latest-activities buddypress', 'description' => __( 'Select to display the latest activity updates, by type, posted within your community.', 'buddyboss' ), 'customize_selective_refresh' => true, ) ); parent::__construct( false, __( '(BB) Latest Activities', 'buddyboss' ), $widget_ops ); } /** * Register the widget. * * @since BuddyPress 3.0.0 */ public static function register_widget() { register_widget( 'BP_Latest_Activities' ); } /** * Display the widget content. * * @since BuddyPress 3.0.0 * * @param array $args Widget arguments. * @param array $instance Widget settings, as saved by the user. */ public function widget( $args, $instance ) { // Default values $title = __( 'Latest updates', 'buddyboss' ); $type = array( 'activity_update' ); $max = 5; $bp_nouveau = bp_nouveau(); // Check instance for a custom title if ( ! empty( $instance['title'] ) ) { $title = $instance['title']; } /** * Filters the BP_Latest_Activities widget title. * * @since BuddyPress 3.0.0 * * @param string $title The widget title. * @param array $instance The settings for the particular instance of the widget. * @param string $id_base Root ID for all widgets of this type. */ $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); // Check instance for custom max number of activities to display if ( ! empty( $instance['max'] ) ) { $max = (int) $instance['max']; } // Check instance for custom activity types if ( ! empty( $instance['type'] ) ) { $type = maybe_unserialize( $instance['type'] ); $classes = array_map( 'sanitize_html_class', array_merge( $type, array( 'bp-latest-activities' ) ) ); // Add classes to the container $args['before_widget'] = str_replace( 'bp-latest-activities', join( ' ', $classes ), $args['before_widget'] ); } echo $args['before_widget']; if ( $title ) { echo $args['before_title'] . $title . $args['after_title']; } $reset_activities_template = null; if ( ! empty( $GLOBALS['activities_template'] ) ) { $reset_activities_template = $GLOBALS['activities_template']; } /** * Globalize the activity widget arguments. * @see bp_nouveau_activity_widget_query() to override */ $bp_nouveau->activity->widget_args = array( 'max' => $max, 'scope' => 'all', 'user_id' => 0, 'object' => false, 'action' => join( ',', $type ), 'primary_id' => 0, 'secondary_id' => 0, ); bp_get_template_part( 'activity/widget' ); // Reset the globals $GLOBALS['activities_template'] = $reset_activities_template; $bp_nouveau->activity->widget_args = array(); echo $args['after_widget']; } /** * Update the widget settings. * * @since BuddyPress 3.0.0 * * @param array $new_instance The new instance settings. * @param array $old_instance The old instance settings. * * @return array The widget settings. */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags( $new_instance['title'] ); $instance['max'] = 5; if ( ! empty( $new_instance['max'] ) ) { $instance['max'] = $new_instance['max']; } $instance['type'] = maybe_serialize( array( 'activity_update' ) ); if ( ! empty( $new_instance['type'] ) ) { $instance['type'] = maybe_serialize( $new_instance['type'] ); } return $instance; } /** * Display the form to set the widget settings. * * @since BuddyPress 3.0.0 * * @param array $instance Settings for this widget. * * @return string HTML output. */ public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => __( 'Latest updates', 'buddyboss' ), 'max' => 5, 'type' => '', ) ); $title = esc_attr( $instance['title'] ); $max = (int) $instance['max']; $type = array( 'activity_update' ); if ( ! empty( $instance['type'] ) ) { $type = maybe_unserialize( $instance['type'] ); } ?> <p> <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:', 'buddyboss' ); ?></label> <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 ); ?>" /> </p> <p> <label for="<?php echo $this->get_field_id( 'max' ); ?>"><?php _e( 'Maximum amount to display:', 'buddyboss' ); ?></label> <input type="number" class="widefat" id="<?php echo $this->get_field_id( 'max' ); ?>" name="<?php echo $this->get_field_name( 'max' ); ?>" value="<?php echo intval( $max ); ?>" step="1" min="1" max="20" /> </p> <p> <label for="<?php echo $this->get_field_id( 'type' ); ?>"><?php esc_html_e( 'Activity Type:', 'buddyboss' ); ?></label> <select class="widefat" multiple="multiple" id="<?php echo $this->get_field_id( 'type' ); ?>" name="<?php echo $this->get_field_name( 'type' ); ?>[]"> <?php foreach ( bp_nouveau_get_activity_filters() as $key => $name ) : ?> <option value="<?php echo esc_attr( $key ); ?>" <?php selected( in_array( $key, $type ) ); ?>><?php echo esc_html( $name ); ?></option> <?php endforeach; ?> </select> </p> <?php } }
Changelog
Version | Description |
---|---|
BuddyPress 3.0.0 | Introduced. |
Methods
- __construct — Construct the widget.
- form — Display the form to set the widget settings.
- register_widget — Register the widget.
- update — Update the widget settings.
- widget — Display the widget content.
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.