Changeset 9724
- Timestamp:
- 04/09/2015 07:04:18 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-members/bp-members-widgets.php
r9709 r9724 17 17 */ 18 18 function bp_members_register_widgets() { 19 add_action( 'widgets_init', create_function('', 'return register_widget("BP_Core_Members_Widget");') );20 add_action( 'widgets_init', create_function('', 'return register_widget("BP_Core_Whos_Online_Widget");') );21 add_action( 'widgets_init', create_function('', 'return register_widget("BP_Core_Recently_Active_Widget");') );19 add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Core_Members_Widget");' ) ); 20 add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Core_Whos_Online_Widget");' ) ); 21 add_action( 'widgets_init', create_function( '', 'return register_widget("BP_Core_Recently_Active_Widget");' ) ); 22 22 } 23 23 add_action( 'bp_register_widgets', 'bp_members_register_widgets' ); … … 31 31 32 32 /** 33 * Constructor method. 34 */ 35 function __construct() { 36 $widget_ops = array( 37 'description' => __( 'A dynamic list of recently active, popular, and newest members', 'buddypress' ), 38 'classname' => 'widget_bp_core_members_widget buddypress widget', 39 ); 40 parent::__construct( false, $name = _x( '(BuddyPress) Members', 'widget name', 'buddypress' ), $widget_ops ); 41 42 if ( is_active_widget( false, false, $this->id_base ) && !is_admin() && !is_network_admin() ) { 33 * Constructor method 34 */ 35 public function __construct() { 36 37 // Setup widget name & description 38 $name = _x( '(BuddyPress) Members', 'widget name', 'buddypress' ); 39 $description = __( 'A dynamic list of recently active, popular, and newest members', 'buddypress' ); 40 41 // Call WP_Widget constructor 42 parent::__construct( false, $name, array( 43 'description' => $description, 44 'classname' => 'widget_bp_core_members_widget buddypress widget', 45 ) ); 46 47 // Maybe enqueue JS for widget 48 if ( is_active_widget( false, false, $this->id_base ) && ! is_admin() && ! is_network_admin() ) { 43 49 wp_enqueue_script( 'bp-widget-members' ); 44 50 } … … 53 59 * @param array $instance Widget settings, as saved by the user. 54 60 */ 55 function widget( $args, $instance ) { 56 57 extract( $args ); 58 59 if ( !$instance['member_default'] ) 60 $instance['member_default'] = 'active'; 61 public function widget( $args, $instance ) { 62 63 // Get widget settings 64 $settings = $this->parse_settings( $instance ); 65 66 // Output any content before the widget 67 echo $args['before_widget']; 61 68 62 69 /** … … 67 74 * 68 75 * @param string $title The widget title. 69 * @param array $ instanceThe settings for the particular instance of the widget.76 * @param array $settings The settings for the particular instance of the widget. 70 77 * @param string $id_base Root ID for all widgets of this type. 71 78 */ 72 $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); 73 74 echo $before_widget; 75 76 $title = $instance['link_title'] ? '<a href="' . bp_get_members_directory_permalink() . '">' . $title . '</a>' : $title; 77 78 echo $before_title 79 $title = apply_filters( 'widget_title', $settings['title'], $settings, $this->id_base ); 80 $title = $settings['link_title'] ? '<a href="' . bp_get_members_directory_permalink() . '">' . $title . '</a>' : $title; 81 82 // Output title (and maybe content before & after it) 83 echo $args['before_title'] 79 84 . $title 80 . $after_title; 81 85 . $args['after_title']; 86 87 // Setup args for querying members 82 88 $members_args = array( 83 89 'user_id' => 0, 84 'type' => $ instance['member_default'],85 'per_page' => $ instance['max_members'],86 'max' => $ instance['max_members'],90 'type' => $settings['member_default'], 91 'per_page' => $settings['max_members'], 92 'max' => $settings['max_members'], 87 93 'populate_extras' => true, 88 94 'search_terms' => false, 89 ); 90 91 ?> 95 ); ?> 92 96 93 97 <?php if ( bp_has_members( $members_args ) ) : ?> 98 94 99 <div class="item-options" id="members-list-options"> 95 <a href="<?php bp_members_directory_permalink(); ?>" id="newest-members" <?php if ( $instance['member_default'] == 'newest' ) : ?>class="selected"<?php endif; ?>><?php _e( 'Newest', 'buddypress' )?></a>96 | <a href="<?php bp_members_directory_permalink(); ?>" id="recently-active-members" <?php if ( $instance['member_default'] == 'active' ) : ?>class="selected"<?php endif; ?>><?php _e( 'Active', 'buddypress' )?></a>100 <a href="<?php bp_members_directory_permalink(); ?>" id="newest-members" <?php if ( 'newest' === $settings['member_default'] ) : ?>class="selected"<?php endif; ?>><?php esc_html_e( 'Newest', 'buddypress' ); ?></a> 101 | <a href="<?php bp_members_directory_permalink(); ?>" id="recently-active-members" <?php if ( 'active' === $settings['member_default'] ) : ?>class="selected"<?php endif; ?>><?php esc_html_e( 'Active', 'buddypress' ); ?></a> 97 102 98 103 <?php if ( bp_is_active( 'friends' ) ) : ?> 99 104 100 | <a href="<?php bp_members_directory_permalink(); ?>" id="popular-members" <?php if ( $instance['member_default'] == 'popular' ) : ?>class="selected"<?php endif; ?>><?php _e( 'Popular', 'buddypress' )?></a>105 | <a href="<?php bp_members_directory_permalink(); ?>" id="popular-members" <?php if ( 'popular' === $settings['member_default'] ) : ?>class="selected"<?php endif; ?>><?php esc_html_e( 'Popular', 'buddypress' ); ?></a> 101 106 102 107 <?php endif; ?> 108 103 109 </div> 104 110 105 111 <ul id="members-list" class="item-list"> 112 106 113 <?php while ( bp_members() ) : bp_the_member(); ?> 114 107 115 <li class="vcard"> 108 116 <div class="item-avatar"> 109 <a href="<?php bp_member_permalink() ?>" title="<?php bp_member_name() ?>"><?php bp_member_avatar()?></a>117 <a href="<?php bp_member_permalink() ?>" title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a> 110 118 </div> 111 119 112 120 <div class="item"> 113 <div class="item-title fn"><a href="<?php bp_member_permalink() ?>" title="<?php bp_member_name() ?>"><?php bp_member_name()?></a></div>121 <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_name(); ?></a></div> 114 122 <div class="item-meta"> 115 <span class="activity"> 116 <?php 117 if ( 'newest' == $instance['member_default'] ) 123 <span class="activity"><?php 124 if ( 'newest' === $settings['member_default'] ) : 118 125 bp_member_registered(); 119 if ( 'active' == $instance['member_default'] )126 elseif ( 'active' === $settings['member_default'] ) : 120 127 bp_member_last_active(); 121 if ( 'popular' == $instance['member_default'] )128 elseif ( 'popular' === $settings['member_default'] ) : 122 129 bp_member_total_friend_count(); 123 ?> 124 </span> 130 endif; ?></span> 125 131 </div> 126 132 </div> … … 128 134 129 135 <?php endwhile; ?> 136 130 137 </ul> 131 <?php wp_nonce_field( 'bp_core_widget_members', '_wpnonce-members' ); ?> 132 <input type="hidden" name="members_widget_max" id="members_widget_max" value="<?php echo esc_attr( $instance['max_members'] ); ?>" /> 138 139 <?php wp_nonce_field( 'bp_core_widget_members', '_wpnonce-members', false ); ?> 140 141 <input type="hidden" name="members_widget_max" id="members_widget_max" value="<?php echo esc_attr( $settings['max_members'] ); ?>" /> 133 142 134 143 <?php else: ?> 135 144 136 145 <div class="widget-error"> 137 <?php _e('No one has signed up yet!', 'buddypress')?>146 <?php esc_html_e( 'No one has signed up yet!', 'buddypress' ); ?> 138 147 </div> 139 148 140 149 <?php endif; ?> 141 150 142 <?php echo $after_widget; ?> 143 <?php 151 <?php echo $args['after_widget']; 144 152 } 145 153 … … 151 159 * @return array $instance The parsed options to be saved. 152 160 */ 153 function update( $new_instance, $old_instance ) {161 public function update( $new_instance, $old_instance ) { 154 162 $instance = $old_instance; 155 163 156 $instance['title'] 164 $instance['title'] = strip_tags( $new_instance['title'] ); 157 165 $instance['max_members'] = strip_tags( $new_instance['max_members'] ); 158 166 $instance['member_default'] = strip_tags( $new_instance['member_default'] ); 159 $instance['link_title'] = (bool) $new_instance['link_title'];167 $instance['link_title'] = (bool) $new_instance['link_title']; 160 168 161 169 return $instance; … … 167 175 * @param $instance Settings for this widget. 168 176 */ 169 function form( $instance ) { 170 $defaults = array( 171 'title' => __( 'Members', 'buddypress' ), 177 public function form( $instance ) { 178 179 // Get widget settings 180 $settings = $this->parse_settings( $instance ); 181 $title = strip_tags( $settings['title'] ); 182 $max_members = strip_tags( $settings['max_members'] ); 183 $member_default = strip_tags( $settings['member_default'] ); 184 $link_title = (bool) $settings['link_title']; ?> 185 186 <p> 187 <label for="bp-core-widget-title"> 188 <?php esc_html_e( 'Title:', 'buddypress' ); ?> 189 <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 ); ?>" style="width: 100%" /> 190 </label> 191 </p> 192 193 <p> 194 <label for="<?php echo $this->get_field_name( 'link_title' ) ?>"> 195 <input type="checkbox" name="<?php echo $this->get_field_name( 'link_title' ) ?>" value="1" <?php checked( $link_title ) ?> /> 196 <?php esc_html_e( 'Link widget title to Members directory', 'buddypress' ); ?> 197 </label> 198 </p> 199 200 <p> 201 <label for="bp-core-widget-members-max"> 202 <?php esc_html_e( 'Max members to show:', 'buddypress' ); ?> 203 <input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="text" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" /> 204 </label> 205 </p> 206 207 <p> 208 <label for="bp-core-widget-groups-default"><?php esc_html_e( 'Default members to show:', 'buddypress' ); ?> 209 <select name="<?php echo $this->get_field_name( 'member_default' ) ?>"> 210 <option value="newest" <?php if ( 'newest' === $member_default ) : ?>selected="selected"<?php endif; ?>><?php esc_html_e( 'Newest', 'buddypress' ); ?></option> 211 <option value="active" <?php if ( 'active' === $member_default ) : ?>selected="selected"<?php endif; ?>><?php esc_html_e( 'Active', 'buddypress' ); ?></option> 212 <option value="popular" <?php if ( 'popular' === $member_default ) : ?>selected="selected"<?php endif; ?>><?php esc_html_e( 'Popular', 'buddypress' ); ?></option> 213 </select> 214 </label> 215 </p> 216 217 <?php 218 } 219 220 /** 221 * Merge the widget settings into defaults array. 222 * 223 * @since BuddyPress (2.3.0) 224 * 225 * @param $instance Instance 226 * @uses bp_parse_args() To merge widget settings into defaults 227 */ 228 public function parse_settings( $instance = array() ) { 229 return bp_parse_args( $instance, array( 230 'title' => __( 'Members', 'buddypress' ), 172 231 'max_members' => 5, 173 232 'member_default' => 'active', 174 233 'link_title' => false 175 ); 176 $instance = wp_parse_args( (array) $instance, $defaults ); 177 178 $title = strip_tags( $instance['title'] ); 179 $max_members = strip_tags( $instance['max_members'] ); 180 $member_default = strip_tags( $instance['member_default'] ); 181 $link_title = (bool)$instance['link_title']; 182 ?> 183 184 <p><label for="bp-core-widget-title"><?php _e('Title:', 'buddypress'); ?> <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 ); ?>" style="width: 100%" /></label></p> 185 186 <p><label for="<?php echo $this->get_field_name('link_title') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('link_title') ?>" value="1" <?php checked( $link_title ) ?> /> <?php _e( 'Link widget title to Members directory', 'buddypress' ) ?></label></p> 187 188 <p><label for="bp-core-widget-members-max"><?php _e('Max members to show:', 'buddypress'); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="text" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" /></label></p> 189 190 <p> 191 <label for="bp-core-widget-groups-default"><?php _e('Default members to show:', 'buddypress'); ?> 192 <select name="<?php echo $this->get_field_name( 'member_default' ) ?>"> 193 <option value="newest" <?php if ( $member_default == 'newest' ) : ?>selected="selected"<?php endif; ?>><?php _e( 'Newest', 'buddypress' ) ?></option> 194 <option value="active" <?php if ( $member_default == 'active' ) : ?>selected="selected"<?php endif; ?>><?php _e( 'Active', 'buddypress' ) ?></option> 195 <option value="popular" <?php if ( $member_default == 'popular' ) : ?>selected="selected"<?php endif; ?>><?php _e( 'Popular', 'buddypress' ) ?></option> 196 </select> 197 </label> 198 </p> 199 200 <?php 234 ), 'members_widget_settings' ); 201 235 } 202 236 }
Note: See TracChangeset
for help on using the changeset viewer.