function getGroups($force = false)
 {
     //need a user id for this
     if (empty($this->ID)) {
         return false;
     }
     //check cache
     if (isset($this->groups) && !$force) {
         return $this->groups;
     }
     //remove the bp-site-groups filter
     remove_filter('groups_get_groups', 'bpsg_groups_get_groups');
     //get corresponding class ids for buddypress groups this user is a member of
     $groups = array();
     if (bp_has_groups(array('user_id' => $this->ID))) {
         while (bp_groups()) {
             bp_the_group();
             $group_id = bp_get_group_id();
             $groups[] = groups_get_group(array('group_id' => $group_id));
         }
     }
     //add the bp-site-groups filter back
     add_filter('groups_get_groups', 'bpsg_groups_get_groups');
     $this->groups = $groups;
     return $this->groups;
 }
Example #2
1
	function widget($args, $instance) {
		global $bp;

	    extract( $args );

		echo $before_widget;
		echo $before_title
		   . $widget_name
		   . $after_title; ?>

		<?php if ( bp_has_groups( 'type=popular&per_page=' . $instance['max_groups'] . '&max=' . $instance['max_groups'] ) ) : ?>
			<div class="item-options" id="groups-list-options">
				<span class="ajax-loader" id="ajax-loader-groups"></span>
				<a href="<?php echo site_url() . '/' . $bp->groups->slug ?>" id="newest-groups"><?php _e("Newest", 'buddypress') ?></a> |
				<a href="<?php echo site_url() . '/' . $bp->groups->slug ?>" id="recently-active-groups"><?php _e("Active", 'buddypress') ?></a> |
				<a href="<?php echo site_url() . '/' . $bp->groups->slug ?>" id="popular-groups" class="selected"><?php _e("Popular", 'buddypress') ?></a>
			</div>

			<ul id="groups-list" class="item-list">
				<?php while ( bp_groups() ) : bp_the_group(); ?>
					<li>
						<div class="item-avatar">
							<a href="<?php bp_group_permalink() ?>"><?php bp_group_avatar_thumb() ?></a>
						</div>

						<div class="item">
							<div class="item-title"><a href="<?php bp_group_permalink() ?>" title="<?php bp_group_name() ?>"><?php bp_group_name() ?></a></div>
							<div class="item-meta"><span class="activity"><?php bp_group_member_count() ?></span></div>
						</div>
					</li>

				<?php endwhile; ?>
			</ul>
			<?php wp_nonce_field( 'groups_widget_groups_list', '_wpnonce-groups' ); ?>
			<input type="hidden" name="groups_widget_max" id="groups_widget_max" value="<?php echo esc_attr( $instance['max_groups'] ); ?>" />

		<?php else: ?>

			<div class="widget-error">
				<?php _e('There are no groups to display.', 'buddypress') ?>
			</div>

		<?php endif; ?>

		<?php echo $after_widget; ?>
	<?php
	}
 /**
  * @group BP6319
  */
 public function test_private_group_where_loggedin_user_has_requested_membership()
 {
     $u = $this->factory->user->create();
     $g = $this->factory->group->create(array('status' => 'private'));
     $this->set_current_user($u);
     groups_send_membership_request($u, $g);
     if (bp_has_groups(array('include' => array($g)))) {
         while (bp_groups()) {
             bp_the_group();
             $found = get_echo('bp_group_status_message');
         }
     }
     $expected = __('This is a private group. Your membership request is awaiting approval from the group administrator.', 'buddypress');
     $this->assertSame($expected, $found);
 }
Example #4
0
    function training_wpo_buddypress_group_header()
    {
        global $groups_template;
        ?>
	<div id="item-header" class="pb-group pb-item-header" role="complementary">
		<div class="container">
				<?php 
        if (bp_has_groups()) {
            while (bp_groups()) {
                bp_the_group();
                ?>
				<?php 
                bp_get_template_part('groups/single/group-header');
                ?>
			<?php 
            }
        }
        ?>
		</div>
	</div><!-- #item-header -->


<?php 
    }
Example #5
0
				<div id="whats-new-post-in-box">

					<?php 
    _e('Post in', 'buddypress');
    ?>
:

					<select id="whats-new-post-in" name="whats-new-post-in">
						<option selected="selected" value="0"><?php 
    _e('My Profile', 'buddypress');
    ?>
</option>

						<?php 
    if (bp_has_groups('user_id=' . bp_loggedin_user_id() . '&type=alphabetical&max=100&per_page=100&populate_extras=0')) {
        while (bp_groups()) {
            bp_the_group();
            ?>

								<option value="<?php 
            bp_group_id();
            ?>
"><?php 
            bp_group_name();
            ?>
</option>

							<?php 
        }
    }
Example #6
0
<?php

/**
 * BuddyPress - Groups Home
 *
 * @package BuddyPress
 * @subpackage bp-legacy
 */
?>
<div id="buddypress">

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

	<?php 
        /**
         * Fires before the display of the group home content.
         *
         * @since 1.2.0
         */
        do_action('bp_before_group_home_content');
        ?>

	<div id="item-header" role="complementary">

		<?php 
        /**
         * If the cover image feature is enabled, use a specific header
Example #7
0
/**
 *  members sidebar header widget
 *
 * @package Custom Community
 * @since 1.8.3
 */
function profiles_header_widget($args)
{
    extract($args);
    $options = get_option("profiles_header_position");
    if (!is_array($options)) {
        $options = array('profiles_header_position' => 'horizontal');
    }
    if ($options[profiles_header_position] != 'horizontal') {
        locate_template(array('members/single/member-header-sidebar.php'), true, false);
    } else {
        if (bp_has_groups()) {
            while (bp_groups()) {
                bp_the_group();
                locate_template(array('members/single/member-header.php'), true, false);
            }
        }
    }
}
Example #8
0
		<form action="" method="post" id="forums-search-form" class="dir-form">

			<h3><?php _e( 'Group Forums Directory', 'buddypress' ) ?><?php if ( is_user_logged_in() ) : ?> &nbsp;<a class="button" href="#new-topic" id="new-topic-button"><?php _e( 'New Topic', 'buddypress' ) ?></a><?php endif; ?></h3>

			<?php do_action( 'bp_before_directory_forums_content' ) ?>

			<div id="forums-dir-search" class="dir-search">
				<?php bp_directory_forums_search_form() ?>
			</div>
		</form>

		<div id="new-topic-post">
			<?php if ( is_user_logged_in() ) : ?>

				<?php if ( bp_has_groups( 'user_id=' . bp_loggedin_user_id() . '&type=alphabetical&max=100&per_page=100' ) ) : ?>

					<form action="" method="post" id="forum-topic-form" class="standard-form">

						<?php do_action( 'groups_forum_new_topic_before' ) ?>

						<a name="post-new"></a>
						<h5><?php _e( 'Post a New Topic:', 'buddypress' ) ?></h5>

						<label><?php _e( 'Title:', 'buddypress' ) ?></label>
						<input type="text" name="topic_title" id="topic_title" value="" />

						<label><?php _e( 'Content:', 'buddypress' ) ?></label>
						<textarea name="topic_text" id="topic_text"></textarea>

						<label><?php _e( 'Tags (comma separated):', 'buddypress' ) ?></label>
Example #9
0
 function get_group()
 {
     // Setup args
     $args = array('type' => 'active', 'max' => 5, 'populate_extras' => false);
     // Retrieve groups
     if (bp_has_groups($args)) {
         // Re-shuffle the array to draw a random group
         global $groups_template;
         shuffle($groups_template->groups);
         // Only load the first group
         bp_the_group();
         // Build the HTML
         $this->html = $this->build_html();
     }
 }
 /**
  * Create the hub overview CSV when requested.
  *
  * @since    1.0.0
  */
 public function run_stat_hub_csv()
 {
     global $wpdb;
     $bp = buddypress();
     // Output headers so that the file is downloaded rather than displayed.
     header('Content-Type: text/csv; charset=utf-8');
     header('Content-Disposition: attachment; filename=cc-hubs-overview.csv');
     // Create a file pointer connected to the output stream.
     $output = fopen('php://output', 'w');
     // Write a header row.
     $row = array('Hub ID', 'Name', 'Slug', 'Status', 'Date Created', 'Last Activity', 'Parent Hub ID', 'Total Members', 'Creator ID', 'Creator Email', 'Forum', 'BP Docs', 'CC Hub Home Page', 'CC Hub Pages', 'CC Hub Narratives', 'Custom Plugins');
     fputcsv($output, $row);
     // Groups Loop
     if (bp_has_groups(array('order' => 'ASC', 'orderby' => 'date_created', 'page' => null, 'per_page' => null, 'max' => false, 'show_hidden' => true, 'user_id' => null, 'meta_query' => false, 'include' => false, 'exclude' => false, 'populate_extras' => false, 'update_meta_cache' => false))) {
         while (bp_groups()) {
             bp_the_group();
             $group_id = bp_get_group_id();
             $group_object = groups_get_group(array('group_id' => (int) $group_id, 'populate_extras' => true));
             // Hub ID
             $row = array($group_id);
             // Name
             $row[] = bp_get_group_name();
             // Slug
             $row[] = bp_get_group_slug();
             // Status
             $row[] = bp_get_group_status();
             // Date Created
             $row[] = $group_object->date_created;
             // Date of last activity
             $row[] = $group_object->last_activity;
             // Parent Hub ID
             $row[] = $wpdb->get_var($wpdb->prepare("SELECT g.parent_id FROM {$bp->groups->table_name} g WHERE g.id = %d", $group_id));
             // Total Members
             $row[] = groups_get_total_member_count($group_id);
             // Creator ID
             $creator_id = $group_object->creator_id;
             $row[] = $creator_id;
             // Creator Email
             $creator = get_user_by('id', $creator_id);
             $row[] = $creator->user_email;
             // Forum
             $row[] = $group_object->enable_forum;
             // BP Docs
             if (function_exists('bp_docs_is_docs_enabled_for_group')) {
                 $row[] = bp_docs_is_docs_enabled_for_group($group_id);
             } else {
                 $row[] = '';
             }
             // CC Hub Home Page
             if (function_exists('cc_get_group_home_page_post') && cc_get_group_home_page_post($group_id)->have_posts()) {
                 $row[] = 1;
             } else {
                 $row[] = 0;
             }
             // CC Hub Pages
             $row[] = (bool) groups_get_groupmeta($group_id, "ccgp_is_enabled");
             // CC Hub Narratives
             $row[] = (bool) groups_get_groupmeta($group_id, "ccgn_is_enabled");
             // Custom Plugins
             // To make your group-specific plugin be counted, so something like this:
             /*	add_filter( 'cc_stats_custom_plugins', 'prefix_report_custom_plugin', 10, 2 );
              *	function prefix_report_custom_plugin( $custom_plugins, $group_id ) {
              *		if ( $group_id == sa_get_group_id() ) {
              *			$custom_plugins[] = "CC Salud America";
              *		}
              *		return $custom_plugins;
              *	}
              */
             $custom_plugins = apply_filters('cc_stats_custom_plugins', array(), $group_id);
             $custom_plugins = implode(' ', $custom_plugins);
             $row[] = $custom_plugins;
             // Write the row.
             fputcsv($output, $row);
         }
     }
     fclose($output);
     exit;
 }
 function create_field($field)
 {
     // defaults?
     $field = array_merge($this->defaults, $field);
     // Change Field into a select
     $field['type'] = 'select';
     $field['choices'] = array();
     // set the user ID if you want to return only groups that this user is a member of.
     $user_id = $field['groups'] == 1 ? FALSE : get_current_user_id();
     $args = array('per_page' => 999, 'user_id' => $user_id);
     if (bp_has_groups($args)) {
         while (bp_groups()) {
             bp_the_group();
             $field['choices'][bp_get_group_id()] = bp_get_group_name();
         }
     }
     // create field
     do_action('acf/create_field', $field);
 }
Example #12
0
    function on_bp_gtm_admin_groups($bp_gtm)
    {
        global $bp;
        ?>
        <table id="bp-gtm-admin-table" class="widefat link-group">
            <thead>
                <tr class="header">
                    <td colspan="2"><?php 
        _e('Which groups should have GTM System turned on?', 'bp_gtm');
        ?>
</td>
                    <td class="own_roles"><?php 
        _e('Own roles?', 'bp_gtm');
        ?>
</td>
                </tr>
            </thead>
            <tbody id="the-list">
                <tr>
                    <td><input type="checkbox" class="bp_gtm_allgroups" name="bp_gtm_allgroups" <?php 
        echo 'all' == $bp_gtm['groups'] ? 'checked="checked" ' : '';
        ?>
 value="all" /></td>
                    <td><?php 
        _e('All groups', 'bp_gtm');
        ?>
</td>
                    <td class="own_roles">&nbsp;</td>
                </tr>
                <?php 
        $arg['type'] = 'alphabetical';
        $arg['per_page'] = '1000';
        if (bp_has_groups($arg)) {
            while (bp_groups()) {
                bp_the_group();
                $description = preg_replace(array('<<p>>', '<</p>>', '<<br />>', '<<br>>'), '', bp_get_group_description_excerpt());
                echo '<tr>
                                <td><input name="bp_gtm_groups[' . bp_get_group_id() . ']" class="bp_gtm_groups" type="checkbox" ' . ('all' == $bp_gtm['groups'] || $bp_gtm['groups'][bp_get_group_id()] == 'on' ? 'checked="checked" ' : '') . 'value="on" /></td>
                                <td><a href="' . bp_get_group_permalink() . $bp->gtm->slug . '/" target="_blank">' . bp_get_group_name() . '</a> &rarr; ' . $description . '</td>
                                <td class="own_roles"><input name="bp_gtm_groups_own_roles[' . bp_get_group_id() . ']" class="bp_gtm_groups_own_roles" type="checkbox" ' . ((!empty($bp_gtm['groups_own_roles']) || !empty($bp_gtm['groups_own_roles'][bp_get_group_id()])) && 'all' == $bp_gtm['groups_own_roles'] || !empty($bp_gtm['groups_own_roles'][bp_get_group_id()]) && $bp_gtm['groups_own_roles'][bp_get_group_id()] == bp_get_group_id() ? 'checked="checked" ' : '') . 'value="' . bp_get_group_id() . '" /></td>
                            </tr>';
            }
        }
        ?>
            </tbody>
            <tfoot>
                <tr class="header">
                    <td><input type="checkbox" class="bp_gtm_allgroups" name="bp_gtm_allgroups" <?php 
        echo 'all' == $bp_gtm['groups'] ? 'checked="checked" ' : '';
        ?>
 value="all" /></td>
                    <td><?php 
        _e('All groups', 'bp_gtm');
        ?>
</td>
                    <td>&nbsp;</td>
                </tr>
            </tfoot>
        </table>
        <?php 
    }
Example #13
0
<?php

/**
 * BuddyPress - Users Groups
 *
 * @package BuddyPress
 * @subpackage bp-legacy
 */
$n_groups_to_show = 4;
$n_groups_shown = 0;
if (bp_has_groups('user_id=' . bp_displayed_user_id())) {
    ?>
    <h5 class="side-header">Groups</h5>
    <div id="side-organizations">
        <ul id="group-list" class="item-list" role="main">
            <?php 
    while (bp_groups()) {
        bp_the_group();
        ?>
                <?php 
        // limit number of groups to show in the list
        if ($n_groups_shown < $n_groups_to_show) {
            ?>
                    <li>
                        <a href="<?php 
            bp_group_permalink();
            ?>
">
                            <?php 
            bp_group_avatar('type=thumb&width=50&height=50');
            ?>
Example #14
0
<?php get_header() ?>

	<div id="content">
		<div class="padder">
			<?php if ( bp_has_groups() ) : while ( bp_groups() ) : bp_the_group(); ?>

			<?php do_action( 'bp_before_group_home_content' ) ?>

			<div id="item-header">
				<?php locate_template( array( 'groups/single/group-header.php' ), true ) ?>
			</div>

			<div id="item-nav">
				<div class="item-list-tabs no-ajax" id="sub-nav">
					<ul>
						<?php bp_get_options_nav() ?>

						<?php do_action( 'bp_group_options_nav' ) ?>
					</ul>
				</div>
			</div>

			<div id="item-body">
				<?php do_action( 'template_notices' ) ?>

				<?php do_action( 'bp_before_group_body' ) ?>
	<?php if(bp_is_gallery_home())
			 locate_template( array( 'gallery/groups/home.php' ), true ) ;
			 
		else if(bp_is_gallery_create())
			locate_template( array( 'gallery/groups/create.php' ), true ) ;
/**
 * GMW FL function - get list of groups in checkboxes or dropdown
 */
function gmw_fl_get_bp_groups($gmw, $usage, $groups, $name)
{
    if (!bp_is_active('groups')) {
        return;
    }
    $output = '';
    if ($usage == 'checkbox') {
        $output .= '<span class="search-all">' . $gmw['labels']['search_form']['select_groups'] . '</span>';
        $output .= '<ul id="gmw-' . $gmw['ID'] . '-' . $name . '-checkboxes-wrapper" class="gmw-' . $name . '-checkboxes-wrapper gmw-' . $gmw['prefix'] . '-' . $name . '-checkboxes-wrapper">';
    } else {
        $output .= '<label for="gmw-bp-groups-' . $usage . '-' . $gmw['ID'] . '">' . $gmw['labels']['search_form']['select_groups'] . '</label>';
        $output .= '<select name="' . $name . '" id="gmw-bp-groups-dropdown-' . $gmw['ID'] . '" class="gmw-bp-groups-dropdown gmw-' . $gmw['prefix'] . '-bp-groups-dropdown">';
        $output .= '<option value="">' . $gmw['labels']['search_form']['no_groups'] . '</option>';
        $output .= '<option value="' . implode(',', $groups) . '">' . $gmw['labels']['search_form']['all_groups'] . '</option>';
    }
    if (bp_has_groups()) {
        while (bp_groups()) {
            bp_the_group();
            $gid = bp_get_group_id();
            if (!in_array($gid, $groups)) {
                continue;
            }
            $gname = bp_get_group_name();
            if ($usage == 'checkbox') {
                $output .= '<li id="gmw-' . $gmw['ID'] . '-' . $name . '-' . $gid . '-checkbox-wrapper" class="gmw-' . $name . '-checkbox-wrapper gmw-' . $gmw['prefix'] . '-' . $name . '-checkbox-wrapper">';
                $output .= '<input type="checkbox" id="gmw-' . $gmw['ID'] . '-' . $name . '-' . $gid . '-checkbox" value="' . $gid . '" name=' . $name . '[]" />';
                $output .= '<label for="gmw-' . $gmw['ID'] . '-' . $name . '-' . $gid . '-checkbox">' . $gname . '</label>';
                $output .= '</li>';
            } else {
                $output .= '<option value="' . $gid . '">' . $gname . '</option>';
            }
        }
    }
    if ($usage == 'checkbox') {
        $output .= '<ul>';
    } else {
        $output .= '</select>';
    }
    return apply_filters('gmw_fl_get_bp_groups', $output, $gmw, $usage, $groups, $name);
}
    /**
     * Extends our frontend output method.
     *
     * @param array $args     Array of arguments for the widget.
     * @param array $instance Widget instance data.
     */
    public function widget($args, $instance)
    {
        /**
         * Filters the user ID to use with the widget instance.
         *
         * @since 1.5.0
         *
         * @param string $value Empty user ID.
         */
        $user_id = apply_filters('bp_group_widget_user_id', '0');
        extract($args);
        if (empty($instance['group_default'])) {
            $instance['group_default'] = 'popular';
        }
        if (empty($instance['title'])) {
            $instance['title'] = __('Groups', 'buddypress');
        }
        /**
         * Filters the title of the Groups widget.
         *
         * @since 1.8.0
         * @since 2.3.0 Added 'instance' and 'id_base' to arguments passed to filter.
         *
         * @param string $title    The widget title.
         * @param array  $instance The settings for the particular instance of the widget.
         * @param string $id_base  Root ID for all widgets of this type.
         */
        $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
        /**
         * Filters the separator of the group widget links.
         *
         * @since 2.4.0
         *
         * @param string $separator Separator string. Default '|'.
         */
        $separator = apply_filters('bp_groups_widget_separator', '|');
        echo $before_widget;
        $title = !empty($instance['link_title']) ? '<a href="' . bp_get_groups_directory_permalink() . '">' . $title . '</a>' : $title;
        echo $before_title . $title . $after_title;
        $max_groups = !empty($instance['max_groups']) ? (int) $instance['max_groups'] : 5;
        $group_args = array('user_id' => $user_id, 'type' => $instance['group_default'], 'per_page' => $max_groups, 'max' => $max_groups);
        ?>

		<?php 
        if (bp_has_groups($group_args)) {
            ?>
			<div class="item-options" id="groups-list-options">
				<a href="<?php 
            bp_groups_directory_permalink();
            ?>
" id="newest-groups"<?php 
            if ($instance['group_default'] == 'newest') {
                ?>
 class="selected"<?php 
            }
            ?>
><?php 
            _e("Newest", 'buddypress');
            ?>
</a>
				<span class="bp-separator" role="separator"><?php 
            echo esc_html($separator);
            ?>
</span>
				<a href="<?php 
            bp_groups_directory_permalink();
            ?>
" id="recently-active-groups"<?php 
            if ($instance['group_default'] == 'active') {
                ?>
 class="selected"<?php 
            }
            ?>
><?php 
            _e("Active", 'buddypress');
            ?>
</a>
				<span class="bp-separator" role="separator"><?php 
            echo esc_html($separator);
            ?>
</span>
				<a href="<?php 
            bp_groups_directory_permalink();
            ?>
" id="popular-groups" <?php 
            if ($instance['group_default'] == 'popular') {
                ?>
 class="selected"<?php 
            }
            ?>
><?php 
            _e("Popular", 'buddypress');
            ?>
</a>
			</div>

			<ul id="groups-list" class="item-list">
				<?php 
            while (bp_groups()) {
                bp_the_group();
                ?>
					<li <?php 
                bp_group_class();
                ?>
>
						<div class="item-avatar">
							<a href="<?php 
                bp_group_permalink();
                ?>
" title="<?php 
                bp_group_name();
                ?>
"><?php 
                bp_group_avatar_thumb();
                ?>
</a>
						</div>

						<div class="item">
							<div class="item-title"><a href="<?php 
                bp_group_permalink();
                ?>
" title="<?php 
                bp_group_name();
                ?>
"><?php 
                bp_group_name();
                ?>
</a></div>
							<div class="item-meta">
								<span class="activity">
								<?php 
                if ('newest' == $instance['group_default']) {
                    printf(__('created %s', 'buddypress'), bp_get_group_date_created());
                } elseif ('active' == $instance['group_default']) {
                    printf(__('active %s', 'buddypress'), bp_get_group_last_active());
                } elseif ('popular' == $instance['group_default']) {
                    bp_group_member_count();
                }
                ?>
								</span>
							</div>
						</div>
					</li>

				<?php 
            }
            ?>
			</ul>
			<?php 
            wp_nonce_field('groups_widget_groups_list', '_wpnonce-groups');
            ?>
			<input type="hidden" name="groups_widget_max" id="groups_widget_max" value="<?php 
            echo esc_attr($max_groups);
            ?>
" />

		<?php 
        } else {
            ?>

			<div class="widget-error">
				<?php 
            _e('There are no groups to display.', 'buddypress');
            ?>
			</div>

		<?php 
        }
        ?>

		<?php 
        echo $after_widget;
        ?>
	<?php 
    }
/**
 * Outputs the markup for the Associated Group settings section
 *
 * @since 1.2
 */
function bp_docs_doc_associated_group_markup()
{
    // First, try to set the preselected group by looking at the URL params
    $selected_group_slug = isset($_GET['group']) ? $_GET['group'] : '';
    // Support for BP Group Hierarchy
    if (false !== ($slash = strrpos($selected_group_slug, '/'))) {
        $selected_group_slug = substr($selected_group_slug, $slash + 1);
    }
    $selected_group = BP_Groups_Group::get_id_from_slug($selected_group_slug);
    if ($selected_group && !current_user_can('bp_docs_associate_with_group', $selected_group)) {
        $selected_group = 0;
    }
    // If the selected group is still 0, see if there's something in the db
    if (!$selected_group && is_singular()) {
        $selected_group = bp_docs_get_associated_group_id(get_the_ID());
    }
    // Last check: if this is a second attempt at a newly created Doc,
    // there may be a previously submitted value
    if (empty($selected_group) && !empty(buddypress()->bp_docs->submitted_data->associated_group_id)) {
        $selected_group = intval(buddypress()->bp_docs->submitted_data->associated_group_id);
    }
    $selected_group = intval($selected_group);
    $groups_args = array('per_page' => false, 'populate_extras' => false, 'type' => 'alphabetical');
    if (!bp_current_user_can('bp_moderate')) {
        $groups_args['user_id'] = bp_loggedin_user_id();
    }
    // Populate the $groups_template global
    global $groups_template;
    $old_gt = $groups_template;
    bp_has_groups($groups_args);
    // Filter out the groups where associate_with permissions forbid
    $removed = 0;
    foreach ($groups_template->groups as $gtg_key => $gtg) {
        if (!current_user_can('bp_docs_associate_with_group', $gtg->id)) {
            unset($groups_template->groups[$gtg_key]);
            $removed++;
        }
    }
    // cleanup, if necessary from filter above
    if ($removed) {
        $groups_template->groups = array_values($groups_template->groups);
        $groups_template->group_count = $groups_template->group_count - $removed;
        $groups_template->total_group_count = $groups_template->total_group_count - $removed;
    }
    ?>
	<tr>
		<td class="desc-column">
			<label for="associated_group_id"><?php 
    _e('Which group should this Doc be associated with?', 'bp-docs');
    ?>
</label>
			<span class="description"><?php 
    _e('(Optional) Note that the Access settings available for this Doc may be limited by the privacy settings of the group you choose.', 'bp-docs');
    ?>
</span>
		</td>

		<td class="content-column">
			<select name="associated_group_id" id="associated_group_id">
				<option value=""><?php 
    _e('None', 'bp-docs');
    ?>
</option>
				<?php 
    foreach ($groups_template->groups as $g) {
        ?>
					<option value="<?php 
        echo esc_attr($g->id);
        ?>
" <?php 
        selected($selected_group, $g->id);
        ?>
><?php 
        echo esc_html($g->name);
        ?>
</option>
				<?php 
    }
    ?>
			</select>

			<div id="associated_group_summary">
				<?php 
    bp_docs_associated_group_summary();
    ?>
			</div>
		</td>
	</tr>
	<?php 
    $groups_template = $old_gt;
}
Example #18
0
		</div>

		<div id="whats-new-options">
			<div id="whats-new-submit">
				<span class="ajax-loader"></span> &nbsp;
				<input type="submit" name="aw-whats-new-submit" id="aw-whats-new-submit" value="<?php _e( 'Post Update', 'buddypress' ) ?>" />
			</div>

			<?php if ( function_exists('bp_has_groups') && !bp_is_my_profile() && !bp_is_group() ) : ?>
				<div id="whats-new-post-in-box">
					<?php _e( 'Post in', 'buddypress' ) ?>:

					<select id="whats-new-post-in" name="whats-new-post-in">
						<option selected="selected" value="0"><?php _e( 'My Profile', 'buddypress' ) ?></option>

						<?php if ( bp_has_groups( 'user_id=' . bp_loggedin_user_id() . '&type=alphabetical&max=100&per_page=100&populate_extras=0' ) ) : while ( bp_groups() ) : bp_the_group(); ?>
							<option value="<?php bp_group_id() ?>"><?php bp_group_name() ?></option>
						<?php endwhile; endif; ?>
					</select>
				</div>
				<input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
			<?php elseif ( bp_is_group_home() ) : ?>
				<input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
				<input type="hidden" id="whats-new-post-in" name="whats-new-post-in" value="<?php bp_group_id() ?>" />
			<?php endif; ?>

			<?php do_action( 'bp_activity_post_form_options' ) ?>

		</div><!-- #whats-new-options -->
	</div><!-- #whats-new-content -->
Example #19
0
function invite_anyone_screen_one_content()
{
    global $bp;
    $iaoptions = invite_anyone_options();
    // Hack - catch already=accepted
    if (!empty($_GET['already']) && 'accepted' === $_GET['already'] && bp_is_my_profile()) {
        _e('It looks like you&#8217;ve already accepted your invitation to join the site.', 'invite-anyone');
        return;
    }
    // If the user has maxed out his invites, no need to go on
    if (!empty($iaoptions['email_limit_invites_toggle']) && $iaoptions['email_limit_invites_toggle'] == 'yes' && !current_user_can('delete_others_pages')) {
        $sent_invites = invite_anyone_get_invitations_by_inviter_id(bp_displayed_user_id());
        $sent_invites_count = $sent_invites->post_count;
        if ($sent_invites_count >= $iaoptions['limit_invites_per_user']) {
            ?>

			<h4><?php 
            _e('Invite New Members', 'invite-anyone');
            ?>
</h4>

			<p id="welcome-message"><?php 
            _e('You have sent the maximum allowed number of invitations.', 'invite-anyone');
            ?>
</em></p>

			<?php 
            return;
        }
    }
    if (!($max_invites = $iaoptions['max_invites'])) {
        $max_invites = 5;
    }
    $from_group = false;
    if (!empty($bp->action_variables)) {
        if ('group-invites' == $bp->action_variables[0]) {
            $from_group = $bp->action_variables[1];
        }
    }
    $returned_data = !empty($bp->invite_anyone->returned_data) ? $bp->invite_anyone->returned_data : false;
    /* If the user is coming from the widget, $returned_emails is populated with those email addresses */
    if (isset($_POST['invite_anyone_widget'])) {
        check_admin_referer('invite-anyone-widget_' . $bp->loggedin_user->id);
        if (!empty($_POST['invite_anyone_email_addresses'])) {
            $returned_data['error_emails'] = invite_anyone_parse_addresses($_POST['invite_anyone_email_addresses']);
        }
        /* If the widget appeared on a group page, the group ID should come along with it too */
        if (isset($_POST['invite_anyone_widget_group'])) {
            $returned_data['groups'] = $_POST['invite_anyone_widget_group'];
        }
    }
    // $returned_groups is padded so that array_search (below) returns true for first group */
    $counter = 0;
    $returned_groups = array(0);
    if (!empty($returned_data['groups'])) {
        foreach ($returned_data['groups'] as $group_id) {
            $returned_groups[] = $group_id;
        }
    }
    // Get the returned email subject, if there is one
    $returned_subject = !empty($returned_data['subject']) ? stripslashes($returned_data['subject']) : false;
    // Get the returned email message, if there is one
    $returned_message = !empty($returned_data['message']) ? stripslashes($returned_data['message']) : false;
    if (!empty($returned_data['error_message'])) {
        ?>
		<div class="invite-anyone-error error">
			<p><?php 
        _e("Some of your invitations were not sent. Please see the errors below and resubmit the failed invitations.", 'invite-anyone');
        ?>
</p>
		</div>
		<?php 
    }
    $blogname = get_bloginfo('name');
    $welcome_message = sprintf(__('Invite friends to join %s by following these steps:', 'invite-anyone'), $blogname);
    ?>
	<form id="invite-anyone-by-email" action="<?php 
    echo $bp->displayed_user->domain . $bp->invite_anyone->slug . '/sent-invites/send/';
    ?>
" method="post">

	<h4><?php 
    _e('Invite New Members', 'invite-anyone');
    ?>
</h4>

	<?php 
    if (isset($iaoptions['email_limit_invites_toggle']) && $iaoptions['email_limit_invites_toggle'] == 'yes' && !current_user_can('delete_others_pages')) {
        if (!isset($sent_invites)) {
            $sent_invites = invite_anyone_get_invitations_by_inviter_id(bp_loggedin_user_id());
            $sent_invites_count = $sent_invites->post_count;
        }
        $limit_invite_count = (int) $iaoptions['limit_invites_per_user'] - (int) $sent_invites_count;
        if ($limit_invite_count < 0) {
            $limit_invite_count = 0;
        }
        ?>

		<p class="description"><?php 
        printf(__('The site administrator has limited each user to %1$d invitations. You have %2$d invitations remaining.', 'invite-anyone'), (int) $iaoptions['limit_invites_per_user'], (int) $limit_invite_count);
        ?>
</p>

		<?php 
    }
    ?>

	<p id="welcome-message"><?php 
    echo $welcome_message;
    ?>
</p>

	<ol id="invite-anyone-steps">

		<li>
			<?php 
    if (!empty($returned_data['error_message'])) {
        ?>
				<div class="invite-anyone-error error">
					<p><?php 
        echo $returned_data['error_message'];
        ?>
</p>
				</div>
			<?php 
    }
    ?>

			<div class="manual-email">
				<p>
					<?php 
    _e('Enter email addresses below, one per line.', 'invite-anyone');
    ?>
					<?php 
    if (invite_anyone_allowed_domains()) {
        ?>
 <?php 
        _e('You can only invite people whose email addresses end in one of the following domains:', 'invite-anyone');
        ?>
 <?php 
        echo invite_anyone_allowed_domains();
    }
    ?>
				</p>

				<?php 
    if (false !== ($max_no_invites = invite_anyone_max_invites())) {
        ?>
					<p class="description"><?php 
        printf(__('You can invite a maximum of %s people at a time.', 'invite-anyone'), $max_no_invites);
        ?>
</p>
				<?php 
    }
    ?>
				<?php 
    invite_anyone_email_fields($returned_data['error_emails']);
    ?>
			</div>

			<?php 
    /* invite_anyone_after_addresses gets $iaoptions so that Cloudsponge etc can tell whether certain components are activated, without an additional lookup */
    ?>
			<?php 
    do_action('invite_anyone_after_addresses', $iaoptions);
    ?>

		</li>

		<li>
			<?php 
    if ($iaoptions['subject_is_customizable'] == 'yes') {
        ?>
				<label for="invite-anyone-custom-subject"><?php 
        _e('(optional) Customize the subject line of the invitation email.', 'invite-anyone');
        ?>
</label>
					<textarea name="invite_anyone_custom_subject" id="invite-anyone-custom-subject" rows="15" cols="10" ><?php 
        echo invite_anyone_invitation_subject($returned_subject);
        ?>
</textarea>
			<?php 
    } else {
        ?>
				<label for="invite-anyone-custom-subject"><?php 
        _e('Subject: <span class="disabled-subject">Subject line is fixed</span>', 'invite-anyone');
        ?>
</label>
					<textarea name="invite_anyone_custom_subject" id="invite-anyone-custom-subject" rows="15" cols="10" disabled="disabled"><?php 
        echo invite_anyone_invitation_subject($returned_subject);
        ?>
 </textarea>

				<input type="hidden" id="invite-anyone-customised-subject" name="invite_anyone_custom_subject" value="<?php 
        echo invite_anyone_invitation_subject();
        ?>
" />
			<?php 
    }
    ?>
		</li>

		<li>
			<?php 
    if ($iaoptions['message_is_customizable'] == 'yes') {
        ?>
				<label for="invite-anyone-custom-message"><?php 
        _e('(optional) Customize the text of the invitation.', 'invite-anyone');
        ?>
</label>
				<p class="description"><?php 
        _e('The message will also contain a custom footer containing links to accept the invitation or opt out of further email invitations from this site.', 'invite-anyone');
        ?>
</p>
					<textarea name="invite_anyone_custom_message" id="invite-anyone-custom-message" cols="40" rows="10"><?php 
        echo invite_anyone_invitation_message($returned_message);
        ?>
</textarea>
			<?php 
    } else {
        ?>
				<label for="invite-anyone-custom-message"><?php 
        _e('Message:', 'invite-anyone');
        ?>
</label>
					<textarea name="invite_anyone_custom_message" id="invite-anyone-custom-message" disabled="disabled"><?php 
        echo invite_anyone_invitation_message($returned_message);
        ?>
</textarea>

				<input type="hidden" name="invite_anyone_custom_message" value="<?php 
        echo invite_anyone_invitation_message();
        ?>
" />
			<?php 
    }
    ?>

		</li>

		<?php 
    if (invite_anyone_are_groups_running()) {
        ?>
			<?php 
        if ($iaoptions['can_send_group_invites_email'] == 'yes' && bp_has_groups("per_page=10000&type=alphabetical&user_id=" . bp_loggedin_user_id())) {
            ?>
			<li>
				<p><?php 
            _e('(optional) Select some groups. Invitees will receive invitations to these groups when they join the site.', 'invite-anyone');
            ?>
</p>
				<ul id="invite-anyone-group-list">
					<?php 
            while (bp_groups()) {
                bp_the_group();
                ?>
						<?php 
                // Enforce per-group invitation settings
                if (!bp_groups_user_can_send_invites(bp_get_group_id()) || 'anyone' !== invite_anyone_group_invite_access_test(bp_get_group_id())) {
                    continue;
                }
                ?>
						<li>
						<input type="checkbox" name="invite_anyone_groups[]" id="invite_anyone_groups-<?php 
                bp_group_id();
                ?>
" value="<?php 
                bp_group_id();
                ?>
" <?php 
                if ($from_group == bp_get_group_id() || array_search(bp_get_group_id(), $returned_groups)) {
                    ?>
checked<?php 
                }
                ?>
 />

						<label for="invite_anyone_groups-<?php 
                bp_group_id();
                ?>
" class="invite-anyone-group-name"><?php 
                bp_group_avatar_mini();
                ?>
 <span><?php 
                bp_group_name();
                ?>
</span></label>

						</li>
					<?php 
            }
            ?>

				</ul>
			</li>
			<?php 
        }
        ?>

		<?php 
    }
    ?>

		<?php 
    do_action('invite_anyone_addl_fields');
    ?>

	</ol>

	<div class="submit">
		<input type="submit" name="invite-anyone-submit" id="invite-anyone-submit" value="<?php 
    _e('Send Invites', 'buddypress');
    ?>
 " />
	</div>


	</form>
	<?php 
}
Example #20
0
<?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();
/**
 * 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 
/**
 * AJAX callback for the Groups List widget.
 *
 * @since 1.0.0
 */
function groups_ajax_widget_groups_list()
{
    check_ajax_referer('groups_widget_groups_list');
    switch ($_POST['filter']) {
        case 'newest-groups':
            $type = 'newest';
            break;
        case 'recently-active-groups':
            $type = 'active';
            break;
        case 'popular-groups':
            $type = 'popular';
            break;
    }
    $per_page = isset($_POST['max_groups']) ? intval($_POST['max_groups']) : 5;
    $groups_args = array('user_id' => 0, 'type' => $type, 'per_page' => $per_page, 'max' => $per_page);
    if (bp_has_groups($groups_args)) {
        ?>
		<?php 
        echo "0[[SPLIT]]";
        ?>
		<?php 
        while (bp_groups()) {
            bp_the_group();
            ?>
			<li <?php 
            bp_group_class();
            ?>
>
				<div class="item-avatar">
					<a href="<?php 
            bp_group_permalink();
            ?>
"><?php 
            bp_group_avatar_thumb();
            ?>
</a>
				</div>

				<div class="item">
					<div class="item-title"><a href="<?php 
            bp_group_permalink();
            ?>
" title="<?php 
            bp_group_name();
            ?>
"><?php 
            bp_group_name();
            ?>
</a></div>
					<div class="item-meta">
						<span class="activity">
							<?php 
            if ('newest-groups' == $_POST['filter']) {
                printf(__('created %s', 'buddypress'), bp_get_group_date_created());
            } elseif ('recently-active-groups' == $_POST['filter']) {
                printf(__('active %s', 'buddypress'), bp_get_group_last_active());
            } elseif ('popular-groups' == $_POST['filter']) {
                bp_group_member_count();
            }
            ?>
						</span>
					</div>
				</div>
			</li>
		<?php 
        }
        ?>

		<?php 
        wp_nonce_field('groups_widget_groups_list', '_wpnonce-groups');
        ?>
		<input type="hidden" name="groups_widget_max" id="groups_widget_max" value="<?php 
        echo esc_attr($_POST['max_groups']);
        ?>
" />

	<?php 
    } else {
        ?>

		<?php 
        echo "-1[[SPLIT]]<li>" . __("No groups matched the current filter.", 'buddypress');
        ?>

	<?php 
    }
}
			<?php 
do_action('bp_after_directory_forums');
?>

			<?php 
do_action('bp_before_new_topic_form');
?>

			<div id="new-topic-post">

				<?php 
if (is_user_logged_in()) {
    ?>

					<?php 
    if (bp_is_active('groups') && bp_has_groups('user_id=' . bp_loggedin_user_id() . '&type=alphabetical&max=100&per_page=100')) {
        ?>

						<form action="" method="post" id="forum-topic-form" class="standard-form">

							<?php 
        do_action('groups_forum_new_topic_before');
        ?>

							<a name="post-new"></a>
							<h5><?php 
        _e('Create New Topic:', 'buddypress');
        ?>
</h5>

							<?php 
Example #24
0
<div id="buddypress">

    <?php 
//fix boss codde with rw_bp_doc_single_group_id()
if (bp_has_groups(array('show_hidden' => true, 'include' => rw_bp_doc_single_group_id()))) {
    while (bp_groups()) {
        bp_the_group();
        ?>
        <?php 
        do_action('bp_before_group_home_content');
        ?>

        <div id="item-header" role="complementary">

            <?php 
        bp_get_template_part('groups/single/group-header');
        ?>


        </div><!-- #item-header -->


        <div id="primary" class="site-content"> <!-- moved from top -->

            <div id="content" role="main"> <!-- moved from top -->

                <div class="below-cover-photo">

                    <div id="group-description">
                        <?php 
        bp_group_description();
Example #25
0
<?php

/**
 * Fires before the display of member group invites content.
 *
 * @since BuddyPress (1.1.0)
 */
do_action('bp_before_group_invites_content');
?>

<?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');
Example #26
0
<?php

get_header();
?>

	<div id="content">
		<div class="padder">

			<?php 
if (bp_groupblog_blog_exists(bp_get_groupblog_id())) {
    ?>
				<?php 
    if (bp_has_groups('type=single-group&slug=' . bp_get_groupblog_slug())) {
        while (bp_groups()) {
            bp_the_group();
            ?>
				
					<?php 
            locate_template(array('groupblog/group-header.php'), true);
            ?>
					
					<?php 
            do_action('bp_before_blog_single_post');
            ?>
			
					<div class="page" id="blog-single">

						<?php 
            if (bp_group_is_visible()) {
                ?>
	
 /**
  * Set up items for display in the list table.
  *
  * Handles filtering of data, sorting, pagination, and any other data
  * manipulation required prior to rendering.
  *
  * @since 1.7.0
  */
 public function prepare_items()
 {
     global $groups_template;
     $screen = get_current_screen();
     // Option defaults
     $include_id = false;
     $search_terms = false;
     // Set current page
     $page = $this->get_pagenum();
     // Set per page from the screen options
     $per_page = $this->get_items_per_page(str_replace('-', '_', "{$screen->id}_per_page"));
     // Sort order.
     $order = 'DESC';
     if (!empty($_REQUEST['order'])) {
         $order = 'desc' == strtolower($_REQUEST['order']) ? 'DESC' : 'ASC';
     }
     // Order by - default to newest
     $orderby = 'last_activity';
     if (!empty($_REQUEST['orderby'])) {
         switch ($_REQUEST['orderby']) {
             case 'name':
                 $orderby = 'name';
                 break;
             case 'id':
                 $orderby = 'date_created';
                 break;
             case 'members':
                 $orderby = 'total_member_count';
                 break;
             case 'last_active':
                 $orderby = 'last_activity';
                 break;
         }
     }
     // Are we doing a search?
     if (!empty($_REQUEST['s'])) {
         $search_terms = $_REQUEST['s'];
     }
     // Check if user has clicked on a specific group (if so, fetch only that group).
     if (!empty($_REQUEST['gid'])) {
         $include_id = (int) $_REQUEST['gid'];
     }
     // Set the current view
     if (isset($_GET['group_status']) && in_array($_GET['group_status'], array('public', 'private', 'hidden'))) {
         $this->view = $_GET['group_status'];
     }
     // We'll use the ids of group types for the 'include' param
     $this->group_type_ids = BP_Groups_Group::get_group_type_ids();
     // Pass a dummy array if there are no groups of this type
     $include = false;
     if ('all' != $this->view && isset($this->group_type_ids[$this->view])) {
         $include = !empty($this->group_type_ids[$this->view]) ? $this->group_type_ids[$this->view] : array(0);
     }
     // Get group type counts for display in the filter tabs
     $this->group_counts = array();
     foreach ($this->group_type_ids as $group_type => $group_ids) {
         $this->group_counts[$group_type] = count($group_ids);
     }
     // If we're viewing a specific group, flatten all activities into a single array.
     if ($include_id) {
         $groups = array((array) groups_get_group('group_id=' . $include_id));
     } else {
         $groups_args = array('include' => $include, 'per_page' => $per_page, 'page' => $page, 'orderby' => $orderby, 'order' => $order);
         $groups = array();
         if (bp_has_groups($groups_args)) {
             while (bp_groups()) {
                 bp_the_group();
                 $groups[] = (array) $groups_template->group;
             }
         }
     }
     // Set raw data to display
     $this->items = $groups;
     // Store information needed for handling table pagination
     $this->set_pagination_args(array('per_page' => $per_page, 'total_items' => $groups_template->total_group_count, 'total_pages' => ceil($groups_template->total_group_count / $per_page)));
 }
Example #28
0
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
    while (bp_groups()) {
        bp_the_group();
        $group = new Apoc_Group(bp_get_group_id(), 'directory', 100);
        ?>
		<li id="group-<?php 
        bp_group_id();
        ?>
" class="group directory-entry">
			<div class="directory-member reply-author">
				<?php 
Example #29
0
    function widget($args, $instance)
    {
        $user_id = apply_filters('bp_group_widget_user_id', '0');
        extract($args);
        if (empty($instance['group_default'])) {
            $instance['group_default'] = 'popular';
        }
        if (empty($instance['title'])) {
            $instance['title'] = __('Groups', 'buddypress');
        }
        echo $before_widget;
        $title = !empty($instance['link_title']) ? '<a href="' . trailingslashit(bp_get_root_domain() . '/' . bp_get_groups_root_slug()) . '">' . $instance['title'] . '</a>' : $instance['title'];
        echo $before_title . $title . $after_title;
        ?>

		<?php 
        if (bp_has_groups('user_id=' . $user_id . '&type=' . $instance['group_default'] . '&max=' . $instance['max_groups'] . '&per_page=' . $instance['max_groups'])) {
            ?>
			<div class="item-options" id="groups-list-options">
				<a href="<?php 
            echo site_url(bp_get_groups_root_slug());
            ?>
" id="newest-groups"<?php 
            if ($instance['group_default'] == 'newest') {
                ?>
 class="selected"<?php 
            }
            ?>
><?php 
            _e("Newest", 'buddypress');
            ?>
</a> |
				<a href="<?php 
            echo site_url(bp_get_groups_root_slug());
            ?>
" id="recently-active-groups"<?php 
            if ($instance['group_default'] == 'active') {
                ?>
 class="selected"<?php 
            }
            ?>
><?php 
            _e("Active", 'buddypress');
            ?>
</a> |
				<a href="<?php 
            echo site_url(bp_get_groups_root_slug());
            ?>
" id="popular-groups" <?php 
            if ($instance['group_default'] == 'popular') {
                ?>
 class="selected"<?php 
            }
            ?>
><?php 
            _e("Popular", 'buddypress');
            ?>
</a>
			</div>

			<ul id="groups-list" class="item-list">
				<?php 
            while (bp_groups()) {
                bp_the_group();
                ?>
					<li>
						<div class="item-avatar">
							<a href="<?php 
                bp_group_permalink();
                ?>
" title="<?php 
                bp_group_name();
                ?>
"><?php 
                bp_group_avatar_thumb();
                ?>
</a>
						</div>

						<div class="item">
							<div class="item-title"><a href="<?php 
                bp_group_permalink();
                ?>
" title="<?php 
                bp_group_name();
                ?>
"><?php 
                bp_group_name();
                ?>
</a></div>
							<div class="item-meta">
								<span class="activity">
								<?php 
                if ('newest' == $instance['group_default']) {
                    printf(__('created %s', 'buddypress'), bp_get_group_date_created());
                }
                if ('active' == $instance['group_default']) {
                    printf(__('active %s', 'buddypress'), bp_get_group_last_active());
                } else {
                    if ('popular' == $instance['group_default']) {
                        bp_group_member_count();
                    }
                }
                ?>
								</span>
							</div>
						</div>
					</li>

				<?php 
            }
            ?>
			</ul>
			<?php 
            wp_nonce_field('groups_widget_groups_list', '_wpnonce-groups');
            ?>
			<input type="hidden" name="groups_widget_max" id="groups_widget_max" value="<?php 
            echo esc_attr($instance['max_groups']);
            ?>
" />

		<?php 
        } else {
            ?>

			<div class="widget-error">
				<?php 
            _e('There are no groups to display.', 'buddypress');
            ?>
			</div>

		<?php 
        }
        ?>

		<?php 
        echo $after_widget;
        ?>
	<?php 
    }
/**
 * Prints the box content.
 * 
 * @param WP_Post $post The object for the current post/page.
 */
function bpgroups_meta_box_callback($post)
{
    // Add an nonce field so we can check for it later.
    wp_nonce_field('bpgroups_meta_box', 'bpgroups_meta_box_nonce');
    // to store the groups this user is member of
    $buddypressgroups = array();
    $checkgroups = array();
    // Get real Buddypress Groups
    if (function_exists('bp_groups')) {
        if (bp_has_groups()) {
            while (bp_groups()) {
                bp_the_group();
                $groupname = bp_get_group_name();
                $groupslug = bp_get_group_slug();
                // Set group as taxonomy term if not already done
                $termexists = term_exists($groupname, 'buddypress_groups');
                if (empty($termexists)) {
                    wp_insert_term($groupname, 'buddypress_groups', array('slug' => strtolower($groupname)));
                }
                // Get only groups the current user is member of
                if (groups_is_user_member(get_current_user_id(), bp_get_group_id())) {
                    $buddypressgroups[] = array('name' => $groupname, 'slug' => $groupslug);
                    $checkgroups[] = strtolower($groupslug);
                }
            }
        }
    }
    // Remove tax terms that have no buddypress group counterpart anymore in case of changes
    $allgroupterms = get_terms('buddypress_groups', array('hide_empty' => false));
    foreach ($allgroupterms as $groupterm) {
        if (!in_array($groupterm->slug, $checkgroups) && $groupterm->slug != 'keine') {
            // just keep non assignment term
            $term = get_term_by('slug', $groupterm->name, 'buddypress_groups');
            if ($term) {
                wp_delete_term($term->term_id, 'buddypress_groups');
            }
        }
    }
    //get the group assigned to this post if any
    $assignedgroups = wp_get_object_terms(array($post->ID), array('buddypress_groups'));
    $assignedgroup = 'keine';
    // posts without assignments
    if ($assignedgroups) {
        $assignedgroup = $assignedgroups[0]->slug;
        // technically more than one but we use only one
    }
    ?>
	<p>
		<select name="bpgroups_groupselector" id="bpgroups_groupselector" size="1">
			<option value="keine" <?php 
    selected($assignedgroup, 'keine', true);
    ?>
>Keine</option>
			<?php 
    foreach ($buddypressgroups as $bpgroup) {
        $name = $bpgroup['name'];
        $slug = $bpgroup['slug'];
        ?>
				<option value="<?php 
        echo esc_html($slug);
        ?>
" <?php 
        selected($assignedgroup, $slug, true);
        ?>
><?php 
        echo esc_html($name);
        ?>
</option>
	<?php 
    }
    ?>
		</select>
	</p>
	<?php 
}