/** * @group groupblog */ public function test_follow_blog_and_groupblog() { if (!is_multisite()) { return; } // save the current user and override logged-in user $old_user = get_current_user_id(); $u = $this->factory->user->create(); $this->set_current_user($u); // create some blogs $b = $this->factory->blog->create(array('title' => 'Groupblog', 'user_id' => $u)); $b2 = $this->factory->blog->create(array('title' => 'Test blog 1', 'user_id' => $u)); $b3 = $this->factory->blog->create(array('title' => 'Test blog 2', 'user_id' => $u)); // create a group and connect a blog $g = $this->factory->group->create(array('creator_id' => $u)); groups_update_groupmeta($g, 'groupblog_blog_id', $b); // follow the groupblog $f = bp_follow_start_following(array('leader_id' => $b, 'follower_id' => $u, 'follow_type' => 'blogs')); // follow a regular blog $f2 = bp_follow_start_following(array('leader_id' => $b2, 'follower_id' => $u, 'follow_type' => 'blogs')); // add some activity items $a = $this->factory->activity->create(array('component' => buddypress()->groups->id, 'type' => 'new_groupblog_post', 'user_id' => $u, 'item_id' => $g, 'secondary_item_id' => 1)); $a2 = $this->factory->activity->create(array('component' => buddypress()->blogs->id, 'type' => 'new_blog_post', 'user_id' => $u, 'item_id' => $b3, 'secondary_item_id' => 1)); $a3 = $this->factory->activity->create(array('component' => buddypress()->blogs->id, 'type' => 'new_blog_post', 'user_id' => $u, 'item_id' => $b2, 'secondary_item_id' => 1)); // fake that we're on a user's "Activity > Followed Sites" page add_filter('bp_ajax_querystring', array($this, 'add_activity_scope_filter')); // fake that BP groupblog is installed so groupblog filter will kick in if (!function_exists('bp_groupblog_init')) { function bp_groupblog_init() { } } // run the activity loop global $activities_template; bp_has_activities(bp_ajax_querystring('activity')); // grab the activity IDs from the loop $ids = wp_list_pluck($activities_template->activities, 'id'); // assert! $this->assertEquals(array($a, $a3), $ids); // reset everything $activities_template = null; $this->set_current_user($old_user); remove_filter('bp_ajax_querystring', array($this, 'add_activity_scope_filter')); }
<?php do_action('bp_before_directory_groups_page'); ?> <div id="content"> <div class="padder"> <?php do_action('bp_before_directory_groups'); ?> <form action="" method="post" id="groups-directory-form" class="dir-form"> <?php global $huddle_bp_groups, $groups_template; $huddle_bp_groups = bp_has_groups(bp_ajax_querystring('groups')); ?> <h3><?php _e('Groups Directory', 'huddle'); ?> </h3> <p class="subtitle"> <?php bp_groups_pagination_count(); ?> <?php if (is_user_logged_in() && bp_user_can_create_groups()) { ?> <a class="btn-gray" href="<?php echo trailingslashit(bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/create');
/** * BuddyPress - Forums Loop * * Querystring is set via AJAX in _inc/ajax.php - bp_dtheme_object_filter() * * @package BuddyPress * @subpackage bp-default */ ?> <?php do_action('bp_before_forums_loop'); ?> <?php if (bp_has_forum_topics(bp_ajax_querystring('forums'))) { ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="topic-count-top"> <?php bp_forum_pagination_count(); ?> </div> <div class="pagination-links" id="topic-pag-top"> <?php
<?php if (bp_group_has_membership_requests(bp_ajax_querystring('membership_requests'))) { ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="group-mem-requests-count-top"> <?php bp_group_requests_pagination_count(); ?> </div> <div class="pagination-links" id="group-mem-requests-pag-top"> <?php bp_group_requests_pagination_links(); ?> </div> </div> <ul id="request-list" class="item-list"> <?php while (bp_group_membership_requests()) { bp_group_the_membership_request(); ?>
<?php /** * The template for displaying course directory loop. * * Override this template by copying it to yourtheme/course/course-loop.php * * @author VibeThemes * @package vibe-course-module/templates * @version 1.8.1 */ do_action('bp_before_course_loop'); if (bp_course_has_items(bp_ajax_querystring('course'))) { ?> <div id="pag-top" class="pagination"> <div class="pag-DeCuongKHcount" id="course-dir-count-top"> <?php bp_course_pagination_count(); ?> </div> <div class="pagination-links" id="course-dir-pag-top"> <?php bp_course_item_pagination(); ?> </div>
/** * BuddyPress - Groups Loop * * Querystring is set via AJAX in _inc/ajax.php - bp_legacy_theme_object_filter() * * @package BuddyPress * @subpackage bp-legacy */ ?> <?php do_action('bp_before_groups_loop'); ?> <?php if (bp_has_groups(bp_ajax_querystring('groups'))) { ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="group-dir-count-top"> <?php bp_groups_pagination_count(); ?> </div> <div class="pagination-links" id="group-dir-pag-top"> <?php
</div><!-- .left-menu --> <div class="main-column"> <?php /** * Fires before the display of the group send invites list. * * @since BuddyPress (1.1.0) */ do_action('bp_before_group_send_invites_list'); ?> <?php if (bp_group_has_invites(bp_ajax_querystring('invite') . '&per_page=10')) { ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="group-invite-count-top"> <?php bp_group_invite_pagination_count(); ?> </div> <div class="pagination-links" id="group-invite-pag-top"> <?php
$post_class = "column dt-sc-one-half"; break; case "one-third-column": $columns = 3; $post_class = "column dt-sc-one-third"; break; case "one-fourth-column": $columns = 4; $post_class = "column dt-sc-one-fourth"; break; default: $columns = 4; $post_class = "column dt-sc-one-fourth"; break; } if (bp_has_members(bp_ajax_querystring('members') . '&per_page=' . $dt_per_page)) { $i = 1; ?> <?php do_action('bp_before_directory_members_list'); ?> <?php while (bp_members()) { bp_the_member(); $temp_class = ""; if ($i == 1) { $temp_class = $post_class . " first"; } else { $temp_class = $post_class; } if ($i == $columns) {
* The template for displaying instructor courses in course directory * * Override this template by copying it to yourtheme/course/instructor-courses.php * * @author VibeThemes * @package vibe-course-module/templates * @version 1.8.1 */ $user_id = get_current_user_id(); $append = '&instructor=' . $user_id; ?> <?php do_action('bp_before_course_loop'); $user_id = get_current_user_id(); if (bp_course_has_items(bp_ajax_querystring('course') . $append)) { // global $items_template; var_dump( $items_template ) ?> <div id="pag-top" class="pagination no-ajax"> <div class="pag-count" id="course-dir-count-top"> <?php bp_course_pagination_count(); ?> </div> <div class="pagination-links" id="course-dir-pag-top"> <?php
<?php /** * * @package BuddyPress_Skeleton_Component * @since 1.6 */ ?> <?php do_action('bp_before_example_loop'); ?> <?php if (bp_example_has_items(bp_ajax_querystring('example'))) { // global $items_template; var_dump( $items_template ) ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="example-dir-count-top"> <?php bp_example_pagination_count(); ?> </div> <div class="pagination-links" id="example-dir-pag-top"> <?php bp_example_item_pagination();
* @package vibe-course-module/templates * @version 1.8.1 */ $loop_number = vibe_get_option('loop_number'); isset($loop_number) ? $loop_number : ($loop_number = 5); ?> <?php do_action('bp_before_course_loop'); ?> <?php $user_id = get_current_user_id(); if (bp_course_has_items(bp_ajax_querystring('course') . '&user='******'&per_page=' . $loop_number)) { // global $items_template; var_dump( $items_template ) ?> <div id="pag-top" class="pagination no-ajax"> <div class="pag-count" id="course-dir-count-top"> <?php bp_course_pagination_count(); ?> </div> <div class="pagination-links" id="course-dir-pag-top"> <?php
<?php do_action('dpa_before_achievements_loop'); ?> <?php if (dpa_has_achievements(bp_ajax_querystring('achievements'))) { ?> <div class="pagination"> <div class="pag-count" id="achievements-count-top"> <?php dpa_achievements_pagination_count(); ?> </div> <div class="pagination-links" id="achievements-pag-top"> <?php dpa_achievements_pagination_links(); ?> </div> </div> <ul id="achievements-list" class="item-list"> <?php while (dpa_achievements()) { dpa_the_achievement(); ?>
* @package BuddyPress * @subpackage bp-default */ if (!defined('ABSPATH')) { exit; } $loop_number = vibe_get_option('loop_number'); isset($loop_number) ? $loop_number : ($loop_number = 5); ?> <?php do_action('bp_before_blogs_loop'); ?> <?php if (bp_has_blogs(bp_ajax_querystring('blogs') . '&per_page=' . $loop_number)) { ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="blog-dir-count-top"> <?php bp_blogs_pagination_count(); ?> </div> <div class="pagination-links" id="blog-dir-pag-top"> <?php bp_blogs_pagination_links(); ?> </div>
<?php global $bp_members, $members_template; if (!$bp_members) { $bp_members = bp_has_members(bp_ajax_querystring('members')); } ?> <?php do_action('bp_before_members_loop'); ?> <?php if ($bp_members) { ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="member-dir-count-top"> <?php bp_members_pagination_count(); ?> </div> <div class="pagination-links" id="member-dir-pag-top"> <?php bp_members_pagination_links(); ?>
/** * Do widget framework. * * @param array $instance The settings for the particular instance of the widget. */ public static function framework($instance) { global $gs_counter, $processed_activities; genesis_markup(array('html5' => '<article %s>', 'xhtml' => sprintf('<div class="%s">', implode(' ', get_post_class())), 'context' => 'entry')); $settings = get_option('widget_featured-content'); if (!isset($settings[3]['buddypress-group']) || 1 != $settings[3]['buddypress-group']) { GS_Featured_Content::action('thememixfc_before_post_content', $instance); GS_Featured_Content::action('thememixfc_post_content', $instance); GS_Featured_Content::action('thememixfc_after_post_content', $instance); } else { if (!isset($processed_activities)) { $processed_activities = array(); } $group_id = $settings[3]['buddypress-group-group']; if (bp_has_activities(bp_ajax_querystring('activity') . '&primary_id=' . $group_id)) { while (bp_activities()) { bp_the_activity(); $url = trailingslashit(bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/' . $group->slug . '/'); $fontawesome_position = $settings[3]['fontawesome-position']; $activity_id = bp_get_activity_id(); if (!in_array($activity_id, $processed_activities) && !isset($done)) { // Get image HTML if (isset($settings[3]['show_image']) && 1 == $settings[3]['show_image']) { $size = $settings[3]['image_size']; $image_html = bp_get_activity_avatar('type=' . $size); // Add image link to image HTML if (isset($settings[3]['link_image']) && 1 == $settings[3]['link_image']) { $image_html = '<a href="' . esc_attr(bp_get_activity_user_link()) . '">' . $image_html . '</a>'; } } echo ' <article itemscope="itemscope" itemtype="http://schema.org/Event">'; if (isset($settings[3]['image_position']) && 'before-title' == $settings[3]['image_position']) { echo $image_html; } if ('before_title' == $fontawesome_position) { echo thememixfc_span_fontawesome(); } echo ' <h2 class="entry-title">'; if ('inline_before_title' == $fontawesome_position) { echo thememixfc_span_fontawesome(); } echo ' <a href="' . esc_url($url) . '" title="' . esc_attr($group->name) . '">' . esc_html($group->name) . '</a>'; if ('inline_after_title' == $fontawesome_position) { echo thememixfc_span_fontawesome(); } echo ' </h2>'; if ('after_title' == $fontawesome_position) { echo thememixfc_span_fontawesome(); } if (isset($settings[3]['image_position']) && 'after-title' == $settings[3]['image_position']) { echo $image_html; } if (bp_activity_has_content()) { bp_activity_content_body(); } if (isset($settings[3]['image_position']) && 'after-content' == $settings[3]['image_position']) { echo $image_html; } echo ' </article>'; $processed_activities[] = $activity_id; $done = true; } } } } $gs_counter++; genesis_markup(array('html5' => '</article>', 'xhtml' => '</div>')); }
<?php /** * Blogs loop * * @package BuddyPress * @subpackage Templatepack */ ?> <?php do_action('bp_before_blogs_loop'); ?> <?php if (bp_has_blogs(bp_ajax_querystring('blogs'))) { ?> <div id="pagination-top" class="pagination"> <div class="pagination-count"> <?php bp_blogs_pagination_count(); ?> </div> <div class="pagination-links"> <?php bp_blogs_pagination_links(); ?> </div>
<?php if (bp_group_has_members(bp_ajax_querystring('group_members'))) { ?> <?php /** * Fires before the display of the group members content. * * @since 1.1.0 */ do_action('bp_before_group_members_content'); ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="member-count-top"> <?php bp_members_pagination_count(); ?> </div> <div class="pagination-links" id="member-pag-top"> <?php bp_members_pagination_links(); ?> </div>
/** * BuddyPress - Members Loop * * Querystring is set via AJAX in _inc/ajax.php - bp_legacy_theme_object_filter() * * @package BuddyPress * @subpackage bp-legacy */ ?> <?php do_action('bp_before_members_loop'); ?> <?php if (bp_has_members(bp_ajax_querystring('members') . '&per_page=' . sq_option('bp_members_perpage', 24))) { ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="member-dir-count-top"> <?php bp_members_pagination_count(); ?> </div> <div class="pagination-links" id="member-dir-pag-top"> <?php
?> <?php function edit_view_link( $view_link ){ return str_replace( __( 'View', 'buddypress' ), __( '+ more', 'yit' ), $view_link ); } add_filter('bp_get_member_latest_update', 'edit_view_link'); wp_enqueue_script( 'jquery-masonry' ); ?> <?php do_action( 'bp_before_members_loop' ); ?> <?php if ( bp_has_members( bp_ajax_querystring( 'members' ) ) ) : ?> <div id="pag-top" class="pagination"> <div class="pag-count" id="member-dir-count-top"> <?php bp_members_pagination_count(); ?> </div> <div class="pagination-links" id="member-dir-pag-top"> <?php bp_members_pagination_links(); ?> </div>
?> <?php do_action('bp_before_deposits_loop'); ?> <?php // Fill this string with the list of activity types // you want to see when the filter is set to "everything." // An easy way to get this list is to check out the html source // and get all the values of the <option>s. //driven off solr now $my_querystring = ''; // If the ajax string is empty, that usually means that // it's the first page of the "everything" filter. $querystring = bp_ajax_querystring('deposits'); if (empty($querystring)) { $querystring = $my_querystring; } // Handle subsequent pages of the "Everything" filter if ('page' == substr($querystring, 0, 4) && strlen($querystring) < 8) { $querystring = $my_querystring . '&' . $querystring; } ?> <?php if (humcore_has_deposits($querystring)) { ?> <?php
/** * BuddyPress - Activity Loop * * Querystring is set via AJAX in _inc/ajax.php - bp_dtheme_object_filter() * * @package BuddyPress * @subpackage BuddyBoss */ ?> <?php do_action('bp_before_activity_loop'); ?> <?php $qs = bp_ajax_querystring('activity'); global $bp; ?> <?php if (bp_has_activities($qs)) { ?> <?php /* Show pagination if JS is not enabled, since the "Load More" link will do nothing */ ?> <noscript> <div class="pagination"> <div class="pag-count"><?php bp_activity_pagination_count();
<?php do_action('bp_before_groups_loop'); ?> <?php if (bp_has_groups(bp_ajax_querystring('groups') . '&max=4')) { ?> <?php do_action('bp_before_directory_groups_list'); ?> <ul id="groups-list" class="item-list" role="main"> <?php while (bp_groups()) { bp_the_group(); ?> <li class="col-xs-12 col-md-6 col-sm-4 buddypress-listing"> <div class="item"> <a href="<?php bp_group_permalink(); ?> " class="wpsvse-tooltip" data-toggle="tooltip" data-placement="top" title="<?php bp_group_name(); ?> - <?php bp_group_member_count();
<?php if (function_exists('vibe_get_option')) { $loop_number = vibe_get_option('loop_number'); } if (!isset($loop_number) || !is_numeric($loop_number)) { $loop_number = 5; } $appended = '&per_page=' . $loop_number; if (bp_group_has_members(bp_ajax_querystring('group_members') . $appended)) { ?> <?php do_action('bp_before_group_members_content'); ?> <div id="pag-top" class="pagination no-ajax"> <div class="pag-count" id="member-count-top"> <?php bp_members_pagination_count(); ?> </div> <div class="pagination-links" id="member-pag-top"> <?php bp_members_pagination_links(); ?>
* BuddyPress - Members Loop * * Querystring is set via AJAX in _inc/ajax.php - bp_legacy_theme_object_filter() * * @package BuddyPress * @subpackage bp-legacy */ global $bp, $members_template, $wpdb; ?> <?php do_action('bp_before_members_loop'); ?> <?php if (bp_has_members(bp_ajax_querystring('members') . '&type=alphabetical&per_page=999')) { ?> <?php do_action('bp_before_directory_members_list'); ?> <ul id="members-list" class="item-list" role="main"> <?php while (bp_members()) { bp_the_member(); $groups = ''; $user_id = bp_get_member_user_id(); $group_ids = $wpdb->get_results("SELECT group_id FROM wp_bp_groups_members WHERE user_id={$user_id}"); foreach ($group_ids as $group) {
<?php do_action('bp_before_directory_blogs_page'); ?> <div id="content"> <div class="padder"> <?php do_action('bp_before_directory_blogs'); ?> <form action="" method="post" id="blogs-directory-form" class="dir-form"> <?php global $bp_blogs, $blogs_template; $bp_blogs = bp_has_blogs(bp_ajax_querystring('blogs')); $max_pages = max(ceil($blogs_template->total_blog_count / 14), 1); ?> <h3><?php _e('Site Directory', 'huddle'); ?> </h3> <p class="subtitle"> <?php bp_blogs_pagination_count(); ?> <?php if (is_user_logged_in() && bp_blog_signup_enabled()) { ?> <a class="btn-gray quick-create-blog" href="<?php
<?php do_action('bp_before_events_loop'); ?> <?php $showevent = 1; $jes_adata = get_option('jes_events'); $eshowevent = $jes_adata['jes_events_addnavicatalog_disable']; $sortby = $jes_adata['jes_events_sort_by']; ?> <?php if (bp_jes_has_events(bp_ajax_querystring('events'))) { ?> <div class="pagination"> <div class="pag-count" id="group-dir-count"> <?php jes_bp_events_pagination_count(); ?> </div> <div class="pagination-links" id="group-dir-pag"> <?php jes_bp_events_pagination_links(); ?> <?php _e('Style:', 'jet-event-system'); ?> <?php _e($jes_adata['jes_events_style'], 'jet-event-system');
/** * BuddyPress - Members Messages Loop * * @package BuddyPress * @subpackage bp-legacy */ /** * Fires before the members messages loop. * * @since 1.2.0 */ do_action('bp_before_member_messages_loop'); ?> <?php if (bp_has_message_threads(bp_ajax_querystring('messages'))) { ?> <div class="pagination no-ajax" id="user-pag"> <div class="pag-count" id="messages-dir-count"> <?php bp_messages_pagination_count(); ?> </div> <div class="pagination-links" id="messages-dir-pag"> <?php bp_messages_pagination(); ?> </div>
<?php /** * Apocrypha Theme Members Loop * Andrew Clayton * Version 2.0 * 10-11-2014 */ // Get the default querystring $query = bp_ajax_querystring('groups'); parse_str($query, $args); // Determine if a specific faction is requested $factions = array('aldmeri', 'daggerfall', 'ebonheart', 'neutral'); if (isset($args['scope']) && in_array($args['scope'], $factions)) { $faction = $args['scope']; } elseif (isset($_GET['faction']) && in_array($_GET['faction'], $factions)) { $faction = $_GET['faction']; } // If a specific faction was requested, filter for it if (isset($faction)) { $args['meta_query'] = array(array('key' => 'group_faction', 'value' => $faction, 'compare' => '=')); } ?> <?php if (bp_has_groups($args)) { ?> <ul id="groups-list" class="directory-list" role="main"> <?php // Loop through all members
/** * BuddyPress - Activity Loop * * Querystring is set via AJAX in _inc/ajax.php - bp_dtheme_object_filter() * * @package BuddyPress * @subpackage bp-default */ ?> <?php do_action('bp_before_activity_loop'); ?> <?php if (bp_has_activities(bp_ajax_querystring('activity'))) { ?> <?php /* Show pagination if JS is not enabled, since the "Load More" link will do nothing */ ?> <noscript> <div class="pagination"> <div class="pag-count"><?php bp_activity_pagination_count(); ?> </div> <div class="pagination-links"><?php bp_activity_pagination_links(); ?> </div>
/** * Use WordPress Heartbeat API to check for latest activity update. * * @since 2.0.0 * * @uses bp_activity_get_last_updated() to get the recorded date of the last activity. * * @param array $response Array containing Heartbeat API response. * @param array $data Array containing data for Heartbeat API response. * @return array $response */ function bp_activity_heartbeat_last_recorded($response = array(), $data = array()) { if (empty($data['bp_activity_last_recorded'])) { return $response; } // Use the querystring argument stored in the cookie (to preserve // filters), but force the offset to get only new items. $activity_latest_args = bp_parse_args(bp_ajax_querystring('activity'), array('since' => date('Y-m-d H:i:s', $data['bp_activity_last_recorded'])), 'activity_latest_args'); if (!empty($data['bp_activity_last_recorded_search_terms']) && empty($activity_latest_args['search_terms'])) { $activity_latest_args['search_terms'] = addslashes($data['bp_activity_last_recorded_search_terms']); } $newest_activities = array(); $last_activity_recorded = 0; // Temporarily add a just-posted class for new activity items. add_filter('bp_get_activity_css_class', 'bp_activity_newest_class', 10, 1); ob_start(); if (bp_has_activities($activity_latest_args)) { while (bp_activities()) { bp_the_activity(); $atime = strtotime(bp_get_activity_date_recorded()); if ($last_activity_recorded < $atime) { $last_activity_recorded = $atime; } bp_get_template_part('activity/entry'); } } $newest_activities['activities'] = ob_get_contents(); $newest_activities['last_recorded'] = $last_activity_recorded; ob_end_clean(); // Remove the temporary filter. remove_filter('bp_get_activity_css_class', 'bp_activity_newest_class', 10, 1); if (!empty($newest_activities['last_recorded'])) { $response['bp_activity_newest_activities'] = $newest_activities; } return $response; }