diff --git src/bp-core/bp-core-functions.php src/bp-core/bp-core-functions.php
index 4329a6eb5..f3c8be614 100644
|
|
|
function bp_is_large_install() { |
| 3928 | 3928 | */ |
| 3929 | 3929 | return (bool) apply_filters( 'bp_is_large_install', $is_large ); |
| 3930 | 3930 | } |
| | 3931 | |
| | 3932 | /** |
| | 3933 | * Returns the upper limit on the "max" item count, for widgets that support it. |
| | 3934 | * |
| | 3935 | * @since 5.0.0 |
| | 3936 | * |
| | 3937 | * @param string $widget_class Optional. Class name of the calling widget. |
| | 3938 | * @return int |
| | 3939 | */ |
| | 3940 | function bp_get_widget_max_count_limit( $widget_class = '' ) { |
| | 3941 | /** |
| | 3942 | * Filters the upper limit on the "max" item count, for widgets that support it. |
| | 3943 | * |
| | 3944 | * @since 5.0.0 |
| | 3945 | * |
| | 3946 | * @param int $count Defaults to 50. |
| | 3947 | * @param string $widget_class Class name of the calling widget. |
| | 3948 | */ |
| | 3949 | return apply_filters( 'bp_get_widget_max_count_limit', 50, $widget_class ); |
| | 3950 | } |
diff --git src/bp-members/classes/class-bp-core-members-widget.php src/bp-members/classes/class-bp-core-members-widget.php
index a23fa705b..67f4aede7 100644
|
|
|
class BP_Core_Members_Widget extends WP_Widget { |
| 90 | 90 | // Output before widget HTMl, title (and maybe content before & after it). |
| 91 | 91 | echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title']; |
| 92 | 92 | |
| | 93 | $max_limit = bp_get_widget_max_count_limit( __CLASS__ ); |
| | 94 | $max_members = $settings['max_members'] > $max_limit ? $max_limit : (int) $settings['max_members']; |
| | 95 | |
| 93 | 96 | // Setup args for querying members. |
| 94 | 97 | $members_args = array( |
| 95 | 98 | 'user_id' => 0, |
| 96 | 99 | 'type' => $settings['member_default'], |
| 97 | | 'per_page' => $settings['max_members'], |
| 98 | | 'max' => $settings['max_members'], |
| | 100 | 'per_page' => $max_members, |
| | 101 | 'max' => $max_members, |
| 99 | 102 | 'populate_extras' => true, |
| 100 | 103 | 'search_terms' => false, |
| 101 | 104 | ); |
| … |
… |
class BP_Core_Members_Widget extends WP_Widget { |
| 177 | 180 | public function update( $new_instance, $old_instance ) { |
| 178 | 181 | $instance = $old_instance; |
| 179 | 182 | |
| | 183 | $max_limit = bp_get_widget_max_count_limit( __CLASS__ ); |
| | 184 | |
| 180 | 185 | $instance['title'] = strip_tags( $new_instance['title'] ); |
| 181 | | $instance['max_members'] = strip_tags( $new_instance['max_members'] ); |
| | 186 | $instance['max_members'] = $new_instance['max_members'] > $max_limit ? $max_limit : intval( $new_instance['max_members'] ); |
| 182 | 187 | $instance['member_default'] = strip_tags( $new_instance['member_default'] ); |
| 183 | | $instance['link_title'] = (bool) $new_instance['link_title']; |
| | 188 | $instance['link_title'] = isset( $new_instance['link_title'] ); |
| 184 | 189 | |
| 185 | 190 | return $instance; |
| 186 | 191 | } |
| … |
… |
class BP_Core_Members_Widget extends WP_Widget { |
| 194 | 199 | * @return void |
| 195 | 200 | */ |
| 196 | 201 | public function form( $instance ) { |
| | 202 | $max_limit = bp_get_widget_max_count_limit( __CLASS__ ); |
| 197 | 203 | |
| 198 | 204 | // Get widget settings. |
| 199 | 205 | $settings = $this->parse_settings( $instance ); |
| 200 | 206 | $title = strip_tags( $settings['title'] ); |
| 201 | | $max_members = strip_tags( $settings['max_members'] ); |
| | 207 | $max_members = $settings['max_members'] > $max_limit ? $max_limit : intval( $settings['max_members'] ); |
| 202 | 208 | $member_default = strip_tags( $settings['member_default'] ); |
| 203 | 209 | $link_title = (bool) $settings['link_title']; ?> |
| 204 | 210 | |
| … |
… |
class BP_Core_Members_Widget extends WP_Widget { |
| 219 | 225 | <p> |
| 220 | 226 | <label for="<?php echo $this->get_field_id( 'max_members' ); ?>"> |
| 221 | 227 | <?php esc_html_e( 'Max members to show:', 'buddypress' ); ?> |
| 222 | | <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%" /> |
| | 228 | <input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="number" min="1" max="<?php echo esc_attr( $max_limit ); ?>" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" /> |
| 223 | 229 | </label> |
| 224 | 230 | </p> |
| 225 | 231 | |