Beispiel #1
0
?>

<?php 
if (bp_has_groups('type=invites&user_id=' . bp_loggedin_user_id())) {
    ?>

	<ul id="group-list" class="invites item-list">

		<?php 
    while (bp_groups()) {
        bp_the_group();
        ?>

			<li>
				<?php 
        if (!bp_disable_group_avatar_uploads()) {
            ?>
					<div class="item-avatar">
						<a href="<?php 
            bp_group_permalink();
            ?>
"><?php 
            bp_group_avatar('type=thumb&width=50&height=50');
            ?>
</a>
					</div>
				<?php 
        }
        ?>

				<h4><a href="<?php 
/**
 * Get a group's avatar.
 *
 * @since 1.0.0
 *
 * @see bp_core_fetch_avatar() For a description of arguments and return values.
 * @param array|string $args {
 *     Arguments are listed here with an explanation of their defaults.
 *     For more information about the arguments, see {@link bp_core_fetch_avatar()}.
 *
 *     @type string   $alt     Default: 'Group logo of [group name]'.
 *     @type string   $class   Default: 'avatar'.
 *     @type string   $type    Default: 'full'.
 *     @type int|bool $width   Default: false.
 *     @type int|bool $height  Default: false.
 *     @type bool     $id      Passed to `$css_id` parameter.
 * }
 * @return string Group avatar string.
 */
function bp_get_group_avatar($args = '')
{
    global $groups_template;
    // Bail if avatars are turned off.
    if (bp_disable_group_avatar_uploads() || !buddypress()->avatar->show_avatars) {
        return false;
    }
    // Parse the arguments.
    $r = bp_parse_args($args, array('type' => 'full', 'width' => false, 'height' => false, 'class' => 'avatar', 'id' => false, 'alt' => sprintf(__('Group logo of %s', 'buddypress'), $groups_template->group->name)));
    // Fetch the avatar from the folder.
    $avatar = bp_core_fetch_avatar(array('item_id' => $groups_template->group->id, 'title' => $groups_template->group->name, 'avatar_dir' => 'group-avatars', 'object' => 'group', 'type' => $r['type'], 'alt' => $r['alt'], 'css_id' => $r['id'], 'class' => $r['class'], 'width' => $r['width'], 'height' => $r['height']));
    // If No avatar found, provide some backwards compatibility.
    if (empty($avatar)) {
        $avatar = '<img src="' . esc_url($groups_template->group->avatar_thumb) . '" class="avatar" alt="' . esc_attr($groups_template->group->name) . '" />';
    }
    /**
     * Filters the group avatar while in the groups loop.
     *
     * @since 1.0.0
     *
     * @param string $avatar HTML image element holding the group avatar.
     * @param array  $r      Array of parsed arguments for the group avatar.
     */
    return apply_filters('bp_get_group_avatar', $avatar, $r);
}
/**
 * Checks whether Avatar UI should be loaded.
 *
 * @since  2.3.0
 *
 * @return bool True if Avatar UI should load, false otherwise.
 */
function bp_avatar_is_front_edit()
{
    $retval = false;
    // No need to carry on if the current WordPress version is not supported.
    if (!bp_attachments_is_wp_version_supported()) {
        return $retval;
    }
    if (bp_is_user_change_avatar() && 'crop-image' !== bp_get_avatar_admin_step()) {
        $retval = !bp_core_get_root_option('bp-disable-avatar-uploads');
    }
    if (bp_is_active('groups')) {
        // Group creation
        if (bp_is_group_create() && bp_is_group_creation_step('group-avatar') && 'crop-image' !== bp_get_avatar_admin_step()) {
            $retval = !bp_disable_group_avatar_uploads();
            // Group Manage
        } elseif (bp_is_group_admin_page() && bp_is_group_admin_screen('group-avatar') && 'crop-image' !== bp_get_avatar_admin_step()) {
            $retval = !bp_disable_group_avatar_uploads();
        }
    }
    /**
     * Use this filter if you need to :
     * - Load the avatar UI for a component that is !groups or !user (return true regarding your conditions)
     * - Completely disable the avatar UI introduced in 2.3 (eg: __return_false())
     *
     * @since  2.3.0
     *
     * @param bool whether to load the Avatar UI.
     */
    return apply_filters('bp_avatar_is_front_edit', $retval);
}
/**
 * Handle the display of a group's Change Avatar page.
 */
function groups_screen_group_admin_avatar()
{
    if ('group-avatar' != bp_get_group_current_admin_tab()) {
        return false;
    }
    // If the logged-in user doesn't have permission or if avatar uploads are disabled, then stop here.
    if (!bp_is_item_admin() || bp_disable_group_avatar_uploads() || !buddypress()->avatar->show_avatars) {
        return false;
    }
    $bp = buddypress();
    // If the group admin has deleted the admin avatar.
    if (bp_is_action_variable('delete', 1)) {
        // Check the nonce.
        check_admin_referer('bp_group_avatar_delete');
        if (bp_core_delete_existing_avatar(array('item_id' => $bp->groups->current_group->id, 'object' => 'group'))) {
            bp_core_add_message(__('The group profile photo was deleted successfully!', 'buddypress'));
        } else {
            bp_core_add_message(__('There was a problem deleting the group profile photo. Please try again.', 'buddypress'), 'error');
        }
    }
    if (!isset($bp->avatar_admin)) {
        $bp->avatar_admin = new stdClass();
    }
    $bp->avatar_admin->step = 'upload-image';
    if (!empty($_FILES)) {
        // Check the nonce.
        check_admin_referer('bp_avatar_upload');
        // Pass the file to the avatar upload handler.
        if (bp_core_avatar_handle_upload($_FILES, 'groups_avatar_upload_dir')) {
            $bp->avatar_admin->step = 'crop-image';
            // Make sure we include the jQuery jCrop file for image cropping.
            add_action('wp_print_scripts', 'bp_core_add_jquery_cropper');
        }
    }
    // If the image cropping is done, crop the image and save a full/thumb version.
    if (isset($_POST['avatar-crop-submit'])) {
        // Check the nonce.
        check_admin_referer('bp_avatar_cropstore');
        $args = array('object' => 'group', 'avatar_dir' => 'group-avatars', 'item_id' => $bp->groups->current_group->id, 'original_file' => $_POST['image_src'], 'crop_x' => $_POST['x'], 'crop_y' => $_POST['y'], 'crop_w' => $_POST['w'], 'crop_h' => $_POST['h']);
        if (!bp_core_avatar_handle_crop($args)) {
            bp_core_add_message(__('There was a problem cropping the group profile photo.', 'buddypress'), 'error');
        } else {
            bp_core_add_message(__('The new group profile photo was uploaded successfully.', 'buddypress'));
        }
    }
    /**
     * Fires before the loading of the group Change Avatar page template.
     *
     * @since 1.0.0
     *
     * @param int $id ID of the group that is being displayed.
     */
    do_action('groups_screen_group_admin_avatar', $bp->groups->current_group->id);
    /**
     * Filters the template to load for a group's Change Avatar page.
     *
     * @since 1.0.0
     *
     * @param string $value Path to a group's Change Avatar template.
     */
    bp_core_load_template(apply_filters('groups_template_group_admin_avatar', 'groups/single/home'));
}
/**
 * 'Enable group avatars' field markup.
 *
 * @since 2.3.0
 */
function bp_admin_setting_callback_group_avatar_uploads()
{
    ?>
	<input id="bp-disable-group-avatar-uploads" name="bp-disable-group-avatar-uploads" type="checkbox" value="1" <?php 
    checked(!bp_disable_group_avatar_uploads());
    ?>
 />
	<label for="bp-disable-group-avatar-uploads"><?php 
    _e('Allow customizable avatars for groups', 'buddypress');
    ?>
</label>
<?php 
}
 /**
  * Set up component navigation.
  *
  * @since 1.5.0
  *
  * @see BP_Component::setup_nav() for a description of arguments.
  *
  * @param array $main_nav Optional. See BP_Component::setup_nav() for description.
  * @param array $sub_nav  Optional. See BP_Component::setup_nav() for description.
  */
 public function setup_nav($main_nav = array(), $sub_nav = array())
 {
     // Determine user to use.
     if (bp_displayed_user_domain()) {
         $user_domain = bp_displayed_user_domain();
     } elseif (bp_loggedin_user_domain()) {
         $user_domain = bp_loggedin_user_domain();
     } else {
         $user_domain = false;
     }
     // Only grab count if we're on a user page.
     if (bp_is_user()) {
         $count = bp_get_total_group_count_for_user();
         $class = 0 === $count ? 'no-count' : 'count';
         $nav_name = sprintf(_x('Groups <span class="%s">%s</span>', 'Group screen nav with counter', 'buddypress'), esc_attr($class), bp_core_number_format($count));
     } else {
         $nav_name = _x('Groups', 'Group screen nav without counter', 'buddypress');
     }
     $slug = bp_get_groups_slug();
     // Add 'Groups' to the main navigation.
     $main_nav = array('name' => $nav_name, 'slug' => $slug, 'position' => 70, 'screen_function' => 'groups_screen_my_groups', 'default_subnav_slug' => 'my-groups', 'item_css_id' => $this->id);
     if (!empty($user_domain)) {
         $access = bp_core_can_edit_settings();
         $groups_link = trailingslashit($user_domain . $slug);
         // Add the My Groups nav item.
         $sub_nav[] = array('name' => __('Memberships', 'buddypress'), 'slug' => 'my-groups', 'parent_url' => $groups_link, 'parent_slug' => $slug, 'screen_function' => 'groups_screen_my_groups', 'position' => 10, 'item_css_id' => 'groups-my-groups');
         // Add the Group Invites nav item.
         $sub_nav[] = array('name' => __('Invitations', 'buddypress'), 'slug' => 'invites', 'parent_url' => $groups_link, 'parent_slug' => $slug, 'screen_function' => 'groups_screen_group_invites', 'user_has_access' => $access, 'position' => 30);
         parent::setup_nav($main_nav, $sub_nav);
     }
     if (bp_is_groups_component() && bp_is_single_item()) {
         // Reset sub nav.
         $sub_nav = array();
         // Add 'Groups' to the main navigation.
         $main_nav = array('name' => __('Memberships', 'buddypress'), 'slug' => $this->current_group->slug, 'position' => -1, 'screen_function' => 'groups_screen_group_home', 'default_subnav_slug' => $this->default_extension, 'item_css_id' => $this->id);
         $group_link = bp_get_group_permalink($this->current_group);
         // Add the "Home" subnav item, as this will always be present.
         $sub_nav[] = array('name' => _x('Home', 'Group screen navigation title', 'buddypress'), 'slug' => 'home', 'parent_url' => $group_link, 'parent_slug' => $this->current_group->slug, 'screen_function' => 'groups_screen_group_home', 'position' => 10, 'item_css_id' => 'home');
         // If this is a private group, and the user is not a
         // member and does not have an outstanding invitation,
         // show a "Request Membership" nav item.
         if (is_user_logged_in() && !$this->current_group->is_user_member && !groups_check_for_membership_request(bp_loggedin_user_id(), $this->current_group->id) && $this->current_group->status == 'private' && !groups_check_user_has_invite(bp_loggedin_user_id(), $this->current_group->id)) {
             $sub_nav[] = array('name' => _x('Request Membership', 'Group screen nav', 'buddypress'), 'slug' => 'request-membership', 'parent_url' => $group_link, 'parent_slug' => $this->current_group->slug, 'screen_function' => 'groups_screen_group_request_membership', 'position' => 30);
         }
         // Forums are enabled and turned on.
         if ($this->current_group->enable_forum && bp_is_active('forums')) {
             $sub_nav[] = array('name' => _x('Forum', 'My Group screen nav', 'buddypress'), 'slug' => 'forum', 'parent_url' => $group_link, 'parent_slug' => $this->current_group->slug, 'screen_function' => 'groups_screen_group_forum', 'position' => 40, 'user_has_access' => $this->current_group->user_has_access, 'item_css_id' => 'forums');
         }
         if ($this->current_group->front_template || bp_is_active('activity')) {
             /**
              * If the theme is using a custom front, create activity subnav.
              */
             if ($this->current_group->front_template && bp_is_active('activity')) {
                 $sub_nav[] = array('name' => _x('Activity', 'My Group screen nav', 'buddypress'), 'slug' => 'activity', 'parent_url' => $group_link, 'parent_slug' => $this->current_group->slug, 'screen_function' => 'groups_screen_group_activity', 'position' => 11, 'user_has_access' => $this->current_group->user_has_access, 'item_css_id' => 'activity', 'no_access_url' => $group_link);
             }
             /**
              * Only add the members subnav if it's not the home's nav.
              */
             $sub_nav[] = array('name' => sprintf(_x('Members %s', 'My Group screen nav', 'buddypress'), '<span>' . number_format($this->current_group->total_member_count) . '</span>'), 'slug' => 'members', 'parent_url' => $group_link, 'parent_slug' => $this->current_group->slug, 'screen_function' => 'groups_screen_group_members', 'position' => 60, 'user_has_access' => $this->current_group->user_has_access, 'item_css_id' => 'members', 'no_access_url' => $group_link);
         }
         if (bp_is_active('friends') && bp_groups_user_can_send_invites()) {
             $sub_nav[] = array('name' => _x('Send Invites', 'My Group screen nav', 'buddypress'), 'slug' => 'send-invites', 'parent_url' => $group_link, 'parent_slug' => $this->current_group->slug, 'screen_function' => 'groups_screen_group_invite', 'item_css_id' => 'invite', 'position' => 70, 'user_has_access' => $this->current_group->user_has_access, 'no_access_url' => $group_link);
         }
         // If the user is a group admin, then show the group admin nav item.
         if (bp_is_item_admin()) {
             $sub_nav[] = array('name' => _x('Manage', 'My Group screen nav', 'buddypress'), 'slug' => 'admin', 'parent_url' => $group_link, 'parent_slug' => $this->current_group->slug, 'screen_function' => 'groups_screen_group_admin', 'position' => 1000, 'user_has_access' => true, 'item_css_id' => 'admin', 'no_access_url' => $group_link);
             $admin_link = trailingslashit($group_link . 'admin');
             // Common params to all nav items.
             $default_params = array('parent_url' => $admin_link, 'parent_slug' => $this->current_group->slug . '_manage', 'screen_function' => 'groups_screen_group_admin', 'user_has_access' => bp_is_item_admin(), 'show_in_admin_bar' => true);
             $sub_nav[] = array_merge(array('name' => __('Details', 'buddypress'), 'slug' => 'edit-details', 'position' => 0), $default_params);
             $sub_nav[] = array_merge(array('name' => __('Settings', 'buddypress'), 'slug' => 'group-settings', 'position' => 10), $default_params);
             if (!bp_disable_group_avatar_uploads() && buddypress()->avatar->show_avatars) {
                 $sub_nav[] = array_merge(array('name' => __('Photo', 'buddypress'), 'slug' => 'group-avatar', 'position' => 20), $default_params);
             }
             if (bp_group_use_cover_image_header()) {
                 $sub_nav[] = array_merge(array('name' => __('Cover Image', 'buddypress'), 'slug' => 'group-cover-image', 'position' => 25), $default_params);
             }
             $sub_nav[] = array_merge(array('name' => __('Members', 'buddypress'), 'slug' => 'manage-members', 'position' => 30), $default_params);
             if ('private' == $this->current_group->status) {
                 $sub_nav[] = array_merge(array('name' => __('Requests', 'buddypress'), 'slug' => 'membership-requests', 'position' => 40), $default_params);
             }
             $sub_nav[] = array_merge(array('name' => __('Delete', 'buddypress'), 'slug' => 'delete-group', 'position' => 1000), $default_params);
         }
         parent::setup_nav($main_nav, $sub_nav);
     }
     if (isset($this->current_group->user_has_access)) {
         /**
          * Fires at the end of the groups navigation setup if user has access.
          *
          * @since 1.0.2
          *
          * @param bool $user_has_access Whether or not user has access.
          */
         do_action('groups_setup_nav', $this->current_group->user_has_access);
     } else {
         /** This action is documented in bp-groups/bp-groups-loader.php */
         do_action('groups_setup_nav');
     }
 }
function rw_bp_docs_set_the_doc_relatetd_group()
{
    $d_doc_id = $folder_id = $group_id = 0;
    $group = new stdClass();
    $url = '#';
    $description = '';
    if (bp_docs_is_existing_doc()) {
        $d_doc_id = get_queried_object_id();
        $folder_id = bp_docs_get_doc_folder($d_doc_id);
        if ($folder_id) {
            $group_id = bp_docs_get_folder_group($folder_id);
            if ($group_id) {
                $group = groups_get_group(array('group_id' => $group_id));
                buddypress()->groups->current_group = $group;
                if (!bp_disable_group_avatar_uploads()) {
                    $url = bp_get_groups_root_slug() . '/' . $group->slug;
                }
                $avatar = bp_get_group_avatar('type=thumb&width=250&height=250');
                $description = $group->description;
                $name = $group->name;
            }
        } else {
            $post = get_post($d_doc_id);
            $user = get_userdata($post->post_author);
            $name = $user->display_name;
            $avatar = bp_core_fetch_avatar(array('type' => 'thumb', 'width' => 250, 'height' => 250, 'item_id' => $user->ID));
            $description = '';
            $url = bp_get_members_root_slug() . '/' . $user->nice_name;
        }
    }
    ?>
	<div id="bp_docs_sitebar_info">
		<h2><a href="/<?php 
    echo $url;
    ?>
"><?php 
    echo $name;
    ?>
</a></h2>
		<div class="group-avatar">
			<a href="/<?php 
    echo $url;
    ?>
"><?php 
    echo $avatar;
    ?>
</a>
		</div>
		
		<div class="group-info">
			<p><?php 
    echo $description;
    ?>
</p>
		</div>
	</div>
	<hr>
	<?php 
}
/**
 * Return the avatar of the object that action was performed on.
 *
 * @since 1.2.0
 *
 * @see bp_core_fetch_avatar() for description of arguments.
 * @global object $activities_template {@link BP_Activity_Template}
 * @uses wp_parse_args()
 * @uses get_blog_option()
 * @uses apply_filters() To call the 'bp_get_activity_secondary_avatar_object_' . $activities_template->activity->component hook.
 * @uses apply_filters() To call the 'bp_get_activity_secondary_avatar_item_id' hook.
 * @uses bp_core_fetch_avatar()
 * @uses apply_filters() To call the 'bp_get_activity_secondary_avatar' hook.
 *
 * @param array|string $args  {
 *     For a complete description of arguments, see {@link bp_core_fetch_avatar()}.
 *     @type string      $alt     Default value varies based on current activity
 *                                item component.
 *     @type string      $type    Default: 'full' when viewing a single activity
 *                                permalink page, otherwise 'thumb'.
 *     @type string      $class   Default: 'avatar'.
 *     @type string|bool $email   Default: email of the activity's user.
 *     @type int|bool    $user_id Default: ID of the activity's user.
 * }
 * @return string The secondary avatar.
 */
function bp_get_activity_secondary_avatar($args = '')
{
    global $activities_template;
    $r = wp_parse_args($args, array('alt' => '', 'type' => 'thumb', 'width' => 20, 'height' => 20, 'class' => 'avatar', 'link_class' => '', 'linked' => true, 'email' => false));
    extract($r, EXTR_SKIP);
    // Set item_id and object (default to user).
    switch ($activities_template->activity->component) {
        case 'groups':
            if (bp_disable_group_avatar_uploads()) {
                return false;
            }
            $object = 'group';
            $item_id = $activities_template->activity->item_id;
            $link = '';
            $name = '';
            // Only if groups is active.
            if (bp_is_active('groups')) {
                $group = groups_get_group(array('group_id' => $item_id, 'populate_extras' => false, 'update_meta_cache' => false));
                $link = bp_get_group_permalink($group);
                $name = $group->name;
            }
            if (empty($alt)) {
                $alt = __('Group logo', 'buddypress');
                if (!empty($name)) {
                    $alt = sprintf(__('Group logo of %s', 'buddypress'), $name);
                }
            }
            break;
        case 'blogs':
            $object = 'blog';
            $item_id = $activities_template->activity->item_id;
            $link = home_url();
            if (empty($alt)) {
                $alt = sprintf(__('Profile picture of the author of the site %s', 'buddypress'), get_blog_option($item_id, 'blogname'));
            }
            break;
        case 'friends':
            $object = 'user';
            $item_id = $activities_template->activity->secondary_item_id;
            $link = bp_core_get_userlink($item_id, false, true);
            if (empty($alt)) {
                $alt = sprintf(__('Profile picture of %s', 'buddypress'), bp_core_get_user_displayname($activities_template->activity->secondary_item_id));
            }
            break;
        default:
            $object = 'user';
            $item_id = $activities_template->activity->user_id;
            $email = $activities_template->activity->user_email;
            $link = bp_core_get_userlink($item_id, false, true);
            if (empty($alt)) {
                $alt = sprintf(__('Profile picture of %s', 'buddypress'), $activities_template->activity->display_name);
            }
            break;
    }
    /**
     * Filters the activity secondary avatar object based on current activity item component.
     *
     * This is a variable filter dependent on the component used. Possible hooks are
     * bp_get_activity_secondary_avatar_object_blog, bp_get_activity_secondary_avatar_object_group,
     * and bp_get_activity_secondary_avatar_object_user.
     *
     * @since 1.2.10
     *
     * @param string $object Component being displayed.
     */
    $object = apply_filters('bp_get_activity_secondary_avatar_object_' . $activities_template->activity->component, $object);
    /**
     * Filters the activity secondary avatar item ID.
     *
     * @since 1.2.10
     *
     * @param int $item_id ID for the secondary avatar item.
     */
    $item_id = apply_filters('bp_get_activity_secondary_avatar_item_id', $item_id);
    // If we have no item_id or object, there is no avatar to display.
    if (empty($item_id) || empty($object)) {
        return false;
    }
    // Get the avatar.
    $avatar = bp_core_fetch_avatar(array('item_id' => $item_id, 'object' => $object, 'type' => $type, 'alt' => $alt, 'class' => $class, 'width' => $width, 'height' => $height, 'email' => $email));
    if (!empty($linked)) {
        /**
         * Filters the secondary avatar link for current activity.
         *
         * @since 1.7.0
         *
         * @param string $link      Link to wrap the avatar image in.
         * @param string $component Activity component being acted on.
         */
        $link = apply_filters('bp_get_activity_secondary_avatar_link', $link, $activities_template->activity->component);
        /**
         * Filters the determined avatar for the secondary activity item.
         *
         * @since 1.2.10
         *
         * @param string $avatar Formatted HTML <img> element, or raw avatar URL.
         */
        $avatar = apply_filters('bp_get_activity_secondary_avatar', $avatar);
        return sprintf('<a href="%s" class="%s">%s</a>', $link, $link_class, $avatar);
    }
    /** This filter is documented in bp-activity/bp-activity-template.php */
    return apply_filters('bp_get_activity_secondary_avatar', $avatar);
}