</a> </div> <?php } ?> <div class="item"> <div class="item-title"><a href="<?php bp_group_permalink(); ?> "><?php bp_group_name(); ?> </a></div> <div class="item-meta"><span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_group_last_active(0, array('relative' => false))); ?> "><?php printf(__('active %s', 'buddypress'), bp_get_group_last_active()); ?> </span></div> <div class="item-desc"><?php bp_group_description_excerpt(); ?> </div> <?php /** * Fires inside the listing of an individual group listing item. *
/** * Display the widget. * * @since 1.9.0 * * @param array $args Widget arguments. * @param array $instance The widget settings, as saved by the user. */ function widget($args, $instance) { global $members_template; extract($args); if (!bp_displayed_user_id()) { return; } $user_id = bp_displayed_user_id(); $link = trailingslashit(bp_displayed_user_domain() . bp_get_friends_slug()); $instance['title'] = sprintf(__("%s's Friends", 'buddypress'), bp_get_displayed_user_fullname()); if (empty($instance['friend_default'])) { $instance['friend_default'] = 'active'; } /** * Filters the Friends widget title. * * @since 1.8.0 * @since 2.3.0 Added 'instance' and 'id_base' to arguments passed to filter. * * @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', $instance['title'], $instance, $this->id_base); echo $before_widget; $title = $instance['link_title'] ? '<a href="' . esc_url($link) . '">' . esc_html($title) . '</a>' : esc_html($title); echo $before_title . $title . $after_title; $members_args = array('user_id' => absint($user_id), 'type' => sanitize_text_field($instance['friend_default']), 'max' => absint($instance['max_friends']), 'populate_extras' => 1); // Back up the global. $old_members_template = $members_template; ?> <?php if (bp_has_members($members_args)) { ?> <div class="item-options" id="friends-list-options"> <a href="<?php bp_members_directory_permalink(); ?> " id="newest-friends" <?php if ($instance['friend_default'] == 'newest') { ?> class="selected"<?php } ?> ><?php _e('Newest', 'buddypress'); ?> </a> | <a href="<?php bp_members_directory_permalink(); ?> " id="recently-active-friends" <?php if ($instance['friend_default'] == 'active') { ?> class="selected"<?php } ?> ><?php _e('Active', 'buddypress'); ?> </a> | <a href="<?php bp_members_directory_permalink(); ?> " id="popular-friends" <?php if ($instance['friend_default'] == 'popular') { ?> class="selected"<?php } ?> ><?php _e('Popular', 'buddypress'); ?> </a> </div> <ul id="friends-list" class="item-list"> <?php while (bp_members()) { bp_the_member(); ?> <li class="vcard"> <div class="item-avatar"> <a href="<?php bp_member_permalink(); ?> " title="<?php bp_member_name(); ?> "><?php bp_member_avatar(); ?> </a> </div> <div class="item"> <div class="item-title fn"><a href="<?php bp_member_permalink(); ?> " title="<?php bp_member_name(); ?> "><?php bp_member_name(); ?> </a></div> <div class="item-meta"> <?php if ('newest' == $instance['friend_default']) { ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_member_registered(array('relative' => false))); ?> "><?php bp_member_registered(); ?> </span> <?php } elseif ('active' == $instance['friend_default']) { ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_member_last_active(array('relative' => false))); ?> "><?php bp_member_last_active(); ?> </span> <?php } else { ?> <span class="activity"><?php bp_member_total_friend_count(); ?> </span> <?php } ?> </div> </div> </li> <?php } ?> </ul> <?php wp_nonce_field('bp_core_widget_friends', '_wpnonce-friends'); ?> <input type="hidden" name="friends_widget_max" id="friends_widget_max" value="<?php echo absint($instance['max_friends']); ?> " /> <?php } else { ?> <div class="widget-error"> <?php _e('Sorry, no members were found.', 'buddypress'); ?> </div> <?php } ?> <?php echo $after_widget; // Restore the global. $members_template = $old_members_template; }
/** * Display the Members widget. * * @since 1.0.3 * * @see WP_Widget::widget() for description of parameters. * * @param array $args Widget arguments. * @param array $instance Widget settings, as saved by the user. */ public function widget($args, $instance) { global $members_template; // Get widget settings. $settings = $this->parse_settings($instance); /** * Filters the title of the Members widget. * * @since 1.8.0 * @since 2.3.0 Added 'instance' and 'id_base' to arguments passed to filter. * * @param string $title The widget title. * @param array $settings 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', $settings['title'], $settings, $this->id_base); $title = $settings['link_title'] ? '<a href="' . bp_get_members_directory_permalink() . '">' . $title . '</a>' : $title; /** * Filters the separator of the member widget links. * * @since 2.4.0 * * @param string $separator Separator string. Default '|'. */ $separator = apply_filters('bp_members_widget_separator', '|'); // Output before widget HTMl, title (and maybe content before & after it). echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title']; // Setup args for querying members. $members_args = array('user_id' => 0, 'type' => $settings['member_default'], 'per_page' => $settings['max_members'], 'max' => $settings['max_members'], 'populate_extras' => true, 'search_terms' => false); // Back up the global. $old_members_template = $members_template; ?> <?php if (bp_has_members($members_args)) { ?> <div class="item-options" id="members-list-options"> <a href="<?php bp_members_directory_permalink(); ?> " id="newest-members" <?php if ('newest' === $settings['member_default']) { ?> class="selected"<?php } ?> ><?php esc_html_e('Newest', 'buddypress'); ?> </a> <span class="bp-separator" role="separator"><?php echo esc_html($separator); ?> </span> <a href="<?php bp_members_directory_permalink(); ?> " id="recently-active-members" <?php if ('active' === $settings['member_default']) { ?> class="selected"<?php } ?> ><?php esc_html_e('Active', 'buddypress'); ?> </a> <?php if (bp_is_active('friends')) { ?> <span class="bp-separator" role="separator"><?php echo esc_html($separator); ?> </span> <a href="<?php bp_members_directory_permalink(); ?> " id="popular-members" <?php if ('popular' === $settings['member_default']) { ?> class="selected"<?php } ?> ><?php esc_html_e('Popular', 'buddypress'); ?> </a> <?php } ?> </div> <ul id="members-list" class="item-list" aria-live="polite" aria-relevant="all" aria-atomic="true"> <?php while (bp_members()) { bp_the_member(); ?> <li class="vcard"> <div class="item-avatar"> <a href="<?php bp_member_permalink(); ?> " title="<?php bp_member_name(); ?> "><?php bp_member_avatar(); ?> </a> </div> <div class="item"> <div class="item-title fn"><a href="<?php bp_member_permalink(); ?> " title="<?php bp_member_name(); ?> "><?php bp_member_name(); ?> </a></div> <div class="item-meta"> <?php if ('newest' == $settings['member_default']) { ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_member_registered(array('relative' => false))); ?> "><?php bp_member_registered(); ?> </span> <?php } elseif ('active' == $settings['member_default']) { ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_member_last_active(array('relative' => false))); ?> "><?php bp_member_last_active(); ?> </span> <?php } else { ?> <span class="activity"><?php bp_member_total_friend_count(); ?> </span> <?php } ?> </div> </div> </li> <?php } ?> </ul> <?php wp_nonce_field('bp_core_widget_members', '_wpnonce-members', false); ?> <input type="hidden" name="members_widget_max" id="members_widget_max" value="<?php echo esc_attr($settings['max_members']); ?> " /> <?php } else { ?> <div class="widget-error"> <?php esc_html_e('No one has signed up yet!', 'buddypress'); ?> </div> <?php } ?> <?php echo $args['after_widget']; // Restore the global. $members_template = $old_members_template; }
/** * Process AJAX pagination or filtering for the Friends widget. * * @since 1.9.0 */ function bp_core_ajax_widget_friends() { check_ajax_referer('bp_core_widget_friends'); switch ($_POST['filter']) { case 'newest-friends': $type = 'newest'; break; case 'recently-active-friends': $type = 'active'; break; case 'popular-friends': $type = 'popular'; break; } $members_args = array('user_id' => bp_displayed_user_id(), 'type' => $type, 'max' => absint($_POST['max-friends']), 'populate_extras' => 1); if (bp_has_members($members_args)) { ?> <?php echo '0[[SPLIT]]'; // Return valid result. TODO: remove this. ?> <?php while (bp_members()) { bp_the_member(); ?> <li class="vcard"> <div class="item-avatar"> <a href="<?php bp_member_permalink(); ?> "><?php bp_member_avatar(); ?> </a> </div> <div class="item"> <div class="item-title fn"><a href="<?php bp_member_permalink(); ?> " title="<?php bp_member_name(); ?> "><?php bp_member_name(); ?> </a></div> <?php if ('active' == $type) { ?> <div class="item-meta"><span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_member_last_active(array('relative' => false))); ?> "><?php bp_member_last_active(); ?> </span></div> <?php } elseif ('newest' == $type) { ?> <div class="item-meta"><span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_member_registered(array('relative' => false))); ?> "><?php bp_member_registered(); ?> </span></div> <?php } elseif (bp_is_active('friends')) { ?> <div class="item-meta"><span class="activity"><?php bp_member_total_friend_count(); ?> </span></div> <?php } ?> </div> </li> <?php } ?> <?php } else { ?> <?php echo "-1[[SPLIT]]<li>"; ?> <?php _e('There were no members found, please try another filter.', 'buddypress'); ?> <?php echo "</li>"; ?> <?php } }
<?php } ?> <div id="item-buttons"><?php /** * Fires in the member header actions section. * * @since 1.2.6 */ do_action('bp_member_header_actions'); ?> </div><!-- #item-buttons --> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_user_last_activity(bp_displayed_user_id())); ?> "><?php bp_last_activity(bp_displayed_user_id()); ?> </span> <?php /** * Fires before the display of the member's header meta. * * @since 1.2.0 */ do_action('bp_before_member_header_meta'); ?>
bp_group_member_domain(); ?> "> <?php bp_group_member_avatar_thumb(); ?> </a> <h5><?php bp_group_member_link(); ?> </h5> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_group_member_joined_since(array('relative' => false))); ?> "><?php bp_group_member_joined_since(); ?> </span> <?php /** * Fires inside the listing of an individual group member listing item. * * @since 1.1.0 */ do_action('bp_group_members_list_item'); ?>
if (bp_get_member_latest_update()) { ?> <span class="update"> <?php bp_member_latest_update(); ?> </span> <?php } ?> </div> <div class="item-meta"><span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_member_last_active(array('relative' => false))); ?> "><?php bp_member_last_active(); ?> </span></div> <?php /** * Fires inside the display of a directory member item. * * @since 1.1.0 */ do_action('bp_directory_members_item'); ?>
/** * AJAX callback for the Groups List widget. * * @since 1.0.0 */ function groups_ajax_widget_groups_list() { check_ajax_referer('groups_widget_groups_list'); switch ($_POST['filter']) { case 'newest-groups': $type = 'newest'; break; case 'recently-active-groups': $type = 'active'; break; case 'popular-groups': $type = 'popular'; break; } $per_page = isset($_POST['max_groups']) ? intval($_POST['max_groups']) : 5; $groups_args = array('user_id' => 0, 'type' => $type, 'per_page' => $per_page, 'max' => $per_page); if (bp_has_groups($groups_args)) { ?> <?php echo "0[[SPLIT]]"; ?> <?php while (bp_groups()) { bp_the_group(); ?> <li <?php bp_group_class(); ?> > <div class="item-avatar"> <a href="<?php bp_group_permalink(); ?> "><?php bp_group_avatar_thumb(); ?> </a> </div> <div class="item"> <div class="item-title"><a href="<?php bp_group_permalink(); ?> " title="<?php bp_group_name(); ?> "><?php bp_group_name(); ?> </a></div> <div class="item-meta"> <?php if ('newest-groups' === $_POST['filter']) { ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_group_date_created(0, array('relative' => false))); ?> "><?php printf(__('created %s', 'buddypress'), bp_get_group_date_created()); ?> </span> <?php } elseif ('recently-active-groups' === $_POST['filter']) { ?> <span class="activity" data-livestamp="<?php bp_core_iso8601_date(bp_get_group_last_active(0, array('relative' => false))); ?> "><?php printf(__('active %s', 'buddypress'), bp_get_group_last_active()); ?> </span> <?php } else { ?> <span class="activity"><?php bp_group_member_count(); ?> </span> <?php } ?> </div> </div> </li> <?php } ?> <?php wp_nonce_field('groups_widget_groups_list', '_wpnonce-groups'); ?> <input type="hidden" name="groups_widget_max" id="groups_widget_max" value="<?php echo esc_attr($_POST['max_groups']); ?> " /> <?php } else { ?> <?php echo "-1[[SPLIT]]<li>" . __("No groups matched the current filter.", 'buddypress'); ?> <?php } }