Esempio n. 1
0
	</div><!-- .forums.single-forum -->

<?php 
}
?>

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

<?php 
if (!bp_is_group_forum_topic_edit() && !bp_is_group_forum_topic()) {
    ?>

	<?php 
    if (!bp_group_is_user_banned() && (is_user_logged_in() && 'public' == bp_get_group_status() || bp_group_is_member())) {
        ?>

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

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

				<?php 
        if (bp_groups_auto_join() && !bp_group_is_member()) {
            ?>
					<p><?php 
            _e('You will auto join this group when you start a new topic.', 'buddypress');
            ?>
function bp_get_group_join_button($group = false)
{
    global $groups_template;
    if (empty($group)) {
        $group =& $groups_template->group;
    }
    if (!is_user_logged_in() || bp_group_is_user_banned($group)) {
        return false;
    }
    // Group creation was not completed or status is unknown
    if (!$group->status) {
        return false;
    }
    // Already a member
    if (isset($group->is_member) && $group->is_member) {
        // Stop sole admins from abandoning their group
        $group_admins = groups_get_group_admins($group->id);
        if (1 == count($group_admins) && $group_admins[0]->user_id == bp_loggedin_user_id()) {
            return false;
        }
        $button = array('id' => 'leave_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'leave-group', 'groups_leave_group'), 'link_text' => __('Leave Group', 'buddypress'), 'link_title' => __('Leave Group', 'buddypress'), 'link_class' => 'group-button leave-group');
        // Not a member
    } else {
        // Show different buttons based on group status
        switch ($group->status) {
            case 'hidden':
                return false;
                break;
            case 'public':
                $button = array('id' => 'join_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'join', 'groups_join_group'), 'link_text' => __('Join Group', 'buddypress'), 'link_title' => __('Join Group', 'buddypress'), 'link_class' => 'group-button join-group');
                break;
            case 'private':
                // Member has outstanding invitation -
                // show an "Accept Invitation" button
                if ($group->is_invited) {
                    $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)), 'link_text' => __('Accept Invitation', 'buddypress'), 'link_title' => __('Accept Invitation', 'buddypress'), 'link_class' => 'group-button accept-invite');
                    // Member has requested membership but request is pending -
                    // show a "Request Sent" button
                } elseif ($group->is_pending) {
                    $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button pending ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => bp_get_group_permalink($group), 'link_text' => __('Request Sent', 'buddypress'), 'link_title' => __('Request Sent', 'buddypress'), 'link_class' => 'group-button pending membership-requested');
                    // Member has not requested membership yet -
                    // show a "Request Membership" button
                } else {
                    $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'buddypress'), 'link_title' => __('Request Membership', 'buddypress'), 'link_class' => 'group-button request-membership');
                }
                break;
        }
    }
    // Filter and return the HTML button
    return bp_get_button(apply_filters('bp_get_group_join_button', $button));
}
/**
 * Return button to join a group.
 *
 * @since 1.0.0
 *
 * @param object|bool $group Single group object.
 * @return mixed
 */
function bp_get_group_join_button($group = false)
{
    global $groups_template;
    // Set group to current loop group if none passed.
    if (empty($group)) {
        $group =& $groups_template->group;
    }
    // Don't show button if not logged in or previously banned.
    if (!is_user_logged_in() || bp_group_is_user_banned($group)) {
        return false;
    }
    // Group creation was not completed or status is unknown.
    if (empty($group->status)) {
        return false;
    }
    // Already a member.
    if (!empty($group->is_member)) {
        // Stop sole admins from abandoning their group.
        $group_admins = groups_get_group_admins($group->id);
        if (1 == count($group_admins) && bp_loggedin_user_id() === (int) $group_admins[0]->user_id) {
            return false;
        }
        // Setup button attributes.
        $button = array('id' => 'leave_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'leave-group', 'groups_leave_group'), 'link_text' => __('Leave Group', 'buddypress'), 'link_title' => __('Leave Group', 'buddypress'), 'link_class' => 'group-button leave-group');
        // Not a member.
    } else {
        // Show different buttons based on group status.
        switch ($group->status) {
            case 'hidden':
                return false;
            case 'public':
                $button = array('id' => 'join_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'join', 'groups_join_group'), 'link_text' => __('Join Group', 'buddypress'), 'link_title' => __('Join Group', 'buddypress'), 'link_class' => 'group-button join-group');
                break;
            case 'private':
                // Member has outstanding invitation -
                // show an "Accept Invitation" button.
                if ($group->is_invited) {
                    $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)), 'link_text' => __('Accept Invitation', 'buddypress'), 'link_title' => __('Accept Invitation', 'buddypress'), 'link_class' => 'group-button accept-invite');
                    // Member has requested membership but request is pending -
                    // show a "Request Sent" button.
                } elseif ($group->is_pending) {
                    $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button pending ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => bp_get_group_permalink($group), 'link_text' => __('Request Sent', 'buddypress'), 'link_title' => __('Request Sent', 'buddypress'), 'link_class' => 'group-button pending membership-requested');
                    // Member has not requested membership yet -
                    // show a "Request Membership" button.
                } else {
                    $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'buddypress'), 'link_title' => __('Request Membership', 'buddypress'), 'link_class' => 'group-button request-membership');
                }
                break;
        }
    }
    /**
     * Filters the HTML button for joining a group.
     *
     * @since 1.2.6
     * @since 2.4.0 Added $group parameter to filter args.
     *
     * @param string $button HTML button for joining a group.
     * @param object $group BuddyPress group object
     */
    return bp_get_button(apply_filters('bp_get_group_join_button', $button, $group));
}
Esempio n. 4
0
            _e('Post Reply', 'buddypress');
            ?>
" />
					</div>

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

					<?php 
            wp_nonce_field('bp_forums_new_reply');
            ?>
				</div>

			<?php 
        } elseif (!bp_group_is_user_banned()) {
            ?>

				<div id="message" class="info">
					<p><?php 
            _e('This topic is closed, replies are no longer accepted.', 'buddypress');
            ?>
</p>
				</div>

			<?php 
        }
        ?>

		<?php 
    }
Esempio n. 5
0
/**
 * Temporarily fix the "New Topic" button when using bbPress with BP.
 *
 * @todo Remove this when bbPress addresses this.
 */
function cbox_fix_bbp_new_topic_button()
{
    // if groups isn't active, stop now!
    if (!bp_is_active('groups')) {
        return;
    }
    // if bbPress 2 isn't enabled, stop now!
    if (!function_exists('bbpress')) {
        return;
    }
    // remove the 'New Topic' button
    // this is done because the 'bp_get_group_new_topic_button' filter doesn't
    // work properly
    remove_action('bp_group_header_actions', 'bp_group_new_topic_button');
    // version of bp_is_group_forum() that works with bbPress 2
    $is_group_forum = bp_is_single_item() && bp_is_groups_component() && bp_is_current_action('forum');
    // If these conditions are met, this button should not be displayed
    if (!is_user_logged_in() || !$is_group_forum || bp_is_group_forum_topic() || bp_group_is_user_banned()) {
        return false;
    }
    // create function to output new topic button
    $new_button = create_function('', "\n\t\t// do not show in sidebar\n\t\tif ( did_action( 'open_sidebar' ) )\n\t\t\treturn;\n\n\t\t// render the button\n\t\tbp_button( array(\n\t\t\t'id'                => 'new_topic',\n\t\t\t'component'         => 'groups',\n\t\t\t'must_be_logged_in' => true,\n\t\t\t'block_self'        => true,\n\t\t\t'wrapper_class'     => 'group-button',\n\t\t\t'link_href'         => '#new-post',    // anchor modified\n\t\t\t'link_class'        => 'group-button', // removed a link_class here\n\t\t\t'link_id'           => 'new-topic-button',\n\t\t\t'link_text'         => __( 'New Topic', 'buddypress' ),\n\t\t\t'link_title'        => __( 'New Topic', 'buddypress' ),\n\t\t) );\n\t");
    // add our customized 'New Topic' button
    add_action('bp_group_header_actions', $new_button);
}
Esempio n. 6
0
    ?>
				</select>
			</li>
		</ul>
		<div class="clear"></div>
	</div>
	<div class="forums single-forum" role="main">
		<?php 
    gconnect_locate_template(array('forums/forums-loop.php'), true);
    ?>
	</div><!-- .forums.single-forum -->

<?php 
}
do_action('bp_after_group_forum_content');
if (!bp_is_group_forum_topic_edit() && !bp_is_group_forum_topic() && !bp_group_is_user_banned() && (is_user_logged_in() && 'public' == bp_get_group_status() || bp_group_is_member())) {
    ?>

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

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

			<?php 
    if (bp_groups_auto_join() && !bp_group_is_member()) {
        ?>
				<p><?php 
        _e('You will auto join this group when you start a new topic.', 'buddypress');
        ?>
Esempio n. 7
0
 /**
  * @group bp_group_is_user_banned
  */
 public function test_bp_group_is_user_banned_not_in_groups_loop()
 {
     $now = time();
     $u1 = $this->factory->user->create(array('last_activity' => date('Y-m-d H:i:s', $now - 100)));
     $u2 = $this->factory->user->create(array('last_activity' => date('Y-m-d H:i:s', $now - 100)));
     $g1 = $this->factory->group->create(array('creator_id' => $u1));
     $g2 = $this->factory->group->create(array('creator_id' => $u2));
     $this->add_user_to_group($u1, $g2, array('date_modified' => date('Y-m-d H:i:s', $now - 50)));
     $this->add_user_to_group($u2, $g2, array('date_modified' => date('Y-m-d H:i:s', $now - 500)));
     $this->add_user_to_group($u1, $g2, array('date_modified' => date('Y-m-d H:i:s', $now - 50)));
     // Ban user 1 from group 2
     // Fool the admin check
     $old_user = get_current_user_id();
     $this->set_current_user($u2);
     buddypress()->is_item_admin = true;
     groups_ban_member($u1, $g2);
     // Do group ban checks
     $group1 = new BP_Groups_Group($g1);
     $group2 = new BP_Groups_Group($g2);
     $found = array();
     $found[] = bp_group_is_user_banned($group1, $u1);
     $found[] = bp_group_is_user_banned($group2, $u1);
     // Assert
     $expected = array(false, true);
     $this->assertEquals($expected, $found);
     // Clean up
     $this->set_current_user($old_user);
 }