/** * Output the required hidden fields when creating/editing a reply * * @since bbPress (r2753) * * @uses bbp_is_reply_edit() To check if it's the reply edit page * @uses wp_nonce_field() To generate hidden nonce fields * @uses bbp_reply_id() To output the reply id * @uses bbp_topic_id() To output the topic id * @uses bbp_forum_id() To output the forum id */ function bbp_reply_form_fields() { if (bbp_is_reply_edit()) { ?> <input type="hidden" name="bbp_reply_title" id="bbp_reply_title" value="<?php printf(__('Reply To: %s', 'bbpress'), bbp_get_topic_title()); ?> " maxlength="<?php bbp_get_title_max_length(); ?> " /> <input type="hidden" name="bbp_reply_id" id="bbp_reply_id" value="<?php bbp_reply_id(); ?> " /> <input type="hidden" name="action" id="bbp_post_action" value="bbp-edit-reply" /> <?php if (current_user_can('unfiltered_html')) { wp_nonce_field('bbp-unfiltered-html-reply_' . bbp_get_reply_id(), '_bbp_unfiltered_html_reply', false); } ?> <?php wp_nonce_field('bbp-edit-reply_' . bbp_get_reply_id()); } else { ?> <input type="hidden" name="bbp_reply_title" id="bbp_reply_title" value="<?php printf(__('Reply To: %s', 'bbpress'), bbp_get_topic_title()); ?> " maxlength="<?php bbp_get_title_max_length(); ?> " /> <input type="hidden" name="bbp_topic_id" id="bbp_topic_id" value="<?php bbp_topic_id(); ?> " /> <input type="hidden" name="action" id="bbp_post_action" value="bbp-new-reply" /> <?php if (current_user_can('unfiltered_html')) { wp_nonce_field('bbp-unfiltered-html-reply_' . bbp_get_topic_id(), '_bbp_unfiltered_html_reply', false); } ?> <?php wp_nonce_field('bbp-new-reply'); // Show redirect field if not viewing a specific topic if (bbp_is_query_name('bbp_single_topic')) { bbp_redirect_to_field(get_permalink()); } } }
/** * Return the link to subscribe/unsubscribe from a topic * * @since bbPress (r2668) * * @param mixed $args This function supports these arguments: * - subscribe: Subscribe text * - unsubscribe: Unsubscribe text * - user_id: User id * - topic_id: Topic id * - before: Before the link * - after: After the link * @param int $user_id Optional. User id * @uses bbp_get_user_id() To get the user id * @uses current_user_can() To check if the current user can edit user * @uses bbp_get_topic_id() To get the topic id * @uses bbp_is_user_subscribed() To check if the user is subscribed * @uses bbp_is_subscriptions() To check if it's the subscriptions page * @uses bbp_get_subscriptions_permalink() To get subscriptions link * @uses bbp_get_topic_permalink() To get topic link * @uses apply_filters() Calls 'bbp_get_user_subscribe_link' with the * link, args, user id & topic id * @return string Permanent link to topic */ function bbp_get_user_subscribe_link($args = '', $user_id = 0) { if (!bbp_is_subscriptions_active()) { return; } $defaults = array('subscribe' => __('Subscribe', 'bbpress'), 'unsubscribe' => __('Unsubscribe', 'bbpress'), 'user_id' => 0, 'topic_id' => 0, 'before' => ' | ', 'after' => ''); $args = bbp_parse_args($args, $defaults, 'get_user_subscribe_link'); extract($args); // Validate user and topic ID's $user_id = bbp_get_user_id($user_id, true, true); $topic_id = bbp_get_topic_id($topic_id); if (empty($user_id) || empty($topic_id)) { return false; } // No link if you can't edit yourself if (!current_user_can('edit_user', (int) $user_id)) { return false; } // Decine which link to show $is_subscribed = bbp_is_user_subscribed($user_id, $topic_id); if (!empty($is_subscribed)) { $text = $unsubscribe; $query_args = array('action' => 'bbp_unsubscribe', 'topic_id' => $topic_id); } else { $text = $subscribe; $query_args = array('action' => 'bbp_subscribe', 'topic_id' => $topic_id); } // Create the link based where the user is and if the user is // subscribed already if (bbp_is_subscriptions()) { $permalink = bbp_get_subscriptions_permalink($user_id); } elseif (is_singular(bbp_get_topic_post_type())) { $permalink = bbp_get_topic_permalink($topic_id); } elseif (is_singular(bbp_get_reply_post_type())) { $permalink = bbp_get_topic_permalink($topic_id); } elseif (bbp_is_query_name('bbp_single_topic')) { $permalink = get_permalink(); } $url = esc_url(wp_nonce_url(add_query_arg($query_args, $permalink), 'toggle-subscription_' . $topic_id)); $is_subscribed = $is_subscribed ? 'is-subscribed' : ''; $html = '<span id="subscription-toggle">' . $before . '<span id="subscribe-' . $topic_id . '" class="' . $is_subscribed . '"><a href="' . $url . '" class="dim:subscription-toggle:subscribe-' . $topic_id . ':is-subscribed">' . $text . '</a></span>' . $after . '</span>'; // Return the link return apply_filters('bbp_get_user_subscribe_link', $html, $args, $user_id, $topic_id); }