/** * SETUP MENU, ADD NAVIGATION OPTIONS * * @since BuddyBoss 2.0 * @todo: cache the amount of pics */ function setup_menu() { global $wpdb, $bp; $photos_user_id = $bp->displayed_user->id; $activity_table = $wpdb->prefix . "bp_activity"; $activity_meta_table = $wpdb->prefix . "bp_activity_meta"; // Prepare a SQL query to retrieve the activity posts // that have pictures associated with them $sql = "SELECT COUNT(*) as photo_count FROM {$activity_table} a INNER JOIN {$activity_meta_table} am ON a.id = am.activity_id WHERE a.user_id = %d AND meta_key = 'bboss_pics_aid'"; $sql = $wpdb->prepare($sql, $photos_user_id); buddy_boss_log(' MENU PHOTO COUNT SQL '); buddy_boss_log($sql); $photos_cnt = $wpdb->get_var($sql); /* Add 'Photos' to the main user profile navigation */ bp_core_new_nav_item(array('name' => sprintf(__('Photos <span>%d</span>', 'buddyboss'), $photos_cnt), 'slug' => BUDDY_BOSS_PICS_SLUG, 'position' => 80, 'screen_function' => 'buddyboss_pics_screen_picture_grid', 'default_subnav_slug' => 'my-gallery')); $buddyboss_pics_link = $bp->displayed_user->domain . BUDDY_BOSS_PICS_SLUG . '/'; bp_core_new_subnav_item(array('name' => __('Photos', 'buddypress'), 'slug' => 'my-gallery', 'parent_slug' => BUDDY_BOSS_PICS_SLUG, 'parent_url' => $buddyboss_pics_link, 'screen_function' => 'buddyboss_pics_screen_picture_grid', 'position' => 10)); }
/** * 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; }