本文整理汇总了PHP中BP_Groups_Member::get_group_ids方法的典型用法代码示例。如果您正苦于以下问题:PHP BP_Groups_Member::get_group_ids方法的具体用法?PHP BP_Groups_Member::get_group_ids怎么用?PHP BP_Groups_Member::get_group_ids使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BP_Groups_Member
的用法示例。
在下文中一共展示了BP_Groups_Member::get_group_ids方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: set_up_user_groups
/**
* Get a list of a user's groups, as well as those groups of which
* the user is an admin or mod
*
* @since 1.2
*/
protected function set_up_user_groups()
{
$groups = BP_Groups_Member::get_group_ids($this->user_id);
$this->user_groups['groups'] = $groups['groups'];
$admin_groups = BP_Groups_Member::get_is_admin_of($this->user_id);
$mod_groups = BP_Groups_Member::get_is_mod_of($this->user_id);
$this->user_groups['admin_mod_of'] = array_merge(wp_list_pluck($admin_groups['groups'], 'id'), wp_list_pluck($mod_groups['groups'], 'id'));
}
示例2: delete_all_for_user
/**
* Delete all group membership information for the specified user
*
* @global object $bp BuddyPress global settings
* @global wpdb $wpdb WordPress database object
* @param int $user_id
* @since 1.0
* @uses BP_Groups_Member
*/
function delete_all_for_user($user_id)
{
global $bp, $wpdb;
// Get all the group ids for the current user's groups and update counts
$group_ids = BP_Groups_Member::get_group_ids($user_id);
foreach ($group_ids['groups'] as $group_id) {
groups_update_groupmeta($group_id, 'total_member_count', groups_get_total_member_count($group_id) - 1);
// If current user is the creator of a group and is the sole admin, delete that group to avoid counts going out-of-sync
if (groups_is_user_admin($user_id, $group_id) && count(groups_get_group_admins($group_id)) < 2 && groups_is_user_creator($user_id, $group_id)) {
groups_delete_group($group_id);
}
}
return $wpdb->query($wpdb->prepare("DELETE FROM {$bp->groups->table_name_members} WHERE user_id = %d", $user_id));
}
示例3: groups_get_user_groups
/**
* Get the IDs of the groups of which a specified user is a member.
*
* @param int $user_id ID of the user.
* @param int $pag_num Optional. Max number of results to return.
* Default: false (no limit).
* @param int $pag_page Optional. Page offset of results to return.
* Default: false (no limit).
* @return array {
* @type array $groups Array of groups returned by paginated query.
* @type int $total Count of groups matching query.
* }
*/
function groups_get_user_groups($user_id = 0, $pag_num = 0, $pag_page = 0)
{
if (empty($user_id)) {
$user_id = bp_displayed_user_id();
}
return BP_Groups_Member::get_group_ids($user_id, $pag_num, $pag_page);
}
示例4: filter_user_groups
function filter_user_groups($filter, $user_id = false, $order = false, $limit = null, $page = null)
{
global $wpdb, $bp;
if (!$user_id) {
$user_id = $bp->displayed_user->id;
}
like_escape($filter);
if ($limit && $page) {
$pag_sql = $wpdb->prepare(" LIMIT %d, %d", intval(($page - 1) * $limit), intval($limit));
}
// Get all the group ids for the current user's groups.
$gids = BP_Groups_Member::get_group_ids($user_id, false, false, false, true);
if (!$gids['groups']) {
return false;
}
$gids = implode(',', $gids['groups']);
$paged_groups = $wpdb->get_results($wpdb->prepare("SELECT id as group_id FROM {$bp->groups->table_name} WHERE ( name LIKE '{$filter}%%' OR description LIKE '{$filter}%%' ) AND id IN ({$gids}) {$pag_sql}"));
$total_groups = $wpdb->get_var($wpdb->prepare("SELECT count(id) FROM {$bp->groups->table_name} WHERE ( name LIKE '{$filter}%%' OR description LIKE '{$filter}%%' ) AND id IN ({$gids})"));
return array('groups' => $paged_groups, 'total' => $total_groups);
}
示例5: bp_em_group_events_build_sql_conditions
function bp_em_group_events_build_sql_conditions($conditions, $args)
{
if (!empty($args['group']) && is_numeric($args['group'])) {
$conditions['group'] = "( `group_id`={$args['group']} )";
} elseif (!empty($args['group']) && $args['group'] == 'my') {
$groups = groups_get_user_groups(get_current_user_id());
if (count($groups) > 0) {
$conditions['group'] = "( `group_id` IN (" . implode(',', $groups['groups']) . ") )";
}
}
//deal with private groups and events
if (is_user_logged_in()) {
global $wpdb;
//find out what private groups they belong to, and don't show private group events not in their memberships
$group_ids = BP_Groups_Member::get_group_ids(get_current_user_id());
if ($group_ids['total'] > 0) {
$conditions['group_privacy'] = "(`event_private`=0 OR (`event_private`=1 AND (`group_id` IS NULL OR `group_id` = 0)) OR (`event_private`=1 AND `group_id` IN (" . implode(',', $group_ids['groups']) . ")))";
} else {
//find out what private groups they belong to, and don't show private group events not in their memberships
$conditions['group_privacy'] = "(`event_private`=0 OR (`event_private`=1 AND (`group_id` IS NULL OR `group_id` = 0)))";
}
}
return $conditions;
}
示例6: gtags_activity_for_item
function gtags_activity_for_item($args)
{
global $wpdb, $bp;
ob_start();
$defaults = array('group_ids' => '', 'scope' => '', 'show' => 4, 'show_more' => 8, 'truncate' => 190);
$args = wp_parse_args($args, $defaults);
extract($args, EXTR_SKIP);
if ($scope == 'my' && is_user_logged_in()) {
$my_groups = BP_Groups_Member::get_group_ids($bp->loggedin_user->id);
$group_ids = array_intersect($group_ids, $my_groups['groups']);
$show_hidden = true;
}
if (empty($group_ids)) {
echo '<div class="recent recent-none-found">' . __('Sorry no groups were found.', 'gtags') . '</div>';
return;
}
?>
<div class="recent"><?php
// generate source group links
foreach ($group_ids as $group_id) {
$group = groups_get_group(array('group_id' => $group_id));
$avatar = bp_core_fetch_avatar('object=group&type=thumb&width=50&height=50&item_id=' . $group->id);
$group_output .= $sep . '<a href="' . bp_get_group_permalink($group) . '" class="recent-group-avatar">' . $avatar . ' ' . $group->name . '</a>';
$sep = ', ';
//compile group data to be used in loop below
$the_groups[$group->id] = array('permalink' => bp_get_group_permalink($group), 'name' => bp_get_group_name($group), 'avatar' => $avatar);
}
?>
<div class="gtags-recent-groups">
<?php
_e('Recent Activity From', 'gtags');
?>
<a href="#" class="gtags-more-groups"><?php
_e('these groups +', 'gtags');
?>
</a>
<div class="gtags-recent-groups-list"><?php
echo $group_output;
?>
</div>
</div>
<?php
// fetch a whole bunch of activity so we can sort them by date below, otherwise they are sorted by group
$filter = array('user_id' => false, 'object' => 'groups', 'action' => false, 'primary_id' => implode(',', (array) $group_ids));
$activity = bp_activity_get(array('max' => 1000, 'per_page' => 1000, 'filter' => $filter, 'show_hidden' => $show_hidden));
//$type_skip = apply_filters( 'gtags_type_skip', array( 'joined_group' ) ); // array of activity types to skip
// generate a cleaned array of content
foreach ($activity['activities'] as $item) {
if (in_array($item->type, (array) $type_skip)) {
continue;
}
$action = preg_replace('/:$/', '', $item->action);
// remove trailing colon in activity
$action = apply_filters('gtags_action', $action);
$content = strip_tags(stripslashes($item->content));
if ($truncate && strlen($content) > $truncate) {
$content = substr($content, 0, $truncate) . '... ';
}
if ($content) {
$content .= ' <a href="' . $item->primary_link . '">view</a>';
}
$activity_list[$item->date_recorded] = array('action' => $action, 'group_id' => $item->item_id, 'content' => $content, 'primary_link' => $item->primary_link, 'user_id' => $item->user_id);
}
if (empty($activity_list)) {
echo __("Sorry, there was no activity found.", 'gtags');
echo "</div>";
//close the div
return;
}
// sort them by date (regardless of group)
ksort($activity_list);
$activity_list = array_reverse($activity_list);
// output pretty html for recent activity for groups
foreach ((array) $activity_list as $date => $item) {
$i++;
$group_id = $item['group_id'];
$action = $item['action'];
// show only a certain amount, after that make a 'show more' link and show the rest in a hidden div
if ($i == $show + 1 && $show_more) {
?>
<a href="#" class="gtags-more-activity"><?php
_e('show more +', 'gtags');
?>
</a>
<div class="gtags-more-content"><?php
$more_link = true;
}
if ($i > $show + $show_more + 1) {
break;
}
// for repeating group content, remove group link and shrink group avatar
if ($prev_group_id == $group_id) {
$action = preg_replace('/ in the group(.*)$/i', '', $action);
$dup_class = ' duplicate-group';
} else {
$dup_class = '';
}
$prev_group_id = $group_id;
// group avatar
echo '<a href="' . $the_groups[$group_id]['permalink'] . '" title="' . $the_groups[$group_id]['name'] . '" class="gtags-item-group-avatar' . $dup_class . '">' . $the_groups[$group_id]['avatar'] . '</a>';
//.........这里部分代码省略.........
示例7: filter_user_groups
/**
* Get a list of a user's groups, filtered by a search string.
*
* @param string $filter Search term. Matches against 'name' and
* 'description' fields.
* @param int $user_id ID of the user whose groups are being searched.
* Default: the displayed user.
* @param mixed $order Not used.
* @param int|null $limit Optional. The max number of results to return.
* Default: null (no limit).
* @param int|null $page Optional. The page offset of results to return.
* Default: null (no limit).
* @return false|array {
* @type array $groups Array of matched and paginated group objects.
* @type int $total Total count of groups matching the query.
* }
*/
public static function filter_user_groups($filter, $user_id = 0, $order = false, $limit = null, $page = null)
{
global $wpdb;
if (empty($user_id)) {
$user_id = bp_displayed_user_id();
}
$search_terms_like = bp_esc_like($filter) . '%';
$pag_sql = $order_sql = $hidden_sql = '';
if (!empty($limit) && !empty($page)) {
$pag_sql = $wpdb->prepare(" LIMIT %d, %d", intval(($page - 1) * $limit), intval($limit));
}
// Get all the group ids for the current user's groups.
$gids = BP_Groups_Member::get_group_ids($user_id);
if (empty($gids['groups'])) {
return false;
}
$bp = buddypress();
$gids = esc_sql(implode(',', wp_parse_id_list($gids['groups'])));
$paged_groups = $wpdb->get_results($wpdb->prepare("SELECT id as group_id FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) AND id IN ({$gids}) {$pag_sql}", $search_terms_like, $search_terms_like));
$total_groups = $wpdb->get_var($wpdb->prepare("SELECT COUNT(id) FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) AND id IN ({$gids})", $search_terms_like, $search_terms_like));
return array('groups' => $paged_groups, 'total' => $total_groups);
}
示例8: groups_get_user_groups
function groups_get_user_groups($user_id = 0, $pag_num = 0, $pag_page = 0)
{
global $bp;
if (!$user_id) {
$user_id = $bp->displayed_user->id;
}
return BP_Groups_Member::get_group_ids($user_id, $pag_num, $pag_page);
}
示例9: get_wall_activities
/**
* 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;
}
示例10: groups_get_user_groups
function groups_get_user_groups($pag_num, $pag_page)
{
global $bp;
$groups = BP_Groups_Member::get_group_ids($bp->displayed_user->id, $pag_num, $pag_page);
return array('groups' => $groups['ids'], 'total' => $groups['total']);
}
示例11: wangguard_spam_all_data
function wangguard_spam_all_data($user_id)
{
global $wpdb, $bp;
$wpdb->query($wpdb->prepare("DELETE FROM {$bp->blogs->table_name} WHERE user_id = %d", $user_id));
friends_remove_data($user_id);
$group_ids = BP_Groups_Member::get_group_ids($user_id);
foreach ($group_ids['groups'] as $group_id) {
groups_update_groupmeta($group_id, 'total_member_count', groups_get_total_member_count($group_id) - 1);
// If current user is the creator of a group and is the sole admin, delete that group to avoid counts going out-of-sync
if (groups_is_user_admin($user_id, $group_id) && count(groups_get_group_admins($group_id)) < 2 && groups_is_user_creator($user_id, $group_id)) {
groups_delete_group($group_id);
}
}
return $wpdb->query($wpdb->prepare("DELETE FROM {$bp->groups->table_name_members} WHERE user_id = %d", $user_id));
BP_Groups_Member::delete_all_for_user($user_id);
}
示例12: ez_bp_profile_current_visitor_is
/**
* Evaluates current visitor and determines what a vistor is relative to various biz rules. these "flags" are used for managing editability and visibility.
*/
public function ez_bp_profile_current_visitor_is($int_compare_to_user_id = '')
{
global $bp;
// start with nothing
$arr_visitor_is = array();
// EVERY visitor gets to see public - if there is any public
$arr_visitor_is['public'] = true;
/**
* If the visitor is not loggedin then all other checks are irrelevant; so save time and return if not logged in.
*/
if (is_user_logged_in()) {
$arr_visitor_is['loggedin'] = true;
} else {
return $arr_visitor_is;
}
// now that we're sure we have a logged in visitor use the $bp global to work some magic
$int_loggedin_user_id = $bp->loggedin_user->id;
$int_displayed_user_id = $bp->displayed_user->id;
/**
* fyi - did you notice, we're going to allow a user id to be passed in and used for the current loggedin user.
* we don't really need this now per se, but it made sense to bake it in for later, just in case.
*/
if (is_int($int_compare_to_user_id)) {
$int_displayed_user_id = $int_compare_to_user_id;
}
/**
* what if you want more layers in your organization? then you only have to customize this one method.
*/
$arr_visitor_is_custom = $this->ez_bp_profile_current_visitor_is_custom($int_compare_to_user_id = '');
// if we get an array back then merge it in
if (is_array($arr_visitor_is_custom)) {
$arr_visitor_is = array_merge($arr_visitor_is, $arr_visitor_is_custom);
}
// if the loggedin user is the display / compare to user then set the user flag and return 'cause checking friends and groups doesn't make sense.
if ($int_loggedin_user_id == $int_displayed_user_id) {
$arr_visitor_is['user'] = true;
return $arr_visitor_is;
}
if (bp_is_active('friends')) {
if (friends_check_friendship($int_displayed_user_id, $int_loggedin_user_id)) {
$arr_visitor_is['friends'] = true;
}
}
if (bp_is_active('groups')) {
// does the current (loggedin) visitor share any groups with the profile'd person?
if ($int_loggedin_user_id != $int_displayed_user_id) {
$arr_displayed_user_id_groups = BP_Groups_Member::get_group_ids($int_displayed_user_id);
$arr_loggedin_user_id_groups = BP_Groups_Member::get_group_ids($int_loggedin_user_id);
$arr_intersect_groups = array_intersect($arr_displayed_user_id_groups['groups'], $arr_loggedin_user_id_groups['groups']);
// intersect means the users have a group(s) in common
if (!empty($arr_intersect_groups)) {
$arr_visitor_is['groups'] = true;
}
}
}
return $arr_visitor_is;
}
开发者ID:WPezClasses,项目名称:class-wp-ezclasses-buddypress-editability-visibility-1,代码行数:60,代码来源:class-wp-ezclasses-buddypress-editability-visibility-1.php