当前位置: 首页>>代码示例>>PHP>>正文


PHP bbp_get_forum函数代码示例

本文整理汇总了PHP中bbp_get_forum函数的典型用法代码示例。如果您正苦于以下问题:PHP bbp_get_forum函数的具体用法?PHP bbp_get_forum怎么用?PHP bbp_get_forum使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了bbp_get_forum函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: test_bbp_insert_forum

 /**
  * @group canonical
  * @covers ::bbp_insert_forum
  */
 public function test_bbp_insert_forum()
 {
     $f = $this->factory->forum->create(array('post_title' => 'Forum 1', 'post_content' => 'Content of Forum 1'));
     $now = time();
     $post_date = date('Y-m-d H:i:s', $now - 60 * 60 * 100);
     $t = $this->factory->topic->create(array('post_parent' => $f, 'post_date' => $post_date, 'topic_meta' => array('forum_id' => $f)));
     $r = $this->factory->reply->create(array('post_parent' => $t, 'post_date' => $post_date, 'reply_meta' => array('forum_id' => $f, 'topic_id' => $t)));
     // Get the forum.
     $forum = bbp_get_forum($f);
     // Forum post.
     $this->assertSame('Forum 1', bbp_get_forum_title($f));
     $this->assertSame('Content of Forum 1', bbp_get_forum_content($f));
     $this->assertSame('open', bbp_get_forum_status($f));
     $this->assertSame('forum', bbp_get_forum_type($f));
     $this->assertTrue(bbp_is_forum_public($f));
     $this->assertSame(0, bbp_get_forum_parent_id($f));
     $this->assertEquals('http://' . WP_TESTS_DOMAIN . '/?forum=' . $forum->post_name, $forum->guid);
     // Forum meta.
     $this->assertSame(0, bbp_get_forum_subforum_count($f, true));
     $this->assertSame(1, bbp_get_forum_topic_count($f, false, true));
     $this->assertSame(1, bbp_get_forum_topic_count($f, true, true));
     $this->assertSame(0, bbp_get_forum_topic_count_hidden($f, true));
     $this->assertSame(1, bbp_get_forum_reply_count($f, false, true));
     $this->assertSame(1, bbp_get_forum_reply_count($f, true, true));
     $this->assertSame(2, bbp_get_forum_post_count($f, false, true));
     $this->assertSame(2, bbp_get_forum_post_count($f, true, true));
     $this->assertSame($t, bbp_get_forum_last_topic_id($f));
     $this->assertSame($r, bbp_get_forum_last_reply_id($f));
     $this->assertSame($r, bbp_get_forum_last_active_id($f));
     $this->assertSame('4 days, 4 hours ago', bbp_get_forum_last_active_time($f));
 }
开发者ID:joeyblake,项目名称:bbpress,代码行数:35,代码来源:forum.php

示例2: __construct

 public function __construct($r = array())
 {
     $args = array('plural' => 'topics', 'singular' => 'topic', 'ajax' => false);
     // $this->query =& bbpress()->topic_query;
     $this->forum = bbp_get_forum($r['post_parent']);
     $this->forum_op = bbpresskr()->forum_options($r['post_parent']);
     // override query vars
     $this->_topic_args = array_merge($r, array('posts_per_page' => $this->forum_op['posts_per_page']));
     $this->post_type = $r['post_type'];
     $this->post_type_object = get_post_type_object($this->post_type);
     add_filter("bbpkr_{$this->post_type}_columns", array($this, 'get_columns'), 0);
     if (!$args['plural']) {
         $args['plural'] = 'topics';
     }
     $args['plural'] = sanitize_key($args['plural']);
     $args['singular'] = sanitize_key($args['singular']);
     $this->_args = $args;
     add_action('bbp_has_topics', array(&$this, 'prepare_items'), 10, 2);
     // list topics of sub-forum of forum category
     add_filter('bbp_after_has_topics_parse_args', array(&$this, 'add_topic_parent_forums'), 99);
     /*if ( $args['ajax'] ) {
     			// wp_enqueue_script( 'list-table' );
     			add_action( 'admin_footer', array( $this, '_js_vars' ) );
     		}*/
 }
开发者ID:082net,项目名称:bbpresskr,代码行数:25,代码来源:list-table.php

示例3: bbp_get_topic_write_url

function bbp_get_topic_write_url($forum_id = 0)
{
    global $wp_rewrite;
    $bbp = bbpress();
    $forum = bbp_get_forum(bbp_get_forum_id($forum_id));
    if (empty($forum)) {
        return;
    }
    // Remove view=all link from edit
    $forum_link = bbp_get_forum_permalink($forum_id);
    // Pretty permalinks
    if ($wp_rewrite->using_permalinks()) {
        $url = trailingslashit($forum_link) . $bbp->write_id;
        $url = trailingslashit($url);
        // Unpretty permalinks
    } else {
        $url = add_query_arg(array(bbp_get_forum_post_type() => $forum->post_name, $bbp->write_id => '1'), $forum_link);
    }
    return apply_filters('bbp_get_topic_write_url', $url, $forum_id);
}
开发者ID:082net,项目名称:bbpresskr,代码行数:20,代码来源:functions.php

示例4: bbp_new_reply_handler


//.........这里部分代码省略.........
        if (0 > $posted_topic_id) {
            bbp_add_error('bbp_reply_topic_id', __('<strong>ERROR</strong>: Topic ID cannot be a negative number.', 'bbpress'));
            // Topic does not exist
        } elseif (!bbp_get_topic($posted_topic_id)) {
            bbp_add_error('bbp_reply_topic_id', __('<strong>ERROR</strong>: Topic does not exist.', 'bbpress'));
            // Use the POST'ed topic id
        } else {
            $topic_id = $posted_topic_id;
        }
    }
    /** Forum ID **************************************************************/
    // Try to use the forum id of the topic
    if (!isset($_POST['bbp_forum_id']) && !empty($topic_id)) {
        $forum_id = bbp_get_topic_forum_id($topic_id);
        // Error check the POST'ed forum id
    } elseif (isset($_POST['bbp_forum_id'])) {
        // Empty Forum id was passed
        if (empty($_POST['bbp_forum_id'])) {
            bbp_add_error('bbp_reply_forum_id', __('<strong>ERROR</strong>: Forum ID is missing.', 'bbpress'));
            // Forum id is not a number
        } elseif (!is_numeric($_POST['bbp_forum_id'])) {
            bbp_add_error('bbp_reply_forum_id', __('<strong>ERROR</strong>: Forum ID must be a number.', 'bbpress'));
            // Forum id might be valid
        } else {
            // Get the forum id
            $posted_forum_id = intval($_POST['bbp_forum_id']);
            // Forum id is empty
            if (0 === $posted_forum_id) {
                bbp_add_error('bbp_topic_forum_id', __('<strong>ERROR</strong>: Forum ID is missing.', 'bbpress'));
                // Forum id is a negative number
            } elseif (0 > $posted_forum_id) {
                bbp_add_error('bbp_topic_forum_id', __('<strong>ERROR</strong>: Forum ID cannot be a negative number.', 'bbpress'));
                // Forum does not exist
            } elseif (!bbp_get_forum($posted_forum_id)) {
                bbp_add_error('bbp_topic_forum_id', __('<strong>ERROR</strong>: Forum does not exist.', 'bbpress'));
                // Use the POST'ed forum id
            } else {
                $forum_id = $posted_forum_id;
            }
        }
    }
    // Forum exists
    if (!empty($forum_id)) {
        // Forum is a category
        if (bbp_is_forum_category($forum_id)) {
            bbp_add_error('bbp_new_reply_forum_category', __('<strong>ERROR</strong>: This forum is a category. No replies can be created in this forum.', 'bbpress'));
            // Forum is not a category
        } else {
            // Forum is closed and user cannot access
            if (bbp_is_forum_closed($forum_id) && !current_user_can('edit_forum', $forum_id)) {
                bbp_add_error('bbp_new_reply_forum_closed', __('<strong>ERROR</strong>: This forum has been closed to new replies.', 'bbpress'));
            }
            // Forum is private and user cannot access
            if (bbp_is_forum_private($forum_id)) {
                if (!current_user_can('read_private_forums')) {
                    bbp_add_error('bbp_new_reply_forum_private', __('<strong>ERROR</strong>: This forum is private and you do not have the capability to read or create new replies in it.', 'bbpress'));
                }
                // Forum is hidden and user cannot access
            } elseif (bbp_is_forum_hidden($forum_id)) {
                if (!current_user_can('read_hidden_forums')) {
                    bbp_add_error('bbp_new_reply_forum_hidden', __('<strong>ERROR</strong>: This forum is hidden and you do not have the capability to read or create new replies in it.', 'bbpress'));
                }
            }
        }
    }
    /** Unfiltered HTML *******************************************************/
开发者ID:igniterealtime,项目名称:community-plugins,代码行数:67,代码来源:functions.php

示例5: bbp_get_forum_topics_link

/**
 * Return the topics link of the forum
 *
 * @since bbPress (r2883)
 *
 * @param int $forum_id Optional. Topic id
 * @uses bbp_get_forum_id() To get the forum id
 * @uses bbp_get_forum() To get the forum
 * @uses bbp_get_forum_topic_count() To get the forum topic count
 * @uses bbp_get_forum_permalink() To get the forum permalink
 * @uses remove_query_arg() To remove args from the url
 * @uses bbp_get_forum_topic_count_hidden() To get the forum hidden
 *                                           topic count
 * @uses current_user_can() To check if the current user can edit others
 *                           topics
 * @uses add_query_arg() To add custom args to the url
 * @uses apply_filters() Calls 'bbp_get_forum_topics_link' with the
 *                        topics link and forum id
 */
function bbp_get_forum_topics_link($forum_id = 0)
{
    $forum = bbp_get_forum($forum_id);
    $forum_id = $forum->ID;
    $topics = bbp_get_forum_topic_count($forum_id);
    $topics = sprintf(_n('%s topic', '%s topics', $topics, 'bbpress'), $topics);
    $retval = '';
    // First link never has view=all
    if (bbp_get_view_all('edit_others_topics')) {
        $retval .= "<a href='" . esc_url(bbp_remove_view_all(bbp_get_forum_permalink($forum_id))) . "'>{$topics}</a>";
    } else {
        $retval .= $topics;
    }
    // Get deleted topics
    $deleted = bbp_get_forum_topic_count_hidden($forum_id);
    // This forum has hidden topics
    if (!empty($deleted) && current_user_can('edit_others_topics')) {
        // Extra text
        $extra = sprintf(__(' (+ %d hidden)', 'bbpress'), $deleted);
        // No link
        if (bbp_get_view_all()) {
            $retval .= " {$extra}";
            // Link
        } else {
            $retval .= " <a href='" . esc_url(bbp_add_view_all(bbp_get_forum_permalink($forum_id), true)) . "'>{$extra}</a>";
        }
    }
    return apply_filters('bbp_get_forum_topics_link', $retval, $forum_id);
}
开发者ID:hscale,项目名称:webento,代码行数:48,代码来源:bbp-forum-template.php

示例6: ajax_forum_subscription

 /**
  * AJAX handler to Subscribe/Unsubscribe a user from a forum
  *
  * @since bbPress (r5155)
  *
  * @uses bbp_is_subscriptions_active() To check if the subscriptions are active
  * @uses bbp_is_user_logged_in() To check if user is logged in
  * @uses bbp_get_current_user_id() To get the current user id
  * @uses current_user_can() To check if the current user can edit the user
  * @uses bbp_get_forum() To get the forum
  * @uses wp_verify_nonce() To verify the nonce
  * @uses bbp_is_user_subscribed() To check if the forum is in user's subscriptions
  * @uses bbp_remove_user_subscriptions() To remove the forum from user's subscriptions
  * @uses bbp_add_user_subscriptions() To add the forum from user's subscriptions
  * @uses bbp_ajax_response() To return JSON
  */
 public function ajax_forum_subscription()
 {
     // Bail if subscriptions are not active
     if (!bbp_is_subscriptions_active()) {
         bbp_ajax_response(false, __('Subscriptions are no longer active.', 'bbpress'), 300);
     }
     // Bail if user is not logged in
     if (!is_user_logged_in()) {
         bbp_ajax_response(false, __('Please login to subscribe to this forum.', 'bbpress'), 301);
     }
     // Get user and forum data
     $user_id = bbp_get_current_user_id();
     $id = intval($_POST['id']);
     // Bail if user cannot add favorites for this user
     if (!current_user_can('edit_user', $user_id)) {
         bbp_ajax_response(false, __('You do not have permission to do this.', 'bbpress'), 302);
     }
     // Get the forum
     $forum = bbp_get_forum($id);
     // Bail if forum cannot be found
     if (empty($forum)) {
         bbp_ajax_response(false, __('The forum could not be found.', 'bbpress'), 303);
     }
     // Bail if user did not take this action
     if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'toggle-subscription_' . $forum->ID)) {
         bbp_ajax_response(false, __('Are you sure you meant to do that?', 'bbpress'), 304);
     }
     // Take action
     $status = bbp_is_user_subscribed($user_id, $forum->ID) ? bbp_remove_user_subscription($user_id, $forum->ID) : bbp_add_user_subscription($user_id, $forum->ID);
     // Bail if action failed
     if (empty($status)) {
         bbp_ajax_response(false, __('The request was unsuccessful. Please try again.', 'bbpress'), 305);
     }
     // Put subscription attributes in convenient array
     $attrs = array('forum_id' => $forum->ID, 'user_id' => $user_id);
     // Action succeeded
     bbp_ajax_response(true, bbp_get_forum_subscription_link($attrs, $user_id, false), 200);
 }
开发者ID:danielcoats,项目名称:schoolpress,代码行数:54,代码来源:bbpress-functions.php

示例7: bbp_add_user_forum_subscription

/**
 * Add a forum to user's subscriptions
 *
 * @since bbPress (r5156)
 *
 * @param int $user_id Optional. User id
 * @param int $forum_id Optional. forum id
 * @uses bbp_get_user_subscribed_forum_ids() To get the user's subscriptions
 * @uses bbp_get_forum() To get the forum
 * @uses update_user_option() To update the user's subscriptions
 * @uses do_action() Calls 'bbp_add_user_subscription' with the user & forum id
 * @return bool Always true
 */
function bbp_add_user_forum_subscription($user_id = 0, $forum_id = 0)
{
    if (empty($user_id) || empty($forum_id)) {
        return false;
    }
    $forum = bbp_get_forum($forum_id);
    if (empty($forum)) {
        return false;
    }
    $subscriptions = (array) bbp_get_user_subscribed_forum_ids($user_id);
    if (!in_array($forum_id, $subscriptions)) {
        $subscriptions[] = $forum_id;
        $subscriptions = implode(',', wp_parse_id_list(array_filter($subscriptions)));
        update_user_option($user_id, '_bbp_forum_subscriptions', $subscriptions);
        wp_cache_delete('bbp_get_forum_subscribers_' . $forum_id, 'bbpress_users');
    }
    do_action('bbp_add_user_forum_subscription', $user_id, $forum_id);
    return true;
}
开发者ID:sdh100shaun,项目名称:pantheon,代码行数:32,代码来源:functions.php

示例8: get_object_by_id

 public function get_object_by_id($forum_id)
 {
     return bbp_get_forum($forum_id);
 }
开发者ID:joeyblake,项目名称:bbpress,代码行数:4,代码来源:factory.php

示例9: start_el

 /**
  * @see Walker::start_el()
  *
  * @since bbPress (r2514)
  *
  * @param string $output Passed by reference. Used to append additional
  *                        content.
  * @param object $forum Page data object.
  * @param int $depth Depth of page. Used for padding.
  * @param int $current_forum Page ID.
  * @param array $args
  */
 public function start_el(&$output, $forum, $depth, $args, $current_forum)
 {
     $indent = $depth ? str_repeat("\t", $depth) : '';
     extract($args, EXTR_SKIP);
     $css_class = array('bbp-forum-item', 'bbp-forum-item-' . $forum->ID);
     if (!empty($current_forum)) {
         $_current_page = bbp_get_forum($current_forum);
         if (isset($_current_page->ancestors) && in_array($forum->ID, (array) $_current_page->ancestors)) {
             $css_class[] = 'bbp-current-forum-ancestor';
         }
         if ($forum->ID == $current_forum) {
             $css_class[] = 'bbp_current_forum_item';
         } elseif ($_current_page && $forum->ID == $_current_page->post_parent) {
             $css_class[] = 'bbp-current-forum-parent';
         }
     } elseif ($forum->ID == get_option('page_for_posts')) {
         $css_class[] = 'bbp-current-forum-parent';
     }
     $css_class = implode(' ', apply_filters('bbp_forum_css_class', $css_class, $forum));
     $output .= $indent . '<li class="' . $css_class . '"><a href="' . bbp_get_forum_permalink($forum->ID) . '" title="' . esc_attr(wp_strip_all_tags(apply_filters('the_title', $forum->post_title, $forum->ID))) . '">' . $link_before . apply_filters('the_title', $forum->post_title, $forum->ID) . $link_after . '</a>';
     if (!empty($show_date)) {
         $time = 'modified' == $show_date ? $forum->post_modified : ($time = $forum->post_date);
         $output .= " " . mysql2date($date_format, $time);
     }
 }
开发者ID:hscale,项目名称:webento,代码行数:37,代码来源:bbp-core-classes.php

示例10: do_action

    ?>


            <?php 
    do_action('bbp_template_before_forums_loop');
    ?>
                    <?php 
    while (bbp_forums()) {
        bbp_the_forum();
        ?>
                        <!-- forum loop -->
                        <?php 
        /**
         * Forums Loop - Single Forum
         */
        $cur_forum_obj = bbp_get_forum('');
        if (bbp_is_forum_category()) {
            //is a category - print the header and output the forums
            ?>
                            <div class="clearfix"></div>
                            <ul class="td-forum-list-head td-forum-list-table">
                                <li class="td-forum-category-title">
                                    <span class="td-forum-category-name">
                                    <?php 
            echo $cur_forum_obj->post_title;
            ?>
                                    </span>
                                </li><li class="td-forum-topics-replies">
                                    Topics/Replies
                                </li><li class="td-forum-last-comment">
                                    Last comment
开发者ID:Vatia13,项目名称:wordpress,代码行数:31,代码来源:content-archive-forum.php

示例11: while

if (bbp_has_forums($buddypress_id)) {
    $topics = false;
    while (bbp_forums()) {
        bbp_the_forum();
        if ($forum_id != bbp_get_forum_id()) {
            continue;
        }
        $topics = bbp_has_topics(array('post_parent' => $forum_id, 'posts_per_page' => 11));
        if (!$topics) {
            _e('This forum does not have topics', 'qode');
            break;
        }
        $counter = 0;
        if (bp_group_is_visible($group)) {
            global $post;
            $post = bbp_get_forum($forum_id);
            $counter = 0;
            while (bbp_topics()) {
                bbp_the_topic();
                if (++$counter == 12) {
                    break;
                }
                ?>
										            <div class="topics_list_single_topic <?php 
                $postUser = new WP_User(bbp_get_topic_author_id());
                echo $postUser->has_cap('bbp_keymaster') || $postUser->has_cap('bbp_moderator') ? "isAdmin" : "";
                ?>
"
										                id="topic-<?php 
                echo bbp_get_topic_id();
                ?>
开发者ID:Bnei-Baruch,项目名称:kabacademy,代码行数:31,代码来源:single-namaste_course_old_forum.php

示例12: bbp_add_user_forum_subscription

/**
 * Add a forum to user's subscriptions
 *
 * @since 2.5.0 bbPress (r5156)
 *
 * @param int $user_id Optional. User id
 * @param int $forum_id Optional. forum id
 * @uses bbp_get_forum() To get the forum
 * @uses bbp_add_user_subscription() To add the user subscription
 * @uses do_action() Calls 'bbp_add_user_subscription' with the user & forum id
 * @return bool Always true
 */
function bbp_add_user_forum_subscription($user_id = 0, $forum_id = 0)
{
    // Bail if not enough info
    if (empty($user_id) || empty($forum_id)) {
        return false;
    }
    // Bail if no forum
    $forum = bbp_get_forum($forum_id);
    if (empty($forum)) {
        return false;
    }
    // Bail if already subscribed
    if (bbp_is_user_subscribed($user_id, $forum_id)) {
        return false;
    }
    // Bail if add fails
    if (!bbp_add_user_subscription($user_id, $forum_id)) {
        return false;
    }
    do_action('bbp_add_user_forum_subscription', $user_id, $forum_id);
    return true;
}
开发者ID:CompositeUK,项目名称:clone.bbPress,代码行数:34,代码来源:functions.php

示例13: toggle_forum_notice

        /**
         * Toggle forum notices
         *
         * Display the success/error notices from
         * {@link BBP_Admin::toggle_forum()}
         *
         * @since 2.6.0 bbPress (r5254)
         *
         * @uses bbp_get_forum() To get the forum
         * @uses bbp_get_forum_title() To get the forum title of the forum
         * @uses esc_html() To sanitize the forum title
         * @uses apply_filters() Calls 'bbp_toggle_forum_notice_admin' with
         *                        message, forum id, notice and is it a failure
         */
        public function toggle_forum_notice()
        {
            if ($this->bail()) {
                return;
            }
            // Only proceed if GET is a forum toggle action
            if (bbp_is_get_request() && !empty($_GET['bbp_forum_toggle_notice']) && in_array($_GET['bbp_forum_toggle_notice'], array('opened', 'closed')) && !empty($_GET['forum_id'])) {
                $notice = $_GET['bbp_forum_toggle_notice'];
                // Which notice?
                $forum_id = (int) $_GET['forum_id'];
                // What's the forum id?
                $is_failure = !empty($_GET['failed']) ? true : false;
                // Was that a failure?
                // Bail if no forum_id or notice
                if (empty($notice) || empty($forum_id)) {
                    return;
                }
                // Bail if forum is missing
                $forum = bbp_get_forum($forum_id);
                if (empty($forum)) {
                    return;
                }
                $forum_title = bbp_get_forum_title($forum->ID);
                switch ($notice) {
                    case 'opened':
                        $message = $is_failure === true ? sprintf(__('There was a problem opening the forum "%1$s".', 'bbpress'), $forum_title) : sprintf(__('Forum "%1$s" successfully opened.', 'bbpress'), $forum_title);
                        break;
                    case 'closed':
                        $message = $is_failure === true ? sprintf(__('There was a problem closing the forum "%1$s".', 'bbpress'), $forum_title) : sprintf(__('Forum "%1$s" successfully closed.', 'bbpress'), $forum_title);
                        break;
                }
                // Do additional forum toggle notice filters (admin side)
                $message = apply_filters('bbp_toggle_forum_notice_admin', $message, $forum->ID, $notice, $is_failure);
                ?>

			<div id="message" class="<?php 
                echo $is_failure === true ? 'error' : 'updated';
                ?>
 fade">
				<p style="line-height: 150%"><?php 
                echo esc_html($message);
                ?>
</p>
			</div>

			<?php 
            }
        }
开发者ID:joeyblake,项目名称:bbpress,代码行数:62,代码来源:forums.php

示例14: update_group_forum_visibility

 /**
  * Set forums' status to match the privacy status of the associated group
  *
  * Fired whenever a group is saved
  *
  * @param BP_Groups_Group $group Group object.
  */
 public static function update_group_forum_visibility(BP_Groups_Group $group)
 {
     // Get group forum IDs
     $forum_ids = bbp_get_group_forum_ids($group->id);
     // Bail if no forum IDs available
     if (empty($forum_ids)) {
         return;
     }
     // Loop through forum IDs
     foreach ($forum_ids as $forum_id) {
         // Get forum from ID
         $forum = bbp_get_forum($forum_id);
         // Check for change
         if ($group->status !== $forum->post_status) {
             switch ($group->status) {
                 // Changed to hidden
                 case 'hidden':
                     bbp_hide_forum($forum_id, $forum->post_status);
                     break;
                     // Changed to private
                 // Changed to private
                 case 'private':
                     bbp_privatize_forum($forum_id, $forum->post_status);
                     break;
                     // Changed to public
                 // Changed to public
                 case 'public':
                 default:
                     bbp_publicize_forum($forum_id, $forum->post_status);
                     break;
             }
         }
     }
 }
开发者ID:joeyblake,项目名称:bbpress,代码行数:41,代码来源:groups.php

示例15: bbp_edit_forum_handler

/**
 * Handles the front end edit forum submission
 *
 * @param string $action The requested action to compare this function to
 * @uses bbPress:errors::add() To log various error messages
 * @uses bbp_get_forum() To get the forum
 * @uses bbp_verify_nonce_request() To verify the nonce and check the request
 * @uses bbp_is_forum_anonymous() To check if forum is by an anonymous user
 * @uses current_user_can() To check if the current user can edit the forum
 * @uses bbp_filter_anonymous_post_data() To filter anonymous data
 * @uses is_wp_error() To check if the value retrieved is a {@link WP_Error}
 * @uses esc_attr() For sanitization
 * @uses bbp_is_forum_category() To check if the forum is a category
 * @uses bbp_is_forum_closed() To check if the forum is closed
 * @uses bbp_is_forum_private() To check if the forum is private
 * @uses remove_filter() To remove kses filters if needed
 * @uses apply_filters() Calls 'bbp_edit_forum_pre_title' with the title and
 *                        forum id
 * @uses apply_filters() Calls 'bbp_edit_forum_pre_content' with the content
 *                        and forum id
 * @uses bbPress::errors::get_error_codes() To get the {@link WP_Error} errors
 * @uses wp_save_post_revision() To save a forum revision
 * @uses bbp_update_forum_revision_log() To update the forum revision log
 * @uses wp_update_post() To update the forum
 * @uses do_action() Calls 'bbp_edit_forum' with the forum id, forum id,
 *                    anonymous data and reply author
 * @uses bbp_move_forum_handler() To handle movement of a forum from one forum
 *                                 to another
 * @uses bbp_get_forum_permalink() To get the forum permalink
 * @uses wp_safe_redirect() To redirect to the forum link
 * @uses bbPress::errors::get_error_messages() To get the {@link WP_Error} error
 *                                              messages
 */
function bbp_edit_forum_handler($action = '')
{
    // Bail if action is not bbp-edit-forum
    if ('bbp-edit-forum' !== $action) {
        return;
    }
    // Define local variable(s)
    $anonymous_data = array();
    $forum = $forum_id = $forum_parent_id = 0;
    $forum_title = $forum_content = $forum_edit_reason = '';
    /** Forum *****************************************************************/
    // Forum id was not passed
    if (empty($_POST['bbp_forum_id'])) {
        bbp_add_error('bbp_edit_forum_id', __('<strong>ERROR</strong>: Forum ID not found.', 'bbpress'));
        return;
        // Forum id was passed
    } elseif (is_numeric($_POST['bbp_forum_id'])) {
        $forum_id = (int) $_POST['bbp_forum_id'];
        $forum = bbp_get_forum($forum_id);
    }
    // Nonce check
    if (!bbp_verify_nonce_request('bbp-edit-forum_' . $forum_id)) {
        bbp_add_error('bbp_edit_forum_nonce', __('<strong>ERROR</strong>: Are you sure you wanted to do that?', 'bbpress'));
        return;
        // Forum does not exist
    } elseif (empty($forum)) {
        bbp_add_error('bbp_edit_forum_not_found', __('<strong>ERROR</strong>: The forum you want to edit was not found.', 'bbpress'));
        return;
        // User cannot edit this forum
    } elseif (!current_user_can('edit_forum', $forum_id)) {
        bbp_add_error('bbp_edit_forum_permissions', __('<strong>ERROR</strong>: You do not have permission to edit that forum.', 'bbpress'));
        return;
    }
    // Remove kses filters from title and content for capable users and if the nonce is verified
    if (current_user_can('unfiltered_html') && !empty($_POST['_bbp_unfiltered_html_forum']) && wp_create_nonce('bbp-unfiltered-html-forum_' . $forum_id) === $_POST['_bbp_unfiltered_html_forum']) {
        remove_filter('bbp_edit_forum_pre_title', 'wp_filter_kses');
        remove_filter('bbp_edit_forum_pre_content', 'bbp_encode_bad', 10);
        remove_filter('bbp_edit_forum_pre_content', 'bbp_filter_kses', 30);
    }
    /** Forum Parent ***********************************************************/
    // Forum parent id was passed
    if (!empty($_POST['bbp_forum_parent_id'])) {
        $forum_parent_id = bbp_get_forum_id($_POST['bbp_forum_parent_id']);
    }
    // Current forum this forum is in
    $current_parent_forum_id = bbp_get_forum_parent_id($forum_id);
    // Forum exists
    if (!empty($forum_parent_id) && $forum_parent_id !== $current_parent_forum_id) {
        // Forum is closed and user cannot access
        if (bbp_is_forum_closed($forum_parent_id) && !current_user_can('edit_forum', $forum_parent_id)) {
            bbp_add_error('bbp_edit_forum_forum_closed', __('<strong>ERROR</strong>: This forum has been closed to new forums.', 'bbpress'));
        }
        // Forum is private and user cannot access
        if (bbp_is_forum_private($forum_parent_id) && !current_user_can('read_private_forums')) {
            bbp_add_error('bbp_edit_forum_forum_private', __('<strong>ERROR</strong>: This forum is private and you do not have the capability to read or create new forums in it.', 'bbpress'));
        }
        // Forum is hidden and user cannot access
        if (bbp_is_forum_hidden($forum_parent_id) && !current_user_can('read_hidden_forums')) {
            bbp_add_error('bbp_edit_forum_forum_hidden', __('<strong>ERROR</strong>: This forum is hidden and you do not have the capability to read or create new forums in it.', 'bbpress'));
        }
    }
    /** Forum Title ***********************************************************/
    if (!empty($_POST['bbp_forum_title'])) {
        $forum_title = esc_attr(strip_tags($_POST['bbp_forum_title']));
    }
    // Filter and sanitize
    $forum_title = apply_filters('bbp_edit_forum_pre_title', $forum_title, $forum_id);
//.........这里部分代码省略.........
开发者ID:jenia-buianov,项目名称:all_my_sites,代码行数:101,代码来源:functions.php


注:本文中的bbp_get_forum函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。