Exemple #1
0
 /**
  * Ensure that forum content associated with a BuddyPress group can only be
  * viewed via the group URL.
  *
  * @since bbPress (r3802)
  */
 public function redirect_canonical()
 {
     // Viewing a single forum
     if (bbp_is_single_forum()) {
         $forum_id = get_the_ID();
         $group_ids = bbp_get_forum_group_ids($forum_id);
         // Viewing a single topic
     } elseif (bbp_is_single_topic()) {
         $topic_id = get_the_ID();
         $slug = get_post_field('post_name', $topic_id);
         $forum_id = bbp_get_topic_forum_id($topic_id);
         $group_ids = bbp_get_forum_group_ids($forum_id);
         // Not a forum or topic
     } else {
         return;
     }
     // Bail if not a group forum
     if (empty($group_ids)) {
         return;
     }
     // Use the first group ID
     $group_id = $group_ids[0];
     $group = groups_get_group(array('group_id' => $group_id));
     $group_link = trailingslashit(bp_get_group_permalink($group));
     $redirect_to = trailingslashit($group_link . $this->slug);
     // Add topic slug to URL
     if (bbp_is_single_topic()) {
         $redirect_to = trailingslashit($redirect_to . $this->topic_slug . '/' . $slug);
     }
     bp_core_redirect($redirect_to);
 }
/**
 * Return true if a forum is a group forum
 *
 * @since bbPress (r4571)
 *
 * @param int $forum_id
 * @uses bbp_get_forum_id() To get the forum id
 * @uses bbp_get_forum_group_ids() To get the forum's group ids
 * @uses apply_filters() Calls 'bbp_forum_is_group_forum' with the forum id
 * @return bool True if it is a group forum, false if not
 */
function bbp_is_forum_group_forum($forum_id = 0)
{
    // Validate
    $forum_id = bbp_get_forum_id($forum_id);
    // Check for group ID's
    $group_ids = bbp_get_forum_group_ids($forum_id);
    // Check if the forum has groups
    $retval = (bool) (!empty($group_ids));
    return (bool) apply_filters('bbp_is_forum_group_forum', $retval, $forum_id, $group_ids);
}
Exemple #3
0
/**
 * Remove a forum from all groups
 *
 * @param type $forum_id
 * @since bbPress (r3653)
 */
function bbp_remove_forum_id_from_all_groups($forum_id = 0)
{
    // Validate
    $forum_id = bbp_get_forum_id($forum_id);
    $group_ids = bbp_get_forum_group_ids($forum_id);
    // Loop through groups and remove this forum from each one
    foreach ((array) $group_ids as $group_id) {
        bbp_remove_forum_id_from_group($forum_id, $group_id);
    }
}
 /**
  * Ensure that forum content associated with a BuddyPress group can only be
  * viewed via the group URL.
  *
  * @since bbPress (r3802)
  */
 function redirect_canonical()
 {
     if (bbp_is_single_forum()) {
         $forum_id = get_the_ID();
         $group_ids = bbp_get_forum_group_ids($forum_id);
     } elseif (bbp_is_single_topic()) {
         $topic_id = get_the_ID();
         $slug = get_post_field('post_name', $topic_id);
         $forum_id = bbp_get_topic_forum_id($topic_id);
         $group_ids = bbp_get_forum_group_ids($forum_id);
     }
     if (!empty($group_ids)) {
         // @todo Multiple group forums/forum groups
         $group_id = $group_ids[0];
         $group = groups_get_group(array('group_id' => $group_id));
         $group_permalink = bp_get_group_permalink($group);
         $redirect_to = trailingslashit($group_permalink . $this->forums_slug);
         if (!empty($slug)) {
             $redirect_to = trailingslashit($redirect_to . $this->topic_slug . '/' . $slug);
         }
         bp_core_redirect($redirect_to);
     }
 }