Changeset 1602 for branches/1.0/bp-activity/bp-activity-widgets.php
- Timestamp:
- 07/15/2009 12:47:21 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.0/bp-activity/bp-activity-widgets.php
r1520 r1602 3 3 /* Register widgets for blogs component */ 4 4 function bp_activity_register_widgets() { 5 global $current_blog; 6 7 /* Site Wide Activity Widget */ 8 wp_register_sidebar_widget( 'buddypress-activity', __('Site Wide Activity', 'buddypress'), 'bp_activity_widget_sitewide_activity'); 9 wp_register_widget_control( 'buddypress-activity', __('Site Wide Activity', 'buddypress'), 'bp_activity_widget_sitewide_activity_control' ); 10 11 if ( is_active_widget( 'bp_activity_widget_sitewide_activity' ) ) { 12 wp_enqueue_style( 'bp-activity-widget-activity-css', BP_PLUGIN_URL . '/bp-activity/css/widget-activity.css' ); 13 } 5 add_action('widgets_init', create_function('', 'return register_widget("BP_Activity_Widget");') ); 14 6 } 15 7 add_action( 'plugins_loaded', 'bp_activity_register_widgets' ); 16 8 17 18 function bp_activity_widget_sitewide_activity($args) { 19 global $bp, $current_blog; 20 21 extract($args); 22 $options = get_blog_option( $current_blog->blog_id, 'bp_activity_widget_sitewide_activity' ); 23 ?> 24 <?php echo $before_widget; ?> 25 <?php echo $before_title 26 . $widget_name 27 . $after_title; ?> 28 29 <?php 30 if ( !$options['max_items'] || empty( $options['max_items'] ) ) 31 $options['max_items'] = 20; 32 ?> 33 34 <?php 35 if ( !$activity = wp_cache_get( 'sitewide_activity', 'bp' ) ) { 36 $activity = bp_activity_get_sitewide_activity( $options['max_items'] ); 37 wp_cache_set( 'sitewide_activity', $activity, 'bp' ); 38 } 39 ?> 40 41 <?php if ( $activity['activities'] ) : ?> 42 <div class="item-options" id="activity-list-options"> 43 <img src="<?php echo $bp->activity->image_base; ?>/rss.png" alt="<?php _e( 'RSS Feed', 'buddypress' ) ?>" /> <a href="<?php bp_sitewide_activity_feed_link() ?>" title="<?php _e( 'Site Wide Activity RSS Feed', 'buddypress' ) ?>"><?php _e( 'RSS Feed', 'buddypress' ) ?></a> 44 </div> 45 <ul id="site-wide-stream" class="activity-list"> 46 <?php foreach( $activity['activities'] as $item ) : ?> 47 <li class="<?php echo $item['component_name'] ?>"> 48 <?php echo apply_filters( 'bp_get_activity_content', bp_activity_content_filter( $item['content'], $item['date_recorded'], '', true, false, true ) ); ?> 49 </li> 50 <?php endforeach; ?> 51 </ul> 52 <?php else: ?> 53 <div class="widget-error"> 54 <?php _e('There has been no recent site activity.', 'buddypress') ?> 55 </div> 56 <?php endif; ?> 57 58 <?php echo $after_widget; ?> 59 <?php 60 } 61 62 function bp_activity_widget_sitewide_activity_control() { 63 global $current_blog; 64 65 $options = $newoptions = get_blog_option( $current_blog->blog_id, 'bp_activity_widget_sitewide_activity'); 66 67 if ( $_POST['bp-activity-widget-sitewide-submit'] ) { 68 $newoptions['max_items'] = strip_tags( stripslashes( $_POST['bp-activity-widget-sitewide-items-max'] ) ); 69 } 70 71 if ( $options != $newoptions ) { 72 $options = $newoptions; 73 update_blog_option( $current_blog->blog_id, 'bp_activity_widget_sitewide_activity', $options ); 9 class BP_Activity_Widget extends WP_Widget { 10 function bp_activity_widget() { 11 parent::WP_Widget( false, $name = 'Site Wide Activity' ); 12 wp_enqueue_style( 'bp-activity-widget-activity-css', BP_PLUGIN_URL . '/bp-activity/css/widget-activity.css' ); 74 13 } 75 14 15 function widget($args, $instance) { 16 global $bp; 17 18 extract( $args ); 19 20 echo $before_widget; 21 echo $before_title 22 . $widget_name 23 . $after_title; ?> 24 25 <?php 26 if ( empty( $instance['max_items'] ) || !$instance['max_items'] ) 27 $instance['max_items'] = 30; ?> 28 29 <?php 30 if ( !$activity = wp_cache_get( 'sitewide_activity', 'bp' ) ) { 31 $activity = bp_activity_get_sitewide_activity( $instance['max_items'] ); 32 wp_cache_set( 'sitewide_activity', $activity, 'bp' ); 33 } 34 ?> 35 36 <?php if ( $activity['activities'] ) : ?> 37 <div class="item-options" id="activity-list-options"> 38 <img src="<?php echo $bp->activity->image_base; ?>/rss.png" alt="<?php _e( 'RSS Feed', 'buddypress' ) ?>" /> <a href="<?php bp_sitewide_activity_feed_link() ?>" title="<?php _e( 'Site Wide Activity RSS Feed', 'buddypress' ) ?>"><?php _e( 'RSS Feed', 'buddypress' ) ?></a> 39 </div> 40 <ul id="site-wide-stream" class="activity-list"> 41 <?php foreach( $activity['activities'] as $item ) : ?> 42 <li class="<?php echo $item['component_name'] ?>"> 43 <?php echo apply_filters( 'bp_get_activity_content', bp_activity_content_filter( $item['content'], $item['date_recorded'], '', true, false, true ) ); ?> 44 </li> 45 <?php endforeach; ?> 46 </ul> 47 <?php else: ?> 48 <div class="widget-error"> 49 <?php _e('There has been no recent site activity.', 'buddypress') ?> 50 </div> 51 <?php endif; ?> 52 53 <?php echo $after_widget; ?> 54 <?php 55 } 56 57 function update( $new_instance, $old_instance ) { 58 $instance = $old_instance; 59 $instance['max_items'] = strip_tags( $new_instance['max_items'] ); 60 61 return $instance; 62 } 63 64 function form( $instance ) { 65 $instance = wp_parse_args( (array) $instance, array( 'max_items' => 30 ) ); 66 $max_items = strip_tags( $instance['max_items'] ); 67 ?> 68 69 <p><label for="bp-core-widget-members-max"><?php _e('Max items to show:', 'buddypress'); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_items' ); ?>" name="<?php echo $this->get_field_name( 'max_items' ); ?>" type="text" value="<?php echo attribute_escape( $max_items ); ?>" style="width: 30%" /></label></p> 70 <?php 71 } 72 } 76 73 ?> 77 <p><label for="bp-activity-widget-sitewide-items-max"><?php _e('Max Number of Items:', 'buddypress'); ?> <input class="widefat" id="bp-activity-widget-sitewide-items-max" name="bp-activity-widget-sitewide-items-max" type="text" value="<?php echo attribute_escape( $options['max_items'] ); ?>" style="width: 30%" /></label></p>78 <input type="hidden" id="bp-activity-widget-sitewide-submit" name="bp-activity-widget-sitewide-submit" value="1" />79 <?php80 }81 82 ?>
Note: See TracChangeset
for help on using the changeset viewer.