本文整理汇总了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));
}
示例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' ) );
}*/
}
示例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);
}
示例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 *******************************************************/
示例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);
}
示例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);
}
示例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;
}
示例8: get_object_by_id
public function get_object_by_id($forum_id)
{
return bbp_get_forum($forum_id);
}
示例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);
}
}
示例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
示例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();
?>
示例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;
}
示例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
}
}
示例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;
}
}
}
}
示例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);
//.........这里部分代码省略.........