<?php while (bp_activities()) { bp_the_activity(); ?> <?php include locate_template(array('activity/entry.php'), false); ?> <?php } ?> <?php if (bp_get_activity_count() == bp_get_activity_per_page()) { ?> <li class="load-more"> <a href="#more"><?php _e('Load More', 'buddypress'); ?> </a> <span class="ajax-loader"></span> </li> <?php } ?> <?php if (empty($_POST['page'])) { ?> </ul>
/** * GET WALL ACTIVITES */ function get_wall_activities($page = 0, $per_page = 20) { global $bp, $wpdb; $min = $page > 0 ? ($page - 1) * $per_page : 0; $max = ($page + 1) * $per_page; $per_page = bp_get_activity_per_page(); buddy_boss_log(" per page {$per_page}"); if (isset($bp->loggedin_user) && isset($bp->loggedin_user->id) && $bp->displayed_user->id == $bp->loggedin_user->id) { $myprofile = true; } else { $myprofile = false; } $wpdb->show_errors = BUDDY_BOSS_DEBUG; $user_id = $bp->displayed_user->id; buddy_boss_log("Looking at {$user_id}"); $filter = addslashes($bp->displayed_user->fullname); $friend_ids = friends_get_friend_user_ids($user_id); $admin_ids = array(); //buddyboss_users_by_role( 'administrator' ); $friend_ids = array_merge($friend_ids, $admin_ids); // var_dump($friend_ids); buddy_boss_log($friend_ids); if (!empty($friend_ids)) { $friend_id_list = implode(",", $friend_ids); } buddy_boss_log($friend_id_list); $table = $wpdb->prefix . bp_activity; $table2 = $wpdb->prefix . bp_activity_meta; // Group Display code if (array_search("groups", $bp->active_components)) { $groups = BP_Groups_Member::get_group_ids($user_id); } //var_dump($groups); $valid_groups = array(); if (!empty($groups)) { foreach ($groups['groups'] as $id) { $group = new BP_Groups_Group($id); //var_dump($group); if ("public" == $group->status) { //echo $group->slug; $valid_groups[] = $id; } $user_group[] = $group->slug; } } $group_modifier = "OR ( {$table}.user_id = {$user_id} AND {$table}.component = 'groups' ) "; $group_mentions = "OR ( {$table}.component = 'groups' AND ({$table}.content LIKE '%@{$filter}%'))"; $friendships = "OR ( {$table}.user_id = {$user_id} AND {$table}.component = 'friends' )"; $mentions_modifier = "OR ( {$table}.component = 'activity' AND {$table}.action LIKE '%@{$filter}%' ) "; //$mem_slugs = $bp->members->slug; $friends_modifier = "OR ( {$table2}.meta_value LIKE '%{$filter}%' AND {$table}.type!='activity_comment') "; $qry = "SELECT {$table}.id FROM {$table} LEFT JOIN {$table2} ON {$table}.id={$table2}.activity_id\r\n\t\t\tWHERE ( {$table}.user_id = {$user_id} AND {$table}.type!='activity_comment' AND {$table}.type!='friends' )\r\n\t\t\t{$friends_modifier}\r\n\t\t\t{$group_modifier}\r\n\t\t\t{$group_mentions}\r\n\t\t\t{$friendships}\r\n\t\t\t{$mentions_modifier}\r\n\t\t\tORDER BY date_recorded DESC LIMIT {$min}, 30"; //echo $qry; $activities = $wpdb->get_results($qry, ARRAY_A); //var_dump($wpdb->print_error()); buddy_boss_log($qry); buddy_boss_log($activities); if (empty($activities)) { return null; } $tmp = array(); foreach ($activities as $a) { $tmp[] = $a["id"]; } $activity_list = implode(",", $tmp); return $activity_list; }
/** * Outputs the number of activities per page * * @since 1.2.0 * * @uses bp_get_activity_per_page() */ function bp_activity_per_page() { echo bp_get_activity_per_page(); }
/** * GET FEED ACTIVITES */ function get_feed_activities($page = 0, $per_page = 20) { global $bp, $wpdb, $buddyboss_ajax_qs; $min = $page > 0 ? ($page - 1) * $per_page : 0; $max = ($page + 1) * $per_page; $per_page = bp_get_activity_per_page(); buddyboss_log("per page: {$per_page}"); if (isset($bp->loggedin_user) && isset($bp->loggedin_user->id) && $bp->displayed_user->id == $bp->loggedin_user->id) { $myprofile = true; } else { $myprofile = false; } $wpdb->show_errors = BUDDYBOSS_DEBUG; $user_id = $bp->displayed_user->id; $user_name = $bp->displayed_user->userdata->user_login; $filter = $bp->displayed_user->domain; buddyboss_log("Looking at {$user_id}"); // Get friend's user IDs $user_ids = friends_get_friend_user_ids($user_id, false, false); // Add logged in user to news feed results // $user_ids[] = $user_id; $user_list = implode(',', $user_ids); // buddyboss_log( $friend_id_list ); $table = bp_core_get_table_prefix() . 'bp_activity'; $table2 = bp_core_get_table_prefix() . 'bp_activity_meta'; // Default WHERE $where = "WHERE ( {$table}.user_id IN ({$user_list}) AND {$table}.type != 'activity_comment' )"; // Add when user joined a group $group_modifier = "OR ( {$table}.user_id = {$user_id} AND {$table}.component = 'groups' ) "; // If we have a filter enabled, let's handle that $ajax_qs = !empty($buddyboss_ajax_qs) ? wp_parse_args($buddyboss_ajax_qs) : false; if (is_array($ajax_qs) && isset($ajax_qs['action'])) { // Clear group modifier $group_modifier = ''; $filter_qs = $ajax_qs['action']; // Check for commas and adjust if (strpos($filter_qs, ',')) { $filters = explode(',', $filter_qs); } else { $filters = (array) $filter_qs; } // Clean each filter $filters_clean = array(); foreach ($filters as $filter) { $filters_clean[] = $wpdb->escape($filter); } $filter_sql = "AND ( {$table}.type='" . implode("' OR {$table}.type='", $filters_clean) . "' )"; $where = "WHERE ( {$table}.user_id IN ({$user_list}) {$filter_sql} )"; } // Filter where SQL $where_filtered = apply_filters('buddyboss_wall_query_feed_activity_ids_where', $where); // Filter modifier SQL $group_filtered = apply_filters('buddyboss_wall_query_feed_activity_ids_groups', $group_modifier); // Build Query $query_sql = "SELECT DISTINCT {$table}.id FROM {$table} LEFT JOIN {$table2} ON {$table}.id = {$table2}.activity_id\n\t\t\t{$where_filtered}\n\t\t\t{$group_filtered}\n\t\t\tORDER BY date_recorded DESC LIMIT {$min}, 40"; // Filter full query SQL $query_filtered = apply_filters('buddyboss_wall_query_feed_activity_ids_full', $query_sql); // Run query $activities = $wpdb->get_results($query_filtered, ARRAY_A); buddyboss_log($query_filtered); buddyboss_log($activities); if (empty($activities)) { return null; } $tmp = array(); foreach ($activities as $a) { $tmp[] = $a["id"]; } $activity_list = implode(",", $tmp); return $activity_list; }