Skip to:
Content

bbPress.org

Changeset 7380


Ignore:
Timestamp:
12/05/2025 02:27:53 AM (6 months ago)
Author:
johnjamesjacoby
Message:

Tools - Code Improvement: docs & code formatting improvements.

Props johnjamesjacoby, noruzzaman.

Fixes #3659.

Location:
trunk
Files:
69 edited

Legend:

Unmodified
Added
Removed
  • trunk/bbpress.php

    r7340 r7380  
    22
    33/**
    4  * The bbPress Plugin
     4 * The bbPress Plugin.
    55 *
    66 * bbPress is forum software with a twist from the creators of WordPress.
  • trunk/src/bbpress.php

    r7378 r7380  
    22
    33/**
    4  * The bbPress Plugin
     4 * The bbPress Plugin.
    55 *
    66 * bbPress is forum software with a twist from the creators of WordPress.
     
    3333if ( ! class_exists( 'bbPress' ) ) :
    3434/**
    35  * Main bbPress Class
     35 * Main bbPress Class.
    3636 *
    3737 * "Word hard. Stay bumble."
     
    5858
    5959    /**
    60      * @var mixed False when not logged in; WP_User object when logged in
     60     * @var mixed False when not logged in; WP_User object when logged in.
    6161     */
    6262    public $current_user = false;
     
    6868
    6969    /**
    70      * @var array Topic views
     70     * @var array Topic views.
    7171     */
    7272    public $views = array();
    7373
    7474    /**
    75      * @var array Overloads get_option()
     75     * @var array Overloads get_option().
    7676     */
    7777    public $options = array();
    7878
    7979    /**
    80      * @var array Storage of options not in the database
     80     * @var array Storage of options not in the database.
    8181     */
    8282    public $not_options = array();
    8383
    8484    /**
    85      * @var array Overloads get_user_meta()
     85     * @var array Overloads get_user_meta().
    8686     */
    8787    public $user_options = array();
    8888
    8989    /**
    90      * @var array Dynamically initialized user roles
     90     * @var array Dynamically initialized user roles.
    9191     */
    9292    public $roles = array();
     
    9595
    9696    /**
    97      * Main bbPress Instance
    98      *
    99      * bbPress is fun
    100      * Please load it only one time
    101      * For this, we thank you
     97     * Main bbPress Instance.
     98     *
     99     * bbPress is fun.
     100     * Please load it only one time.
     101     * For this, we thank you.
    102102     *
    103103     * Insures that only one instance of bbPress exists in memory at any one
     
    108108     * @staticvar object $instance
    109109     * @see bbpress()
    110      * @return bbPress The one true bbPress
     110     * @return bbPress The one true bbPress.
    111111     */
    112112    public static function instance() {
     
    143143
    144144    /**
    145      * A dummy magic method to prevent bbPress from being cloned
     145     * A dummy magic method to prevent bbPress from being cloned.
    146146     *
    147147     * @since 2.0.0 bbPress (r2464)
     
    152152
    153153    /**
    154      * A dummy magic method to prevent bbPress from being unserialized
     154     * A dummy magic method to prevent bbPress from being unserialized.
    155155     *
    156156     * @since 2.0.0 bbPress (r2464)
     
    161161
    162162    /**
    163      * Magic method for checking the existence of a certain custom field
     163     * Magic method for checking the existence of a certain custom field.
    164164     *
    165165     * @since 2.1.0 bbPress (r3951)
     
    170170
    171171    /**
    172      * Magic method for getting bbPress variables
     172     * Magic method for getting bbPress variables.
    173173     *
    174174     * @since 2.1.0 bbPress (r3951)
     
    181181
    182182    /**
    183      * Magic method for setting bbPress variables
     183     * Magic method for setting bbPress variables.
    184184     *
    185185     * @since 2.1.0 bbPress (r3951)
     
    190190
    191191    /**
    192      * Magic method for unsetting bbPress variables
     192     * Magic method for unsetting bbPress variables.
    193193     *
    194194     * @since 2.3.0 bbPress (r4628)
     
    201201
    202202    /**
    203      * Magic method to prevent notices and errors from invalid method calls
     203     * Magic method to prevent notices and errors from invalid method calls.
    204204     *
    205205     * @since 2.2.0 bbPress (r4252)
     
    325325
    326326    /**
    327      * Include required files
     327     * Include required files.
    328328     *
    329329     * @since 2.0.0 bbPress (r2626)
     
    402402
    403403    /**
    404      * Setup the default hooks and actions
     404     * Setup the default hooks and actions.
    405405     *
    406406     * @since 2.0.0 bbPress (r2644)
     
    450450
    451451    /**
    452      * Register bundled theme packages
     452     * Register bundled theme packages.
    453453     *
    454454     * Note that since we currently have complete control over bbp-themes and
     
    518518
    519519    /**
    520      * Setup the post types for forums, topics and replies
     520     * Setup the post types for forums, topics and replies.
    521521     *
    522522     * @since 2.0.0 bbPress (r2597)
     
    613613
    614614    /**
    615      * Register the post statuses used by bbPress
     615     * Register the post statuses used by bbPress.
    616616     *
    617617     * We do some manipulation of the 'trash' status so trashed topics and
     
    694694
    695695        /**
    696          * Trash fix
     696         * Trash fix.
    697697         *
    698698         * We need to remove the internal arg and change that to
     
    718718
    719719    /**
    720      * Register the topic tag and forum moderator taxonomies
     720     * Register the topic tag and forum moderator taxonomies.
    721721     *
    722722     * @since 2.0.0 bbPress (r2464) Added bbp_get_topic_tag_tax_id() taxonomy
     
    748748
    749749    /**
    750      * Register the bbPress views
     750     * Register the bbPress views.
    751751     *
    752752     * @since 2.0.0 bbPress (r2789)
     
    789789
    790790    /**
    791      * Register the bbPress shortcodes
     791     * Register the bbPress shortcodes.
    792792     *
    793793     * @since 2.0.0 bbPress (r3031)
     
    798798
    799799    /**
    800      * Register bbPress meta-data
    801      *
    802      * Counts added in 2.6.0 to avoid negative values
     800     * Register bbPress meta-data.
     801     *
     802     * Counts added in 2.6.0 to avoid negative values.
    803803     *
    804804     * @since 2.6.0 bbPress (r6300)
     
    870870
    871871    /**
    872      * Setup the currently logged-in user
     872     * Setup the currently logged-in user.
    873873     *
    874874     * @since 2.0.0 bbPress (r2697)
     
    879879
    880880    /**
    881      * Setup the user engagements strategy
     881     * Setup the user engagements strategy.
    882882     *
    883883     * @since 2.6.0 bbPress (r6875)
     
    894894
    895895    /**
    896      * Initialize forum-specific roles
     896     * Initialize forum-specific roles.
    897897     *
    898898     * @since 2.6.0
     
    920920
    921921    /**
    922      * Add the bbPress-specific rewrite tags
     922     * Add the bbPress-specific rewrite tags.
    923923     *
    924924     * @since 2.0.0 bbPress (r2753)
  • trunk/src/includes/admin/actions.php

    r7376 r7380  
    22
    33/**
    4  * bbPress Admin Actions
     4 * bbPress Admin Actions.
    55 *
    66 * This file contains the actions that are used through-out bbPress Admin. They
     
    119119
    120120/**
    121  * Setup bbPress admin
     121 * Setup bbPress admin.
    122122 *
    123123 * @since 2.0.0 bbPress (r1000)
     
    130130/**
    131131 * When a new site is created in a multisite installation, run the activation
    132  * routine on that site
     132 * routine on that site.
    133133 *
    134134 * @since 2.0.0 bbPress (r3283)
     
    159159
    160160/**
    161  * Show icons in list-table column headers instead of strings
     161 * Show icons in list-table column headers instead of strings.
    162162 *
    163163 * @since 2.6.0 bbPress (r5833)
    164164 *
    165  * @param  array $columns Column headers fed into list-table objects
    166  *
    167  * @return array Possibly altered column headers
     165 * @param  array $columns Column headers fed into list-table objects.
     166 *
     167 * @return array Possibly altered column headers.
    168168 */
    169169function bbp_filter_column_headers( $columns = array() ) {
     
    218218 * @since 2.0.0 bbPress (r3336)
    219219 *
    220  * @param string $post_link Custom post type permalink
    221  * @param object $_post Post data object
     220 * @param string $post_link Custom post type permalink.
     221 * @param object $_post Post data object.
    222222 * @param bool $leavename Optional, defaults to false. Whether to keep post name or page name.
    223223 * @param bool $sample Optional, defaults to false. Is it a sample permalink.
    224224 *
    225  * @return string The custom post type permalink
     225 * @return string The custom post type permalink.
    226226 */
    227227function bbp_filter_sample_permalink( $post_link, $_post, $leavename = false, $sample = false ) {
     
    239239
    240240/**
    241  * Piggy back admin_init action
     241 * Piggy back admin_init action.
    242242 *
    243243 * @since 2.1.0 bbPress (r3766)
     
    248248
    249249/**
    250  * Piggy back admin_menu action
     250 * Piggy back admin_menu action.
    251251 *
    252252 * @since 2.1.0 bbPress (r3766)
     
    257257
    258258/**
    259  * Piggy back admin_head action
     259 * Piggy back admin_head action.
    260260 *
    261261 * @since 2.1.0 bbPress (r3766)
     
    266266
    267267/**
    268  * Piggy back admin_notices action
     268 * Piggy back admin_notices action.
    269269 *
    270270 * @since 2.1.0 bbPress (r3766)
     
    275275
    276276/**
    277  * Dedicated action to register bbPress importers
     277 * Dedicated action to register bbPress importers.
    278278 *
    279279 * @since 2.1.0 bbPress (r3766)
     
    284284
    285285/**
    286  * Dedicated action to register admin styles
     286 * Dedicated action to register admin styles.
    287287 *
    288288 * @since 2.6.0 bbPress (r6912)
     
    291291
    292292    /**
    293      * Action used to register the admin styling
     293     * Action used to register the admin styling.
    294294     *
    295295     * @since 2.1.0
     
    299299
    300300    /**
    301      * Action used to register all admin styling
     301     * Action used to register all admin styling.
    302302     *
    303303     * @since 2.6.0
     
    307307
    308308/**
    309  * Dedicated action to register admin scripts
     309 * Dedicated action to register admin scripts.
    310310 *
    311311 * @since 2.6.0 bbPress (r6912)
     
    316316
    317317/**
    318  * Dedicated action to register admin settings
     318 * Dedicated action to register admin settings.
    319319 *
    320320 * @since 2.1.0 bbPress (r3766)
     
    325325
    326326/**
    327  * Dedicated action to output admin tools.php sections
     327 * Dedicated action to output admin tools.php sections.
    328328 *
    329329 * @since 2.6.0 bbPress (r6273)
     
    334334
    335335/**
    336  * Dedicated action to hook into the current screen
     336 * Dedicated action to hook into the current screen.
    337337 *
    338338 * @since 2.6.0 bbPress (r6185)
  • trunk/src/includes/admin/classes/class-bbp-admin.php

    r7379 r7380  
    2424
    2525    /**
    26      * @var string Path to the bbPress admin directory
     26     * Path to the bbPress admin directory.
     27     *
     28     * @var string
    2729     */
    2830    public $admin_dir = '';
     
    3133
    3234    /**
    33      * @var string URL to the bbPress admin directory
     35     * URL to the bbPress admin directory.
     36     *
     37     * @var string
    3438     */
    3539    public $admin_url = '';
    3640
    3741    /**
    38      * @var string URL to the bbPress images directory
     42     * URL to the bbPress images directory.
     43     *
     44     * @var string
    3945     */
    4046    public $images_url = '';
    4147
    4248    /**
    43      * @var string URL to the bbPress admin styles directory
     49     * URL to the bbPress admin styles directory.
     50     *
     51     * @var string
    4452     */
    4553    public $styles_url = '';
    4654
    4755    /**
    48      * @var string URL to the bbPress admin css directory
     56     * URL to the bbPress admin css directory.
     57     *
     58     * @var string
    4959     */
    5060    public $css_url = '';
    5161
    5262    /**
    53      * @var string URL to the bbPress admin js directory
     63     * URL to the bbPress admin js directory.
     64     *
     65     * @var string
    5466     */
    5567    public $js_url = '';
     
    5870
    5971    /**
    60      * @var bool Minimum capability to access Tools and Settings
     72     * Minimum capability to access Tools and Settings.
     73     *
     74     * @var bool
    6175     */
    6276    public $minimum_capability = 'keep_gate';
     
    6579
    6680    /**
    67      * @var bool Whether or not to add an extra top level menu separator
     81     * Whether or not to add an extra top level menu separator.
     82     *
     83     * @var bool
    6884     */
    6985    public $show_separator = false;
     
    7288
    7389    /**
    74      * @var array Array of available repair tools
     90     * Array of available repair tools.
     91     *
     92     * @var array
    7593     */
    7694    public $tools = array();
     
    7997
    8098    /**
    81      * @var array Array of notices to output to the current user
     99     * Array of notices to output to the current user.
     100     *
     101     * @var array
    82102     */
    83103    public $notices = array();
     
    86106
    87107    /**
    88      * @var BBP_Forums_Admin Forums admin
     108     * Forums admin.
     109     *
     110     * @var BBP_Forums_Admin
    89111     */
    90112    public $forums = null;
    91113
    92114    /**
    93      * @var BBP_Topics_Admin Topics admin
     115     * Topics admin.
     116     *
     117     * @var BBP_Topics_Admin
    94118     */
    95119    public $topics = null;
    96120
    97121    /**
    98      * @var BBP_Replies_Admin Replies admin
     122     * Replies admin.
     123     *
     124     * @var BBP_Replies_Admin
    99125     */
    100126    public $replies = null;
    101127
    102128    /**
    103      * @var BBP_Converter Converter admin
     129     * Converter admin.
     130     *
     131     * @var BBP_Converter
    104132     */
    105133    public $converter = null;
     
    108136
    109137    /**
    110      * The main bbPress admin loader
     138     * The main bbPress admin loader.
    111139     *
    112140     * @since 2.0.0 bbPress (r2515)
     
    119147
    120148    /**
    121      * Admin globals
     149     * Admin globals.
    122150     *
    123151     * @since 2.0.0 bbPress (r2646)
     
    140168
    141169    /**
    142      * Include required files
     170     * Include required files.
    143171     *
    144172     * @since 2.0.0 bbPress (r2646)
     
    168196
    169197    /**
    170      * Setup the admin hooks, actions and filters
     198     * Setup the admin hooks, actions and filters.
    171199     *
    172200     * @since 2.0.0 bbPress (r2646)
     
    312340
    313341    /**
    314      * Output all admin area notices
     342     * Output all admin area notices.
    315343     *
    316344     * @since 2.6.0 bbPress (r6771)
     
    336364
    337365    /**
    338      * Add a notice to the notices array
     366     * Add a notice to the notices array.
    339367     *
    340368     * @since 2.6.0 bbPress (r6771)
    341369     *
    342      * @param string|WP_Error $message        A message to be displayed or {@link WP_Error}
    343      * @param string          $class          Optional. A class to be added to the message div
    344      * @param bool            $is_dismissible Optional. True to dismiss, false to persist
    345      *
    346      * @return void
     370     * @param string|WP_Error $message        A message to be displayed or {@link WP_Error}.
     371     * @param string          $class          Optional. A class to be added to the message div.
     372     * @param bool            $is_dismissible Optional. True to dismiss, false to persist.
     373     *
     374     * @return bool|void False on failure, void otherwise.
    347375     */
    348376    public function add_notice( $message, $class = false, $is_dismissible = true ) {
     
    402430
    403431    /**
    404      * Escape message string output
     432     * Escape message string output.
    405433     *
    406434     * @since 2.6.0 bbPress (r6775)
    407435     *
    408      * @param string $message
     436     * @param string $message The message.
    409437     *
    410438     * @return string
     
    456484
    457485    /**
    458      * Add the admin menus
     486     * Add the admin menus.
    459487     *
    460488     * @since 2.0.0 bbPress (r2646)
     
    553581
    554582    /**
    555      * Add the network admin menus
     583     * Add the network admin menus.
    556584     *
    557585     * @since 2.1.0 bbPress (r3689)
     
    575603
    576604    /**
    577      * Register the settings
     605     * Register the settings.
    578606     *
    579607     * @since 2.0.0 bbPress (r2737)
    580608     *
    581      * @todo Put fields into multidimensional array
     609     * @todo Put fields into multidimensional array.
    582610     */
    583611    public static function register_admin_settings() {
     
    636664
    637665    /**
    638      * Maps settings capabilities
     666     * Maps settings capabilities.
    639667     *
    640668     * @since 2.2.0 bbPress (r4242)
    641669     *
    642      * @param array $caps Capabilities for meta capability
    643      * @param string $cap Capability name
    644      * @param int $user_id User id
    645      * @param array $args Arguments
    646      *
    647      * @return array Actual capabilities for meta capability
     670     * @param array $caps Capabilities for meta capability.
     671     * @param string $cap Capability name.
     672     * @param int $user_id User id.
     673     * @param array $args Arguments.
     674     *
     675     * @return array Actual capabilities for meta capability.
    648676     */
    649677    public static function map_settings_meta_caps( $caps = array(), $cap = '', $user_id = 0, $args = array() ) {
     
    712740
    713741    /**
    714      * Register the importers
     742     * Register the importers.
    715743     *
    716744     * @since 2.0.0 bbPress (r2737)
     
    746774
    747775    /**
    748      * Add Settings link to plugins area
     776     * Add Settings link to plugins area.
    749777     *
    750778     * @since 2.0.0 bbPress (r2737)
    751779     *
    752      * @param array $links Links array in which we would prepend our link
    753      * @param string $file Current plugin basename
    754      * @return array Processed links
     780     * @param array $links Links array in which we would prepend our link.
     781     * @param string $file Current plugin basename.
     782     * @return array Processed links.
    755783     */
    756784    public static function modify_plugin_action_links( $links, $file ) {
     
    779807
    780808    /**
    781      * Enqueue any admin scripts we might need
     809     * Enqueue any admin scripts we might need.
    782810     *
    783811     * @since 2.2.0 bbPress (r4260)
     
    819847
    820848    /**
    821      * Enqueue any admin scripts we might need
     849     * Enqueue any admin scripts we might need.
    822850     *
    823851     * @since 2.6.0 bbPress (r5224)
     
    829857    /**
    830858     * Remove the individual recount and converter menus.
    831      * They are grouped together by h2 tabs
     859     * They are grouped together by h2 tabs.
    832860     *
    833861     * @since 2.0.0 bbPress (r2464)
     
    846874
    847875    /**
    848      * Registers the bbPress admin styling and color schemes
     876     * Registers the bbPress admin styling and color schemes.
    849877     *
    850878     * Because wp-content can exist outside of the WordPress root, there is no
     
    898926
    899927    /**
    900      * Registers the bbPress admin color schemes
     928     * Registers the bbPress admin color schemes.
    901929     *
    902930     * Because wp-content can exist outside of the WordPress root there is no
     
    927955
    928956    /**
    929      * Allow keymaster role to save Forums settings
     957     * Allow keymaster role to save Forums settings.
    930958     *
    931959     * @since 2.3.0 bbPress (r4678)
    932960     *
    933      * @param string $capability
    934      * @return string Return minimum capability
     961     * @param string $capability Optional. Default 'manage_options'.
     962     * @return string Return minimum capability.
    935963     */
    936964    public function option_page_capability_bbpress( $capability = 'manage_options' ) {
     
    10141042
    10151043    /**
    1016      * Ajax action for facilitating the forum auto-suggest
     1044     * Ajax action for facilitating the forum auto-suggest.
    10171045     *
    10181046     * @since 2.2.0 bbPress (r4261)
     
    10691097
    10701098    /**
    1071      * Ajax action for facilitating the topic and reply author auto-suggest
     1099     * Ajax action for facilitating the topic and reply author auto-suggest.
    10721100     *
    10731101     * @since 2.4.0 bbPress (r5014)
     
    11581186
    11591187    /**
    1160      * Output the shared screen header for about_screen() & credits_screen()
    1161      *
    1162      * Contains title, subtitle, and badge area
     1188     * Output the shared screen header for about_screen() & credits_screen().
     1189     *
     1190     * Contains title, subtitle, and badge area.
    11631191     *
    11641192     * @since 2.6.0 bbPress (r6604)
     
    11881216
    11891217    /**
    1190      * Output the about screen
     1218     * Output the about screen.
    11911219     *
    11921220     * @since 2.2.0 bbPress (r4159)
     
    12621290
    12631291    /**
    1264      * Output the credits screen
     1292     * Output the credits screen.
    12651293     *
    12661294     * @since 2.2.0 bbPress (r4159)
     
    14041432
    14051433    /**
    1406      * Update all bbPress forums across all sites
     1434     * Update all bbPress forums across all sites.
    14071435     *
    14081436     * @since 2.1.0 bbPress (r3689)
     
    14481476
    14491477    /**
    1450      * Update all bbPress forums across all sites
     1478     * Update all bbPress forums across all sites.
    14511479     *
    14521480     * @since 2.1.0 bbPress (r3689)
  • trunk/src/includes/admin/classes/class-bbp-converter-base.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Converter Base Class
     4 * bbPress Converter Base Class.
    55 *
    6  * Based on the hard work of Adam Ellis
     6 * Based on the hard work of Adam Ellis.
    77 *
    88 * @package bbPress
     
    1515if ( ! class_exists( 'BBP_Converter_Base' ) ) :
    1616/**
    17  * Base class to be extended by specific individual importers
     17 * Base class to be extended by specific individual importers.
    1818 *
    1919 * phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
     
    265265
    266266    /**
    267      * Setup global values
     267     * Setup global values.
    268268     */
    269269    public function setup_globals() {}
    270270
    271271    /**
    272      * Convert Forums
     272     * Convert Forums.
    273273     */
    274274    public function convert_forums( $start = 1 ) {
     
    277277
    278278    /**
    279      * Convert Topics / Threads
     279     * Convert Topics / Threads.
    280280     */
    281281    public function convert_topics( $start = 1 ) {
     
    284284
    285285    /**
    286      * Convert Posts
     286     * Convert Posts.
    287287     */
    288288    public function convert_replies( $start = 1 ) {
     
    291291
    292292    /**
    293      * Convert Users
     293     * Convert Users.
    294294     */
    295295    public function convert_users( $start = 1 ) {
     
    298298
    299299    /**
    300      * Convert Topic Tags
     300     * Convert Topic Tags.
    301301     */
    302302    public function convert_tags( $start = 1 ) {
     
    305305
    306306    /**
    307      * Convert Forum Subscriptions
     307     * Convert Forum Subscriptions.
    308308     */
    309309    public function convert_forum_subscriptions( $start = 1 ) {
     
    312312
    313313    /**
    314      * Convert Topic Subscriptions
     314     * Convert Topic Subscriptions.
    315315     */
    316316    public function convert_topic_subscriptions( $start = 1 ) {
     
    319319
    320320    /**
    321      * Convert Favorites
     321     * Convert Favorites.
    322322     */
    323323    public function convert_favorites( $start = 1 ) {
     
    326326
    327327    /**
    328      * Convert Table
     328     * Convert Table.
    329329     *
    330330     * @param string to type
     
    953953
    954954    /**
    955      * This method grabs appropriate fields from the table specified
    956      *
    957      * @param string The table name to grab fields from
     955     * This method grabs appropriate fields from the table specified.
     956     *
     957     * @param string The table name to grab fields from.
    958958     */
    959959    private function get_fields( $tablename = '' ) {
     
    987987
    988988    /**
    989      * Update the last query option and return results
     989     * Update the last query option and return results.
    990990     *
    991991     * @param string $query
     
    999999
    10001000    /**
    1001      * Update the last query option and return results
     1001     * Update the last query option and return results.
    10021002     *
    10031003     * @param string $query
     
    10111011
    10121012    /**
    1013      * Update the last query option and do a general query
     1013     * Update the last query option and do a general query.
    10141014     *
    10151015     * @param string $query
     
    10221022
    10231023    /**
    1024      * Update the last query ran
     1024     * Update the last query ran.
    10251025     *
    10261026     * @since 2.6.0 bbPress (r6637)
    10271027     *
    1028      * @param string $query The literal MySQL query
     1028     * @param string $query The literal MySQL query.
    10291029     * @return bool
    10301030     */
     
    10341034
    10351035    /**
    1036      * Update the number of rows in the current step
     1036     * Update the number of rows in the current step.
    10371037     *
    10381038     * @since 2.6.0 bbPress (r6637)
    10391039     *
    1040      * @param string $query The literal MySQL query
     1040     * @param string $query The literal MySQL query.
    10411041     * @return bool
    10421042     */
     
    10501050
    10511051    /**
    1052      * Update the number of rows in the current step
     1052     * Update the number of rows in the current step.
    10531053     *
    10541054     * @since 2.6.0 bbPress (r6637)
    10551055     *
    1056      * @param string $table_name The literal MySQL query
     1056     * @param string $table_name The literal MySQL query.
    10571057     * @return bool
    10581058     */
     
    10661066
    10671067    /**
    1068      * Run password through wp_hash_password()
     1068     * Run password through wp_hash_password().
    10691069     *
    10701070     * @param string $username
     
    11071107
    11081108    /**
    1109      * A mini cache system to reduce database calls to forum ID's
     1109     * A mini cache system to reduce database calls to forum ID's.
    11101110     *
    11111111     * @param string $field
     
    11271127
    11281128    /**
    1129      * A mini cache system to reduce database calls to topic ID's
     1129     * A mini cache system to reduce database calls to topic ID's.
    11301130     *
    11311131     * @param string $field
     
    11691169
    11701170    /**
    1171      * A mini cache system to reduce database calls to user ID's
     1171     * A mini cache system to reduce database calls to user ID's.
    11721172     *
    11731173     * @param string $field
     
    11931193
    11941194    /**
    1195      * Check if the topic or reply author is anonymous
     1195     * Check if the topic or reply author is anonymous.
    11961196     *
    11971197     * @since 2.6.0 bbPress (r5544)
     
    12091209
    12101210    /**
    1211      * A mini cache system to reduce database calls map topics ID's to forum ID's
     1211     * A mini cache system to reduce database calls map topics ID's to forum ID's.
    12121212     *
    12131213     * @param string $field
  • trunk/src/includes/admin/classes/class-bbp-converter-db.php

    r7268 r7380  
    22
    33/**
    4  * bbPress Converter Database
     4 * bbPress Converter Database.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Converter_DB' ) && class_exists( 'wpdb' ) ) :
    1414/**
    15  * bbPress Converter Database Access Abstraction Object
     15 * bbPress Converter Database Access Abstraction Object.
    1616 *
    1717 * @since 2.6.0 bbPress (r6784)
  • trunk/src/includes/admin/classes/class-bbp-converter.php

    r7379 r7380  
    2020
    2121    /**
    22      * @var int Number of rows
     22     * Number of rows.
     23     *
     24     * @var int
    2325     */
    2426    public $max = 0;
    2527
    2628    /**
    27      * @var int Start
     29     * Start.
     30     *
     31     * @var int
    2832     */
    2933    public $start = 0;
    3034
    3135    /**
    32      * @var int Step in converter process
     36     * Step in converter process.
     37     *
     38     * @var int
    3339     */
    3440    public $step = 0;
    3541
    3642    /**
    37      * @var int Number of rows
     43     * Number of rows.
     44     *
     45     * @var int
    3846     */
    3947    public $rows = 0;
    4048
    4149    /**
    42      * @var int Maximum number of converter steps
     50     * Maximum number of converter steps.
     51     *
     52     * @var int
    4353     */
    4454    public $max_steps = 17;
    4555
    4656    /**
    47      * @var int Number of rows in the current step
     57     * Number of rows in the current step.
     58     *
     59     * @var int
    4860     */
    4961    public $rows_in_step = 0;
    5062
    5163    /**
    52      * @var int Percent complete of current step
     64     * Percent complete of current step.
     65     *
     66     * @var int
    5367     */
    5468    public $step_percentage = 0;
    5569
    5670    /**
    57      * @var int Percent complete of all step
     71     * Percent complete of all step.
     72     *
     73     * @var int
    5874     */
    5975    public $total_percentage = 0;
    6076
    6177    /**
    62      * @var int Name of source forum platform
     78     * Name of source forum platform.
     79     *
     80     * @var int
    6381     */
    6482    public $platform = '';
    6583
    6684    /**
    67      * @var BBP_Converter_Base Type of converter to use
     85     * Type of converter to use.
     86     *
     87     * @var BBP_Converter_Base
    6888     */
    6989    public $converter = null;
    7090
    7191    /**
    72      * @var string Path to included platforms
     92     * Path to included platforms.
     93     *
     94     * @var string
    7395     */
    7496    public $converters_dir = '';
    7597
    7698    /**
    77      * @var array Map of steps to methods
     99     * Map of steps to methods.
     100     *
     101     * @var array
    78102     */
    79103    private $steps = array(
  • trunk/src/includes/admin/classes/class-bbp-topic-replies-list-table.php

    r7379 r7380  
    1919if ( class_exists( 'WP_List_Table' ) ) :
    2020/**
    21  * Topic replies list table
     21 * Topic replies list table.
    2222 *
    2323 * This list table is responsible for showing the replies to a topic in a
     
    2929
    3030    /**
    31      * The main constructor method
     31     * The main constructor method.
    3232     *
    3333     * @since 2.6.0 bbPress (r5886)
     
    5151
    5252    /**
    53      * Setup the list-table columns
     53     * Setup the list-table columns.
    5454     *
    5555     * @since 2.6.0 bbPress (r5886)
     
    6969
    7070    /**
    71      * Allow `bbp_reply_created` to be sortable
    72      *
    73      * @since 2.6.0 bbPress (r5886)
    74      *
    75      * @return array An associative array containing the `bbp_reply_created` column
     71     * Allow `bbp_reply_created` to be sortable.
     72     *
     73     * @since 2.6.0 bbPress (r5886)
     74     *
     75     * @return array An associative array containing the `bbp_reply_created` column.
    7676     */
    7777    public function get_sortable_columns() {
     
    8282
    8383    /**
    84      * Setup the bulk actions
    85      *
    86      * @since 2.6.0 bbPress (r5886)
    87      *
    88      * @return array An associative array containing all the bulk actions
     84     * Setup the bulk actions.
     85     *
     86     * @since 2.6.0 bbPress (r5886)
     87     *
     88     * @return array An associative array containing all the bulk actions.
    8989     */
    9090    public function get_bulk_actions() {
     
    105105
    106106    /**
    107      * Output the check-box column for bulk actions (if we implement them)
     107     * Output the check-box column for bulk actions (if we implement them).
    108108     *
    109109     * @since 2.6.0 bbPress (r5886)
     
    118118
    119119    /**
    120      * Output the contents of the `bbp_topic_reply_author` column
     120     * Output the contents of the `bbp_topic_reply_author` column.
    121121     *
    122122     * @since 2.6.0 bbPress (r5886)
     
    132132
    133133    /**
    134      * Output the contents of the `bbp_reply_created` column
     134     * Output the contents of the `bbp_reply_created` column.
    135135     *
    136136     * @since 2.6.0 bbPress (r5886)
     
    144144
    145145    /**
    146      * Output the contents of the `bbp_reply_content` column
     146     * Output the contents of the `bbp_reply_content` column.
    147147     *
    148148     * @since 2.6.0 bbPress (r5886)
     
    170170
    171171    /**
    172      * Handle bulk action requests
     172     * Handle bulk action requests.
    173173     *
    174174     * @since 2.6.0 bbPress (r5886)
     
    186186
    187187    /**
    188      * Prepare the list-table items for display
     188     * Prepare the list-table items for display.
    189189     *
    190190     * @since 2.6.0 bbPress (r5886)
     
    256256
    257257    /**
    258      * Message to be displayed when there are no items
     258     * Message to be displayed when there are no items.
    259259     *
    260260     * @since 2.6.0 bbPress (r5930)
     
    265265
    266266    /**
    267      * Display the list table
     267     * Display the list table.
    268268     *
    269269     * This custom method is necessary because the one in `WP_List_Table` comes
     
    302302
    303303    /**
    304      * Generate the table navigation above or below the table
     304     * Generate the table navigation above or below the table.
    305305     *
    306306     * This custom method is necessary because the one in `WP_List_Table` comes
     
    326326
    327327    /**
    328      * Generates content for a single row of the table
     328     * Generates content for a single row of the table.
    329329     *
    330330     * @since 2.6.0
    331331     * @access public
    332332     *
    333      * @param object $item The current item
     333     * @param object $item The current item.
    334334     */
    335335    public function single_row( $item ) {
  • trunk/src/includes/admin/common.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Functions
     4 * bbPress Admin Functions.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Add a separator to the WordPress admin menus
     16 * Add a separator to the WordPress admin menus.
    1717 *
    1818 * @since 2.0.0 bbPress (r2957)
     
    4747
    4848/**
    49  * Tell WordPress we have a custom menu order
     49 * Tell WordPress we have a custom menu order.
    5050 *
    5151 * @since 2.0.0 bbPress (r2957)
    5252 *
    53  * @param bool $menu_order Menu order
    54  * @return mixed True if separator, false if not
     53 * @param bool $menu_order Menu order.
     54 * @return mixed True if separator, false if not.
    5555 */
    5656function bbp_admin_custom_menu_order( $menu_order = false ) {
     
    6363
    6464/**
    65  * Move our custom separator above our custom post types
     65 * Move our custom separator above our custom post types.
    6666 *
    6767 * @since 2.0.0 bbPress (r2957)
    6868 *
    69  * @param array $menu_order Menu Order
    70  * @return array Modified menu order
     69 * @param array $menu_order Menu Order.
     70 * @return array Modified menu order.
    7171 */
    7272function bbp_admin_menu_order( $menu_order ) {
     
    157157 * @since 2.1.0 bbPress (r3765)
    158158 *
    159  * @param int $site_id
     159 * @param int $site_id Site id.
    160160 */
    161161function bbp_do_uninstall( $site_id = 0 ) {
  • trunk/src/includes/admin/forums.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Forum Admin Class
     4 * bbPress Forum Admin Class.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Forums_Admin' ) ) :
    1414/**
    15  * Loads bbPress forums admin area
     15 * Loads bbPress forums admin area.
    1616 *
    1717 * @package bbPress
     
    2424
    2525    /**
    26      * @var string The post type of this admin component
     26     * @var string The post type of this admin component.
    2727     */
    2828    private $post_type = '';
     
    3131
    3232    /**
    33      * The main bbPress forums admin loader
     33     * The main bbPress forums admin loader.
    3434     *
    3535     * @since 2.0.0 bbPress (r2515)
     
    4141
    4242    /**
    43      * Setup the admin hooks, actions and filters
     43     * Setup the admin hooks, actions and filters.
    4444     *
    4545     * @since 2.0.0 bbPress (r2646)
     
    7777
    7878    /**
    79      * Admin globals
     79     * Admin globals.
    8080     *
    8181     * @since 2.0.0 bbPress (r2646)
     
    9090
    9191    /**
    92      * Contextual help for bbPress forum edit page
     92     * Contextual help for bbPress forum edit page.
    9393     *
    9494     * @since 2.0.0 bbPress (r3119)
     
    157157
    158158    /**
    159      * Contextual help for bbPress forum edit page
     159     * Contextual help for bbPress forum edit page.
    160160     *
    161161     * @since 2.0.0 bbPress (r3119)
     
    221221
    222222    /**
    223      * Add the forum attributes meta-box
     223     * Add the forum attributes meta-box.
    224224     *
    225225     * @since 2.0.0 bbPress (r2746)
     
    237237
    238238    /**
    239      * Add the forum moderators meta-box
     239     * Add the forum moderators meta-box.
    240240     *
    241241     * @since 2.6.0 bbPress
     
    260260
    261261    /**
    262      * Add the subscriptions meta-box
     262     * Add the subscriptions meta-box.
    263263     *
    264264     * Allows viewing of users who have subscribed to a forum.
     
    290290
    291291    /**
    292      * Remove comments & discussion meta-boxes if comments are not supported
     292     * Remove comments & discussion meta-boxes if comments are not supported.
    293293     *
    294294     * @since 2.6.0 bbPress (r6186)
     
    302302
    303303    /**
    304      * Pass the forum attributes for processing
     304     * Pass the forum attributes for processing.
    305305     *
    306306     * @since 2.0.0 bbPress (r2746)
    307307     *
    308      * @param int $forum_id Forum id
    309      * @return int Forum id
     308     * @param int $forum_id Forum id.
     309     * @return int Forum id.
    310310     */
    311311    public function save_meta_boxes( $forum_id ) {
     
    355355
    356356    /**
    357      * Toggle forum
    358      *
    359      * Handles the admin-side opening/closing of forums
     357     * Toggle forum.
     358     *
     359     * Handles the admin-side opening/closing of forums.
    360360     *
    361361     * @since 2.6.0 bbPress (r5254)
     
    428428
    429429    /**
    430      * Toggle forum notices
     430     * Toggle forum notices.
    431431     *
    432432     * Display the success/error notices from
     
    493493
    494494    /**
    495      * Returns an array of keys used to sort row actions
     495     * Returns an array of keys used to sort row actions.
    496496     *
    497497     * @since 2.6.0 bbPress (r6771)
     
    522522
    523523    /**
    524      * Returns an array of notice toggles
     524     * Returns an array of notice toggles.
    525525     *
    526526     * @since 2.6.0 bbPress (r6396)
     
    547547
    548548    /**
    549      * Returns an array of notice toggles
     549     * Returns an array of notice toggles.
    550550     *
    551551     * @since 2.6.0 bbPress (r6396)
     
    571571
    572572    /**
    573      * Manage the column headers for the forums page
     573     * Manage the column headers for the forums page.
    574574     *
    575575     * @since 2.0.0 bbPress (r2485)
    576576     *
    577      * @param array $columns The columns
    578      *
    579      * @return array $columns bbPress forum columns
     577     * @param array $columns The columns.
     578     *
     579     * @return array $columns bbPress forum columns.
    580580     */
    581581    public function column_headers( $columns ) {
     
    609609
    610610    /**
    611      * Print extra columns for the forums page
     611     * Print extra columns for the forums page.
    612612     *
    613613     * @since 2.0.0 bbPress (r2485)
    614614     *
    615      * @param string $column Column
    616      * @param int $forum_id Forum id
     615     * @param string $column Column.
     616     * @param int $forum_id Forum id.
    617617     */
    618618    public function column_data( $column, $forum_id ) {
     
    664664
    665665    /**
    666      * Forum Row actions
     666     * Forum Row actions.
    667667     *
    668668     * Remove the quick-edit action link and display the description under
    669      * the forum title and add the open/close links
     669     * the forum title and add the open/close links.
    670670     *
    671671     * @since 2.0.0 bbPress (r2577)
    672672     *
    673      * @param array  $actions Actions
    674      * @param object $forum   Forum object
    675      *
    676      * @return array $actions Actions
     673     * @param array  $actions Actions.
     674     * @param object $forum   Forum object.
     675     *
     676     * @return array $actions Actions.
    677677     */
    678678    public function row_actions( $actions = array(), $forum = false ) {
     
    716716
    717717    /**
    718      * Sort row actions by key
     718     * Sort row actions by key.
    719719     *
    720720     * @since 2.6.0
    721721     *
    722      * @param array $actions
     722     * @param array $actions.
    723723     *
    724724     * @return array
     
    745745
    746746    /**
    747      * Custom user feedback messages for forum post type
     747     * Custom user feedback messages for forum post type.
    748748     *
    749749     * @since 2.0.0 bbPress (r3080)
     
    838838
    839839/**
    840  * Setup bbPress Forums Admin
     840 * Setup bbPress Forums Admin.
    841841 *
    842842 * This is currently here to make hooking and unhooking of the admin UI easy.
     
    845845 * @since 2.0.0 bbPress (r2596)
    846846 *
    847  * @param WP_Screen $current_screen Current screen object
     847 * @param WP_Screen $current_screen Current screen object.
    848848 */
    849849function bbp_admin_forums( $current_screen ) {
  • trunk/src/includes/admin/metaboxes.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Metaboxes
     4 * bbPress Admin Metaboxes.
    55 *
    66 * @package bbPress
     
    107107
    108108/**
    109  * bbPress Dashboard Right Now Widget
    110  *
    111  * Adds a dashboard widget with forum statistics
     109 * bbPress Dashboard Right Now Widget.
     110 *
     111 * Adds a dashboard widget with forum statistics.
    112112 *
    113113 * @since 2.0.0 bbPress (r2770)
     
    331331
    332332/**
    333  * Forum meta-box
    334  *
    335  * The meta-box that holds all of the additional forum information
     333 * Forum meta-box.
     334 *
     335 * The meta-box that holds all of the additional forum information.
    336336 *
    337337 * @since 2.0.0 bbPress (r2744)
     
    426426
    427427/**
    428  * Topic meta-box
    429  *
    430  * The meta-box that holds all of the additional topic information
     428 * Topic meta-box.
     429 *
     430 * The meta-box that holds all of the additional topic information.
    431431 *
    432432 * @since 2.0.0 bbPress (r2464)
     
    505505
    506506/**
    507  * Reply meta-box
    508  *
    509  * The meta-box that holds all of the additional reply information
     507 * Reply meta-box.
     508 *
     509 * The meta-box that holds all of the additional reply information.
    510510 *
    511511 * @since 2.0.0 bbPress (r2464)
     
    607607
    608608/**
    609  * Output the topic replies meta-box
     609 * Output the topic replies meta-box.
    610610 *
    611611 * @since 2.6.0 bbPress (r5886)
     
    648648
    649649/**
    650  * Anonymous user information meta-box
     650 * Anonymous user information meta-box.
    651651 *
    652652 * @since 2.0.0 bbPress (r2828)
    653653 *
    654  * @param WP_Post $post The current post object
     654 * @param WP_Post $post The current post object.
    655655 */
    656656function bbp_author_metabox( $post ) {
     
    699699
    700700/**
    701  * Moderator assignment meta-box
     701 * Moderator assignment meta-box.
    702702 *
    703703 * @since 2.6.0 bbPress (r2828)
     
    722722
    723723/**
    724  * See who engaged with a topic
     724 * See who engaged with a topic.
    725725 *
    726726 * @since 2.6.0 bbPress (r6333)
     
    754754
    755755/**
    756  * See who marked a topic as a favorite
     756 * See who marked a topic as a favorite.
    757757 *
    758758 * @since 2.6.0 bbPress (r6197)
     
    787787
    788788/**
    789  * See who is subscribed to a topic
     789 * See who is subscribed to a topic.
    790790 *
    791791 * @since 2.6.0 bbPress (r6197)
     
    827827
    828828/**
    829  * See who is subscribed to a forum
     829 * See who is subscribed to a forum.
    830830 *
    831831 * @since 2.6.0 bbPress (r6197)
     
    860860
    861861/**
    862  * Loop through queried metabox users, and output links to their avatars
     862 * Loop through queried metabox users, and output links to their avatars.
    863863 *
    864864 * Developers Note: This function may change in a future release to include
  • trunk/src/includes/admin/replies.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Replies Admin Class
     4 * bbPress Replies Admin Class.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Replies_Admin' ) ) :
    1414/**
    15  * Loads bbPress replies admin area
     15 * Loads bbPress replies admin area.
    1616 *
    1717 * @package bbPress
     
    2424
    2525    /**
    26      * @var The post type of this admin component
     26     * @var The post type of this admin component.
    2727     */
    2828    private $post_type = '';
     
    3131
    3232    /**
    33      * The main bbPress admin loader
     33     * The main bbPress admin loader.
    3434     *
    3535     * @since 2.0.0 bbPress (r2515)
     
    4141
    4242    /**
    43      * Setup the admin hooks, actions and filters
     43     * Setup the admin hooks, actions and filters.
    4444     *
    4545     * @since 2.0.0 bbPress (r2646)
     
    9191
    9292    /**
    93      * Admin globals
     93     * Admin globals.
    9494     *
    9595     * @since 2.0.0 bbPress (r2646)
     
    104104
    105105    /**
    106      * Contextual help for bbPress reply edit page
     106     * Contextual help for bbPress reply edit page.
    107107     *
    108108     * @since 2.0.0 bbPress (r3119)
     
    174174
    175175    /**
    176      * Contextual help for bbPress reply edit page
     176     * Contextual help for bbPress reply edit page.
    177177     *
    178178     * @since 2.0.0 bbPress (r3119)
     
    351351
    352352    /**
    353      * Add the reply attributes meta-box
     353     * Add the reply attributes meta-box.
    354354     *
    355355     * @since 2.0.0 bbPress (r2746)
     
    367367
    368368    /**
    369      * Add the author info meta-box
    370      *
    371      * Allows editing of information about an author
     369     * Add the author info meta-box.
     370     *
     371     * Allows editing of information about an author.
    372372     *
    373373     * @since 2.0.0 bbPress (r2828)
     
    392392
    393393    /**
    394      * Remove comments & discussion meta-boxes if comments are not supported
     394     * Remove comments & discussion meta-boxes if comments are not supported.
    395395     *
    396396     * @since 2.6.0 bbPress (r6186)
     
    404404
    405405    /**
    406      * Pass the reply attributes for processing
     406     * Pass the reply attributes for processing.
    407407     *
    408408     * @since 2.0.0 bbPress (r2746)
    409409     *
    410      * @param int $reply_id Reply id
    411      * @return int Parent id
     410     * @param int $reply_id Reply id.
     411     * @return int Parent id.
    412412     */
    413413    public function save_meta_boxes( $reply_id ) {
     
    459459
    460460    /**
    461      * Toggle reply
    462      *
    463      * Handles the admin-side spamming/unspamming of replies
     461     * Toggle reply.
     462     *
     463     * Handles the admin-side spamming/unspamming of replies.
    464464     *
    465465     * @since 2.0.0 bbPress (r2740)
     
    545545
    546546    /**
    547      * Toggle reply notices
     547     * Toggle reply notices.
    548548     *
    549549     * Display the success/error notices from
     
    626626
    627627    /**
    628      * Returns an array of keys used to sort row actions
     628     * Returns an array of keys used to sort row actions.
    629629     *
    630630     * @since 2.6.0 bbPress (r6771)
     
    658658
    659659    /**
    660      * Returns an array of notice toggles
     660     * Returns an array of notice toggles.
    661661     *
    662662     * @since 2.6.0 bbPress (r6396)
     
    685685
    686686    /**
    687      * Returns an array of notice toggles
     687     * Returns an array of notice toggles.
    688688     *
    689689     * @since 2.6.0 bbPress (r6396)
     
    710710
    711711    /**
    712      * Manage the column headers for the replies page
     712     * Manage the column headers for the replies page.
    713713     *
    714714     * @since 2.0.0 bbPress (r2577)
    715715     *
    716      * @param array $columns The columns
    717      *
    718      * @return array $columns bbPress reply columns
     716     * @param array $columns The columns.
     717     *
     718     * @return array $columns bbPress reply columns.
    719719     */
    720720    public function column_headers( $columns ) {
     
    739739
    740740    /**
    741      * Print extra columns for the replies page
     741     * Print extra columns for the replies page.
    742742     *
    743743     * @since 2.0.0 bbPress (r2577)
    744744     *
    745      * @param string $column Column
    746      * @param int $reply_id reply id
     745     * @param string $column Column.
     746     * @param int $reply_id Reply id.
    747747     */
    748748    public function column_data( $column, $reply_id ) {
     
    833833
    834834    /**
    835      * Reply Row actions
     835     * Reply Row actions.
    836836     *
    837837     * Remove the quick-edit action link under the reply title and add the
    838      * content and spam link
     838     * content and spam link.
    839839     *
    840840     * @since 2.0.0 bbPress (r2577)
    841841     *
    842      * @param array  $actions Actions
    843      * @param object $reply   Reply object
    844      *
    845      * @return array $actions Actions
     842     * @param array  $actions Actions.
     843     * @param object $reply   Reply object.
     844     *
     845     * @return array $actions Actions.
    846846     */
    847847    public function row_actions( $actions = array(), $reply = false ) {
     
    928928
    929929    /**
    930      * Sort row actions by key
     930     * Sort row actions by key.
    931931     *
    932932     * @since 2.6.0
     
    957957
    958958    /**
    959      * Add forum dropdown to topic and reply list table filters
     959     * Add forum dropdown to topic and reply list table filters.
    960960     *
    961961     * @since 2.0.0 bbPress (r2991)
    962962     *
    963      * @return bool False. If post type is not topic or reply
     963     * @return bool False. If post type is not topic or reply.
    964964     */
    965965    public function filter_dropdown() {
     
    980980
    981981    /**
    982      * Add "Empty Spam" button for moderators
     982     * Add "Empty Spam" button for moderators.
    983983     *
    984984     * @since 2.6.0 bbPress (r6791)
     
    10161016
    10171017    /**
    1018      * Adjust the request query and include the forum id
     1018     * Adjust the request query and include the forum id.
    10191019     *
    10201020     * @since 2.0.0 bbPress (r2991)
    10211021     *
    1022      * @param array $query_vars Query variables from {@link WP_Query}
    1023      * @return array Processed Query Vars
     1022     * @param array $query_vars Query variables from {@link WP_Query}.
     1023     * @return array Processed Query Vars.
    10241024     */
    10251025    public function filter_post_rows( $query_vars ) {
     
    10371037
    10381038    /**
    1039      * Custom user feedback messages for reply post type
     1039     * Custom user feedback messages for reply post type.
    10401040     *
    10411041     * @since 2.0.0 bbPress (r3080)
    10421042     *
    1043      * @global int $post_ID
     1043     * @global int $post_ID.
    10441044     *
    10451045     * @param array $messages
     
    11301130
    11311131/**
    1132  * Setup bbPress Replies Admin
     1132 * Setup bbPress Replies Admin.
    11331133 *
    11341134 * This is currently here to make hooking and unhooking of the admin UI easy.
     
    11371137 * @since 2.0.0 bbPress (r2596)
    11381138 *
    1139  * @param WP_Screen $current_screen Current screen object
     1139 * @param WP_Screen $current_screen Current screen object.
    11401140 */
    11411141function bbp_admin_replies( $current_screen ) {
  • trunk/src/includes/admin/settings.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Admin Settings
     4 * bbPress Admin Settings.
    55 *
    66 * @package bbPress
     
    619619 * @since 2.1.0 bbPress (r4001)
    620620 *
    621  * @param string $section_id ID of the section to get fields for
    622  * @staticvar array $fields All of the available fields
     621 * @param string $section_id ID of the section to get fields for.
     622 * @staticvar array $fields All of the available fields.
    623623 * @return mixed False if section is invalid, array of fields otherwise.
    624624 */
     
    651651
    652652/**
    653  * User settings section description for the settings page
     653 * User settings section description for the settings page.
    654654 *
    655655 * @since 2.0.0 bbPress (r2786)
     
    665665
    666666/**
    667  * Edit lock setting field
     667 * Edit lock setting field.
    668668 *
    669669 * @since 2.0.0 bbPress (r2737)
     
    696696
    697697/**
    698  * Throttle setting field
     698 * Throttle setting field.
    699699 *
    700700 * @since 2.0.0 bbPress (r2737)
     
    727727
    728728/**
    729  * Allow anonymous posting setting field
     729 * Allow anonymous posting setting field.
    730730 *
    731731 * @since 2.0.0 bbPress (r2737)
     
    742742
    743743/**
    744  * Allow global access setting field
     744 * Allow global access setting field.
    745745 *
    746746 * @since 2.0.0 bbPress (r3378)
     
    785785
    786786/**
    787  * Features settings section description for the settings page
     787 * Features settings section description for the settings page.
    788788 *
    789789 * @since 2.0.0 bbPress (r2786)
     
    798798
    799799/**
    800  * Allow favorites setting field
     800 * Allow favorites setting field.
    801801 *
    802802 * @since 2.0.0 bbPress (r2786)
     
    812812
    813813/**
    814  * Allow subscriptions setting field
     814 * Allow subscriptions setting field.
    815815 *
    816816 * @since 2.0.0 bbPress (r2737)
     
    826826
    827827/**
    828  * Allow engagements setting field
     828 * Allow engagements setting field.
    829829 *
    830830 * @since 2.0.0 bbPress (r2737)
     
    840840
    841841/**
    842  * Allow topic tags setting field
     842 * Allow topic tags setting field.
    843843 *
    844844 * @since 2.4.0 bbPress (r4944)
     
    854854
    855855/**
    856  * Allow forum-mods setting field
     856 * Allow forum-mods setting field.
    857857 *
    858858 * @since 2.6.0 bbPress (r5834)
     
    869869
    870870/**
    871  * Allow super-mods setting field
     871 * Allow super-mods setting field.
    872872 *
    873873 * @since 2.6.0 bbPress (r6562)
     
    884884
    885885/**
    886  * Allow forum wide search
     886 * Allow forum wide search.
    887887 *
    888888 * @since 2.4.0 bbPress (r4970)
     
    898898
    899899/**
    900  * Hierarchical reply maximum depth level setting field
    901  *
    902  * Replies will be threaded if depth is 2 or greater
     900 * Hierarchical reply maximum depth level setting field.
     901 *
     902 * Replies will be threaded if depth is 2 or greater.
    903903 *
    904904 * @since 2.4.0 bbPress (r4944)
     
    945945
    946946/**
    947  * Allow topic and reply revisions
     947 * Allow topic and reply revisions.
    948948 *
    949949 * @since 2.0.0 bbPress (r3412)
     
    959959
    960960/**
    961  * Use the WordPress editor setting field
     961 * Use the WordPress editor setting field.
    962962 *
    963963 * @since 2.1.0 bbPress (r3586)
     
    973973
    974974/**
    975  * Main subtheme section
     975 * Main subtheme section.
    976976 *
    977977 * @since 2.0.0 bbPress (r2786)
     
    986986
    987987/**
    988  * Use the WordPress editor setting field
     988 * Use the WordPress editor setting field.
    989989 *
    990990 * @since 2.1.0 bbPress (r3586)
     
    10181018
    10191019/**
    1020  * Allow oEmbed in replies
     1020 * Allow oEmbed in replies.
    10211021 *
    10221022 * @since 2.1.0 bbPress (r3752)
     
    10341034
    10351035/**
    1036  * Per page settings section description for the settings page
     1036 * Per page settings section description for the settings page.
    10371037 *
    10381038 * @since 2.0.0 bbPress (r2786)
     
    10471047
    10481048/**
    1049  * Topics per page setting field
     1049 * Topics per page setting field.
    10501050 *
    10511051 * @since 2.0.0 bbPress (r2786)
     
    10611061
    10621062/**
    1063  * Replies per page setting field
     1063 * Replies per page setting field.
    10641064 *
    10651065 * @since 2.0.0 bbPress (r2786)
     
    10771077
    10781078/**
    1079  * Per page settings section description for the settings page
     1079 * Per page settings section description for the settings page.
    10801080 *
    10811081 * @since 2.0.0 bbPress (r2786)
     
    10901090
    10911091/**
    1092  * Topics per RSS page setting field
     1092 * Topics per RSS page setting field.
    10931093 *
    10941094 * @since 2.0.0 bbPress (r2786)
     
    11041104
    11051105/**
    1106  * Replies per RSS page setting field
     1106 * Replies per RSS page setting field.
    11071107 *
    11081108 * @since 2.0.0 bbPress (r2786)
     
    11201120
    11211121/**
    1122  * Slugs settings section description for the settings page
     1122 * Slugs settings section description for the settings page.
    11231123 *
    11241124 * @since 2.0.0 bbPress (r2786)
     
    11371137
    11381138/**
    1139  * Root slug setting field
     1139 * Root slug setting field.
    11401140 *
    11411141 * @since 2.0.0 bbPress (r2786)
     
    11521152
    11531153/**
    1154  * Include root slug setting field
     1154 * Include root slug setting field.
    11551155 *
    11561156 * @since 2.0.0 bbPress (r2786)
     
    11661166
    11671167/**
    1168  * Include root slug setting field
     1168 * Include root slug setting field.
    11691169 *
    11701170 * @since 2.0.0 bbPress (r2786)
     
    12191219
    12201220/**
    1221  * Slugs settings section description for the settings page
     1221 * Slugs settings section description for the settings page.
    12221222 *
    12231223 * @since 2.0.0 bbPress (r2786)
     
    12321232
    12331233/**
    1234  * User slug setting field
     1234 * User slug setting field.
    12351235 *
    12361236 * @since 2.0.0 bbPress (r2786)
     
    12471247
    12481248/**
    1249  * Topic archive slug setting field
     1249 * Topic archive slug setting field.
    12501250 *
    12511251 * @since 2.0.0 bbPress (r2786)
     
    12621262
    12631263/**
    1264  * Reply archive slug setting field
     1264 * Reply archive slug setting field.
    12651265 *
    12661266 * @since 2.4.0 bbPress (r4932)
     
    12771277
    12781278/**
    1279  * Favorites slug setting field
     1279 * Favorites slug setting field.
    12801280 *
    12811281 * @since 2.4.0 bbPress (r4932)
     
    12921292
    12931293/**
    1294  * Subscriptions slug setting field
     1294 * Subscriptions slug setting field.
    12951295 *
    12961296 * @since 2.4.0 bbPress (r4932)
     
    13071307
    13081308/**
    1309  * Engagements slug setting field
     1309 * Engagements slug setting field.
    13101310 *
    13111311 * @since 2.6.0 bbPress (r6320)
     
    13241324
    13251325/**
    1326  * Slugs settings section description for the settings page
     1326 * Slugs settings section description for the settings page.
    13271327 *
    13281328 * @since 2.0.0 bbPress (r2786)
     
    13371337
    13381338/**
    1339  * Forum slug setting field
     1339 * Forum slug setting field.
    13401340 *
    13411341 * @since 2.0.0 bbPress (r2786)
     
    13521352
    13531353/**
    1354  * Topic slug setting field
     1354 * Topic slug setting field.
    13551355 *
    13561356 * @since 2.0.0 bbPress (r2786)
     
    13671367
    13681368/**
    1369  * Reply slug setting field
     1369 * Reply slug setting field.
    13701370 *
    13711371 * @since 2.0.0 bbPress (r2786)
     
    13821382
    13831383/**
    1384  * Topic tag slug setting field
     1384 * Topic tag slug setting field.
    13851385 *
    13861386 * @since 2.0.0 bbPress (r2786)
     
    13981398
    13991399/**
    1400  * View slug setting field
     1400 * View slug setting field.
    14011401 *
    14021402 * @since 2.0.0 bbPress (r2789)
     
    14131413
    14141414/**
    1415  * Search slug setting field
     1415 * Search slug setting field.
    14161416 *
    14171417 * @since 2.3.0 bbPress (r4579)
     
    14281428
    14291429/**
    1430  * Edit slug setting field
     1430 * Edit slug setting field.
    14311431 *
    14321432 * @since 2.6.2 bbPress (r6965)
     
    14451445
    14461446/**
    1447  * Extension settings section description for the settings page
     1447 * Extension settings section description for the settings page.
    14481448 *
    14491449 * @since 2.1.0 bbPress (r3575)
     
    14581458
    14591459/**
    1460  * Allow BuddyPress group forums setting field
     1460 * Allow BuddyPress group forums setting field.
    14611461 *
    14621462 * @since 2.1.0 bbPress (r3575)
     
    14721472
    14731473/**
    1474  * Replies per page setting field
     1474 * Replies per page setting field.
    14751475 *
    14761476 * @since 2.1.0 bbPress (r3575)
     
    15361536
    15371537/**
    1538  * Extension settings section description for the settings page
     1538 * Extension settings section description for the settings page.
    15391539 *
    15401540 * @since 2.1.0 bbPress (r3575)
     
    15501550
    15511551/**
    1552  * Allow Akismet setting field
     1552 * Allow Akismet setting field.
    15531553 *
    15541554 * @since 2.1.0 bbPress (r3575)
     
    15661566
    15671567/**
    1568  * The main settings page
     1568 * The main settings page.
    15691569 *
    15701570 * @since 2.0.0 bbPress (r2643)
     
    15951595
    15961596/**
    1597  * Main settings section description for the settings page
     1597 * Main settings section description for the settings page.
    15981598 *
    15991599 * @since 2.1.0 bbPress (r3813)
     
    16081608
    16091609/**
    1610  * Edit Platform setting field
     1610 * Edit Platform setting field.
    16111611 *
    16121612 * @since 2.1.0 bbPress (r3813)
     
    16311631
    16321632/**
    1633  * Edit Database Server setting field
     1633 * Edit Database Server setting field.
    16341634 *
    16351635 * @since 2.1.0 bbPress (r3813)
     
    16581658
    16591659/**
    1660  * Edit Database Server Port setting field
     1660 * Edit Database Server Port setting field.
    16611661 *
    16621662 * @since 2.1.0 bbPress (r3813)
     
    16861686
    16871687/**
    1688  * Edit Database User setting field
     1688 * Edit Database User setting field.
    16891689 *
    16901690 * @since 2.1.0 bbPress (r3813)
     
    17001700
    17011701/**
    1702  * Edit Database Pass setting field
     1702 * Edit Database Pass setting field.
    17031703 *
    17041704 * @since 2.1.0 bbPress (r3813)
     
    17201720
    17211721/**
    1722  * Edit Database Name setting field
     1722 * Edit Database Name setting field.
    17231723 *
    17241724 * @since 2.1.0 bbPress (r3813)
     
    17341734
    17351735/**
    1736  * Main settings section description for the settings page
     1736 * Main settings section description for the settings page.
    17371737 *
    17381738 * @since 2.1.0 bbPress (r3813)
     
    17471747
    17481748/**
    1749  * Edit Table Prefix setting field
     1749 * Edit Table Prefix setting field.
    17501750 *
    17511751 * @since 2.1.0 bbPress (r3813)
     
    17681768
    17691769/**
    1770  * Edit Rows Limit setting field
     1770 * Edit Rows Limit setting field.
    17711771 *
    17721772 * @since 2.1.0 bbPress (r3813)
     
    17831783
    17841784/**
    1785  * Edit Delay Time setting field
     1785 * Edit Delay Time setting field.
    17861786 *
    17871787 * @since 2.1.0 bbPress (r3813)
     
    17981798
    17991799/**
    1800  * Edit Halt setting field
     1800 * Edit Halt setting field.
    18011801 *
    18021802 * @since 2.6.0 bbPress (r6599)
     
    18141814
    18151815/**
    1816  * Edit Restart setting field
     1816 * Edit Restart setting field.
    18171817 *
    18181818 * @since 2.1.0 bbPress (r3813)
     
    18291829
    18301830/**
    1831  * Edit Clean setting field
     1831 * Edit Clean setting field.
    18321832 *
    18331833 * @since 2.1.0 bbPress (r3813)
     
    18441844
    18451845/**
    1846  * Edit Convert Users setting field
     1846 * Edit Convert Users setting field.
    18471847 *
    18481848 * @since 2.1.0 bbPress (r3813)
     
    18611861
    18621862/**
    1863  * The main settings page
     1863 * The main settings page.
    18641864 *
    18651865 * @since 2.1.0 bbPress (r3186)
     
    19421942
    19431943/**
    1944  * Contextual help for Forums settings page
     1944 * Contextual help for Forums settings page.
    19451945 *
    19461946 * @since 2.0.0 bbPress (r3119)
     
    20572057
    20582058/**
    2059  * Output settings API option
     2059 * Output settings API option.
    20602060 *
    20612061 * @since 2.0.0 bbPress (r3203)
     
    20702070
    20712071/**
    2072  * Return settings API option
     2072 * Return settings API option.
    20732073 *
    20742074 * @since 2.0.0 bbPress (r3203)
  • trunk/src/includes/admin/tools.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Tools Page
     4 * bbPress Admin Tools Page.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Output a bbPress specific tools box
     14 * Output a bbPress specific tools box.
    1515 *
    1616 * @since 2.6.0 bbPress (r6273)
     
    5454
    5555/**
    56  * Register an admin area repair tool
     56 * Register an admin area repair tool.
    5757 *
    5858 * @since 2.6.0 bbPress (r5885)
     
    107107
    108108/**
    109  * Register the default repair tools
     109 * Register the default repair tools.
    110110 *
    111111 * @since 2.6.0 bbPress (r5885)
     
    515515
    516516/**
    517  * Output the tabs in the admin area
     517 * Output the tabs in the admin area.
    518518 *
    519519 * @since 2.1.0 bbPress (r3872)
    520520 *
    521  * @param string $active_tab Name of the tab that is active
     521 * @param string $active_tab Name of the tab that is active.
    522522 */
    523523function bbp_tools_admin_tabs( $active_tab = '' ) {
     
    526526
    527527    /**
    528      * Output the tabs in the admin area
     528     * Output the tabs in the admin area.
    529529     *
    530530     * @since 2.1.0 bbPress (r3872)
    531531     *
    532      * @param string $active_tab Name of the tab that is active
     532     * @param string $active_tab Name of the tab that is active.
    533533     */
    534534    function bbp_get_tools_admin_tabs( $active_tab = '' ) {
     
    564564
    565565/**
    566  * Return possible tools pages
     566 * Return possible tools pages.
    567567 *
    568568 * @since 2.6.0 bbPress (r6273)
  • trunk/src/includes/admin/tools/common.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Tools Common
     4 * bbPress Admin Tools Common.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Return the current admin repair tool page
     14 * Return the current admin repair tool page.
    1515 *
    1616 * @since 2.6.0 bbPress (r6894)
     
    2323
    2424/**
    25  * Return the current admin repair tool page ID
     25 * Return the current admin repair tool page ID.
    2626 *
    2727 * @since 2.6.0 bbPress (r6894)
     
    4545
    4646/**
    47  * Return a URL to the repair tool page
     47 * Return a URL to the repair tool page.
    4848 *
    4949 * @since 2.6.0 bbPress (r6894)
     
    6767
    6868/**
    69  * Output the URL to run a specific repair tool
     69 * Output the URL to run a specific repair tool.
    7070 *
    7171 * @since 2.6.0 bbPress (r5885)
     
    7878
    7979/**
    80  * Return the URL to run a specific repair tool
     80 * Return the URL to run a specific repair tool.
    8181 *
    8282 * @since 2.6.0 bbPress (r5885)
     
    106106
    107107/**
    108  * Assemble the admin notices
     108 * Assemble the admin notices.
    109109 *
    110110 * @since 2.0.0 bbPress (r2613)
     
    121121
    122122/**
    123  * Handle the processing and feedback of the admin tools page
     123 * Handle the processing and feedback of the admin tools page.
    124124 *
    125125 * @since 2.0.0 bbPress (r2613)
     
    187187
    188188/**
    189  * Get the array of available repair tools
     189 * Get the array of available repair tools.
    190190 *
    191191 * @since 2.6.0 bbPress (r5885)
     
    211211
    212212/**
    213  * Return array of components from the array of registered tools
     213 * Return array of components from the array of registered tools.
    214214 *
    215215 * @since 2.5.0 bbPress (r5885)
     
    251251
    252252/**
    253  * Output the repair list search form
     253 * Output the repair list search form.
    254254 *
    255255 * @since 2.6.0 bbPress (r5885)
     
    268268
    269269/**
    270  * Output a select drop-down of components to filter by
     270 * Output a select drop-down of components to filter by.
    271271 *
    272272 * @since 2.5.0 bbPress (r5885)
     
    303303
    304304/**
    305  * Return array of versions from the array of registered tools
     305 * Return array of versions from the array of registered tools.
    306306 *
    307307 * @since 2.6.0 bbPress (r6894)
     
    354354
    355355/**
    356  * Output a select drop-down of versions to filter by
     356 * Output a select drop-down of versions to filter by.
    357357 *
    358358 * @since 2.5.0 bbPress (r6894)
     
    391391
    392392/**
    393  * Maybe translate a repair tool overhead name
     393 * Maybe translate a repair tool overhead name.
    394394 *
    395395 * @since 2.6.0 bbPress (r6177)
     
    420420
    421421/**
    422  * Maybe translate a repair tool component name
     422 * Maybe translate a repair tool component name.
    423423 *
    424424 * @since 2.6.0 bbPress (r5885)
     
    467467
    468468/**
    469  * Maybe translate a repair tool overhead name
     469 * Maybe translate a repair tool overhead name.
    470470 *
    471471 * @since 2.6.0 bbPress (r6894)
     
    504504 * @since 2.0.0 bbPress (r2613)
    505505 *
    506  * @return array Repair list of options
     506 * @return array Repair list of options.
    507507 */
    508508function bbp_admin_repair_list( $type = 'repair' ) {
     
    613613
    614614/**
    615  * Get filter links for components for a specific admin repair tool
     615 * Get filter links for components for a specific admin repair tool.
    616616 *
    617617 * @since 2.6.0 bbPress (r5885)
     
    650650
    651651/**
    652  * Get filter links for versions for a specific admin repair tool
     652 * Get filter links for versions for a specific admin repair tool.
    653653 *
    654654 * @since 2.6.0 bbPress (r6894)
     
    687687
    688688/**
    689  * Get filter links for overhead for a specific admin repair tool
     689 * Get filter links for overhead for a specific admin repair tool.
    690690 *
    691691 * @since 2.6.0 bbPress (r5885)
     
    726726
    727727/**
    728  * Output filter links for overheads for a specific admin repair tool
     728 * Output filter links for overheads for a specific admin repair tool.
    729729 *
    730730 * @since 2.6.0 bbPress (r5885)
     
    737737
    738738/**
    739  * Get filter links for overheads for a specific admin repair tool
     739 * Get filter links for overheads for a specific admin repair tool.
    740740 *
    741741 * @since 2.6.0 bbPress (r5885)
     
    860860
    861861/**
    862  * Output filter links for statuses
     862 * Output filter links for statuses.
    863863 *
    864864 * @since 2.6.0 bbPress (r6925)
     
    871871
    872872/**
    873  * Get filter links for statuses
     873 * Get filter links for statuses.
    874874 *
    875875 * @since 2.6.0 bbPress (r5885)
  • trunk/src/includes/admin/tools/converter.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Converter
     4 * bbPress Converter.
    55 *
    6  * Based on the hard work of Adam Ellis
     6 * Based on the hard work of Adam Ellis.
    77 *
    88 * @package bbPress
     
    1414
    1515/**
    16  * Return an array of available converters
     16 * Return an array of available converters.
    1717 *
    1818 * @since 2.6.0 bbPress (r6447)
  • trunk/src/includes/admin/tools/help.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Tools Help
     4 * bbPress Admin Tools Help.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Contextual help for Repair Forums tools page
     14 * Contextual help for Repair Forums tools page.
    1515 *
    1616 * @since 2.6.0 bbPress (r5314)
     
    5151
    5252/**
    53  * Contextual help for Reset Forums tools page
     53 * Contextual help for Reset Forums tools page.
    5454 *
    5555 * @since 2.6.0 bbPress (r5314)
     
    8282
    8383/**
    84  * Contextual help for Import Forums tools page
     84 * Contextual help for Import Forums tools page.
    8585 *
    8686 * @since 2.6.0 bbPress (r5314)
  • trunk/src/includes/admin/tools/repair.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Repair Page
     4 * bbPress Admin Repair Page.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Admin repair page
     14 * Admin repair page.
    1515 *
    1616 * @since 2.0.0 bbPress (r2613) Converted from bbPress 1.2
     
    1818 *
    1919 * @todo Use a real list table
    20  *
    2120 */
    2221function bbp_admin_repair_page() {
     
    228227
    229228/**
    230  * Recount topic replies
     229 * Recount topic replies.
    231230 *
    232231 * @since 2.0.0 bbPress (r2613)
    233232 *
    234  * @return array An array of the status code and the message
     233 * @return array An array of the status code and the message.
    235234 */
    236235function bbp_admin_repair_topic_reply_count() {
     
    278277
    279278/**
    280  * Recount topic voices
     279 * Recount topic voices.
    281280 *
    282281 * @since 2.0.0 bbPress (r2613)
    283282 *
    284  * @return array An array of the status code and the message
     283 * @return array An array of the status code and the message.
    285284 */
    286285function bbp_admin_repair_topic_voice_count() {
     
    336335
    337336/**
    338  * Recount non-public replies per topic (pending/spammed/trashed)
     337 * Recount non-public replies per topic (pending/spammed/trashed).
    339338 *
    340339 * @since 2.0.0 bbPress (r2747)
    341340 *
    342  * @return array An array of the status code and the message
     341 * @return array An array of the status code and the message.
    343342 */
    344343function bbp_admin_repair_topic_hidden_reply_count() {
     
    371370
    372371/**
    373  * Recount forum topics
     372 * Recount forum topics.
    374373 *
    375374 * @since 2.0.0 bbPress (r2613)
    376375 *
    377  * @return array An array of the status code and the message
     376 * @return array An array of the status code and the message.
    378377 */
    379378function bbp_admin_repair_forum_topic_count() {
     
    410409
    411410/**
    412  * Recount topic in each topic-tag
     411 * Recount topic in each topic-tag.
    413412 *
    414413 * @since 2.6.0 bbPress (r6256)
    415414 *
    416  * @return array An array of the status code and the message
     415 * @return array An array of the status code and the message.
    417416 */
    418417function bbp_admin_repair_topic_tag_count() {
     
    462461
    463462/**
    464  * Recount forum replies
     463 * Recount forum replies.
    465464 *
    466465 * @since 2.0.0 bbPress (r2613)
    467466 *
    468  * @return array An array of the status code and the message
     467 * @return array An array of the status code and the message.
    469468 */
    470469function bbp_admin_repair_forum_reply_count() {
     
    510509
    511510/**
    512  * Recount non-public forum replies
     511 * Recount non-public forum replies.
    513512 *
    514513 * @since 2.6.0 bbPress (r6922)
    515514 * @since 2.6.0 bbPress (r6932) Rename to match the topic reply recount function
    516515 *
    517  * @return array An array of the status code and the message
     516 * @return array An array of the status code and the message.
    518517 */
    519518function bbp_admin_repair_forum_hidden_reply_count() {
     
    559558
    560559/**
    561  * Recount topics by the users
     560 * Recount topics by the users.
    562561 *
    563562 * @since 2.1.0 bbPress (r3889)
    564563 *
    565  * @return array An array of the status code and the message
     564 * @return array An array of the status code and the message.
    566565 */
    567566function bbp_admin_repair_user_topic_count() {
     
    610609
    611610/**
    612  * Recount topic replied by the users
     611 * Recount topic replied by the users.
    613612 *
    614613 * @since 2.0.0 bbPress (r2613)
    615614 *
    616  * @return array An array of the status code and the message
     615 * @return array An array of the status code and the message.
    617616 */
    618617function bbp_admin_repair_user_reply_count() {
     
    661660
    662661/**
    663  * Repair user favorites
     662 * Repair user favorites.
    664663 *
    665664 * @since 2.0.0 bbPress (r2613)
    666665 *
    667  * @return array An array of the status code and the message
     666 * @return array An array of the status code and the message.
    668667 */
    669668function bbp_admin_repair_user_favorites() {
     
    732731
    733732/**
    734  * Clean the user topic subscriptions
     733 * Clean the user topic subscriptions.
    735734 *
    736735 * @since 2.0.0 bbPress (r2668)
    737736 *
    738  * @return array An array of the status code and the message
     737 * @return array An array of the status code and the message.
    739738 */
    740739function bbp_admin_repair_user_topic_subscriptions() {
     
    802801
    803802/**
    804  * Clean the user forum subscriptions
     803 * Clean the user forum subscriptions.
    805804 *
    806805 * @since 2.5.0 bbPress (r5155)
    807806 *
    808  * @return array An array of the status code and the message
     807 * @return array An array of the status code and the message.
    809808 */
    810809function bbp_admin_repair_user_forum_subscriptions() {
     
    994993
    995994/**
    996  * Repair the last post in every topic and forum
     995 * Repair the last post in every topic and forum.
    997996 *
    998997 * @since 2.0.0 bbPress (r3040)
    999998 *
    1000  * @return array An array of the status code and the message
     999 * @return array An array of the status code and the message.
    10011000 */
    10021001function bbp_admin_repair_freshness() {
     
    11481147
    11491148/**
    1150  * Repair the relationship of sticky topics to the actual parent forum
     1149 * Repair the relationship of sticky topics to the actual parent forum.
    11511150 *
    11521151 * @since 2.3.0 bbPress (r4695)
    11531152 *
    1154  * @return array An array of the status code and the message
     1153 * @return array An array of the status code and the message.
    11551154 */
    11561155function bbp_admin_repair_sticky() {
     
    12091208
    12101209/**
    1211  * Repair closed topics
     1210 * Repair closed topics.
    12121211 *
    12131212 * Closed topics that are missing the post-meta "_bbp_status" key value "publish"
     
    12631262
    12641263/**
    1265  * Repair the private and hidden forums
     1264 * Repair the private and hidden forums.
    12661265 *
    12671266 * @since 2.2.0 bbPress (r4104)
    12681267 *
    1269  * @return array An array of the status code and the message
     1268 * @return array An array of the status code and the message.
    12701269 */
    12711270function bbp_admin_repair_forum_visibility() {
     
    12841283
    12851284/**
    1286  * Repair the parent forum meta for each topic and reply
     1285 * Repair the parent forum meta for each topic and reply.
    12871286 *
    12881287 * @since 2.1.0 bbPress (r3876)
    12891288 *
    1290  * @return array An array of the status code and the message
     1289 * @return array An array of the status code and the message.
    12911290 */
    12921291function bbp_admin_repair_forum_meta() {
     
    13591358
    13601359/**
    1361  * Repair the topic for each post
     1360 * Repair the topic for each post.
    13621361 *
    13631362 * @since 2.1.0 bbPress (r3876)
    13641363 *
    1365  * @return array An array of the status code and the message
     1364 * @return array An array of the status code and the message.
    13661365 */
    13671366function bbp_admin_repair_topic_meta() {
     
    14191418
    14201419/**
    1421  * Recalculate reply menu order
     1420 * Recalculate reply menu order.
    14221421 *
    14231422 * @since 2.5.4 bbPress (r5367)
    14241423 *
    1425  * @return array An array of the status code and the message
     1424 * @return array An array of the status code and the message.
    14261425 */
    14271426function bbp_admin_repair_reply_menu_order() {
  • trunk/src/includes/admin/tools/reset.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Tools Reset
     4 * bbPress Admin Tools Reset.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Admin reset page
     14 * Admin reset page.
    1515 *
    1616 * @since 2.0.0 bbPress (r2613)
    17  *
    1817 */
    1918function bbp_admin_reset_page() {
     
    106105 * @since 2.6.0 bbPress (r6758)
    107106 *
    108  * @param array $args Array of query, message, and possible responses
     107 * @param array $args Array of query, message, and possible responses.
    109108 *
    110109 * @return string
  • trunk/src/includes/admin/tools/upgrade.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Admin Upgrade Functions
     4 * bbPress Admin Upgrade Functions.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Admin repair page
     14 * Admin repair page.
    1515 *
    1616 * @since 2.6.0 bbPress (r6278)
    17  *
    1817 */
    1918function bbp_admin_upgrade_page() {
     
    242241
    243242/**
    244  * Upgrade user engagements for bbPress 2.6 and higher
     243 * Upgrade user engagements for bbPress 2.6 and higher.
    245244 *
    246245 * @since 2.6.0 bbPress (r6320)
    247246 *
    248  * @return array An array of the status code and the message
     247 * @return array An array of the status code and the message.
    249248 */
    250249function bbp_admin_upgrade_user_engagements() {
     
    294293
    295294/**
    296  * Upgrade group forum ID mappings after a bbPress 1.x to bbPress 2.x conversion
    297  *
    298  * Previously named: bbp_admin_repair_group_forum_relationships()
     295 * Upgrade group forum ID mappings after a bbPress 1.x to bbPress 2.x conversion.
     296 *
     297 * Previously named: bbp_admin_repair_group_forum_relationships().
    299298 *
    300299 * @since 2.6.0 bbPress (r4395)
    301300 *
    302  * @return If a wp_error() occurs and no converted forums are found
     301 * @return If a wp_error() occurs and no converted forums are found.
    303302 */
    304303function bbp_admin_upgrade_group_forum_relationships() {
     
    447446
    448447/**
    449  * Upgrade user favorites for bbPress 2.6 and higher
     448 * Upgrade user favorites for bbPress 2.6 and higher.
    450449 *
    451450 * @since 2.6.0 bbPress (r6174)
    452451 *
    453  * @return array An array of the status code and the message
     452 * @return array An array of the status code and the message.
    454453 */
    455454function bbp_admin_upgrade_user_favorites() {
     
    509508
    510509/**
    511  * Upgrade user topic subscriptions for bbPress 2.6 and higher
     510 * Upgrade user topic subscriptions for bbPress 2.6 and higher.
    512511 *
    513512 * @since 2.6.0 bbPress (r6174)
    514513 *
    515  * @return array An array of the status code and the message
     514 * @return array An array of the status code and the message.
    516515 */
    517516function bbp_admin_upgrade_user_topic_subscriptions() {
     
    571570
    572571/**
    573  * Upgrade user forum subscriptions for bbPress 2.6 and higher
     572 * Upgrade user forum subscriptions for bbPress 2.6 and higher.
    574573 *
    575574 * @since 2.6.0 bbPress (r6193)
    576575 *
    577  * @return array An array of the status code and the message
     576 * @return array An array of the status code and the message.
    578577 */
    579578function bbp_admin_upgrade_user_forum_subscriptions() {
     
    633632
    634633/**
    635  * Remove favorites data from user meta for bbPress 2.6 and higher
     634 * Remove favorites data from user meta for bbPress 2.6 and higher.
    636635 *
    637636 * @since 2.6.0 bbPress (r6281)
    638637 *
    639  * @return array An array of the status code and the message
     638 * @return array An array of the status code and the message.
    640639 */
    641640function bbp_admin_upgrade_remove_favorites_from_usermeta() {
     
    671670
    672671/**
    673  * Remove topic subscriptions data from user meta for bbPress 2.6 and higher
     672 * Remove topic subscriptions data from user meta for bbPress 2.6 and higher.
    674673 *
    675674 * @since 2.6.0 bbPress (r6281)
    676675 *
    677  * @return array An array of the status code and the message
     676 * @return array An array of the status code and the message.
    678677 */
    679678function bbp_admin_upgrade_remove_topic_subscriptions_from_usermeta() {
     
    709708
    710709/**
    711  * Remove topic subscriptions data from user meta for bbPress 2.6 and higher
     710 * Remove topic subscriptions data from user meta for bbPress 2.6 and higher.
    712711 *
    713712 * @since 2.6.0 bbPress (r6281)
    714713 *
    715  * @return array An array of the status code and the message
     714 * @return array An array of the status code and the message.
    716715 */
    717716function bbp_admin_upgrade_remove_forum_subscriptions_from_usermeta() {
  • trunk/src/includes/admin/topics.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Topics Admin Class
     4 * bbPress Topics Admin Class.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Topics_Admin' ) ) :
    1414/**
    15  * Loads bbPress topics admin area
     15 * Loads bbPress topics admin area.
    1616 *
    1717 * @package bbPress
     
    2424
    2525    /**
    26      * @var The post type of this admin component
     26     * @var The post type of this admin component.
    2727     */
    2828    private $post_type = '';
     
    3131
    3232    /**
    33      * The main bbPress topics admin loader
     33     * The main bbPress topics admin loader.
    3434     *
    3535     * @since 2.0.0 bbPress (r2515)
     
    4141
    4242    /**
    43      * Setup the admin hooks, actions and filters
     43     * Setup the admin hooks, actions and filters.
    4444     *
    4545     * @since 2.0.0 bbPress (r2646)
     
    9595
    9696    /**
    97      * Admin globals
     97     * Admin globals.
    9898     *
    9999     * @since 2.0.0 bbPress (r2646)
     
    108108
    109109    /**
    110      * Contextual help for bbPress topic edit page
     110     * Contextual help for bbPress topic edit page.
    111111     *
    112112     * @since 2.0.0 bbPress (r3119)
     
    180180
    181181    /**
    182      * Contextual help for bbPress topic edit page
     182     * Contextual help for bbPress topic edit page.
    183183     *
    184184     * @since 2.0.0 bbPress (r3119)
     
    356356
    357357    /**
    358      * Add the topic attributes meta-box
     358     * Add the topic attributes meta-box.
    359359     *
    360360     * @since 2.0.0 bbPress (r2744)
     
    372372
    373373    /**
    374      * Add the author info meta-box
     374     * Add the author info meta-box.
    375375     *
    376376     * @since 2.0.0 bbPress (r2828)
     
    395395
    396396    /**
    397      * Add the replies meta-box
     397     * Add the replies meta-box.
    398398     *
    399399     * Allows viewing & moderating of replies to a topic, based on the way
     
    421421
    422422    /**
    423      * Add the engagements meta-box
     423     * Add the engagements meta-box.
    424424     *
    425425     * Allows viewing of users who have engaged in a topic.
     
    451451
    452452    /**
    453      * Add the favorites meta-box
     453     * Add the favorites meta-box.
    454454     *
    455455     * Allows viewing of users who have favorited a topic.
     
    481481
    482482    /**
    483      * Add the subscriptions meta-box
     483     * Add the subscriptions meta-box.
    484484     *
    485485     * Allows viewing of users who have subscribed to a topic.
     
    511511
    512512    /**
    513      * Remove comments & discussion meta-boxes if comments are not supported
     513     * Remove comments & discussion meta-boxes if comments are not supported.
    514514     *
    515515     * @since 2.6.0 bbPress (r6186)
     
    523523
    524524    /**
    525      * Pass the topic attributes for processing
     525     * Pass the topic attributes for processing.
    526526     *
    527527     * @since 2.0.0 bbPress (r2746)
    528528     *
    529      * @param int $topic_id Topic id
    530      * @return int Parent id
     529     * @param int $topic_id Topic id.
     530     * @return int Parent id.
    531531     */
    532532    public function save_meta_boxes( $topic_id ) {
     
    576576
    577577    /**
    578      * Toggle topic
     578     * Toggle topic.
    579579     *
    580580     * Handles the admin-side opening/closing, sticking/unsticking and
    581      * spamming/unspamming of topics
     581     * spamming/unspamming of topics.
    582582     *
    583583     * @since 2.0.0 bbPress (r2727)
     
    695695
    696696    /**
    697      * Toggle topic notices
     697     * Toggle topic notices.
    698698     *
    699699     * Display the success/error notices from
     
    817817
    818818    /**
    819      * Returns an array of keys used to sort row actions
     819     * Returns an array of keys used to sort row actions.
    820820     *
    821821     * @since 2.6.0 bbPress (r6771)
     
    845845
    846846    /**
    847      * Returns an array of notice toggles
     847     * Returns an array of notice toggles.
    848848     *
    849849     * @since 2.6.0 bbPress (r6396)
     
    871871
    872872    /**
    873      * Returns an array of notice toggles
     873     * Returns an array of notice toggles.
    874874     *
    875875     * @since 2.6.0 bbPress (r6396)
     
    892892
    893893    /**
    894      * Manage the column headers for the topics page
     894     * Manage the column headers for the topics page.
    895895     *
    896896     * @since 2.0.0 bbPress (r2485)
    897897     *
    898      * @param array $columns The columns
    899      *
    900      * @return array $columns bbPress topic columns
     898     * @param array $columns The columns.
     899     *
     900     * @return array $columns bbPress topic columns.
    901901     */
    902902    public function column_headers( $columns ) {
     
    917917
    918918    /**
    919      * Print extra columns for the topics page
     919     * Print extra columns for the topics page.
    920920     *
    921921     * @since 2.0.0 bbPress (r2485)
    922922     *
    923      * @param string $column Column
    924      * @param int $topic_id Topic id
     923     * @param string $column Column.
     924     * @param int $topic_id Topic id.
    925925     */
    926926    public function column_data( $column, $topic_id ) {
     
    997997
    998998    /**
    999      * Topic Row actions
     999     * Topic Row actions.
    10001000     *
    10011001     * Remove the quick-edit action link under the topic title and add the
    1002      * content and close/stick/spam links
     1002     * content and close/stick/spam links.
    10031003     *
    10041004     * @since 2.0.0 bbPress (r2485)
    10051005     *
    1006      * @param array  $actions Actions
    1007      * @param object $topic   Topic object
    1008      *
    1009      * @return array $actions Actions
     1006     * @param array  $actions Actions.
     1007     * @param object $topic   Topic object.
     1008     *
     1009     * @return array $actions Actions.
    10101010     */
    10111011    public function row_actions( $actions = array(), $topic = false ) {
     
    11221122
    11231123    /**
    1124      * Sort row actions by key
     1124     * Sort row actions by key.
    11251125     *
    11261126     * @since 2.6.0
     
    11511151
    11521152    /**
    1153      * Add forum dropdown to topic and reply list table filters
     1153     * Add forum dropdown to topic and reply list table filters.
    11541154     *
    11551155     * @since 2.0.0 bbPress (r2991)
    11561156     *
    1157      * @return bool False. If post type is not topic or reply
     1157     * @return bool False. If post type is not topic or reply.
    11581158     */
    11591159    public function filter_dropdown() {
     
    11741174
    11751175    /**
    1176      * Add "Empty Spam" button for moderators
     1176     * Add "Empty Spam" button for moderators.
    11771177     *
    11781178     * @since 2.6.0 bbPress (r6791)
     
    12101210
    12111211    /**
    1212      * Adjust the request query and include the forum id
     1212     * Adjust the request query and include the forum id.
    12131213     *
    12141214     * @since 2.0.0 bbPress (r2991)
    12151215     *
    1216      * @param array $query_vars Query variables from {@link WP_Query}
    1217      * @return array Processed Query Vars
     1216     * @param array $query_vars Query variables from {@link WP_Query}.
     1217     * @return array Processed Query Vars.
    12181218     */
    12191219    public function filter_post_rows( $query_vars ) {
     
    12311231
    12321232    /**
    1233      * Custom user feedback messages for topic post type
     1233     * Custom user feedback messages for topic post type.
    12341234     *
    12351235     * @since 2.0.0 bbPress (r3080)
     
    13241324
    13251325/**
    1326  * Setup bbPress Topics Admin
     1326 * Setup bbPress Topics Admin.
    13271327 *
    13281328 * This is currently here to make hooking and unhooking of the admin UI easy.
     
    13311331 * @since 2.0.0 bbPress (r2596)
    13321332 *
    1333  * @param WP_Screen $current_screen Current screen object
     1333 * @param WP_Screen $current_screen Current screen object.
    13341334 */
    13351335function bbp_admin_topics( $current_screen ) {
  • trunk/src/includes/admin/users.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Users Admin Class
     4 * bbPress Users Admin Class.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Users_Admin' ) ) :
    1414/**
    15  * Loads bbPress users admin area
     15 * Loads bbPress users admin area.
    1616 *
    1717 * @package bbPress
     
    2222
    2323    /**
    24      * The bbPress users admin loader
     24     * The bbPress users admin loader.
    2525     *
    2626     * @since 2.0.0 bbPress (r2515)
     
    3131
    3232    /**
    33      * Setup the admin hooks, actions and filters
     33     * Setup the admin hooks, actions and filters.
    3434     *
    3535     * @since 2.0.0 bbPress (r2646)
     
    6969
    7070    /**
    71      * Default interface for setting a forum role
     71     * Default interface for setting a forum role.
    7272     *
    7373     * @since 2.2.0 bbPress (r4285)
     
    130130
    131131    /**
    132      * Add bulk forums role dropdown to the WordPress users table
     132     * Add bulk forums role dropdown to the WordPress users table.
    133133     *
    134134     * @since 2.2.0 bbPress (r4360)
     
    174174
    175175    /**
    176      * Process bulk dropdown form submission from the WordPress Users
    177      * Table
     176     * Process bulk dropdown form submission from the WordPress Users Table.
    178177     *
    179178     * @since 2.2.0 bbPress (r4365)
    180      *
    181      * @return bool Always false
    182179     */
    183180    public function user_role_bulk_change() {
     
    243240
    244241    /**
    245      * Add a "View" link for each user
     242     * Add a "View" link for each user.
    246243     *
    247244     * @since 2.6.0 bbPress (r6502)
     
    250247     * @param WP_User $user
    251248     *
    252      * @return array Actions with 'view' link added to them
     249     * @return array Actions with 'view' link added to them.
    253250     */
    254251    public function user_row_actions( $actions = array(), $user = false ) {
     
    266263    /**
    267264     * Add Forum Role column to the WordPress Users table, and change the
    268      * core role title to "Site Role"
     265     * core role title to "Site Role".
    269266     *
    270267     * @since 2.2.0 bbPress (r4337)
    271268     *
    272      * @param array $columns Users table columns
     269     * @param array $columns Users table columns.
    273270     * @return array $columns
    274271     */
     
    293290
    294291    /**
    295      * Return user's forums role for display in the WordPress Users list table
     292     * Return user's forums role for display in the WordPress Users list table.
    296293     *
    297294     * @since 2.2.0 bbPress (r4337)
     
    301298     * @param int $user_id
    302299     *
    303      * @return string Displayable bbPress user role
     300     * @return string Displayable bbPress user role.
    304301     */
    305302    public static function user_role_row( $retval = '', $column_name = '', $user_id = 0 ) {
     
    324321
    325322    /**
    326      * Filter the list of roles included in the WordPress site role list
     323     * Filter the list of roles included in the WordPress site role list.
    327324     *
    328325     * Ensures forum roles are only displayed under the Forum Role list in the
    329      * WordPress Users list table
     326     * WordPress Users list table.
    330327     *
    331328     * @since 2.6.0 bbPress (r6051)
  • trunk/src/includes/common/ajax.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Common AJAX Functions
     4 * bbPress Common AJAX Functions.
    55 *
    66 * Common AJAX functions are ones that are used to setup and/or use during
     
    1515
    1616/**
    17  * Output the URL to use for theme-side bbPress AJAX requests
     17 * Output the URL to use for theme-side bbPress AJAX requests.
    1818 *
    1919 * @since 2.3.0 bbPress (r4543)
     
    2222    echo esc_url( bbp_get_ajax_url() );
    2323}
     24
     25/**
     26 * Return the URL to use for theme-side bbPress AJAX requests.
     27 *
     28 * @since 2.3.0 bbPress (r4543)
     29 *
     30 * @global WP $wp
     31 * @return string
     32 */
     33function bbp_get_ajax_url() {
     34    global $wp;
     35
     36    $ssl      = bbp_get_url_scheme();
     37    $url      = trailingslashit( $wp->request );
     38    $base_url = home_url( $url, $ssl );
     39    $ajaxurl  = add_query_arg( array( 'bbp-ajax' => 'true' ), $base_url );
     40
    2441    /**
    25      * Return the URL to use for theme-side bbPress AJAX requests
     42     * Filters the URL used for theme-side bbPress AJAX requests.
    2643     *
    2744     * @since 2.3.0 bbPress (r4543)
    2845     *
    29      * @global WP $wp
    30      * @return string
     46     * @param string $ajaxurl The URL for bbPress AJAX requests.
     47     * @return string The filtered URL for bbPress AJAX requests.
    3148     */
    32     function bbp_get_ajax_url() {
    33         global $wp;
    34 
    35         $ssl      = bbp_get_url_scheme();
    36         $url      = trailingslashit( $wp->request );
    37         $base_url = home_url( $url, $ssl );
    38         $ajaxurl  = add_query_arg( array( 'bbp-ajax' => 'true' ), $base_url );
    39 
    40         /**
    41          * Filters the URL used for theme-side bbPress AJAX requests.
    42          *
    43          * @since 2.3.0 bbPress (r4543)
    44          *
    45          * @param string $ajaxurl The URL for bbPress AJAX requests.
    46          * @return string The filtered URL for bbPress AJAX requests.
    47          */
    48         return apply_filters( 'bbp_get_ajax_url', $ajaxurl );
    49     }
     49    return apply_filters( 'bbp_get_ajax_url', $ajaxurl );
     50}
    5051
    5152/**
     
    5455 * @since 2.3.0 bbPress (r4543)
    5556 *
    56  * @return bool Looking for bbp-ajax
     57 * @return bool Looking for bbp-ajax.
    5758 */
    5859function bbp_is_ajax() {
     
    6970 * @since 2.3.0 bbPress (r4543)
    7071 *
    71  * @param string $action Sanitized action from bbp_post_request/bbp_get_request
     72 * @param string $action Sanitized action from bbp_post_request/bbp_get_request.
    7273 *
    73  * @return If not a bbPress AJAX request
     74 * @return If not a bbPress AJAX request.
    7475 */
    7576function bbp_do_ajax( $action = '' ) {
     
    112113
    113114/**
    114  * Send headers for AJAX specific requests
     115 * Send headers for AJAX specific requests.
    115116 *
    116117 * This was abstracted from bbp_do_ajax() for use in custom theme-side AJAX
     
    133134
    134135/**
    135  * Helper method to return JSON response for bbPress AJAX calls
     136 * Helper method to return JSON response for bbPress AJAX calls.
    136137 *
    137138 * @since 2.3.0 bbPress (r4542)
  • trunk/src/includes/common/classes.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Classes
     4 * bbPress Classes.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Component' ) ) :
    1414/**
    15  * bbPress Component Class
     15 * bbPress Component Class.
    1616 *
    1717 * The bbPress component class is responsible for simplifying the creation
     
    2828
    2929    /**
    30      * @var string Unique name (for internal identification)
     30     * @var string Unique name (for internal identification).
    3131     * @internal
    3232     */
     
    3434
    3535    /**
    36      * @var Unique ID (normally for custom post type)
     36     * @var Unique ID (normally for custom post type).
    3737     */
    3838    public $id;
    3939
    4040    /**
    41      * @var string Unique slug (used in query string and permalinks)
     41     * @var string Unique slug (used in query string and permalinks).
    4242     */
    4343    public $slug;
    4444
    4545    /**
    46      * @var WP_Query The loop for this component
     46     * @var WP_Query The loop for this component.
    4747     */
    4848    public $query;
    4949
    5050    /**
    51      * @var string The current ID of the queried object
     51     * @var string The current ID of the queried object.
    5252     */
    5353    public $current_id;
     
    5757
    5858    /**
    59      * bbPress Component loader
     59     * bbPress Component loader.
    6060     *
    6161     * @since 2.0.0 bbPress (r2700)
     
    7979
    8080    /**
    81      * Component global variables
     81     * Component global variables.
    8282     *
    8383     * @since 2.0.0 bbPress (r2700)
     
    9292
    9393    /**
    94      * Include required files
     94     * Include required files.
    9595     *
    9696     * @since 2.0.0 bbPress (r2700)
     
    103103
    104104    /**
    105      * Setup the actions
     105     * Setup the actions.
    106106     *
    107107     * @since 2.0.0 bbPress (r2700)
     
    120120
    121121    /**
    122      * Setup the component post types
     122     * Setup the component post types.
    123123     *
    124124     * @since 2.0.0 bbPress (r2700)
     
    129129
    130130    /**
    131      * Register component specific taxonomies
     131     * Register component specific taxonomies.
    132132     *
    133133     * @since 2.0.0 bbPress (r2700)
     
    138138
    139139    /**
    140      * Add any additional rewrite tags
     140     * Add any additional rewrite tags.
    141141     *
    142142     * @since 2.0.0 bbPress (r2700)
     
    147147
    148148    /**
    149      * Generate any additional rewrite rules
     149     * Generate any additional rewrite rules.
    150150     *
    151151     * @since 2.0.0 bbPress (r2700)
     
    192192
    193193    /**
    194      * Set the tree_type
     194     * Set the tree_type.
    195195     *
    196196     * @since 2.0.0 bbPress (r2746)
     
    273273
    274274    /**
    275      * Confirm the tree_type
     275     * Confirm the tree_type.
    276276     *
    277277     * @since 2.6.0 bbPress (r5389)
     
    286286     * @since 2.4.0 bbPress (r4944)
    287287     *
    288      * @param string $output Passed by reference. Used to append additional content
    289      * @param int $depth Depth of reply
    290      * @param array $args Uses 'style' argument for type of HTML list
     288     * @param string $output Passed by reference. Used to append additional content.
     289     * @param int $depth Depth of reply.
     290     * @param array $args Uses 'style' argument for type of HTML list.
    291291     */
    292292    public function start_lvl( &$output = '', $depth = 0, $args = array() ) {
     
    311311     * @since 2.4.0 bbPress (r4944)
    312312     *
    313      * @param string $output Passed by reference. Used to append additional content
    314      * @param int $depth Depth of reply
    315      * @param array $args Will only append content if style argument value is 'ol' or 'ul'
     313     * @param string $output Passed by reference. Used to append additional content.
     314     * @param int $depth Depth of reply.
     315     * @param array $args Will only append content if style argument value is 'ol' or 'ul'.
    316316     */
    317317    public function end_lvl( &$output = '', $depth = 0, $args = array() ) {
     
    444444
    445445    /**
    446      * Confirm the tree_type
     446     * Confirm the tree_type.
    447447     *
    448448     * @since 2.6.0 bbPress (r5389)
     
    468468     *                       selected HTML attribute for option element.
    469469     *
    470      * @param int    $current_object_id Not Used
     470     * @param int    $current_object_id Not Used.
    471471     */
    472472    public function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
  • trunk/src/includes/common/engagements.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Common Engagements
     4 * bbPress Common Engagements.
    55 *
    66 * This file contains the common classes and functions for interacting with the
     
    1515
    1616/**
    17  * Return the strategy used for storing user engagements
     17 * Return the strategy used for storing user engagements.
    1818 *
    1919 * @since 2.6.0 bbPress (r6722)
    2020 *
    21  * @param string $rel_key  The key used to index this relationship
    22  * @param string $rel_type The type of meta to look in
     21 * @param string $rel_key  The key used to index this relationship.
     22 * @param string $rel_type The type of meta to look in.
    2323 *
    2424 * @return string
     
    4646
    4747    /**
    48      * Add a user id to an object
    49      *
    50      * @since 2.6.0 bbPress (r6722)
    51      *
    52      * @param int    $object_id The object id
    53      * @param int    $user_id   The user id
    54      * @param string $meta_key  The relationship key
    55      * @param string $meta_type The relationship type (usually 'post')
    56      * @param bool   $unique    Whether meta key should be unique to the object
    57      *
    58      * @return bool Returns true on success, false on failure
     48     * Add a user id to an object.
     49     *
     50     * @since 2.6.0 bbPress (r6722)
     51     *
     52     * @param int    $object_id The object id.
     53     * @param int    $user_id   The user id.
     54     * @param string $meta_key  The relationship key.
     55     * @param string $meta_type The relationship type (usually 'post').
     56     * @param bool   $unique    Whether meta key should be unique to the object.
     57     *
     58     * @return bool Returns true on success, false on failure.
    5959     */
    6060    public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
     
    6363
    6464    /**
    65      * Remove a user id from an object
    66      *
    67      * @since 2.6.0 bbPress (r6722)
    68      *
    69      * @param int    $object_id The object id
    70      * @param int    $user_id   The user id
    71      * @param string $meta_key  The relationship key
    72      * @param string $meta_type The relationship type (usually 'post')
    73      *
    74      * @return bool Returns true on success, false on failure
     65     * Remove a user id from an object.
     66     *
     67     * @since 2.6.0 bbPress (r6722)
     68     *
     69     * @param int    $object_id The object id.
     70     * @param int    $user_id   The user id.
     71     * @param string $meta_key  The relationship key.
     72     * @param string $meta_type The relationship type (usually 'post').
     73     *
     74     * @return bool Returns true on success, false on failure.
    7575     */
    7676    public function remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    7979
    8080    /**
    81      * Remove a user id from all objects
    82      *
    83      * @since 2.6.0 bbPress (r6722)
    84      *
    85      * @param int    $user_id   The user id
    86      * @param string $meta_key  The relationship key
    87      * @param string $meta_type The relationship type (usually 'post')
    88      *
    89      * @return bool Returns true on success, false on failure
     81     * Remove a user id from all objects.
     82     *
     83     * @since 2.6.0 bbPress (r6722)
     84     *
     85     * @param int    $user_id   The user id.
     86     * @param string $meta_key  The relationship key.
     87     * @param string $meta_type The relationship type (usually 'post').
     88     *
     89     * @return bool Returns true on success, false on failure.
    9090     */
    9191    public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    9494
    9595    /**
    96      * Remove an object from all users
    97      *
    98      * @since 2.6.0 bbPress (r6722)
    99      *
    100      * @param int    $object_id The object id
    101      * @param int    $user_id   The user id
    102      * @param string $meta_key  The relationship key
    103      * @param string $meta_type The relationship type (usually 'post')
    104      *
    105      * @return bool Returns true on success, false on failure
     96     * Remove an object from all users.
     97     *
     98     * @since 2.6.0 bbPress (r6722)
     99     *
     100     * @param int    $object_id The object id.
     101     * @param int    $user_id   The user id.
     102     * @param string $meta_key  The relationship key.
     103     * @param string $meta_type The relationship type (usually 'post').
     104     *
     105     * @return bool Returns true on success, false on failure.
    106106     */
    107107    public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    110110
    111111    /**
    112      * Remove all users from all objects
    113      *
    114      * @since 2.6.0 bbPress (r6722)
    115      *
    116      * @param string $meta_key  The relationship key
    117      * @param string $meta_type The relationship type (usually 'post')
    118      *
    119      * @return bool Returns true on success, false on failure
     112     * Remove all users from all objects.
     113     *
     114     * @since 2.6.0 bbPress (r6722)
     115     *
     116     * @param string $meta_key  The relationship key.
     117     * @param string $meta_type The relationship type (usually 'post').
     118     *
     119     * @return bool Returns true on success, false on failure.
    120120     */
    121121    public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
     
    124124
    125125    /**
    126      * Get users of an object
    127      *
    128      * @since 2.6.0 bbPress (r6722)
    129      *
    130      * @param int    $object_id The object id
    131      * @param string $meta_key  The key used to index this relationship
    132      * @param string $meta_type The type of meta to look in
    133      *
    134      * @return array Returns ids of users
     126     * Get users of an object.
     127     *
     128     * @since 2.6.0 bbPress (r6722)
     129     *
     130     * @param int    $object_id The object id.
     131     * @param string $meta_key  The key used to index this relationship.
     132     * @param string $meta_type The type of meta to look in.
     133     *
     134     * @return array Returns ids of users.
    135135     */
    136136    public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    155155
    156156/**
    157  * Meta strategy for interfacing with User Engagements
     157 * Meta strategy for interfacing with User Engagements.
    158158 *
    159159 * @since 2.6.0 bbPress (r6722)
     
    171171
    172172    /**
    173      * Add a user id to an object
    174      *
    175      * @since 2.6.0 bbPress (r6722)
    176      *
    177      * @param int    $object_id The object id
    178      * @param int    $user_id   The user id
    179      * @param string $meta_key  The relationship key
    180      * @param string $meta_type The relationship type (usually 'post')
    181      * @param bool   $unique    Whether meta key should be unique to the object
    182      *
    183      * @return bool Returns true on success, false on failure
     173     * Add a user id to an object.
     174     *
     175     * @since 2.6.0 bbPress (r6722)
     176     *
     177     * @param int    $object_id The object id.
     178     * @param int    $user_id   The user id.
     179     * @param string $meta_key  The relationship key.
     180     * @param string $meta_type The relationship type (usually 'post').
     181     * @param bool   $unique    Whether meta key should be unique to the object.
     182     *
     183     * @return bool Returns true on success, false on failure.
    184184     */
    185185    public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
     
    188188
    189189    /**
    190      * Remove a user id from an object
    191      *
    192      * @since 2.6.0 bbPress (r6722)
    193      *
    194      * @param int    $object_id The object id
    195      * @param int    $user_id   The user id
    196      * @param string $meta_key  The relationship key
    197      * @param string $meta_type The relationship type (usually 'post')
     190     * Remove a user id from an object.
     191     *
     192     * @since 2.6.0 bbPress (r6722)
     193     *
     194     * @param int    $object_id The object id.
     195     * @param int    $user_id   The user id.
     196     * @param string $meta_key  The relationship key.
     197     * @param string $meta_type The relationship type (usually 'post').
    198198     *
    199199     * @return bool Returns true on success, false on failure
     
    204204
    205205    /**
    206      * Remove a user id from all objects
    207      *
    208      * @since 2.6.0 bbPress (r6722)
    209      *
    210      * @param int    $user_id   The user id
    211      * @param string $meta_key  The relationship key
    212      * @param string $meta_type The relationship type (usually 'post')
    213      *
    214      * @return bool Returns true on success, false on failure
     206     * Remove a user id from all objects.
     207     *
     208     * @since 2.6.0 bbPress (r6722)
     209     *
     210     * @param int    $user_id   The user id.
     211     * @param string $meta_key  The relationship key.
     212     * @param string $meta_type The relationship type (usually 'post').
     213     *
     214     * @return bool Returns true on success, false on failure.
    215215     */
    216216    public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    219219
    220220    /**
    221      * Remove an object from all users
    222      *
    223      * @since 2.6.0 bbPress (r6722)
    224      *
    225      * @param int    $object_id The object id
    226      * @param int    $user_id   The user id
    227      * @param string $meta_key  The relationship key
    228      * @param string $meta_type The relationship type (usually 'post')
    229      *
    230      * @return bool Returns true on success, false on failure
     221     * Remove an object from all users.
     222     *
     223     * @since 2.6.0 bbPress (r6722)
     224     *
     225     * @param int    $object_id The object id.
     226     * @param int    $user_id   The user id.
     227     * @param string $meta_key  The relationship key.
     228     * @param string $meta_type The relationship type (usually 'post').
     229     *
     230     * @return bool Returns true on success, false on failure.
    231231     */
    232232    public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    235235
    236236    /**
    237      * Remove all users from all objects
    238      *
    239      * @since 2.6.0 bbPress (r6722)
    240      *
    241      * @param string $meta_key  The relationship key
    242      * @param string $meta_type The relationship type (usually 'post')
    243      *
    244      * @return bool Returns true on success, false on failure
     237     * Remove all users from all objects.
     238     *
     239     * @since 2.6.0 bbPress (r6722)
     240     *
     241     * @param string $meta_key  The relationship key.
     242     * @param string $meta_type The relationship type (usually 'post').
     243     *
     244     * @return bool Returns true on success, false on failure.
    245245     */
    246246    public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
     
    249249
    250250    /**
    251      * Get users of an object
    252      *
    253      * @since 2.6.0 bbPress (r6722)
    254      *
    255      * @param int    $object_id The object id
    256      * @param string $meta_key  The key used to index this relationship
    257      * @param string $meta_type The type of meta to look in
    258      *
    259      * @return array Returns ids of users
     251     * Get users of an object.
     252     *
     253     * @since 2.6.0 bbPress (r6722)
     254     *
     255     * @param int    $object_id The object id.
     256     * @param string $meta_key  The key used to index this relationship.
     257     * @param string $meta_type The type of meta to look in.
     258     *
     259     * @return array Returns ids of users.
    260260     */
    261261    public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    306306
    307307/**
    308  * Term strategy for interfacing with User Engagements
     308 * Term strategy for interfacing with User Engagements.
    309309 *
    310310 * @since 2.6.0 bbPress (r6737)
     
    322322
    323323    /**
    324      * Register an engagement taxonomy just-in-time for immediate use
     324     * Register an engagement taxonomy just-in-time for immediate use.
    325325     *
    326326     * @since 2.6.0 bbPress (r6737)
     
    366366
    367367    /**
    368      * Add a user id to an object
    369      *
    370      * @since 2.6.0 bbPress (r6737)
    371      *
    372      * @param int    $object_id The object id
    373      * @param int    $user_id   The user id
    374      * @param string $meta_key  The relationship key
    375      * @param string $meta_type The relationship type (usually 'post')
    376      * @param bool   $unique    Whether meta key should be unique to the object
    377      *
    378      * @return bool Returns true on success, false on failure
     368     * Add a user id to an object.
     369     *
     370     * @since 2.6.0 bbPress (r6737)
     371     *
     372     * @param int    $object_id The object id.
     373     * @param int    $user_id   The user id.
     374     * @param string $meta_key  The relationship key.
     375     * @param string $meta_type The relationship type (usually 'post').
     376     * @param bool   $unique    Whether meta key should be unique to the object.
     377     *
     378     * @return bool Returns true on success, false on failure.
    379379     */
    380380    public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
     
    387387
    388388    /**
    389      * Remove a user id from an object
    390      *
    391      * @since 2.6.0 bbPress (r6737)
    392      *
    393      * @param int    $object_id The object id
    394      * @param int    $user_id   The user id
    395      * @param string $meta_key  The relationship key
    396      * @param string $meta_type The relationship type (usually 'post')
    397      *
    398      * @return bool Returns true on success, false on failure
     389     * Remove a user id from an object.
     390     *
     391     * @since 2.6.0 bbPress (r6737)
     392     *
     393     * @param int    $object_id The object id.
     394     * @param int    $user_id   The user id.
     395     * @param string $meta_key  The relationship key.
     396     * @param string $meta_type The relationship type (usually 'post').
     397     *
     398     * @return bool Returns true on success, false on failure.
    399399     */
    400400    public function remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    407407
    408408    /**
    409      * Remove a user id from all objects
    410      *
    411      * @since 2.6.0 bbPress (r6737)
    412      *
    413      * @param int    $user_id   The user id
    414      * @param string $meta_key  The relationship key
    415      * @param string $meta_type The relationship type (usually 'post')
    416      *
    417      * @return bool Returns true on success, false on failure
     409     * Remove a user id from all objects.
     410     *
     411     * @since 2.6.0 bbPress (r6737)
     412     *
     413     * @param int    $user_id   The user id.
     414     * @param string $meta_key  The relationship key.
     415     * @param string $meta_type The relationship type (usually 'post').
     416     *
     417     * @return bool Returns true on success, false on failure.
    418418     */
    419419    public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    427427
    428428    /**
    429      * Remove an object from all users
    430      *
    431      * @since 2.6.0 bbPress (r6737)
    432      *
    433      * @param int    $object_id The object id
    434      * @param int    $user_id   The user id
    435      * @param string $meta_key  The relationship key
    436      * @param string $meta_type The relationship type (usually 'post')
    437      *
    438      * @return bool Returns true on success, false on failure
     429     * Remove an object from all users.
     430     *
     431     * @since 2.6.0 bbPress (r6737)
     432     *
     433     * @param int    $object_id The object id.
     434     * @param int    $user_id   The user id.
     435     * @param string $meta_key  The relationship key.
     436     * @param string $meta_type The relationship type (usually 'post').
     437     *
     438     * @return bool Returns true on success, false on failure.
    439439     */
    440440    public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    443443
    444444    /**
    445      * Remove all users from all objects
    446      *
    447      * @since 2.6.0 bbPress (r6737)
    448      *
    449      * @param string $meta_key  The relationship key
    450      * @param string $meta_type The relationship type (usually 'post')
    451      *
    452      * @return bool Returns true on success, false on failure
     445     * Remove all users from all objects.
     446     *
     447     * @since 2.6.0 bbPress (r6737)
     448     *
     449     * @param string $meta_key  The relationship key.
     450     * @param string $meta_type The relationship type (usually 'post').
     451     *
     452     * @return bool Returns true on success, false on failure.
    453453     */
    454454    public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
     
    457457
    458458    /**
    459      * Get users of an object
    460      *
    461      * @since 2.6.0 bbPress (r6737)
    462      *
    463      * @param int    $object_id The object id
    464      * @param string $meta_key  The key used to index this relationship
    465      * @param string $meta_type The type of meta to look in
    466      *
    467      * @return array Returns ids of users
     459     * Get users of an object.
     460     *
     461     * @since 2.6.0 bbPress (r6737)
     462     *
     463     * @param int    $object_id The object id.
     464     * @param string $meta_key  The key used to index this relationship.
     465     * @param string $meta_type The type of meta to look in.
     466     *
     467     * @return array Returns ids of users.
    468468     */
    469469    public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    540540
    541541/**
    542  * User strategy for interfacing with User Engagements
     542 * User strategy for interfacing with User Engagements.
    543543 *
    544544 * This strategy largely exists for backwards compatibility with bbPress 2.5,
     
    673673     * @param int    $object_id
    674674     *
    675      * @return mixed Results from cache get
     675     * @return mixed Results from cache get.
    676676     */
    677677    private function cache_get( $meta_key = '', $object_id = 0 ) {
     
    692692     * @param int    $object_id
    693693     *
    694      * @return mixed Results from cache set
     694     * @return mixed Results from cache set.
    695695     */
    696696    private function cache_set( $meta_key = '', $object_id = 0, $user_ids = array() ) {
     
    712712     * @param int    $object_id
    713713     *
    714      * @return mixed Results from cache delete
     714     * @return mixed Results from cache delete.
    715715     */
    716716    private function cache_delete( $meta_key = '', $object_id = 0 ) {
     
    733733
    734734    /**
    735      * Add a user id to an object
     735     * Add a user id to an object.
    736736     *
    737737     * @since 2.6.0 bbPress (r6844)
    738738     *
    739      * @param int    $object_id The object id
    740      * @param int    $user_id   The user id
    741      * @param string $meta_key  The relationship key
    742      * @param string $meta_type The relationship type (usually 'post')
    743      * @param bool   $unique    Whether meta key should be unique to the object
    744      *
    745      * @return bool Returns true on success, false on failure
     739     * @param int    $object_id The object id.
     740     * @param int    $user_id   The user id.
     741     * @param string $meta_key  The relationship key.
     742     * @param string $meta_type The relationship type (usually 'post').
     743     * @param bool   $unique    Whether meta key should be unique to the object.
     744     *
     745     * @return bool Returns true on success, false on failure.
    746746     */
    747747    public function add_user_to_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post', $unique = false ) {
     
    768768
    769769    /**
    770      * Remove a user id from an object
     770     * Remove a user id from an object.
    771771     *
    772772     * @since 2.6.0 bbPress (r6844)
    773773     *
    774      * @param int    $object_id The object id
    775      * @param int    $user_id   The user id
    776      * @param string $meta_key  The relationship key
    777      * @param string $meta_type The relationship type (usually 'post')
    778      *
    779      * @return bool Returns true on success, false on failure
     774     * @param int    $object_id The object id.
     775     * @param int    $user_id   The user id.
     776     * @param string $meta_key  The relationship key.
     777     * @param string $meta_type The relationship type (usually 'post').
     778     *
     779     * @return bool Returns true on success, false on failure.
    780780     */
    781781    public function remove_user_from_object( $object_id = 0, $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    805805
    806806    /**
    807      * Remove a user id from all objects
     807     * Remove a user id from all objects.
    808808     *
    809809     * @since 2.6.0 bbPress (r6844)
    810810     *
    811      * @param int    $user_id   The user id
    812      * @param string $meta_key  The relationship key
    813      * @param string $meta_type The relationship type (usually 'post')
    814      *
    815      * @return bool Returns true on success, false on failure
     811     * @param int    $user_id   The user id.
     812     * @param string $meta_key  The relationship key.
     813     * @param string $meta_type The relationship type (usually 'post').
     814     *
     815     * @return bool Returns true on success, false on failure.
    816816     */
    817817    public function remove_user_from_all_objects( $user_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    838838
    839839    /**
    840      * Remove an object from all users
     840     * Remove an object from all users.
    841841     *
    842842     * @since 2.6.0 bbPress (r6844)
    843843     *
    844      * @param int    $object_id The object id
    845      * @param int    $user_id   The user id
    846      * @param string $meta_key  The relationship key
    847      * @param string $meta_type The relationship type (usually 'post')
    848      *
    849      * @return bool Returns true on success, false on failure
     844     * @param int    $object_id The object id.
     845     * @param int    $user_id   The user id.
     846     * @param string $meta_key  The relationship key.
     847     * @param string $meta_type The relationship type (usually 'post').
     848     *
     849     * @return bool Returns true on success, false on failure.
    850850     */
    851851    public function remove_object_from_all_users( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
     
    876876
    877877    /**
    878      * Remove all users from all objects
     878     * Remove all users from all objects.
    879879     *
    880880     * @since 2.6.0 bbPress (r6844)
    881881     *
    882      * @param string $meta_key  The relationship key
    883      * @param string $meta_type The relationship type (usually 'post')
    884      *
    885      * @return bool Returns true on success, false on failure
     882     * @param string $meta_key  The relationship key.
     883     * @param string $meta_type The relationship type (usually 'post').
     884     *
     885     * @return bool Returns true on success, false on failure.
    886886     */
    887887    public function remove_all_users_from_all_objects( $meta_key = '', $meta_type = 'post' ) {
     
    914914
    915915    /**
    916      * Get users of an object
     916     * Get users of an object.
    917917     *
    918918     * The database queries in this function were cached in bbPress versions
     
    921921     * @since 2.6.0 bbPress (r6844)
    922922     *
    923      * @param int    $object_id The object id
    924      * @param string $meta_key  The key used to index this relationship
    925      * @param string $meta_type The type of meta to look in
    926      *
    927      * @return array Returns ids of users
     923     * @param int    $object_id The object id.
     924     * @param string $meta_key  The key used to index this relationship.
     925     * @param string $meta_type The type of meta to look in.
     926     *
     927     * @return array Returns ids of users.
    928928     */
    929929    public function get_users_for_object( $object_id = 0, $meta_key = '', $meta_type = 'post' ) {
  • trunk/src/includes/common/formatting.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Formatting
     4 * bbPress Formatting.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Custom allowed tags for forum topics and replies
    17  *
    18  * Allows all users to post links, quotes, code, formatting, lists, and images
     16 * Custom allowed tags for forum topics and replies.
     17 *
     18 * Allows all users to post links, quotes, code, formatting, lists, and images.
    1919 *
    2020 * @since 2.3.0 bbPress (r4603)
    2121 *
    22  * @return array Associative array of allowed tags and attributes
     22 * @return array Associative array of allowed tags and attributes.
    2323 */
    2424function bbp_kses_allowed_tags() {
     
    8080
    8181/**
    82  * Custom kses filter for forum topics and replies, for filtering incoming data
     82 * Custom kses filter for forum topics and replies, for filtering incoming data.
    8383 *
    8484 * @since 2.3.0 bbPress (r4603)
    8585 *
    86  * @param string $data Content to filter, expected to be escaped with slashes
    87  * @return string Filtered content
     86 * @param string $data Content to filter, expected to be escaped with slashes.
     87 * @return string Filtered content.
    8888 */
    8989function bbp_filter_kses( $data = '' ) {
     
    9292
    9393/**
    94  * Custom kses filter for forum topics and replies, for raw data
     94 * Custom kses filter for forum topics and replies, for raw data.
    9595 *
    9696 * @since 2.3.0 bbPress (r4603)
    9797 *
    98  * @param string $data Content to filter, expected to not be escaped
    99  * @return string Filtered content
     98 * @param string $data Content to filter, expected to not be escaped.
     99 * @return string Filtered content.
    100100 */
    101101function bbp_kses_data( $data = '' ) {
     
    106106
    107107/**
    108  * Filter the topic or reply content and output code and pre tags
     108 * Filter the topic or reply content and output code and pre tags.
    109109 *
    110110 * @since 2.3.0 bbPress (r4641)
    111111 *
    112  * @param string $content Topic and reply content
    113  * @return string Partially encoded content
     112 * @param string $content Topic and reply content.
     113 * @return string Partially encoded content.
    114114 */
    115115function bbp_code_trick( $content = '' ) {
     
    127127 * @since 2.3.0 bbPress (r4641)
    128128 *
    129  * @param string $content Topic and reply content
    130  * @return string Partially encoded content
     129 * @param string $content Topic and reply content.
     130 * @return string Partially encoded content.
    131131 */
    132132function bbp_code_trick_reverse( $content = '' ) {
     
    147147
    148148/**
    149  * Filter the content and encode any bad HTML tags
     149 * Filter the content and encode any bad HTML tags.
    150150 *
    151151 * @since 2.3.0 bbPress (r4641)
    152152 *
    153  * @param string $content Topic and reply content
    154  * @return string Partially encoded content
     153 * @param string $content Topic and reply content.
     154 * @return string Partially encoded content.
    155155 */
    156156function bbp_encode_bad( $content = '' ) {
     
    190190
    191191/**
    192  * Callback to encode the tags in topic or reply content
     192 * Callback to encode the tags in topic or reply content.
    193193 *
    194194 * @since 2.3.0 bbPress (r4641)
     
    226226
    227227/**
    228  * Callback to decode the tags in topic or reply content
     228 * Callback to decode the tags in topic or reply content.
    229229 *
    230230 * @since 2.3.0 bbPress (r4641)
     
    255255
    256256/**
    257  * Callback to replace empty HTML tags in a content string
     257 * Callback to replace empty HTML tags in a content string.
    258258 *
    259259 * @since 2.3.0 bbPress (r4641)
     
    271271
    272272/**
    273  * Callback to replace normal HTML tags in a content string
     273 * Callback to replace normal HTML tags in a content string.
    274274 *
    275275 * @since 2.3.0 bbPress (r4641)
     
    290290
    291291/**
    292  * Catches links so rel=nofollow can be added (on output, not save)
     292 * Catches links so rel=nofollow can be added (on output, not save).
    293293 *
    294294 * @since 2.3.0 bbPress (r4865)
    295295 *
    296  * @param string $text Post text
    297  * @return string $text Text with rel=nofollow added to any links
     296 * @param string $text Post text.
     297 * @return string $text Text with rel=nofollow added to any links.
    298298 */
    299299function bbp_rel_nofollow( $text = '' ) {
     
    302302
    303303/**
    304  * Adds rel=nofollow to a link
     304 * Adds rel=nofollow to a link.
    305305 *
    306306 * @since 2.3.0 bbPress (r4865)
    307307 *
    308308 * @param array $matches
    309  * @return string $text Link with rel=nofollow added
     309 * @return string $text Link with rel=nofollow added.
    310310 */
    311311function bbp_rel_nofollow_callback( $matches = array() ) {
     
    408408
    409409/**
    410  * Make URLs clickable in content areas
     410 * Make URLs clickable in content areas.
    411411 *
    412412 * @since 2.6.0 bbPress (r6014)
     
    436436
    437437/**
    438  * Make FTP clickable in content areas
     438 * Make FTP clickable in content areas.
    439439 *
    440440 * @since 2.6.0 bbPress (r6014)
     
    450450
    451451/**
    452  * Make emails clickable in content areas
     452 * Make emails clickable in content areas.
    453453 *
    454454 * @since 2.6.0 bbPress (r6014)
     
    464464
    465465/**
    466  * Make mentions clickable in content areas
    467  *
    468  * Allows ' ', '>', '[', and '(' before as '@' username mention
     466 * Make mentions clickable in content areas.
     467 *
     468 * Allows ' ', '>', '[', and '(' before as '@' username mention.
    469469 *
    470470 * @since 2.6.0 bbPress (r6014)
     
    573573
    574574/**
    575  * A bbPress specific method of formatting numeric values
     575 * A bbPress specific method of formatting numeric values.
    576576 *
    577577 * @since 2.0.0 bbPress (r2486)
    578578 *
    579  * @param string $number Number to format
    580  * @param string $decimals Optional. Display decimals
    581  *
    582  * @return string Formatted string
     579 * @param string $number Number to format.
     580 * @param string $decimals Optional. Display decimals.
     581 *
     582 * @return string Formatted string.
    583583 */
    584584function bbp_number_format( $number = 0, $decimals = false, $dec_point = '.', $thousands_sep = ',' ) {
     
    594594
    595595/**
    596  * A bbPress specific method of formatting numeric values
     596 * A bbPress specific method of formatting numeric values.
    597597 *
    598598 * @since 2.1.0 bbPress (r3857)
    599599 *
    600  * @param string $number Number to format
    601  * @param string $decimals Optional. Display decimals
    602  *
    603  * @return string Formatted string
     600 * @param string $number Number to format.
     601 * @param string $decimals Optional. Display decimals.
     602 *
     603 * @return string Formatted string.
    604604 */
    605605function bbp_number_format_i18n( $number = 0, $decimals = false ) {
     
    626626 * @param bool $translate Optional. Default is false. Whether to translate the
    627627 *
    628  * @return string Returns timestamp
     628 * @return string Returns timestamp.
    629629 */
    630630function bbp_convert_date( $time, $d = 'U', $translate = false ) {
     
    738738                // Finding the biggest chunk (if the chunk fits, break)
    739739                $count = floor( $since / $seconds );
    740                 if ( 0 !== $count ) {
     740                if ( ! empty( $count ) ) {
    741741                    break;
    742742                }
     
    758758
    759759                    // Add to output var
    760                     if ( 0 !== $count2 ) {
     760                    if ( ! empty( $count2 ) ) {
    761761                        $output .= _x( ',', 'Separator in time since', 'bbpress' ) . ' ';
    762762                        $output .= sprintf( translate_nooped_plural( $chunks[ $i + 1 ][1], $count2, 'bbpress' ), bbp_number_format_i18n( $count2 ) );
     
    828828 * @since 2.6.14
    829829 *
    830  * @param string $display_name The author display
     830 * @param string $display_name The author display.
    831831 * @return string
    832832 */
  • trunk/src/includes/common/functions.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Common Functions
     4 * bbPress Common Functions.
    55 *
    66 * Common functions are ones that are used by more than one component, like
     
    1515
    1616/**
    17  * Return array of bbPress registered post types
     17 * Return array of bbPress registered post types.
    1818 *
    1919 * @since 2.6.0 bbPress (r6813)
    2020 *
    21  * @param array $args Array of arguments to pass into `get_post_types()`
     21 * @param array $args Array of arguments to pass into `get_post_types()`.
    2222 *
    2323 * @return array
     
    4141
    4242/**
    43  * Return the unescaped redirect_to request value
     43 * Return the unescaped redirect_to request value.
    4444 *
    4545 * @bbPress (r4655)
    4646 *
    47  * @return string The URL to redirect to, if set
     47 * @return string The URL to redirect to, if set.
    4848 */
    4949function bbp_get_redirect_to() {
     
    6363 * @since 2.0.0 bbPress (r3325)
    6464 *
    65  * @param string $original_link Original Link to be modified
    66  * @param bool $force Override bbp_get_view_all() check
    67  * @return string The link with 'view=all' appended if necessary
     65 * @param string $original_link Original Link to be modified.
     66 * @param bool $force Override bbp_get_view_all() check.
     67 * @return string The link with 'view=all' appended if necessary.
    6868 */
    6969function bbp_add_view_all( $original_link = '', $force = false ) {
     
    7979
    8080/**
    81  * Remove 'view=all' from query string
     81 * Remove 'view=all' from query string.
    8282 *
    8383 * @since 2.0.0 bbPress (r3325)
    8484 *
    85  * @param string $original_link Original Link to be modified
    86  * @return string The link with 'view=all' appended if necessary
     85 * @param string $original_link Original Link to be modified.
     86 * @return string The link with 'view=all' appended if necessary.
    8787 */
    8888function bbp_remove_view_all( $original_link = '' ) {
     
    9696
    9797/**
    98  * If current user can and is viewing all topics/replies
     98 * If current user can and is viewing all topics/replies.
    9999 *
    100100 * @since 2.0.0 bbPress (r3325)
    101101 *
    102  * @param string $cap Capability used to ensure user can view all
    103  *
    104  * @return bool Whether current user can and is viewing all
     102 * @param string $cap Capability used to ensure user can view all.
     103 * @return bool Whether current user can and is viewing all.
    105104 */
    106105function bbp_get_view_all( $cap = 'moderate' ) {
     
    112111
    113112/**
    114  * Assist pagination by returning correct page number
     113 * Assist pagination by returning correct page number.
    115114 *
    116115 * @since 2.0.0 bbPress (r2628)
    117116 *
    118  * @return int Current page number
     117 * @return int Current page number.
    119118 */
    120119function bbp_get_paged() {
     
    146145 * @since 2.6.0 bbPress (r6481)
    147146 *
    148  * @param array $arr Array to get values of
     147 * @param array $arr Array to get values of.
    149148 *
    150149 * @return array
     
    155154
    156155/**
    157  * Fix post author id on post save
     156 * Fix post author id on post save.
    158157 *
    159158 * When a logged in user changes the status of an anonymous reply or topic, or
     
    163162 * @since 2.0.0 bbPress (r2734)
    164163 *
    165  * @param array $data Post data
    166  * @param array $postarr Original post array (includes post id)
    167  * @return array Data
     164 * @param array $data Post data.
     165 * @param array $postarr Original post array (includes post id).
     166 * @return array Data.
    168167 */
    169168function bbp_fix_post_author( $data = array(), $postarr = array() ) {
     
    203202 * @since 2.6.10 bbPress (r7233)
    204203 *
    205  * @param string $new_status      New status to use when untrashing. Default: 'draft'
    206  * @param int    $post_id         Post ID
    207  * @param string $previous_status Previous post status from '_wp_trash_meta_status' meta key. Default: 'pending'
     204 * @param string $new_status      New status to use when untrashing. Default: 'draft'.
     205 * @param int    $post_id         Post ID.
     206 * @param string $previous_status Previous post status from '_wp_trash_meta_status' meta key. Default: 'pending'.
    208207 */
    209208function bbp_fix_untrash_post_status( $new_status = 'draft', $post_id = 0, $previous_status = 'pending' ) {
     
    231230 * @since 2.6.0 bbPress (r6868) Inverted some logic and added unit tests
    232231 *
    233  * @param string  $datetime Gets run through strtotime()
     232 * @param string  $datetime Gets run through strtotime().
    234233 * @param boolean $utc      Default true. Is the timestamp in UTC?
    235234 *
     
    291290 * @since 2.6.0 bbPress (r6424)
    292291 *
    293  * @param string $context Provide context for additional filtering
    294  * @return int Number of days items remain in trash
     292 * @param string $context Provide context for additional filtering.
     293 * @return int Number of days items remain in trash.
    295294 */
    296295function bbp_get_trash_days( $context = 'forum' ) {
     
    311310
    312311/**
    313  * Get the forum statistics
     312 * Get the forum statistics.
    314313 *
    315314 * @since 2.0.0 bbPress (r2769)
     
    602601
    603602/**
    604  * Filter anonymous post data
     603 * Filter anonymous post data.
    605604 *
    606605 * We use REMOTE_ADDR here directly. If you are behind a proxy, you should
     
    615614 * @since 2.0.0 bbPress (r2734)
    616615 *
    617  * @param array $args Optional. If no args are there, then $_POST values are
    618  * @return bool|array False on errors, values in an array on success
     616 * @param array $args Optional. If no args are there, then $_POST values are.
     617 * @return bool|array False on errors, values in an array on success.
    619618 */
    620619function bbp_filter_anonymous_post_data( $args = array() ) {
     
    654653
    655654/**
    656  * Sanitize an array of anonymous post author data
     655 * Sanitize an array of anonymous post author data.
    657656 *
    658657 * @since 2.6.0 bbPress (r6400)
     
    693692
    694693/**
    695  * Update the relevant meta-data for an anonymous post author
     694 * Update the relevant meta-data for an anonymous post author.
    696695 *
    697696 * @since 2.6.0 bbPress (r6400)
     
    739738
    740739/**
    741  * Check for duplicate topics/replies
    742  *
    743  * Check to make sure that a user is not making a duplicate post
     740 * Check for duplicate topics/replies.
     741 *
     742 * Check to make sure that a user is not making a duplicate post.
    744743 *
    745744 * @since 2.0.0 bbPress (r2763)
    746745 *
    747  * @param array $post_data Contains information about the comment
    748  * @return bool True if it is not a duplicate, false if it is
     746 * @param array $post_data Contains information about the comment.
     747 * @return bool True if it is not a duplicate, false if it is.
    749748 */
    750749function bbp_check_for_duplicate( $post_data = array() ) {
     
    832831
    833832/**
    834  * Check for flooding
     833 * Check for flooding.
    835834 *
    836835 * Check to make sure that a user is not making too many posts in a short amount
     
    841840 * @param array $anonymous_data Optional - if it's an anonymous post. Do not
    842841 *                              supply if supplying $author_id. Should be
    843  *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
     842 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}.
    844843 * @param int $author_id Optional. Supply if it's a post by a logged in user.
    845844 *                        Do not supply if supplying $anonymous_data.
    846  * @return bool True if there is no flooding, false if there is
     845 * @return bool True if there is no flooding, false if there is.
    847846 */
    848847function bbp_check_for_flood( $anonymous_data = array(), $author_id = 0 ) {
     
    883882
    884883/**
    885  * Checks topics and replies against the discussion moderation of blocked keys
     884 * Checks topics and replies against the discussion moderation of blocked keys.
    886885 *
    887886 * @since 2.1.0 bbPress (r3581)
     
    890889 *                              supply if supplying $author_id. Should be
    891890 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
    892  * @param int $author_id Topic or reply author ID
    893  * @param string $title The title of the content
    894  * @param string $content The content being posted
     891 * @param int $author_id Topic or reply author ID.
     892 * @param string $title The title of the content.
     893 * @param string $content The content being posted.
    895894 * @param mixed  $strict  False for moderation_keys. True for disallowed_keys.
    896895 *                        String for custom keys.
    897  * @return bool True if test is passed, false if fail
     896 * @return bool True if test is passed, false if fail.
    898897 */
    899898function bbp_check_for_moderation( $anonymous_data = array(), $author_id = 0, $title = '', $content = '', $strict = false ) {
     
    10991098
    11001099/**
    1101  * Sends notification emails for new replies to subscribed topics
     1100 * Sends notification emails for new replies to subscribed topics.
    11021101 *
    11031102 * Gets new post ID and check if there are subscribed users to that topic, and
    1104  * if there are, send notifications
     1103 * if there are, send notifications.
    11051104 *
    11061105 * Note: in bbPress 2.6, we've moved away from 1 email per subscriber to 1 email
     
    11121111 * @since 2.6.0 bbPress (r5413)
    11131112 *
    1114  * @param int $reply_id ID of the newly made reply
    1115  * @param int $topic_id ID of the topic of the reply
    1116  * @param int $forum_id ID of the forum of the reply
     1113 * @param int $reply_id ID of the newly made reply.
     1114 * @param int $topic_id ID of the topic of the reply.
     1115 * @param int $forum_id ID of the forum of the reply.
    11171116 * @param array $anonymous_data Optional - if it's an anonymous post. Do not
    11181117 *                              supply if supplying $author_id. Should be
    1119  *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
    1120  * @param int $reply_author ID of the topic author ID
    1121  * @return bool True on success, false on failure
     1118 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}.
     1119 * @param int $reply_author ID of the topic author ID.
     1120 * @return bool True on success, false on failure.
    11221121 */
    11231122function bbp_notify_topic_subscribers( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $reply_author = 0 ) {
     
    12731272
    12741273/**
    1275  * Sends notification emails for new topics to subscribed forums
     1274 * Sends notification emails for new topics to subscribed forums.
    12761275 *
    12771276 * Gets new post ID and check if there are subscribed users to that forum, and
    1278  * if there are, send notifications
     1277 * if there are, send notifications.
    12791278 *
    12801279 * Note: in bbPress 2.6, we've moved away from 1 email per subscriber to 1 email
     
    12861285 * @since 2.5.0 bbPress (r5156)
    12871286 *
    1288  * @param int $topic_id ID of the newly made reply
    1289  * @param int $forum_id ID of the forum for the topic
     1287 * @param int $topic_id ID of the newly made reply.
     1288 * @param int $forum_id ID of the forum for the topic.
    12901289 * @param array $anonymous_data Optional - if it's an anonymous post. Do not
    12911290 *                              supply if supplying $author_id. Should be
    12921291 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
    1293  * @param int $topic_author ID of the topic author ID
    1294  * @return bool True on success, false on failure
     1292 * @param int $topic_author ID of the topic author ID.
     1293 * @return bool True on success, false on failure.
    12951294 */
    12961295function bbp_notify_forum_subscribers( $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $topic_author = 0 ) {
     
    14451444
    14461445/**
    1447  * Sends notification emails for new replies to subscribed topics
    1448  *
    1449  * This function is deprecated. Please use: bbp_notify_topic_subscribers()
     1446 * Sends notification emails for new replies to subscribed topics.
     1447 *
     1448 * This function is deprecated. Please use: bbp_notify_topic_subscribers().
    14501449 *
    14511450 * @since 2.0.0 bbPress (r2668)
     
    14531452 * @deprecated 2.6.0 bbPress (r5412)
    14541453 *
    1455  * @param int $reply_id ID of the newly made reply
    1456  * @param int $topic_id ID of the topic of the reply
    1457  * @param int $forum_id ID of the forum of the reply
     1454 * @param int $reply_id ID of the newly made reply.
     1455 * @param int $topic_id ID of the topic of the reply.
     1456 * @param int $forum_id ID of the forum of the reply.
    14581457 * @param array $anonymous_data Optional - if it's an anonymous post. Do not
    14591458 *                              supply if supplying $author_id. Should be
    1460  *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
    1461  * @param int $reply_author ID of the topic author ID
    1462  *
    1463  * @return bool True on success, false on failure
     1459 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}.
     1460 * @param int $reply_author ID of the topic author ID.
     1461 *
     1462 * @return bool True on success, false on failure.
    14641463 */
    14651464function bbp_notify_subscribers( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $reply_author = 0 ) {
     
    14681467
    14691468/**
    1470  * Return an array of user email addresses from an array of user IDs
     1469 * Return an array of user email addresses from an array of user IDs.
    14711470 *
    14721471 * @since 2.6.0 bbPress (r6722)
     
    16111610
    16121611/**
    1613  * Return a clean and reliable logout URL
     1612 * Return a clean and reliable logout URL.
    16141613 *
    16151614 * This function is used to filter `logout_url`. If no $redirect_to value is
     
    16201619 * @since 2.1.0 bbPress (2815)
    16211620 *
    1622  * @param string $url URL used to log out
     1621 * @param string $url URL used to log out.
    16231622 * @param string $redirect_to Where to redirect to?
    16241623 *
    1625  * @return string The url
     1624 * @return string The url.
    16261625 */
    16271626function bbp_logout_url( $url = '', $redirect_to = '' ) {
     
    16731672 * @since 2.1.0 bbPress (r3839)
    16741673 *
    1675  * @param string|array $args Value to merge with $defaults
     1674 * @param string|array $args Value to merge with $defaults.
    16761675 * @param array $defaults Array that serves as the defaults.
    1677  * @param string $filter_key String to key the filters from
     1676 * @param string $filter_key String to key the filters from.
    16781677 * @return array Merged user defined values with defaults.
    16791678 */
     
    17091708
    17101709/**
    1711  * Adds ability to include or exclude specific post_parent ID's
     1710 * Adds ability to include or exclude specific post_parent ID's.
    17121711 *
    17131712 * @since 2.0.0 bbPress (r2996)
     
    17571756
    17581757/**
    1759  * Query the DB and get the last public post_id that has parent_id as post_parent
     1758 * Query the DB and get the last public post_id that has parent_id as post_parent.
    17601759 *
    17611760 * @since 2.0.0 bbPress (r2868)
     
    17641763 * @param int    $parent_id Parent id.
    17651764 * @param string $post_type Post type. Defaults to 'post'.
    1766  * @return int The last active post_id
     1765 * @return int The last active post_id.
    17671766 */
    17681767function bbp_get_public_child_last_id( $parent_id = 0, $post_type = 'post' ) {
     
    18211820
    18221821/**
    1823  * Query the database for child counts, grouped by type & status
     1822 * Query the database for child counts, grouped by type & status.
    18241823 *
    18251824 * @since 2.6.0 bbPress (r6826)
     
    18921891
    18931892/**
    1894  * Filter a list of child counts, from `bbp_get_child_counts()`
     1893 * Filter a list of child counts, from `bbp_get_child_counts()`.
    18951894 *
    18961895 * @since 2.6.0 bbPress (r6826)
    18971896 *
    1898  * @param int    $parent_id  ID of post to get child counts from
    1899  * @param array  $types      Optional. An array of post types to filter by
    1900  * @param array  $statuses   Optional. An array of post statuses to filter by
     1897 * @param int    $parent_id  ID of post to get child counts from.
     1898 * @param array  $types      Optional. An array of post types to filter by.
     1899 * @param array  $statuses   Optional. An array of post statuses to filter by.
    19011900 *
    19021901 * @return array A list of objects or object fields.
     
    19321931
    19331932/**
    1934  * Query the DB and get a count of public children
     1933 * Query the DB and get a count of public children.
    19351934 *
    19361935 * @since 2.0.0 bbPress (r2868)
     
    19391938 * @param int    $parent_id Parent id.
    19401939 * @param string $post_type Post type. Defaults to 'post'.
    1941  * @return int The number of children
     1940 * @return int The number of children.
    19421941 */
    19431942function bbp_get_public_child_count( $parent_id = 0, $post_type = 'post' ) {
     
    19781977}
    19791978/**
    1980  * Query the DB and get a count of public children
     1979 * Query the DB and get a count of public children.
    19811980 *
    19821981 * @since 2.0.0 bbPress (r2868)
    1983  * @since 2.6.0 bbPress (r5954) Replace direct queries with WP_Query() objects
     1982 * @since 2.6.0 bbPress (r5954) Replace direct queries with WP_Query() objects.
    19841983 *
    19851984 * @param int    $parent_id Parent id.
    19861985 * @param string $post_type Post type. Defaults to 'post'.
    1987  * @return int The number of children
     1986 * @return int The number of children.
    19881987 */
    19891988function bbp_get_non_public_child_count( $parent_id = 0, $post_type = 'post' ) {
     
    20292028
    20302029/**
    2031  * Query the DB and get the child id's of public children
     2030 * Query the DB and get the child id's of public children.
    20322031 *
    20332032 * @since 2.0.0 bbPress (r2868)
     
    20372036 * @param string $post_type Post type. Defaults to 'post'.
    20382037 *
    2039  * @return array The array of children
     2038 * @return array The array of children.
    20402039 */
    20412040function bbp_get_public_child_ids( $parent_id = 0, $post_type = 'post' ) {
     
    20992098
    21002099/**
    2101  * Query the DB and get the child id's of all children
     2100 * Query the DB and get the child id's of all children.
    21022101 *
    21032102 * @since 2.0.0 bbPress (r3325)
    21042103 *
    2105  * @param int $parent_id  Parent id
    2106  * @param string $post_type Post type. Defaults to 'post'
    2107  *
    2108  * @return array The array of children
     2104 * @param int $parent_id  Parent id.
     2105 * @param string $post_type Post type. Defaults to 'post'.
     2106 *
     2107 * @return array The array of children.
    21092108 */
    21102109function bbp_get_all_child_ids( $parent_id = 0, $post_type = 'post' ) {
     
    21692168 * @since 2.6.0 bbPress (r6699)
    21702169 *
    2171  * @param array $objects Array of objects, fresh from a query
    2172  *
    2173  * @return bool True if some IDs were cached
     2170 * @param array $objects Array of objects, fresh from a query.
     2171 *
     2172 * @return bool True if some IDs were cached.
    21742173 */
    21752174function bbp_update_post_family_caches( $objects = array() ) {
     
    22422241 * @since 2.6.0 bbPress (r6699)
    22432242 *
    2244  * @param array $objects Array of objects, fresh from a query
    2245  *
    2246  * @return bool True if some IDs were cached
     2243 * @param array $objects Array of objects, fresh from a query.
     2244 *
     2245 * @return bool True if some IDs were cached.
    22472246 */
    22482247function bbp_update_post_author_caches( $objects = array() ) {
     
    22872286
    22882287/**
    2289  * Get the unfiltered value of a global $post's key
    2290  *
    2291  * Used most frequently when editing a forum/topic/reply
     2288 * Get the unfiltered value of a global $post's key.
     2289 *
     2290 * Used most frequently when editing a forum/topic/reply.
    22922291 *
    22932292 * @since 2.1.0 bbPress (r3694)
    22942293 *
    2295  * @param string $field Name of the key
    2296  * @param string $context How to sanitize - raw|edit|db|display|attribute|js
    2297  * @return string Field value
     2294 * @param string $field Name of the key.
     2295 * @param string $context How to sanitize - raw|edit|db|display|attribute|js.
     2296 * @return string Field value.
    22982297 */
    22992298function bbp_get_global_post_field( $field = 'ID', $context = 'edit' ) {
     
    23182317 * @since 2.1.0 bbPress (r4022)
    23192318 *
    2320  * @param string $action Action nonce
    2321  * @param string $query_arg where to look for nonce in $_REQUEST
     2319 * @param string $action Action nonce.
     2320 * @param string $query_arg where to look for nonce in $_REQUEST.
    23222321 */
    23232322function bbp_verify_nonce_request( $action = '', $query_arg = '_wpnonce' ) {
     
    26322631
    26332632/**
    2634  * Used to guess if page exists at requested path
     2633 * Used to guess if page exists at requested path.
    26352634 *
    26362635 * @since 2.0.0 bbPress (r3304)
    26372636 *
    26382637 * @param string $path
    2639  * @return mixed False if no page, Page object if true
     2638 * @return mixed False if no page, Page object if true.
    26402639 */
    26412640function bbp_get_page_by_path( $path = '' ) {
     
    26652664 * @since 2.6.0 bbPress (r6583) Use status_header() & nocache_headers()
    26662665 *
    2667  * @param WP_Query $query  The query being checked
    2668  *
    2669  * @return bool Always returns true
     2666 * @param WP_Query $query  The query being checked.
     2667 *
     2668 * @return bool Always returns true.
    26702669 */
    26712670function bbp_set_404( $query = null ) {
     
    26942693
    26952694/**
    2696  * Maybe handle the default 404 handling for some bbPress conditions
     2695 * Maybe handle the default 404 handling for some bbPress conditions.
    26972696 *
    26982697 * Some conditions (like private/hidden forums and edits) have their own checks
     
    27012700 * @since 2.6.0 bbPress (r6555)
    27022701 *
    2703  * @param bool $override Whether to override the default handler
    2704  * @param WP_Query $wp_query The posts query being referenced
    2705  *
    2706  * @return bool False to leave alone, true to override
     2702 * @param bool $override Whether to override the default handler.
     2703 * @param WP_Query $wp_query The posts query being referenced.
     2704 *
     2705 * @return bool False to leave alone, true to override.
    27072706 */
    27082707function bbp_pre_handle_404( $override = false, $wp_query = false ) {
     
    27342733 * @since 2.6.0 bbPress (r6580)
    27352734 *
    2736  * @param mixed $posts Default null. Array of posts (possibly empty)
     2735 * @param mixed $posts Default null. Array of posts (possibly empty).
    27372736 * @param WP_Query $wp_query
    27382737 *
  • trunk/src/includes/common/locale.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Localization
     4 * bbPress Localization.
    55 *
    66 * @package bbPress
  • trunk/src/includes/common/locks.php

    r7379 r7380  
    1818 * @since 2.6.0 bbPress (r6340)
    1919 *
    20  * @param int $post_id ID of the post to check for editing
     20 * @param int $post_id ID of the post to check for editing.
    2121 * @return integer False: not locked or locked by current user. Int: user ID of user with lock.
    2222 */
     
    5454
    5555/**
    56  * Mark the post as currently being edited by the current user
     56 * Mark the post as currently being edited by the current user.
    5757 *
    5858 * @since 2.6.0 bbPress (r6340)
    5959 *
    60  * @param int $post_id ID of the post to being edited
     60 * @param int $post_id ID of the post to being edited.
    6161 * @return bool|array Returns false if the post doesn't exist of there is no current user, or
    6262 *                     an array of the lock time and the user ID.
  • trunk/src/includes/common/shortcodes.php

    r7378 r7380  
    2222
    2323    /**
    24      * @var array Shortcode => function
     24     * Shortcode => function.
     25     *
     26     * @var array
    2527     */
    2628    public $codes = array();
  • trunk/src/includes/common/template.php

    r7379 r7380  
    1818 * @since 2.1.0 bbPress (r3979)
    1919 *
    20  * @param string $path Additional path with leading slash
     20 * @param string $path Additional path with leading slash.
    2121 */
    2222function bbp_forums_url( $path = '/' ) {
     
    2929 * @since 2.1.0 bbPress (r3979)
    3030 *
    31  * @param string $path Additional path with leading slash
     31 * @param string $path Additional path with leading slash.
    3232 */
    3333function bbp_get_forums_url( $path = '/' ) {
     
    4040 * @since 2.1.0 bbPress (r3979)
    4141 *
    42  * @param string $path Additional path with leading slash
     42 * @param string $path Additional path with leading slash.
    4343 */
    4444function bbp_topics_url( $path = '/' ) {
     
    5151 * @since 2.1.0 bbPress (r3979)
    5252 *
    53  * @param string $path Additional path with leading slash
    54  *
    55  * @return The URL to the topics archive
     53 * @param string $path Additional path with leading slash.
     54 *
     55 * @return The URL to the topics archive.
    5656 */
    5757function bbp_get_topics_url( $path = '/' ) {
     
    8888 * @param int $site_id
    8989 *
    90  * @return bool True if site is public, false if private
     90 * @return bool True if site is public, false if private.
    9191 */
    9292function bbp_is_site_public( $site_id = 0 ) {
     
    111111 * @since 2.0.0 bbPress (r2549)
    112112 *
    113  * @param int $post_id Possible post_id to check
    114  *
    115  * @return bool True if it's a forum page, false if not
     113 * @param int $post_id Possible post_id to check.
     114 *
     115 * @return bool True if it's a forum page, false if not.
    116116 */
    117117function bbp_is_forum( $post_id = 0 ) {
     
    186186 * @global string $pagenow The filename of the current screen.
    187187 *
    188  * @return bool True if it's the forum edit page, false if not
     188 * @return bool True if it's the forum edit page, false if not.
    189189 */
    190190function bbp_is_forum_edit() {
     
    215215 * @since 2.0.0 bbPress (r2549)
    216216 *
    217  * @param int $post_id Possible post_id to check
    218  *
    219  * @return bool True if it's a topic page, false if not
     217 * @param int $post_id Possible post_id to check.
     218 *
     219 * @return bool True if it's a topic page, false if not.
    220220 */
    221221function bbp_is_topic( $post_id = 0 ) {
     
    287287 * @global string $pagenow The filename of the current screen.
    288288 *
    289  * @return bool True if it's the topic edit page, false if not
     289 * @return bool True if it's the topic edit page, false if not.
    290290 */
    291291function bbp_is_topic_edit() {
     
    316316 * @since 2.0.0 bbPress (r2756)
    317317 *
    318  * @return bool True if it's the topic merge page, false if not
     318 * @return bool True if it's the topic merge page, false if not.
    319319 */
    320320function bbp_is_topic_merge() {
     
    337337 * @since 2.0.0 bbPress (r2756)
    338338 *
    339  * @return bool True if it's the topic split page, false if not
     339 * @return bool True if it's the topic split page, false if not.
    340340 */
    341341function bbp_is_topic_split() {
     
    358358 * @since 2.0.0 bbPress (r3311)
    359359 *
    360  * @return bool True if it's a topic tag, false if not
     360 * @return bool True if it's a topic tag, false if not.
    361361 */
    362362function bbp_is_topic_tag() {
     
    392392 * @global string $taxnow  The taxonomy of the current screen.
    393393 *
    394  * @return bool True if editing a topic tag, false if not
     394 * @return bool True if editing a topic tag, false if not.
    395395 */
    396396function bbp_is_topic_tag_edit() {
     
    455455 * @since 2.0.0 bbPress (r2549)
    456456 *
    457  * @param int $post_id Possible post_id to check
    458  *
    459  * @return bool True if it's a reply page, false if not
     457 * @param int $post_id Possible post_id to check.
     458 *
     459 * @return bool True if it's a reply page, false if not.
    460460 */
    461461function bbp_is_reply( $post_id = 0 ) {
     
    480480 * @global string $pagenow The filename of the current screen.
    481481 *
    482  * @return bool True if it's the reply edit page, false if not
     482 * @return bool True if it's the reply edit page, false if not.
    483483 */
    484484function bbp_is_reply_edit() {
     
    507507 * Check if current page is a reply move page.
    508508 *
    509  * @return bool True if it's the reply move page, false if not
     509 * @return bool True if it's the reply move page, false if not.
    510510 */
    511511function bbp_is_reply_move() {
     
    554554 * @since 2.0.0 bbPress (r2652)
    555555 *
    556  * @return bool True if it's the favorites page, false if not
     556 * @return bool True if it's the favorites page, false if not.
    557557 */
    558558function bbp_is_favorites() {
     
    578578 * @since 2.0.0 bbPress (r2652)
    579579 *
    580  * @return bool True if it's the subscriptions page, false if not
     580 * @return bool True if it's the subscriptions page, false if not.
    581581 */
    582582function bbp_is_subscriptions() {
     
    603603 * @since 2.0.0 bbPress (r2688)
    604604 *
    605  * @return bool True if it's the topics created page, false if not
     605 * @return bool True if it's the topics created page, false if not.
    606606 */
    607607function bbp_is_topics_created() {
     
    628628 * @since 2.2.0 bbPress (r4225)
    629629 *
    630  * @return bool True if it's the replies created page, false if not
     630 * @return bool True if it's the replies created page, false if not.
    631631 */
    632632function bbp_is_replies_created() {
     
    652652 * @since 2.0.0 bbPress (r2688)
    653653 *
    654  * @return bool True if it's the user's home, false if not
     654 * @return bool True if it's the user's home, false if not.
    655655 */
    656656function bbp_is_user_home() {
     
    676676 * @since 2.1.0 bbPress (r3918)
    677677 *
    678  * @return bool True if it's the user's home, false if not
     678 * @return bool True if it's the user's home, false if not.
    679679 */
    680680function bbp_is_user_home_edit() {
     
    696696 * @since 2.0.0 bbPress (r2688)
    697697 *
    698  * @return bool True if it's a user's profile page, false if not
     698 * @return bool True if it's a user's profile page, false if not.
    699699 */
    700700function bbp_is_single_user() {
     
    720720 * @since 2.0.0 bbPress (r2688)
    721721 *
    722  * @return bool True if it's a user's profile edit page, false if not
     722 * @return bool True if it's a user's profile edit page, false if not.
    723723 */
    724724function bbp_is_single_user_edit() {
     
    744744 * @since 2.2.0 bbPress (r4225)
    745745 *
    746  * @return bool True if it's a user's profile page, false if not
     746 * @return bool True if it's a user's profile page, false if not.
    747747 */
    748748function bbp_is_single_user_profile() {
     
    768768 * @since 2.2.0 bbPress (r4225)
    769769 *
    770  * @return bool True if it's a user's topics page, false if not
     770 * @return bool True if it's a user's topics page, false if not.
    771771 */
    772772function bbp_is_single_user_topics() {
     
    792792 * @since 2.2.0 bbPress (r4225)
    793793 *
    794  * @return bool True if it's a user's replies page, false if not
     794 * @return bool True if it's a user's replies page, false if not.
    795795 */
    796796function bbp_is_single_user_replies() {
     
    816816 * @since 2.6.0 bbPress (r6320)
    817817 *
    818  * @return bool True if it's a user's replies page, false if not
     818 * @return bool True if it's a user's replies page, false if not.
    819819 */
    820820function bbp_is_single_user_engagements() {
     
    840840 * @since 2.0.0 bbPress (r2789)
    841841 *
    842  * @global WP_Query $wp_query To check if WP_Query::bbp_is_view is true
     842 * @global WP_Query $wp_query To check if WP_Query::bbp_is_view is true.
    843843 *
    844844 * @return bool Is it a view page?
     
    871871 * @since 2.3.0 bbPress (r4579)
    872872 *
    873  * @global WP_Query $wp_query To check if WP_Query::bbp_is_search is true
     873 * @global WP_Query $wp_query To check if WP_Query::bbp_is_search is true.
    874874 *
    875875 * @return bool Is it a search page?
     
    915915 * @since 2.4.0 bbPress (r4919)
    916916 *
    917  * @global WP_Query $wp_query To check if WP_Query::bbp_is_search is true
     917 * @global WP_Query $wp_query To check if WP_Query::bbp_is_search is true.
    918918 *
    919919 * @return bool Is it a search page?
     
    956956 * @since 2.1.0 bbPress (r3585)
    957957 *
    958  * @return bool True if it's the edit page, false if not
     958 * @return bool True if it's the edit page, false if not.
    959959 */
    960960function bbp_is_edit() {
     
    11741174 * @since 2.0.0 bbPress (r3344)
    11751175 *
    1176  * @return bool In a bbPress page
     1176 * @return bool In a bbPress page.
    11771177 */
    11781178function is_bbpress() {
     
    13121312 * @since 2.0.0 bbPress (r2815)
    13131313 *
    1314  * @param string $redirect_to Pass a URL to redirect to
     1314 * @param string $redirect_to Pass a URL to redirect to.
    13151315 */
    13161316function bbp_redirect_to_field( $redirect_to = '' ) {
     
    13611361 *                           textarea|password|select|radio|checkbox
    13621362 *
    1363  * @return string Sanitized value ready for screen display
     1363 * @return string Sanitized value ready for screen display.
    13641364 */
    13651365function bbp_get_sanitize_val( $request = '', $input_type = 'text' ) {
     
    14051405 *
    14061406 * @param int $auto_increment Optional. Default true. Set to false to prevent
    1407  *                            increment
     1407 *                            increment.
    14081408 */
    14091409function bbp_tab_index( $auto_increment = true ) {
     
    14231423 *
    14241424 * @param int $auto_increment Optional. Default true. Set to false to
    1425  *                            prevent the increment
    1426  *
    1427  * @return int $bbp->tab_index The global tab index
     1425 *                            prevent the increment.
     1426 *
     1427 * @return int $bbp->tab_index The global tab index.
    14281428 */
    14291429function bbp_get_tab_index( $auto_increment = true ) {
     
    14481448 * @since 2.6.0 bbPress (r6424)
    14491449 *
    1450  * @param mixed $tab False to skip, any integer to use
     1450 * @param mixed $tab False to skip, any integer to use.
    14511451 */
    14521452function bbp_tab_index_attribute( $tab = false ) {
     
    14641464 * @since 2.6.0 bbPress (r6424)
    14651465 *
    1466  * @param mixed $tab False to skip, any integer to use
     1466 * @param mixed $tab False to skip, any integer to use.
    14671467 *
    14681468 * @return string
     
    14871487 * @since 2.0.0 bbPress (r2746)
    14881488 *
    1489  * @param array $args See {@link bbp_get_dropdown()} for arguments
     1489 * @param array $args See {@link bbp_get_dropdown()} for arguments.
    14901490 */
    14911491function bbp_dropdown( $args = array() ) {
     
    17971797 * Merge topic form fields.
    17981798 *
    1799  * Output the required hidden fields when merging a topic
     1799 * Output the required hidden fields when merging a topic.
    18001800 *
    18011801 * @since 2.0.0 bbPress (r2756)
     
    18131813 * Split topic form fields.
    18141814 *
    1815  * Output the required hidden fields when splitting a topic
     1815 * Output the required hidden fields when splitting a topic.
    18161816 *
    18171817 * @since 2.0.0 bbPress (r2756)
     
    18291829 * Move reply form fields.
    18301830 *
    1831  * Output the required hidden fields when moving a reply
     1831 * Output the required hidden fields when moving a reply.
     1832 *
     1833 * @since 2.1.0 bbPress (r3586)
    18321834 */
    18331835function bbp_move_reply_form_fields() {
     
    20572059 * @since 2.0.0 bbPress (r2789)
    20582060 *
    2059  * @param string $view Optional. View id
     2061 * @param string $view Optional. View id.
    20602062 */
    20612063function bbp_view_id( $view = '' ) {
     
    20722074 * @param string $view Optional. View id.
    20732075 *
    2074  * @return bool|string ID on success, false on failure
     2076 * @return bool|string ID on success, false on failure.
    20752077 */
    20762078function bbp_get_view_id( $view = '' ) {
     
    20992101 * @since 2.0.0 bbPress (r2789)
    21002102 *
    2101  * @param string $view Optional. View id
     2103 * @param string $view Optional. View id.
    21022104 */
    21032105function bbp_view_title( $view = '' ) {
     
    21132115 * @since 2.0.0 bbPress (r2789)
    21142116 *
    2115  * @param string $view Optional. View id
    2116  *
    2117  * @return bool|string Title on success, false on failure
     2117 * @param string $view Optional. View id.
     2118 *
     2119 * @return bool|string Title on success, false on failure.
    21182120 */
    21192121function bbp_get_view_title( $view = '' ) {
     
    21332135 * @since 2.0.0 bbPress (r2789)
    21342136 *
    2135  * @param string $view Optional. View id
     2137 * @param string $view Optional. View id.
    21362138 */
    21372139function bbp_view_url( $view = false ) {
     
    21432145 * @since 2.0.0 bbPress (r2789)
    21442146 *
    2145  * @param string $view Optional. View id
    2146  *                     used view id
    2147  *
    2148  * @return string View url (or home url if the view was not found )
     2147 * @param string $view Optional. View id.
     2148 *
     2149 * @return string View url (or home url if the view was not found).
    21492150 */
    21502151function bbp_get_view_url( $view = false ) {
     
    21832184 * @since 2.0.0 bbPress (r2980)
    21842185 *
    2185  * @return bool True if match, false if not
     2186 * @return bool True if match, false if not.
    21862187 */
    21872188function bbp_is_query_name( $name = '' ) {
     
    21942195 * @since 2.0.0 bbPress (r2695)
    21952196 *
    2196  * @return string To return the query var value
     2197 * @return string To return the query var value.
    21972198 */
    21982199function bbp_get_query_name() {
     
    22052206 * @since 2.0.0 bbPress (r2692)
    22062207 *
    2207  * @param string $name What to set the query var to
     2208 * @param string $name What to set the query var to.
    22082209 */
    22092210function bbp_set_query_name( $name = '' ) {
     
    22452246 * @since 2.0.0 bbPress (r2589)
    22462247 *
    2247  * @param string $sep Separator. Defaults to '←'
    2248  * @param bool $current_page Include the current item
    2249  * @param bool $root Include the root page if one exists
    2250  *
    2251  * @return string Breadcrumbs
     2248 * @param string $sep Separator. Defaults to '←'.
     2249 * @param bool $current_page Include the current item.
     2250 * @param bool $root Include the root page if one exists.
     2251 *
     2252 * @return string Breadcrumbs.
    22522253 */
    22532254function bbp_get_breadcrumb( $args = array() ) {
     
    25472548 * @since 2.0.0 bbPress (r2780)
    25482549 *
    2549  * @return string HTML allowed tags entity encoded
     2550 * @return string HTML allowed tags entity encoded.
    25502551 */
    25512552function bbp_get_allowed_tags() {
     
    26362637 * @since 2.0.0 bbPress (r2827)
    26372638 *
    2638  * @param string $redirect_to Redirect to url
     2639 * @param string $redirect_to Redirect to url.
    26392640 */
    26402641function bbp_logout_link( $redirect_to = '' ) {
     
    26472648 * @since 2.0.0 bbPress (r2827)
    26482649 *
    2649  * @param string $redirect_to Redirect to url
    2650  *                            redirect to url
    2651  *
    2652  * @return string The logout link
     2650 * @param string $redirect_to Redirect to url.
     2651 *                            redirect to url.
     2652 *
     2653 * @return string The logout link.
    26532654 */
    26542655function bbp_get_logout_link( $redirect_to = '' ) {
     
    26722673 *                            various items within the page title.
    26732674 * @param string $seplocation Optional. Direction to display title, 'right'.
    2674  *                            separator and separator location
    2675  *
    2676  * @return string The title
     2675 *                            separator and separator location.
     2676 *
     2677 * @return string The title.
    26772678 */
    26782679function bbp_title( $title = '', $sep = '»', $seplocation = '' ) {
     
    28862887 * @since 2.7.0
    28872888 *
    2888  * @param string      $prepend text displayed before a post title
    2889  * @param int|WP_Post $post    current post object
     2889 * @param string      $prepend text displayed before a post title.
     2890 * @param int|WP_Post $post    current post object.
    28902891 *
    28912892 * @return string
  • trunk/src/includes/common/widgets.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Widgets
     4 * bbPress Widgets.
    55 *
    66 * Contains the forum list, topic list, reply list and login form widgets.
     
    1414
    1515/**
    16  * bbPress Login Widget
    17  *
    18  * Adds a widget which displays the login form
     16 * bbPress Login Widget.
     17 *
     18 * Adds a widget which displays the login form.
    1919 *
    2020 * @since 2.0.0 bbPress (r2827)
     
    2323
    2424    /**
    25      * bbPress Login Widget
    26      *
    27      * Registers the login widget
     25     * bbPress Login Widget.
     26     *
     27     * Registers the login widget.
    2828     *
    2929     * @since 2.0.0 bbPress (r2827)
     
    4343
    4444    /**
    45      * Register the widget
     45     * Register the widget.
    4646     *
    4747     * @since 2.0.0 bbPress (r3389)
     
    5252
    5353    /**
    54      * Displays the output, the login form
     54     * Displays the output, the login form.
    5555     *
    5656     * @since 2.0.0 bbPress (r2827)
    5757     *
    58      * @param array $args Arguments
    59      * @param array $instance Instance
     58     * @param array $args Arguments.
     59     * @param array $instance Instance.
    6060     */
    6161    public function widget( $args = array(), $instance = array() ) {
     
    147147
    148148    /**
    149      * Update the login widget options
     149     * Update the login widget options.
    150150     *
    151151     * @since 2.0.0 bbPress (r2827)
    152152     *
    153      * @param array $new_instance The new instance options
    154      * @param array $old_instance The old instance options
     153     * @param array $new_instance The new instance options.
     154     * @param array $old_instance The old instance options.
    155155     */
    156156    public function update( $new_instance, $old_instance ) {
     
    164164
    165165    /**
    166      * Output the login widget options form
     166     * Output the login widget options form.
    167167     *
    168168     * @since 2.0.0 bbPress (r2827)
    169169     *
    170      * @param $instance Instance
     170     * @param $instance Instance.
    171171     */
    172172    public function form( $instance = array() ) {
     
    198198     * @since 2.3.0 bbPress (r4802)
    199199     *
    200      * @param $instance Instance
     200     * @param $instance Instance.
    201201     */
    202202    public function parse_settings( $instance = array() ) {
     
    214214
    215215/**
    216  * bbPress Views Widget
    217  *
    218  * Adds a widget which displays the view list
     216 * bbPress Views Widget.
     217 *
     218 * Adds a widget which displays the view list.
    219219 *
    220220 * @since 2.0.0 bbPress (r3020)
     
    223223
    224224    /**
    225      * bbPress View Widget
    226      *
    227      * Registers the view widget
     225     * bbPress View Widget.
     226     *
     227     * Registers the view widget.
    228228     *
    229229     * @since 2.0.0 bbPress (r3020)
     
    243243
    244244    /**
    245      * Register the widget
     245     * Register the widget.
    246246     *
    247247     * @since 2.0.0 bbPress (r3389)
     
    252252
    253253    /**
    254      * Displays the output, the view list
     254     * Displays the output, the view list.
    255255     *
    256256     * @since 2.0.0 bbPress (r3020)
    257257     *
    258      * @param array $args Arguments
    259      * @param array $instance Instance
     258     * @param array $args Arguments.
     259     * @param array $instance Instance.
    260260     */
    261261    public function widget( $args = array(), $instance = array() ) {
     
    301301
    302302    /**
    303      * Update the view widget options
     303     * Update the view widget options.
    304304     *
    305305     * @since 2.0.0 bbPress (r3020)
    306306     *
    307      * @param array $new_instance The new instance options
    308      * @param array $old_instance The old instance options
     307     * @param array $new_instance The new instance options.
     308     * @param array $old_instance The old instance options.
    309309     */
    310310    public function update( $new_instance = array(), $old_instance = array() ) {
     
    316316
    317317    /**
    318      * Output the view widget options form
     318     * Output the view widget options form.
    319319     *
    320320     * @since 2.0.0 bbPress (r3020)
    321321     *
    322      * @param $instance Instance
     322     * @param $instance Instance.
    323323     */
    324324    public function form( $instance = array() ) {
     
    341341     * @since 2.3.0 bbPress (r4802)
    342342     *
    343      * @param $instance Instance
     343     * @param $instance Instance.
    344344     */
    345345    public function parse_settings( $instance = array() ) {
     
    355355
    356356/**
    357  * bbPress Search Widget
    358  *
    359  * Adds a widget which displays the forum search form
     357 * bbPress Search Widget.
     358 *
     359 * Adds a widget which displays the forum search form.
    360360 *
    361361 * @since 2.3.0 bbPress (r4579)
     
    364364
    365365    /**
    366      * bbPress Search Widget
    367      *
    368      * Registers the search widget
     366     * bbPress Search Widget.
     367     *
     368     * Registers the search widget.
    369369     *
    370370     * @since 2.3.0 bbPress (r4579)
     
    384384
    385385    /**
    386      * Register the widget
     386     * Register the widget.
    387387     *
    388388     * @since 2.3.0 bbPress (r4579)
     
    393393
    394394    /**
    395      * Displays the output, the search form
     395     * Displays the output, the search form.
    396396     *
    397397     * @since 2.3.0 bbPress (r4579)
     
    425425
    426426    /**
    427      * Update the widget options
     427     * Update the widget options.
    428428     *
    429429     * @since 2.3.0 bbPress (r4579)
    430430     *
    431      * @param array $new_instance The new instance options
    432      * @param array $old_instance The old instance options
     431     * @param array $new_instance The new instance options.
     432     * @param array $old_instance The old instance options.
    433433     */
    434434    public function update( $new_instance, $old_instance ) {
     
    440440
    441441    /**
    442      * Output the search widget options form
     442     * Output the search widget options form.
    443443     *
    444444     * @since 2.3.0 bbPress (r4579)
    445445     *
    446      * @param $instance Instance
     446     * @param $instance Instance.
    447447     */
    448448    public function form( $instance ) {
     
    465465     * @since 2.3.0 bbPress (r4802)
    466466     *
    467      * @param $instance Instance
     467     * @param $instance Instance.
    468468     */
    469469    public function parse_settings( $instance = array() ) {
     
    479479
    480480/**
    481  * bbPress Forum Widget
    482  *
    483  * Adds a widget which displays the forum list
     481 * bbPress Forum Widget.
     482 *
     483 * Adds a widget which displays the forum list.
    484484 *
    485485 * @since 2.0.0 bbPress (r2653)
     
    488488
    489489    /**
    490      * bbPress Forum Widget
    491      *
    492      * Registers the forum widget
     490     * bbPress Forum Widget.
     491     *
     492     * Registers the forum widget.
    493493     *
    494494     * @since 2.0.0 bbPress (r2653)
     
    508508
    509509    /**
    510      * Register the widget
     510     * Register the widget.
    511511     *
    512512     * @since 2.0.0 bbPress (r3389)
     
    517517
    518518    /**
    519      * Displays the output, the forum list
     519     * Displays the output, the forum list.
    520520     *
    521521     * @since 2.0.0 bbPress (r2653)
    522522     *
    523      * @param array $args Arguments
    524      * @param array $instance Instance
     523     * @param array $args Arguments.
     524     * @param array $instance Instance.
    525525     */
    526526    public function widget( $args, $instance ) {
     
    592592
    593593    /**
    594      * Update the forum widget options
     594     * Update the forum widget options.
    595595     *
    596596     * @since 2.0.0 bbPress (r2653)
    597597     *
    598      * @param array $new_instance The new instance options
    599      * @param array $old_instance The old instance options
     598     * @param array $new_instance The new instance options.
     599     * @param array $old_instance The old instance options.
    600600     */
    601601    public function update( $new_instance, $old_instance ) {
     
    613613
    614614    /**
    615      * Output the forum widget options form
     615     * Output the forum widget options form.
    616616     *
    617617     * @since 2.0.0 bbPress (r2653)
    618618     *
    619      * @param $instance Instance
     619     * @param $instance Instance.
    620620     */
    621621    public function form( $instance ) {
     
    648648     * @since 2.3.0 bbPress (r4802)
    649649     *
    650      * @param $instance Instance
     650     * @param $instance Instance.
    651651     */
    652652    public function parse_settings( $instance = array() ) {
     
    663663
    664664/**
    665  * bbPress Topic Widget
    666  *
    667  * Adds a widget which displays the topic list
     665 * bbPress Topic Widget.
     666 *
     667 * Adds a widget which displays the topic list.
    668668 *
    669669 * @since 2.0.0 bbPress (r2653)
     
    672672
    673673    /**
    674      * bbPress Topic Widget
    675      *
    676      * Registers the topic widget
     674     * bbPress Topic Widget.
     675     *
     676     * Registers the topic widget.
    677677     *
    678678     * @since 2.0.0 bbPress (r2653)
     
    692692
    693693    /**
    694      * Register the widget
     694     * Register the widget.
    695695     *
    696696     * @since 2.0.0 bbPress (r3389)
     
    701701
    702702    /**
    703      * Displays the output, the topic list
     703     * Displays the output, the topic list.
    704704     *
    705705     * @since 2.0.0 bbPress (r2653)
     
    876876
    877877    /**
    878      * Update the topic widget options
     878     * Update the topic widget options.
    879879     *
    880880     * @since 2.0.0 bbPress (r2653)
    881881     *
    882      * @param array $new_instance The new instance options
    883      * @param array $old_instance The old instance options
     882     * @param array $new_instance The new instance options.
     883     * @param array $old_instance The old instance options.
    884884     */
    885885    public function update( $new_instance = array(), $old_instance = array() ) {
     
    909909
    910910    /**
    911      * Output the topic widget options form
     911     * Output the topic widget options form.
    912912     *
    913913     * @since 2.0.0 bbPress (r2653)
    914914     *
    915      * @param $instance Instance
     915     * @param $instance Instance.
    916916     */
    917917    public function form( $instance = array() ) {
     
    953953     * @since 2.3.0 bbPress (r4802)
    954954     *
    955      * @param $instance Instance
     955     * @param $instance Instance.
    956956     */
    957957    public function parse_settings( $instance = array() ) {
     
    972972
    973973/**
    974  * bbPress Statistics Widget
    975  *
    976  * Adds a widget which displays the forum statistics
     974 * bbPress Statistics Widget.
     975 *
     976 * Adds a widget which displays the forum statistics.
    977977 *
    978978 * @since 2.3.0 bbPress (r4509)
     
    981981
    982982    /**
    983      * bbPress Statistics Widget
    984      *
    985      * Registers the statistics widget
     983     * bbPress Statistics Widget.
     984     *
     985     * Registers the statistics widget.
    986986     *
    987987     * @since 2.3.0 bbPress (r4509)
     
    10011001
    10021002    /**
    1003      * Register the widget
     1003     * Register the widget.
    10041004     *
    10051005     * @since 2.3.0 bbPress (r4509)
     
    10101010
    10111011    /**
    1012      * Displays the output, the statistics
     1012     * Displays the output, the statistics.
    10131013     *
    10141014     * @since 2.3.0 bbPress (r4509)
    10151015     *
    1016      * @param array $args     Arguments
    1017      * @param array $instance Instance
     1016     * @param array $args     Arguments.
     1017     * @param array $instance Instance.
    10181018     */
    10191019    public function widget( $args = array(), $instance = array() ) {
     
    10401040
    10411041    /**
    1042      * Update the statistics widget options
     1042     * Update the statistics widget options.
    10431043     *
    10441044     * @since 2.3.0 bbPress (r4509)
    10451045     *
    1046      * @param array $new_instance The new instance options
    1047      * @param array $old_instance The old instance options
     1046     * @param array $new_instance The new instance options.
     1047     * @param array $old_instance The old instance options.
    10481048     *
    10491049     * @return array
     
    10571057
    10581058    /**
    1059      * Output the statistics widget options form
     1059     * Output the statistics widget options form.
    10601060     *
    10611061     * @since 2.3.0 bbPress (r4509)
     
    10841084     * @since 2.3.0 bbPress (r4802)
    10851085     *
    1086      * @param $instance Instance
     1086     * @param $instance Instance.
    10871087     */
    10881088    public function parse_settings( $instance = array() ) {
     
    10981098
    10991099/**
    1100  * bbPress Replies Widget
    1101  *
    1102  * Adds a widget which displays the replies list
     1100 * bbPress Replies Widget.
     1101 *
     1102 * Adds a widget which displays the replies list.
    11031103 *
    11041104 * @since 2.0.0 bbPress (r2653)
     
    11071107
    11081108    /**
    1109      * bbPress Replies Widget
    1110      *
    1111      * Registers the replies widget
     1109     * bbPress Replies Widget.
     1110     *
     1111     * Registers the replies widget.
    11121112     *
    11131113     * @since 2.0.0 bbPress (r2653)
     
    11271127
    11281128    /**
    1129      * Register the widget
     1129     * Register the widget.
    11301130     *
    11311131     * @since 2.0.0 bbPress (r3389)
     
    11361136
    11371137    /**
    1138      * Displays the output, the replies list
     1138     * Displays the output, the replies list.
    11391139     *
    11401140     * @since 2.0.0 bbPress (r2653)
     
    12541254
    12551255    /**
    1256      * Update the reply widget options
     1256     * Update the reply widget options.
    12571257     *
    12581258     * @since 2.0.0 bbPress (r2653)
    12591259     *
    1260      * @param array $new_instance The new instance options
    1261      * @param array $old_instance The old instance options
     1260     * @param array $new_instance The new instance options.
     1261     * @param array $old_instance The old instance options.
    12621262     */
    12631263    public function update( $new_instance = array(), $old_instance = array() ) {
     
    12801280
    12811281    /**
    1282      * Output the reply widget options form
     1282     * Output the reply widget options form.
    12831283     *
    12841284     * @since 2.0.0 bbPress (r2653)
    12851285     *
    1286      * @param $instance Instance
     1286     * @param $instance Instance.
    12871287     */
    12881288    public function form( $instance = array() ) {
     
    13041304     * @since 2.3.0 bbPress (r4802)
    13051305     *
    1306      * @param $instance Instance
     1306     * @param $instance Instance.
    13071307     */
    13081308    public function parse_settings( $instance = array() ) {
  • trunk/src/includes/core/abstraction.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Abstractions
     4 * bbPress Abstractions.
    55 *
    66 * This file contains functions for abstracting WordPress core functionality
     
    1818
    1919/**
    20  * Setup Admin
     20 * Setup Admin.
    2121 *
    2222 * This exists outside of "/includes/admin/" because the converter may need to
     
    4646
    4747/**
    48  * Setup Converter
     48 * Setup Converter.
    4949 *
    5050 * This exists outside of "/includes/admin/" because the converter may need to
     
    7979
    8080/**
    81  * Lookup and return a global variable
     81 * Lookup and return a global variable.
    8282 *
    8383 * @since 2.5.8 bbPress (r5814)
    8484 *
    85  * @param  string  $name     Name of global variable
    86  * @param  string  $type     Type of variable to check with `is_a()`
    87  * @param  mixed   $default  Default value to return if no global found
    88  *
    89  * @return mixed   Verified object if valid, Default or null if invalid
     85 * @param  string  $name     Name of global variable.
     86 * @param  string  $type     Type of variable to check with `is_a()`.
     87 * @param  mixed   $default  Default value to return if no global found.
     88 *
     89 * @return mixed   Verified object if valid, Default or null if invalid.
    9090 */
    9191function bbp_get_global_object( $name = '', $type = '', $default = null ) {
     
    113113
    114114/**
    115  * Get the `$wp_query` global without needing to declare it everywhere
     115 * Get the `$wp_query` global without needing to declare it everywhere.
    116116 *
    117117 * @since 2.6.0 bbPress (r6582)
     
    124124
    125125/**
    126  * Get the `$wp_roles` global without needing to declare it everywhere
     126 * Get the `$wp_roles` global without needing to declare it everywhere.
    127127 *
    128128 * @since 2.2.0 bbPress (r4293)
     
    174174
    175175/**
    176  * Get the root URL
     176 * Get the root URL.
    177177 *
    178178 * @since 2.5.8 bbPress (r5814)
     
    196196
    197197/**
    198  * Get the slug used for paginated requests
     198 * Get the slug used for paginated requests.
    199199 *
    200200 * @since 2.4.0 bbPress (r4926)
     
    222222 * @since 2.5.8 bbPress (r5814)
    223223 *
    224  * @global object $wp_rewrite The WP_Rewrite object
     224 * @global object $wp_rewrite The WP_Rewrite object.
    225225 *
    226226 * @return bool
     
    251251 * @since 2.6.0 bbPress (r6678)
    252252 *
    253  * @param string $pagination_links The HTML links used for pagination
     253 * @param string $pagination_links The HTML links used for pagination.
    254254 *
    255255 * @return string
     
    320320
    321321/**
    322  * Parse the WordPress core version number
     322 * Parse the WordPress core version number.
    323323 *
    324324 * @since 2.6.0 bbPress (r6051)
     
    341341 * @since 2.6.0 bbPress (r6242)
    342342 *
    343  * @return bool True if more than 10000 users, false not
     343 * @return bool True if more than 10000 users, false not.
    344344 */
    345345function bbp_is_large_install() {
     
    355355
    356356/**
    357  * Get the total number of users on the forums
     357 * Get the total number of users on the forums.
    358358 *
    359359 * @since 2.0.0 bbPress (r2769)
    360360 *
    361  * @return int Total number of users
     361 * @return int Total number of users.
    362362 */
    363363function bbp_get_total_users() {
     
    408408 * @since 2.6.0
    409409 *
    410  * @staticvar mixed $rand Null by default, random string on first call
     410 * @staticvar mixed $rand Null by default, random string on first call.
    411411 *
    412412 * @return string
     
    437437
    438438/**
    439  * Whether a value has been intercepted
     439 * Whether a value has been intercepted.
    440440 *
    441441 * @since 2.6.0
     
    452452 * @since 2.6.0
    453453 *
    454  * @param string $action Typically the name of the caller function
    455  * @param array  $args   Typically the results of caller function func_get_args()
     454 * @param string $action Typically the name of the caller function.
     455 * @param array  $args   Typically the results of caller function func_get_args().
    456456 *
    457457 * @return mixed         Intercept results. Default bbp_default_intercept().
  • trunk/src/includes/core/actions.php

    r7376 r7380  
    22
    33/**
    4  * bbPress Actions
     4 * bbPress Actions.
    55 *
    66 * This file contains the actions that are used through-out bbPress. They are
     
    2323
    2424/**
    25  * Attach bbPress to WordPress
     25 * Attach bbPress to WordPress.
    2626 *
    2727 * bbPress uses its own internal actions to help aid in third-party plugin
     
    5757
    5858/**
    59  * bbp_loaded - Attached to 'plugins_loaded' above
     59 * bbp_loaded - Attached to 'plugins_loaded' above.
    6060 *
    6161 * Attach various loader actions to the bbp_loaded action.
     
    7272
    7373/**
    74  * bbp_init - Attached to 'init' above
     74 * bbp_init - Attached to 'init' above.
    7575 *
    7676 * Attach various initialization actions to the init action.
     
    8787
    8888/**
    89  * bbp_setup_theme - Attached to 'setup_theme' above
     89 * bbp_setup_theme - Attached to 'setup_theme' above.
    9090 *
    9191 * Attach various theme related actions to the setup_theme action.
     
    9696
    9797/**
    98  * bbp_roles_init - Attached to 'wp_roles_init' above
     98 * bbp_roles_init - Attached to 'wp_roles_init' above.
    9999 *
    100100 * Attach various role related actions to the wp_roles_init action.
     
    113113
    114114/**
    115  * bbp_register - Attached to 'init' above on 0 priority
     115 * bbp_register - Attached to 'init' above on 0 priority.
    116116 *
    117117 * Attach various initialization actions early to the init action.
     
    135135
    136136/**
    137  * bbp_ready - attached to end 'bbp_init' above
     137 * bbp_ready - attached to end 'bbp_init' above.
    138138 *
    139139 * Attach actions to the ready action after bbPress has fully initialized.
  • trunk/src/includes/core/cache.php

    r6585 r7380  
    22
    33/**
    4  * bbPress Cache Helpers
     4 * bbPress Cache Helpers.
    55 *
    66 * Helper functions used to communicate with WordPress's various caches. Many
     
    3434
    3535    /**
    36      * @var int Post ID being updated
     36     * @var int Post ID being updated.
    3737     */
    3838    private $updating_post = 0;
    3939
    4040    /**
    41      * @var bool The original value of $_wp_suspend_cache_invalidation global
     41     * @var bool The original value of $_wp_suspend_cache_invalidation global.
    4242     */
    4343    private $original_cache_invalidation = false;
     
    6363     * @since 2.1.0 bbPress (r4011)
    6464     *
    65      * @param int $post_id The post ID being updated
    66      * @return If invalid post data
     65     * @param int $post_id The post ID being updated.
    6766     */
    6867    public function pre_post_update( $post_id = 0 ) {
     
    8786     * @since 2.1.0 bbPress (r4011)
    8887     *
    89      * @param int $post_id The post ID of the cache being invalidated
    90      * @return If invalid post data
     88     * @param int $post_id The post ID of the cache being invalidated.
    9189     */
    9290    public function skip_related_posts( $post_id = 0 ) {
  • trunk/src/includes/core/capabilities.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Capabilites
     4 * bbPress Capabilities.
    55 *
    66 * The functions in this file are used primarily as convenient wrappers for
     
    2222 * @since 2.0.0 bbPress (r2994)
    2323 *
    24  * @todo Map all of these and deprecate
    25  *
    26  * @param string $role Optional. Defaults to The role to load caps for
    27  *
    28  * @return array Capabilities for $role
     24 * @todo Map all of these and deprecate.
     25 *
     26 * @param string $role Optional. Defaults to The role to load caps for.
     27 *
     28 * @return array Capabilities for $role.
    2929 */
    3030function bbp_get_caps_for_role( $role = '' ) {
     
    246246
    247247/**
    248  * Get the available roles, minus the dynamic roles that come with bbPress
     248 * Get the available roles, minus the dynamic roles that come with bbPress.
    249249 *
    250250 * @since 2.4.0 bbPress (r5064)
     
    280280 * @since 2.2.0 bbPress (r4290)
    281281 *
    282  * @param WP_Roles $wp_roles The array of WP_Role objects that was initialized
    283  *
    284  * @return WP_Roles The main $wp_roles global
     282 * @param WP_Roles $wp_roles The array of WP_Role objects that was initialized.
     283 *
     284 * @return WP_Roles The main $wp_roles global.
    285285 */
    286286function bbp_add_forums_roles( $wp_roles = null ) {
     
    311311
    312312/**
    313  * Helper function to add filter to option_wp_user_roles
     313 * Helper function to add filter to option_wp_user_roles.
    314314 *
    315315 * @since 2.2.0 bbPress (r4363)
     
    343343 * @deprecated 2.6.0 bbPress (r6105)
    344344 *
    345  * @internal Used by bbPress to reinitialize dynamic roles on blog switch
     345 * @internal Used by bbPress to reinitialize dynamic roles on blog switch.
    346346 *
    347347 * @param array $roles
    348  * @return array Combined array of database roles and dynamic bbPress roles
     348 * @return array Combined array of database roles and dynamic bbPress roles.
    349349 */
    350350function _bbp_reinit_dynamic_roles( $roles = array() ) {
     
    389389
    390390/**
    391  * Gets a translated role name from a role ID
     391 * Gets a translated role name from a role ID.
    392392 *
    393393 * @since 2.3.0 bbPress (r4792)
     
    395395 *
    396396 * @param string $role_id
    397  * @return string Translated role name
     397 * @return string Translated role name.
    398398 */
    399399function bbp_get_dynamic_role_name( $role_id = '' ) {
     
    408408
    409409/**
    410  * Removes the bbPress roles from the editable roles array
     410 * Removes the bbPress roles from the editable roles array.
    411411 *
    412412 * This used to use array_diff_assoc() but it randomly broke before 2.2 release.
     
    415415 * @since 2.2.0 bbPress (r4303)
    416416 *
    417  * @param array $all_roles All registered roles
     417 * @param array $all_roles All registered roles.
    418418 * @return array
    419419 */
     
    437437
    438438/**
    439  * The keymaster role for bbPress users
     439 * The keymaster role for bbPress users.
    440440 *
    441441 * @since 2.2.0 bbPress (r4284)
     
    450450
    451451/**
    452  * The moderator role for bbPress users
     452 * The moderator role for bbPress users.
    453453 *
    454454 * @since 2.0.0 bbPress (r3410)
     
    463463
    464464/**
    465  * The participant role for registered user that can participate in forums
     465 * The participant role for registered user that can participate in forums.
    466466 *
    467467 * @since 2.0.0 bbPress (r3410)
     
    476476
    477477/**
    478  * The spectator role is for registered users without any capabilities
     478 * The spectator role is for registered users without any capabilities.
    479479 *
    480480 * @since 2.1.0 bbPress (r3860)
     
    489489
    490490/**
    491  * The blocked role is for registered users that cannot spectate or participate
     491 * The blocked role is for registered users that cannot spectate or participate.
    492492 *
    493493 * @since 2.2.0 bbPress (r4284)
  • trunk/src/includes/core/extend.php

    r6284 r7380  
    22
    33/**
    4  * bbPress Extentions
     4 * bbPress Extensions.
    55 *
    66 * There's a world of really cool plugins out there, and bbPress comes with
     
    1515
    1616/**
    17  * Loads Akismet inside the bbPress global class
     17 * Loads Akismet inside the bbPress global class.
    1818 *
    1919 * @since 2.0.0 bbPress (r3277)
    2020 *
    21  * @return If bbPress is not active
     21 * @return If bbPress is not active.
    2222 */
    2323function bbp_setup_akismet() {
     
    4242/**
    4343 * Requires and creates the BuddyPress extension, and adds component creation
    44  * action to bp_init hook. @see bbp_setup_buddypress_component()
     44 * action to bp_init hook. @see bbp_setup_buddypress_component().
    4545 *
    4646 * @since 2.0.0 bbPress (r3395)
    4747 *
    48  * @return If BuddyPress is not active
     48 * @return If BuddyPress is not active.
    4949 */
    5050function bbp_setup_buddypress() {
  • trunk/src/includes/core/filters.php

    r7378 r7380  
    377377
    378378/**
    379  * Deprecated locale filter
     379 * Deprecated locale filter.
    380380 *
    381381 * @since 2.2.0 bbPress (r4213)
    382382 *
    383383 * @param string $locale
    384  * @return string  $domain
     384 * @return string $domain
    385385 */
    386386function _bbp_filter_locale( $locale = '', $domain = '' ) {
     
    396396
    397397/**
    398  * Deprecated forums query filter
     398 * Deprecated forums query filter.
    399399 *
    400400 * @since 2.1.0 bbPress (r3961)
     
    411411
    412412/**
    413  * Deprecated topics query filter
     413 * Deprecated topics query filter.
    414414 *
    415415 * @since 2.1.0 bbPress (r3961)
     
    426426
    427427/**
    428  * Deprecated replies query filter
     428 * Deprecated replies query filter.
    429429 *
    430430 * @since 2.1.0 bbPress (r3961)
  • trunk/src/includes/core/functions.php

    r7190 r7380  
    22
    33/**
    4  * bbPress Core Functions
     4 * bbPress Core Functions.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Output the bbPress version
     16 * Output the bbPress version.
    1717 *
    1818 * @since 2.0.0 bbPress (r3468)
     
    2121    echo bbp_get_version();
    2222}
    23     /**
    24      * Return the bbPress version
    25      *
    26      * @since 2.0.0 bbPress (r3468)
    27      *
    28      * @retrun string The bbPress version
    29      */
    30     function bbp_get_version() {
    31         return bbpress()->version;
    32     }
    33 
    34 /**
    35  * Output the bbPress asset version
     23
     24/**
     25 * Return the bbPress version.
     26 *
     27 * @since 2.0.0 bbPress (r3468)
     28 *
     29 * @return string The bbPress version.
     30 */
     31function bbp_get_version() {
     32    return bbpress()->version;
     33}
     34
     35/**
     36 * Output the bbPress asset version.
    3637 *
    3738 * @since 2.6.7 bbPress (r7188)
     
    4041    echo bbp_get_asset_version();
    4142}
    42     /**
    43      * Return the bbPress asset version
    44      *
    45      * @since 2.6.7 bbPress (r7188)
    46      *
    47      * @retrun string The bbPress asset version
    48      */
    49     function bbp_get_asset_version() {
    50         return bbp_doing_script_debug()
    51             ? (string) time()
    52             : bbp_get_version();
    53     }
    54 
    55 /**
    56  * Output the bbPress database version
     43
     44/**
     45 * Return the bbPress asset version.
     46 *
     47 * @since 2.6.7 bbPress (r7188)
     48 *
     49 * @return string The bbPress asset version.
     50 */
     51function bbp_get_asset_version() {
     52    return bbp_doing_script_debug()
     53        ? (string) time()
     54        : bbp_get_version();
     55}
     56
     57/**
     58 * Output the bbPress database version.
    5759 *
    5860 * @since 2.0.0 bbPress (r3468)
     
    6163    echo bbp_get_db_version();
    6264}
    63     /**
    64      * Return the bbPress database version
    65      *
    66      * @since 2.0.0 bbPress (r3468)
    67      *
    68      * @retrun string The bbPress version
    69      */
    70     function bbp_get_db_version() {
    71         return bbpress()->db_version;
    72     }
    73 
    74 /**
    75  * Output the bbPress database version directly from the database
     65
     66/**
     67 * Return the bbPress database version.
     68 *
     69 * @since 2.0.0 bbPress (r3468)
     70 *
     71 * @return string The bbPress version.
     72 */
     73function bbp_get_db_version() {
     74    return bbpress()->db_version;
     75}
     76
     77/**
     78 * Output the bbPress database version directly from the database.
    7679 *
    7780 * @since 2.0.0 bbPress (r3468)
     
    8083    echo bbp_get_db_version_raw();
    8184}
    82     /**
    83      * Return the bbPress database version directly from the database
    84      *
    85      * @since 2.0.0 bbPress (r3468)
    86      *
    87      * @retrun string The current bbPress version
    88      */
    89     function bbp_get_db_version_raw() {
    90         return get_option( '_bbp_db_version', '' );
    91     }
     85
     86/**
     87 * Return the bbPress database version directly from the database.
     88 *
     89 * @since 2.0.0 bbPress (r3468)
     90 *
     91 * @return string The current bbPress version.
     92 */
     93function bbp_get_db_version_raw() {
     94    return get_option( '_bbp_db_version', '' );
     95}
    9296
    9397/** Post Meta *****************************************************************/
    9498
    9599/**
    96  * Update the forum meta ID of a post
     100 * Update the forum meta ID of a post.
    97101 *
    98102 * @since 2.0.0 bbPress (r3181)
    99103 *
    100  * @param int $post_id  The post to update
    101  * @param int $forum_id The forum
     104 * @param int $post_id  The post to update.
     105 * @param int $forum_id The forum id.
    102106 */
    103107function bbp_update_forum_id( $post_id = 0, $forum_id = 0 ) {
     
    113117
    114118/**
    115  * Update the topic meta ID of a post
     119 * Update the topic meta ID of a post.
    116120 *
    117121 * @since 2.0.0 bbPress (r3181)
    118122 *
    119  * @param int $post_id  The post to update
    120  * @param int $topic_id The topic
     123 * @param int $post_id  The post to update.
     124 * @param int $topic_id The topic id.
    121125 */
    122126function bbp_update_topic_id( $post_id = 0, $topic_id = 0 ) {
     
    132136
    133137/**
    134  * Update the reply meta ID of a post
     138 * Update the reply meta ID of a post.
    135139 *
    136140 * @since 2.0.0 bbPress (r3181)
    137141 *
    138  * @param int $post_id  The post to update
    139  * @param int $reply_id The reply
     142 * @param int $post_id  The post to update.
     143 * @param int $reply_id The reply id.
    140144 */
    141145function bbp_update_reply_id( $post_id = 0, $reply_id = 0 ) {
     
    151155
    152156/**
    153  * Update the reply-to meta ID of a post
     157 * Update the reply-to meta ID of a post.
    154158 *
    155159 * @since 2.6.0 bbPress (r5735)
    156160 *
    157  * @param int $post_id  The post to update
    158  * @param int $reply_id The reply ID
     161 * @param int $post_id  The post to update.
     162 * @param int $reply_id The reply id.
    159163 */
    160164function bbp_update_reply_to_id( $post_id = 0, $reply_id = 0 ) {
     
    172176
    173177/**
    174  * Get the registered views
    175  *
    176  * Does nothing much other than return the {@link $bbp->views} variable
     178 * Get the registered views.
     179 *
     180 * Does nothing much other than return the {@link $bbp->views} variable.
    177181 *
    178182 * @since 2.0.0 bbPress (r2789)
    179183 *
    180  * @return array Views
     184 * @return array Views.
    181185 */
    182186function bbp_get_views() {
     
    185189
    186190/**
    187  * Register a bbPress view
     191 * Register a bbPress view.
    188192 *
    189193 * @since 2.0.0 bbPress (r2789)
    190194 *
    191  * @param string $view View name
    192  * @param string $title View title
     195 * @param string $view View name.
     196 * @param string $title View title.
    193197 * @param mixed $query_args {@link bbp_has_topics()} arguments.
    194198 * @param bool $feed Have a feed for the view? Defaults to true.
    195  * @param string $capability Capability that the current user must have
    196  *
    197  * @return array The just registered (but processed) view
     199 * @param string $capability Capability that the current user must have.
     200 *
     201 * @return array The just registered (but processed) view.
    198202 */
    199203function bbp_register_view( $view, $title, $query_args = '', $feed = true, $capability = '' ) {
     
    229233
    230234/**
    231  * Deregister a bbPress view
     235 * Deregister a bbPress view.
    232236 *
    233237 * @since 2.0.0 bbPress (r2789)
    234238 *
    235  * @param string $view View name
    236  * @return bool False if the view doesn't exist, true on success
     239 * @param string $view View name.
     240 *
     241 * @return bool False if the view doesn't exist, true on success.
    237242 */
    238243function bbp_deregister_view( $view ) {
     
    250255
    251256/**
    252  * Run the query of a topic-view
     257 * Run the query of a topic-view.
    253258 *
    254259 * @since 2.0.0 bbPress (r2789)
    255260 *
    256  * @param string $view Optional. View id
     261 * @param string $view Optional. View id.
    257262 * @param mixed $new_args New arguments. See {@link bbp_has_topics()}
    258  * @return bool False if the view doesn't exist, otherwise if topics are there
     263 *
     264 * @return bool False if the view doesn't exist, otherwise if topics are there.
    259265 */
    260266function bbp_view_query( $view = '', $new_args = '' ) {
     
    277283
    278284/**
    279  * Return the query arguments of a topic-view
     285 * Return the query arguments of a topic-view.
    280286 *
    281287 * @since 2.0.0 bbPress (r2789)
    282288 *
    283  * @param string $view View name
    284  * @return array Query arguments
     289 * @param string $view View name.
     290 *
     291 * @return array Query arguments.
    285292 */
    286293function bbp_get_view_query_args( $view = '' ) {
     
    298305
    299306/**
    300  * Adds an error message to later be output in the theme
     307 * Adds an error message to later be output in the theme.
    301308 *
    302309 * @since 2.0.0 bbPress (r3381)
     
    304311 * @see WP_Error()
    305312 *
    306  * @param string $code Unique code for the error message
    307  * @param string $message Translated error message
    308  * @param string $data Any additional data passed with the error message
     313 * @param string $code Unique code for the error message.
     314 * @param string $message Translated error message.
     315 * @param string $data Any additional data passed with the error message.
    309316 */
    310317function bbp_add_error( $code = '', $message = '', $data = '' ) {
     
    313320
    314321/**
    315  * Check if error messages exist in queue
     322 * Check if error messages exist in queue.
    316323 *
    317324 * @since 2.0.0 bbPress (r3381)
     
    338345 * @deprecated 2.6.0 bbp_make_clickable()
    339346 *
    340  * @return string Pattern to match usernames with
     347 * @return string Pattern to match usernames with.
    341348 */
    342349function bbp_find_mentions_pattern() {
     
    352359 * @deprecated 2.6.0 bbp_make_clickable()
    353360 *
    354  * @param string $content The content
     361 * @param string $content The content.
     362 *
    355363 * @return bool|array $usernames Existing usernames. False if no matches.
    356364 */
     
    370378
    371379/**
    372  * Finds and links @-mentioned users in the content
     380 * Finds and links @-mentioned users in the content.
    373381 *
    374382 * @since 2.2.0 bbPress (r4323)
    375383 * @deprecated 2.6.0 bbp_make_clickable()
    376384 *
    377  * @return string $content Content filtered for mentions
     385 * @return string $content Content filtered for mentions.
    378386 */
    379387function bbp_mention_filter( $content = '' ) {
     
    411419
    412420/**
    413  * Return the public post status ID
     421 * Return the public post status ID.
    414422 *
    415423 * @since 2.0.0 bbPress (r3504)
     
    422430
    423431/**
    424  * Return the pending post status ID
     432 * Return the pending post status ID.
    425433 *
    426434 * @since 2.1.0 bbPress (r3581)
     
    433441
    434442/**
    435  * Return the private post status ID
     443 * Return the private post status ID.
    436444 *
    437445 * @since 2.0.0 bbPress (r3504)
     
    444452
    445453/**
    446  * Return the hidden post status ID
     454 * Return the hidden post status ID.
    447455 *
    448456 * @since 2.0.0 bbPress (r3504)
     
    455463
    456464/**
    457  * Return the closed post status ID
     465 * Return the closed post status ID.
    458466 *
    459467 * @since 2.0.0 bbPress (r3504)
     
    466474
    467475/**
    468  * Return the spam post status ID
     476 * Return the spam post status ID.
    469477 *
    470478 * @since 2.0.0 bbPress (r3504)
     
    477485
    478486/**
    479  * Return the trash post status ID
     487 * Return the trash post status ID.
    480488 *
    481489 * @since 2.0.0 bbPress (r3504)
     
    488496
    489497/**
    490  * Return the orphan post status ID
     498 * Return the orphan post status ID.
    491499 *
    492500 * @since 2.0.0 bbPress (r3504)
     
    501509
    502510/**
    503  * Return the unique ID for user profile rewrite rules
     511 * Return the unique ID for user profile rewrite rules.
    504512 *
    505513 * @since 2.1.0 bbPress (r3762)
     
    523531
    524532/**
    525  * Return the unique ID for all search rewrite rules
     533 * Return the unique ID for all search rewrite rules.
    526534 *
    527535 * @since 2.3.0 bbPress (r4579)
     
    534542
    535543/**
    536  * Return the unique ID for user topics rewrite rules
     544 * Return the unique ID for user topics rewrite rules.
    537545 *
    538546 * @since 2.2.0 bbPress (r4321)
     
    545553
    546554/**
    547  * Return the unique ID for user replies rewrite rules
     555 * Return the unique ID for user replies rewrite rules.
    548556 *
    549557 * @since 2.2.0 bbPress (r4321)
     
    556564
    557565/**
    558  * Return the unique ID for user favorites rewrite rules
     566 * Return the unique ID for user favorites rewrite rules.
    559567 *
    560568 * @since 2.2.0 bbPress (r4181)
     
    567575
    568576/**
    569  * Return the unique ID for user subscriptions rewrite rules
     577 * Return the unique ID for user subscriptions rewrite rules.
    570578 *
    571579 * @since 2.2.0 bbPress (r4181)
     
    578586
    579587/**
    580  * Return the unique ID for user engagement rewrite rules
     588 * Return the unique ID for user engagement rewrite rules.
    581589 *
    582590 * @since 2.6.0 bbPress (r6320)
     
    589597
    590598/**
    591  * Return the unique ID for topic view rewrite rules
     599 * Return the unique ID for topic view rewrite rules.
    592600 *
    593601 * @since 2.1.0 bbPress (r3762)
     
    602610
    603611/**
    604  * Get the id used for paginated requests
     612 * Get the id used for paginated requests.
    605613 *
    606614 * @since 2.4.0 bbPress (r4926)
     
    625633
    626634/**
    627  * Return true|false if this is a POST request
     635 * Return true|false if this is a POST request.
    628636 *
    629637 * @since 2.3.0 bbPress (r4790)
     
    636644
    637645/**
    638  * Return true|false if this is a GET request
     646 * Return true|false if this is a GET request.
    639647 *
    640648 * @since 2.3.0 bbPress (r4790)
     
    649657
    650658/**
    651  * Perform a safe, local redirect somewhere inside the current site
     659 * Perform a safe, local redirect somewhere inside the current site.
    652660 *
    653661 * On some setups, passing the value of wp_get_referer() may result in an empty
     
    681689
    682690/**
    683  * Return if debugging scripts or not
     691 * Return if debugging scripts or not.
    684692 *
    685693 * @since 2.6.7 (r7188)
     
    692700
    693701/**
    694  * Return if auto-saving or not
     702 * Return if auto-saving or not.
    695703 *
    696704 * @since 2.6.7 (r7188)
  • trunk/src/includes/core/options.php

    r6967 r7380  
    22
    33/**
    4  * bbPress Options
     4 * bbPress Options.
    55 *
    66 * @package bbPress
     
    1818 * @since 2.0.0 bbPress (r3421)
    1919 *
    20  * @return array Filtered option names and values
     20 * @return array Filtered option names and values.
    2121 */
    2222function bbp_get_default_options() {
     
    156156
    157157/**
    158  * Add default options
     158 * Add default options.
    159159 *
    160160 * Hooked to bbp_activate, it is only called once when bbPress is activated.
     
    175175
    176176/**
    177  * Delete default options
     177 * Delete default options.
    178178 *
    179179 * Hooked to bbp_uninstall, it is only called once when bbPress is uninstalled.
     
    219219 * @access private
    220220 *
    221  * @param bool   $value  Default value false
    222  * @param string $option Name of the option
    223  *
    224  * @return mixed false if not overloaded, mixed if set
     221 * @param bool   $value  Default value false.
     222 * @param string $option Name of the option.
     223 *
     224 * @return mixed false if not overloaded, mixed if set.
    225225 */
    226226function bbp_filter_pre_get_option( $value = false, $option = '' ) {
     
    243243 * @access private
    244244 *
    245  * @param bool $value Optional. Default value false
    246  * @return mixed false if not overloaded, mixed if set
     245 * @param bool $value Optional. Default value false.
     246 * @return mixed false if not overloaded, mixed if set.
    247247 */
    248248function bbp_filter_default_option( $default = false, $option = '', $passed_default = false ) {
     
    328328 * @since 2.0.0 bbPress (r2658)
    329329 *
    330  * @param bool $default Optional.Default value true
    331  * @return bool Is favorites enabled or not
     330 * @param bool $default Optional.Default value true.
     331 * @return bool Is favorites enabled or not.
    332332 */
    333333function bbp_is_favorites_active( $default = 1 ) {
     
    342342 * @since 2.0.0 bbPress (r2658)
    343343 *
    344  * @param bool $default Optional.Default value true
    345  * @return bool Is subscription enabled or not
     344 * @param bool $default Optional.Default value true.
     345 * @return bool Is subscription enabled or not.
    346346 */
    347347function bbp_is_subscriptions_active( $default = 1 ) {
     
    356356 * @since 2.6.0 bbPress (r6320)
    357357 *
    358  * @param bool $default Optional.Default value true
    359  * @return bool Is engagements enabled or not
     358 * @param bool $default Optional.Default value true.
     359 * @return bool Is engagements enabled or not.
    360360 */
    361361function bbp_is_engagements_active( $default = 1 ) {
     
    370370 * @since 2.6.0 bbPress (r6441)
    371371 *
    372  * @param bool $default Optional. Default value false
     372 * @param bool $default Optional. Default value false.
    373373 * @return bool Is content editing allowed?
    374374 */
     
    384384 * @since 2.6.0 bbPress (r6441)
    385385 *
    386  * @param bool $default Optional. Default value false
     386 * @param bool $default Optional. Default value false.
    387387 * @return bool Is content throttling allowed?
    388388 */
     
    394394
    395395/**
    396  * Are topic tags allowed
     396 * Are topic tags allowed.
    397397 *
    398398 * @since 2.2.0 bbPress (r4097)
    399399 *
    400  * @param bool $default Optional. Default value true
     400 * @param bool $default Optional. Default value true.
    401401 * @return bool Are tags allowed?
    402402 */
     
    408408
    409409/**
    410  * Are per-forum moderators allowed
     410 * Are per-forum moderators allowed.
    411411 *
    412412 * @since 2.6.0 bbPress (r5834)
     
    423423
    424424/**
    425  * Are moderators allowed to edit users
     425 * Are moderators allowed to edit users.
    426426 *
    427427 * @since 2.6.0 bbPress (r6562)
     
    438438
    439439/**
    440  * Is forum-wide searching allowed
     440 * Is forum-wide searching allowed.
    441441 *
    442442 * @since 2.4.0 bbPress (r4970)
    443443 *
    444  * @param bool $default Optional. Default value true
     444 * @param bool $default Optional. Default value true.
    445445 * @return bool Is forum-wide searching allowed?
    446446 */
     
    452452
    453453/**
    454  * Are threaded replies allowed
     454 * Are threaded replies allowed.
    455455 *
    456456 * @since 2.4.0 bbPress (r4964)
    457457 *
    458  * @param bool $default Optional. Default value false
     458 * @param bool $default Optional. Default value false.
    459459 * @return bool Are threaded replies allowed?
    460460 */
     
    466466
    467467/**
    468  * Maximum reply thread depth
     468 * Maximum reply thread depth.
    469469 *
    470470 * @since 2.4.0 bbPress (r4944)
    471471 *
    472  * @param int $default Thread replies depth
    473  * @return int Thread replies depth
     472 * @param int $default Thread replies depth.
     473 * @return int Thread replies depth.
    474474 */
    475475function bbp_thread_replies_depth( $default = 2 ) {
     
    480480
    481481/**
    482  * Are topic and reply revisions allowed
     482 * Are topic and reply revisions allowed.
    483483 *
    484484 * @since 2.0.0 bbPress (r3412)
    485485 *
    486  * @param bool $default Optional. Default value true
     486 * @param bool $default Optional. Default value true.
    487487 * @return bool Are revisions allowed?
    488488 */
     
    498498 * @since 2.0.0 bbPress (r2659)
    499499 *
    500  * @param bool $default Optional. Default value
     500 * @param bool $default Optional. Default value.
    501501 * @return bool Is anonymous posting allowed?
    502502 */
     
    512512 * @since 2.0.0 bbPress (r3378)
    513513 *
    514  * @param bool $default Optional. Default value false
     514 * @param bool $default Optional. Default value false.
    515515 * @return bool Is global access allowed?
    516516 */
     
    523523/**
    524524 * Get the default forums role (issued to users on their first visit to the
    525  * forums) by bbp_set_current_user_default_role() and repair tools
     525 * forums) by bbp_set_current_user_default_role() and repair tools.
    526526 *
    527527 * @since 2.2.0 bbPress (r4294)
    528528 *
    529  * @param string $default Optional. Default value empty
    530  * @return string The default forums user role
     529 * @param string $default Optional. Default value empty.
     530 * @return string The default forums user role.
    531531 */
    532532function bbp_get_default_role( $default = 'bbp_participant' ) {
     
    537537
    538538/**
    539  * Use the WordPress editor if available
     539 * Use the WordPress editor if available.
    540540 *
    541541 * @since 2.0.0 bbPress (r3386)
    542542 *
    543  * @param bool $default Optional. Default value true
     543 * @param bool $default Optional. Default value true.
    544544 * @return bool Use WP editor?
    545545 */
     
    551551
    552552/**
    553  * Use WordPress's oEmbed API
     553 * Use WordPress's oEmbed API.
    554554 *
    555555 * @since 2.1.0 bbPress (r3752)
    556556 *
    557  * @param bool $default Optional. Default value true
     557 * @param bool $default Optional. Default value true.
    558558 * @return bool Use oEmbed?
    559559 */
     
    565565
    566566/**
    567  * Get the current theme package ID
     567 * Get the current theme package ID.
    568568 *
    569569 * @since 2.1.0 bbPress (r3829)
    570570 *
    571  * @param string $default Optional. Default value 'default'
    572  * @return string ID of the theme-package
     571 * @param string $default Optional. Default value 'default'.
     572 * @return string ID of the theme-package.
    573573 */
    574574function bbp_get_theme_package_id( $default = 'default' ) {
     
    579579
    580580/**
    581  * Output the maximum length of a title
     581 * Output the maximum length of a title.
    582582 *
    583583 * @since 2.0.0 bbPress (r3246)
    584584 *
    585  * @param bool $default Optional. Default value 80
     585 * @param bool $default Optional. Default value 80.
    586586 */
    587587function bbp_title_max_length( $default = 80 ) {
    588588    echo bbp_get_title_max_length( $default );
    589589}
    590     /**
    591      * Return the maximum length of a title
    592      *
    593      * @since 2.0.0 bbPress (r3246)
    594      *
    595      * @param bool $default Optional. Default value 80
    596      * @return int Is anonymous posting allowed?
    597      */
    598     function bbp_get_title_max_length( $default = 80 ) {
    599 
    600         // Filter & return
    601         return (int) apply_filters( 'bbp_get_title_max_length', (int) get_option( '_bbp_title_max_length', $default ) );
    602     }
     590
     591/**
     592 * Return the maximum length of a title.
     593 *
     594 * @since 2.0.0 bbPress (r3246)
     595 *
     596 * @param bool $default Optional. Default value 80.
     597 * @return int Is anonymous posting allowed?
     598 */
     599function bbp_get_title_max_length( $default = 80 ) {
     600
     601    // Filter & return
     602    return (int) apply_filters( 'bbp_get_title_max_length', (int) get_option( '_bbp_title_max_length', $default ) );
     603}
    603604
    604605/**
     
    608609 * @since 2.6.0 bbPress (r6868)
    609610 *
    610  * @param bool $default Optional. Default value 5
     611 * @param bool $default Optional. Default value 5.
    611612 */
    612613function bbp_edit_lock( $default = 5 ) {
    613614    echo bbp_get_edit_lock( $default );
    614615}
    615     /**
    616      * Return the number of minutes a topic or reply can be edited after it's
    617      * published. Used by `bbp_past_edit_lock()`.
    618      *
    619      * @since 2.6.0 bbPress (r6868)
    620      *
    621      * @param bool $default Optional. Default value 5
    622      * @return int Is anonymous posting allowed?
    623      */
    624     function bbp_get_edit_lock( $default = 5 ) {
    625 
    626         // Filter & return
    627         return (int) apply_filters( 'bbp_get_edit_lock', (int) get_option( '_bbp_edit_lock', $default ) );
    628     }
    629 
    630 /**
    631  * Output the group forums root parent forum id
     616
     617/**
     618 * Return the number of minutes a topic or reply can be edited after it's
     619 * published. Used by `bbp_past_edit_lock()`.
     620 *
     621 * @since 2.6.0 bbPress (r6868)
     622 *
     623 * @param bool $default Optional. Default value 5.
     624 * @return int Is anonymous posting allowed?
     625 */
     626function bbp_get_edit_lock( $default = 5 ) {
     627
     628    // Filter & return
     629    return (int) apply_filters( 'bbp_get_edit_lock', (int) get_option( '_bbp_edit_lock', $default ) );
     630}
     631
     632/**
     633 * Output the group forums root parent forum id.
    632634 *
    633635 * @since 2.1.0 bbPress (r3575)
    634636 *
    635  * @param int $default Optional. Default value
     637 * @param int $default Optional. Default value.
    636638 */
    637639function bbp_group_forums_root_id( $default = 0 ) {
    638640    echo bbp_get_group_forums_root_id( $default );
    639641}
    640     /**
    641      * Return the group forums root parent forum id
    642      *
    643      * @since 2.1.0 bbPress (r3575)
    644      *
    645      * @param bool $default Optional. Default value 0
    646      * @return int The post ID for the root forum
    647      */
    648     function bbp_get_group_forums_root_id( $default = 0 ) {
    649 
    650         // Filter & return
    651         return (int) apply_filters( 'bbp_get_group_forums_root_id', (int) get_option( '_bbp_group_forums_root_id', $default ) );
    652     }
    653 
    654 /**
    655  * Checks if BuddyPress Group Forums are enabled
     642
     643/**
     644 * Return the group forums root parent forum id.
    656645 *
    657646 * @since 2.1.0 bbPress (r3575)
    658647 *
    659  * @param bool $default Optional. Default value true
    660  * @return bool Is group forums enabled or not
     648 * @param bool $default Optional. Default value 0.
     649 * @return int The post ID for the root forum.
     650 */
     651function bbp_get_group_forums_root_id( $default = 0 ) {
     652
     653    // Filter & return
     654    return (int) apply_filters( 'bbp_get_group_forums_root_id', (int) get_option( '_bbp_group_forums_root_id', $default ) );
     655}
     656
     657/**
     658 * Checks if BuddyPress Group Forums are enabled.
     659 *
     660 * @since 2.1.0 bbPress (r3575)
     661 *
     662 * @param bool $default Optional. Default value true.
     663 * @return bool Is group forums enabled or not.
    661664 */
    662665function bbp_is_group_forums_active( $default = 1 ) {
     
    667670
    668671/**
    669  * Checks if Akismet is enabled
     672 * Checks if Akismet is enabled.
    670673 *
    671674 * @since 2.1.0 bbPress (r3575)
    672675 *
    673  * @param bool $default Optional. Default value true
    674  * @return bool Is Akismet enabled or not
     676 * @param bool $default Optional. Default value true.
     677 * @return bool Is Akismet enabled or not.
    675678 */
    676679function bbp_is_akismet_active( $default = 1 ) {
     
    681684
    682685/**
    683  * Integrate settings into existing WordPress pages
     686 * Integrate settings into existing WordPress pages.
    684687 *
    685688 * There are 3 possible modes:
     
    690693 * @since 2.4.0 bbPress (r4932)
    691694 *
    692  * @param bool $default Optional. Default value false
    693  * @return string How to integrate settings
     695 * @param bool $default Optional. Default value false.
     696 * @return string How to integrate settings.
    694697 */
    695698function bbp_settings_integration( $default = 'basic' ) {
     
    715718
    716719/**
    717  * How to interact with engagements
     720 * How to interact with engagements.
    718721 *
    719722 * There are 3 possible strategies:
     
    724727 * @since 2.6.0 bbPress (r6875)
    725728 *
    726  * @param bool $default Optional. Default value false
    727  * @return string How to interact with engagements
     729 * @param bool $default Optional. Default value false.
     730 * @return string How to interact with engagements.
    728731 */
    729732function bbp_engagements_strategy( $default = 'meta' ) {
     
    747750
    748751/**
    749  * Return the root slug
     752 * Return the root slug.
    750753 *
    751754 * @since 2.1.0 bbPress (r3759)
    752755 *
    753  * @param string $default Optional. Default value 'forums'
     756 * @param string $default Optional. Default value 'forums'.
    754757 * @return string
    755758 */
     
    765768 * @since 2.1.0 bbPress (r3759)
    766769 *
    767  * @param bool $default Optional. Default value true
     770 * @param bool $default Optional. Default value true.
    768771 * @return bool
    769772 */
     
    779782 * @since 2.4.0 bbPress (r4932)
    780783 *
    781  * @param string $default Optional. Default value 'forums'
     784 * @param string $default Optional. Default value 'forums'.
    782785 * @return string
    783786 */
     
    789792
    790793/**
    791  * Maybe return the root slug, based on whether or not it's included in the url
     794 * Maybe return the root slug, based on whether or not it's included in the url.
    792795 *
    793796 * @since 2.1.0 bbPress (r3759)
    794797 *
    795  * @param string $default Optional. Default value 'forums'
     798 * @param string $default Optional. Default value 'forums'.
    796799 * @return string
    797800 */
     
    807810
    808811/**
    809  * Return the single forum slug
     812 * Return the single forum slug.
    810813 *
    811814 * @since 2.1.0 bbPress (r3759)
    812815 *
    813  * @param string $default Optional. Default value 'forum'
     816 * @param string $default Optional. Default value 'forum'.
    814817 * @return string
    815818 */
     
    821824
    822825/**
    823  * Return the topic archive slug
     826 * Return the topic archive slug.
    824827 *
    825828 * @since 2.1.0 bbPress (r3759)
    826829 *
    827  * @param string $default Optional. Default value 'topics'
     830 * @param string $default Optional. Default value 'topics'.
    828831 * @return string
    829832 */
     
    835838
    836839/**
    837  * Return the reply archive slug
     840 * Return the reply archive slug.
    838841 *
    839842 * @since 2.4.0 bbPress (r4925)
    840843 *
    841  * @param string $default Optional. Default value 'replies'
     844 * @param string $default Optional. Default value 'replies'.
    842845 * @return string
    843846 */
     
    849852
    850853/**
    851  * Return the single topic slug
     854 * Return the single topic slug.
    852855 *
    853856 * @since 2.1.0 bbPress (r3759)
    854857 *
    855  * @param string $default Optional. Default value 'topic'
     858 * @param string $default Optional. Default value 'topic'.
    856859 * @return string
    857860 */
     
    863866
    864867/**
    865  * Return the topic-tag taxonomy slug
     868 * Return the topic-tag taxonomy slug.
    866869 *
    867870 * @since 2.1.0 bbPress (r3759)
    868871 *
    869  * @param string $default Optional. Default value 'topic-tag'
     872 * @param string $default Optional. Default value 'topic-tag'.
    870873 * @return string
    871874 */
     
    877880
    878881/**
    879  * Return the single reply slug (used mostly for editing)
     882 * Return the single reply slug (used mostly for editing).
    880883 *
    881884 * @since 2.1.0 bbPress (r3759)
    882885 *
    883  * @param string $default Optional. Default value 'reply'
     886 * @param string $default Optional. Default value 'reply'.
    884887 * @return string
    885888 */
     
    891894
    892895/**
    893  * Return the single user slug
     896 * Return the single user slug.
    894897 *
    895898 * @since 2.1.0 bbPress (r3759)
    896899 *
    897  * @param string $default Optional. Default value 'users'
     900 * @param string $default Optional. Default value 'users'.
    898901 * @return string
    899902 */
     
    905908
    906909/**
    907  * Return the single user favorites slug
     910 * Return the single user favorites slug.
    908911 *
    909912 * @since 2.2.0 bbPress (r4187)
    910913 *
    911  * @param string $default Optional. Default value 'favorites'
     914 * @param string $default Optional. Default value 'favorites'.
    912915 * @return string
    913916 */
     
    919922
    920923/**
    921  * Return the single user subscriptions slug
     924 * Return the single user subscriptions slug.
    922925 *
    923926 * @since 2.2.0 bbPress (r4187)
    924927 *
    925  * @param string $default Optional. Default value 'subscriptions'
     928 * @param string $default Optional. Default value 'subscriptions'.
    926929 * @return string
    927930 */
     
    933936
    934937/**
    935  * Return the single user engagements slug
     938 * Return the single user engagements slug.
    936939 *
    937940 * @since 2.6.0 bbPress (r6320)
    938941 *
    939  * @param string $default Optional. Default value 'engagements'
     942 * @param string $default Optional. Default value 'engagements'.
    940943 * @return string
    941944 */
     
    947950
    948951/**
    949  * Return the topic view slug
     952 * Return the topic view slug.
    950953 *
    951954 * @since 2.1.0 bbPress (r3759)
    952955 *
    953  * @param string $default Optional. Default value 'view'
     956 * @param string $default Optional. Default value 'view'.
    954957 * @return string
    955958 */
     
    961964
    962965/**
    963  * Return the search slug
     966 * Return the search slug.
    964967 *
    965968 * @since 2.3.0 bbPress (r4579)
    966969 *
    967  * @param string $default Optional. Default value 'search'
     970 * @param string $default Optional. Default value 'search'.
    968971 * @return string
    969972 */
     
    975978
    976979/**
    977  * Return the edit slug
     980 * Return the edit slug.
    978981 *
    979982 * @since 2.6.2 bbPress (r6965)
    980983 *
    981  * @param string $default Optional. Default value 'edit'
     984 * @param string $default Optional. Default value 'edit'.
    982985 * @return string
    983986 */
     
    991994
    992995/**
    993  * Checks if there is a previous BuddyPress Forum configuration
     996 * Checks if there is a previous BuddyPress Forum configuration.
    994997 *
    995998 * @since 2.1.0 bbPress (r3790)
    996999 *
    997  * @param string $default Optional. Default empty string
    998  * @return string The location of the bb-config.php file, if any
     1000 * @param string $default Optional. Default empty string.
     1001 * @return string The location of the bb-config.php file, if any.
    9991002 */
    10001003function bbp_get_config_location( $default = '' ) {
  • trunk/src/includes/core/sub-actions.php

    r7348 r7380  
    22
    33/**
    4  * Plugin Dependency
     4 * Plugin Dependency.
    55 *
    66 * The purpose of the following hooks is to mimic the behavior of something
     
    2424
    2525/**
    26  * Runs on bbPress activation
     26 * Runs on bbPress activation.
    2727 *
    2828 * @since 2.0.0 bbPress (r2509)
     
    3333
    3434/**
    35  * Runs on bbPress deactivation
     35 * Runs on bbPress deactivation.
    3636 *
    3737 * @since 2.0.0 bbPress (r2509)
     
    4242
    4343/**
    44  * Runs when uninstalling bbPress
     44 * Runs when uninstalling bbPress.
    4545 *
    4646 * @since 2.0.0 bbPress (r2509)
     
    5353
    5454/**
    55  * Main action responsible for constants, globals, and includes
     55 * Main action responsible for constants, globals, and includes.
    5656 *
    5757 * @since 2.0.0 bbPress (r2599)
     
    6262
    6363/**
    64  * Setup constants
     64 * Setup constants.
    6565 *
    6666 * @since 2.0.0 bbPress (r2599)
     
    7171
    7272/**
    73  * Setup globals BEFORE includes
     73 * Setup globals BEFORE includes.
    7474 *
    7575 * @since 2.0.0 bbPress (r2599)
     
    8080
    8181/**
    82  * Include files
     82 * Include files.
    8383 *
    8484 * @since 2.0.0 bbPress (r2599)
     
    8989
    9090/**
    91  * Setup globals AFTER includes
     91 * Setup globals AFTER includes.
    9292 *
    9393 * @since 2.0.0 bbPress (r2599)
     
    9898
    9999/**
    100  * Register any objects before anything is initialized
     100 * Register any objects before anything is initialized.
    101101 *
    102102 * @since 2.2.0 bbPress (r4180)
     
    107107
    108108/**
    109  * Initialize any code after everything has been loaded
     109 * Initialize any code after everything has been loaded.
    110110 *
    111111 * @since 2.0.0 bbPress (r2599)
     
    116116
    117117/**
    118  * Initialize roles
     118 * Initialize roles.
    119119 *
    120120 * @since 2.6.0 bbPress (r6106)
    121121 *
    122  * @param WP_Roles $wp_roles The array of WP_Role objects that was initialized
     122 * @param WP_Roles $wp_roles The array of WP_Role objects that was initialized.
    123123 */
    124124function bbp_roles_init( $wp_roles ) {
     
    127127
    128128/**
    129  * Initialize widgets
     129 * Initialize widgets.
    130130 *
    131131 * @since 2.0.0 bbPress (r3389)
     
    136136
    137137/**
    138  * Setup the currently logged-in user
     138 * Setup the currently logged-in user.
    139139 *
    140140 * @link https://bbpress.trac.wordpress.org/ticket/2309
     
    148148
    149149/**
    150  * Setup the user engagements strategy
     150 * Setup the user engagements strategy.
    151151 *
    152152 * @since 2.6.0 bbPress (r6875)
     
    159159
    160160/**
    161  * Load translations for current language
     161 * Load translations for current language.
    162162 *
    163163 * @since 2.0.0 bbPress (r2599)
     
    168168
    169169/**
    170  * Setup the post types
     170 * Setup the post types.
    171171 *
    172172 * @since 2.0.0 bbPress (r2464)
     
    177177
    178178/**
    179  * Setup the post statuses
     179 * Setup the post statuses.
    180180 *
    181181 * @since 2.0.0 bbPress (r2727)
     
    186186
    187187/**
    188  * Register the built in bbPress taxonomies
     188 * Register the built in bbPress taxonomies.
    189189 *
    190190 * @since 2.0.0 bbPress (r2464)
     
    195195
    196196/**
    197  * Register the default bbPress views
     197 * Register the default bbPress views.
    198198 *
    199199 * @since 2.0.0 bbPress (r2789)
     
    204204
    205205/**
    206  * Register the default bbPress shortcodes
     206 * Register the default bbPress shortcodes.
    207207 *
    208208 * @since 2.2.0 bbPress (r4211)
     
    213213
    214214/**
    215  * Register the default bbPress meta-data
     215 * Register the default bbPress meta-data.
    216216 *
    217217 * @since 2.6.0 bbPress (r46300)
     
    222222
    223223/**
    224  * Enqueue bbPress specific CSS and JS
     224 * Enqueue bbPress specific CSS and JS.
    225225 *
    226226 * @since 2.0.0 bbPress (r3373)
     
    231231
    232232/**
    233  * Add the bbPress-specific rewrite tags
     233 * Add the bbPress-specific rewrite tags.
    234234 *
    235235 * @since 2.0.0 bbPress (r2753)
     
    240240
    241241/**
    242  * Add the bbPress-specific rewrite rules
     242 * Add the bbPress-specific rewrite rules.
    243243 *
    244244 * @since 2.4.0 bbPress (r4918)
     
    249249
    250250/**
    251  * Add the bbPress-specific permalink structures
     251 * Add the bbPress-specific permalink structures.
    252252 *
    253253 * @since 2.4.0 bbPress (r4918)
     
    267267
    268268/**
    269  * Add the bbPress-specific post status transition action
     269 * Add the bbPress-specific post status transition action.
    270270 *
    271271 * @since 2.6.0 bbPress (r6792)
    272272 *
    273  * @param string  $new_status New post status
    274  * @param string  $old_status Old post status
    275  * @param WP_Post $post       Post object
     273 * @param string  $new_status New post status.
     274 * @param string  $old_status Old post status.
     275 * @param WP_Post $post       Post object.
    276276 */
    277277function bbp_transition_post_status( $new_status = '', $old_status = '', $post = false ) {
     
    293293
    294294/**
    295  * The main action for hooking into when a user account is updated
     295 * The main action for hooking into when a user account is updated.
    296296 *
    297297 * @since 2.2.0 bbPress (r4304)
    298298 *
    299  * @param int $user_id ID of user being edited
     299 * @param int $user_id ID of user being edited.
    300300 * @param array $old_user_data The old, unmodified user data
    301301 */
     
    305305
    306306/**
    307  * The main action for hooking into a user being registered
     307 * The main action for hooking into a user being registered.
    308308 *
    309309 * @since 2.2.0 bbPress (r4304)
    310310 *
    311  * @param int $user_id ID of user being edited
     311 * @param int $user_id ID of user being edited.
    312312 */
    313313function bbp_user_register( $user_id = 0 ) {
     
    318318
    319319/**
    320  * bbPress has loaded and initialized everything, and is okay to go
     320 * bbPress has loaded and initialized everything, and is okay to go.
    321321 *
    322322 * @since 2.0.0 bbPress (r2618)
     
    330330/**
    331331 * The main action used for redirecting bbPress theme actions that are not
    332  * permitted by the current_user
     332 * permitted by the current_user.
    333333 *
    334334 * @since 2.1.0 bbPress (r3605)
     
    341341
    342342/**
    343  * The main action used for executing code before the theme has been setup
     343 * The main action used for executing code before the theme has been setup.
    344344 *
    345345 * @since 2.1.0 bbPress (r3829)
     
    350350
    351351/**
    352  * The main action used for executing code before the theme has been setup
     352 * The main action used for executing code before the theme has been setup.
    353353 *
    354354 * @since 2.1.0 bbPress (r3732)
     
    359359
    360360/**
    361  * The main action used for executing code after the theme has been setup
     361 * The main action used for executing code after the theme has been setup.
    362362 *
    363363 * @since 2.1.0 bbPress (r3732)
     
    368368
    369369/**
    370  * The main action used for handling theme-side POST requests
     370 * The main action used for handling theme-side POST requests.
    371371 *
    372372 * @since 2.3.0 bbPress (r4550)
     
    401401
    402402/**
    403  * The main action used for handling theme-side GET requests
     403 * The main action used for handling theme-side GET requests.
    404404 *
    405405 * @since 2.3.0 bbPress (r4550)
     
    450450
    451451/**
    452  * Piggy back filter for WordPress's 'request' filter
     452 * Piggy back filter for WordPress's 'request' filter.
    453453 *
    454454 * @since 2.1.0 bbPress (r3758)
     
    470470 *
    471471 * @param string $template
    472  * @return string Template file to use
     472 * @return string Template file to use.
    473473 */
    474474function bbp_template_include( $template = '' ) {
     
    479479
    480480/**
    481  * Generate bbPress-specific rewrite rules
     481 * Generate bbPress-specific rewrite rules.
    482482 *
    483483 * @since 2.0.0 bbPress (r2688)
     
    492492
    493493/**
    494  * Filter the allowed themes list for bbPress specific themes
     494 * Filter the allowed themes list for bbPress specific themes.
    495495 *
    496496 * @since 2.0.0 bbPress (r2944)
     
    498498 * @param array $themes
    499499 *
    500  * @return array Array of allowed themes
     500 * @return array Array of allowed themes.
    501501 */
    502502function bbp_allowed_themes( $themes ) {
     
    507507
    508508/**
    509  * Maps forum/topic/reply caps to built in WordPress caps
     509 * Maps forum/topic/reply caps to built in WordPress caps.
    510510 *
    511511 * @since 2.0.0 bbPress (r2593)
    512512 *
    513  * @param array $caps Capabilities for meta capability
    514  * @param string $cap Capability name
    515  * @param int $user_id User id
    516  * @param array $args Arguments
    517  *
    518  * @return array Array of capabilities
     513 * @param array $caps Capabilities for meta capability.
     514 * @param string $cap Capability name.
     515 * @param int $user_id User id.
     516 * @param array $args Arguments.
     517 *
     518 * @return array Array of capabilities.
    519519 */
    520520function bbp_map_meta_caps( $caps = array(), $cap = '', $user_id = 0, $args = array() ) {
     
    525525
    526526/**
    527  * Filter the arguments used by wp_mail for bbPress specific emails
     527 * Filter the arguments used by wp_mail for bbPress specific emails.
    528528 *
    529529 * @since 2.6.0 bbPress (r6918)
     
    532532 *                    subject, message, headers, and attachments values.
    533533 *
    534  * @return array Array of capabilities
     534 * @return array Array of capabilities.
    535535 */
    536536function bbp_mail( $args = array() ) {
  • trunk/src/includes/core/template-functions.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Template Functions
     4 * bbPress Template Functions.
    55 *
    66 * This file contains functions necessary to mirror the WordPress core template
     
    1616
    1717/**
    18  * Adds bbPress theme support to any active WordPress theme
     18 * Adds bbPress theme support to any active WordPress theme.
    1919 *
    2020 * @since 2.0.0 bbPress (r3032)
    2121 *
    2222 * @param string $slug
    23  * @param string $name Optional. Default null
     23 * @param string $name Optional. Default null.
    2424 * @return string The template filename if one is located.
    2525 */
     
    166166
    167167/**
    168  * Convert an enqueueable file path to a URL
     168 * Convert an enqueueable file path to a URL.
    169169 *
    170170 * @since 2.6.0
     
    308308 * @since 2.3.0 bbPress (r4652)
    309309 *
    310  * @param string $location_callback Callback function that returns the
     310 * @param string $location_callback Callback function that returns the.
    311311 * @param int $priority
    312  * @return bool Whether stack was removed
     312 * @return bool Whether stack was removed.
    313313 */
    314314function bbp_deregister_template_stack( $location_callback = '', $priority = 10 ) {
     
    330330 * @since 2.6.0 bbPress (r5944) Added support for `WP_Hook`
    331331 *
    332  * @global array $wp_filter Stores all of the filters
     332 * @global array $wp_filter Stores all of the filters.
    333333 * @global array $merged_filters Merges the filter hooks using this function.
    334  * @global array $wp_current_filter stores the list of current filters with the current one last
     334 * @global array $wp_current_filter stores the list of current filters with the current one last.
    335335 *
    336336 * @return array The filtered value after all hooked functions are applied to it.
     
    391391
    392392/**
    393  * Get a template part in an output buffer, and return it
     393 * Get a template part in an output buffer, and return it.
    394394 *
    395395 * @since 2.4.0 bbPress (r5043)
     
    419419
    420420/**
    421  * Retrieve path to a template
     421 * Retrieve path to a template.
    422422 *
    423423 * Used to quickly retrieve the path of a template without including the file
     
    429429 *
    430430 * @param string $type Filename without extension.
    431  * @param array $templates An optional list of template candidates
     431 * @param array $templates An optional list of template candidates.
    432432 * @return string Full path to file.
    433433 */
     
    457457
    458458/**
    459  * Get the possible subdirectories to check for templates in
     459 * Get the possible subdirectories to check for templates in.
    460460 *
    461461 * @since 2.1.0 bbPress (r3738)
    462462 *
    463  * @param array $templates Templates we are looking for
    464  * @return array Possible subdirectories to look in
     463 * @param array $templates Templates we are looking for.
     464 * @return array Possible subdirectories to look in.
    465465 */
    466466function bbp_get_template_locations( $templates = array() ) {
     
    476476
    477477/**
    478  * Add template locations to template files being searched for
     478 * Add template locations to template files being searched for.
    479479 *
    480480 * @since 2.1.0 bbPress (r3738)
     
    501501
    502502/**
    503  * Add checks for bbPress conditions to parse_query action
     503 * Add checks for bbPress conditions to parse_query action.
    504504 *
    505505 * If it's a user page, WP_Query::bbp_is_single_user is set to true.
     
    519519 * If it's a reply edit, WP_Query::bbp_is_reply_edit is set to true.
    520520 *
    521  * If it's a view page, WP_Query::bbp_is_view is set to true
    522  * If it's a search page, WP_Query::bbp_is_search is set to true
     521 * If it's a view page, WP_Query::bbp_is_view is set to true.
     522 * If it's a search page, WP_Query::bbp_is_search is set to true.
    523523 *
    524524 * @since 2.0.0 bbPress (r2688)
  • trunk/src/includes/core/template-loader.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Template Loader
     4 * bbPress Template Loader.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Possibly intercept the template being loaded
     14 * Possibly intercept the template being loaded.
    1515 *
    1616 * Listens to the 'template_include' filter and waits for any bbPress specific
    1717 * template condition to be met. If one is met and the template file exists,
    18  * it will be used; otherwise
     18 * it will be used; otherwise.
    1919 *
    2020 * Note that the _edit() checks are ahead of their counterparts, to prevent them
     
    2525 * @param string $template
    2626 *
    27  * @return string The path to the template file that is being used
     27 * @return string The path to the template file that is being used.
    2828 */
    2929function bbp_template_include_theme_supports( $template = '' ) {
     
    108108
    109109/**
    110  * Set the included template
     110 * Set the included template.
    111111 *
    112112 * @since 2.4.0 bbPress (r4975)
    113113 *
    114  * @param mixed $template Default false
    115  * @return mixed False if empty. Template name if template included
     114 * @param mixed $template Default false.
     115 * @return mixed False if empty. Template name if template included.
    116116 */
    117117function bbp_set_template_included( $template = false ) {
     
    126126 * @since 2.4.0 bbPress (r4975)
    127127 *
    128  * @return bool True if yes, false if no
     128 * @return bool True if yes, false if no.
    129129 */
    130130function bbp_is_template_included() {
     
    158158
    159159/**
    160  * Get the user profile template
    161  *
    162  * @since 2.0.0 bbPress (r3311)
    163  *
    164  * @return string Path to template file
     160 * Get the user profile template.
     161 *
     162 * @since 2.0.0 bbPress (r3311)
     163 *
     164 * @return string Path to template file.
    165165 */
    166166function bbp_get_single_user_template() {
     
    177177
    178178/**
    179  * Get the user profile edit template
    180  *
    181  * @since 2.0.0 bbPress (r3311)
    182  *
    183  * @return string Path to template file
     179 * Get the user profile edit template.
     180 *
     181 * @since 2.0.0 bbPress (r3311)
     182 *
     183 * @return string Path to template file.
    184184 */
    185185function bbp_get_single_user_edit_template() {
     
    197197
    198198/**
    199  * Get the user favorites template
     199 * Get the user favorites template.
    200200 *
    201201 * @since 2.2.0 bbPress (r4225)
    202202 *
    203  * @return string Path to template file
     203 * @return string Path to template file.
    204204 */
    205205function bbp_get_favorites_template() {
     
    218218
    219219/**
    220  * Get the user subscriptions template
     220 * Get the user subscriptions template.
    221221 *
    222222 * @since 2.2.0 bbPress (r4225)
    223223 *
    224  * @return string Path to template file
     224 * @return string Path to template file.
    225225 */
    226226function bbp_get_subscriptions_template() {
     
    239239
    240240/**
    241  * Get the view template
    242  *
    243  * @since 2.0.0 bbPress (r3311)
    244  *
    245  * @return string Path to template file
     241 * Get the view template.
     242 *
     243 * @since 2.0.0 bbPress (r3311)
     244 *
     245 * @return string Path to template file.
    246246 */
    247247function bbp_get_single_view_template() {
     
    257257
    258258/**
    259  * Get the search template
     259 * Get the search template.
    260260 *
    261261 * @since 2.3.0 bbPress (r4579)
    262262 *
    263  * @return string Path to template file
     263 * @return string Path to template file.
    264264 */
    265265function bbp_get_search_template() {
     
    272272
    273273/**
    274  * Get the single forum template
     274 * Get the single forum template.
    275275 *
    276276 * @since 2.1.0 bbPress (r3922)
    277277 *
    278  * @return string Path to template file
     278 * @return string Path to template file.
    279279 */
    280280function bbp_get_single_forum_template() {
     
    286286
    287287/**
    288  * Get the forum archive template
     288 * Get the forum archive template.
    289289 *
    290290 * @since 2.1.0 bbPress (r3922)
    291291 *
    292  * @return string Path to template file
     292 * @return string Path to template file.
    293293 */
    294294function bbp_get_forum_archive_template() {
     
    300300
    301301/**
    302  * Get the forum edit template
     302 * Get the forum edit template.
    303303 *
    304304 * @since 2.1.0 bbPress (r3566)
    305305 *
    306  * @return string Path to template file
     306 * @return string Path to template file.
    307307 */
    308308function bbp_get_forum_edit_template() {
     
    314314
    315315/**
    316  * Get the single topic template
     316 * Get the single topic template.
    317317 *
    318318 * @since 2.1.0 bbPress (r3922)
    319319 *
    320  * @return string Path to template file
     320 * @return string Path to template file.
    321321 */
    322322function bbp_get_single_topic_template() {
     
    328328
    329329/**
    330  * Get the topic archive template
     330 * Get the topic archive template.
    331331 *
    332332 * @since 2.1.0 bbPress (r3922)
    333333 *
    334  * @return string Path to template file
     334 * @return string Path to template file.
    335335 */
    336336function bbp_get_topic_archive_template() {
     
    342342
    343343/**
    344  * Get the topic edit template
    345  *
    346  * @since 2.0.0 bbPress (r3311)
    347  *
    348  * @return string Path to template file
     344 * Get the topic edit template.
     345 *
     346 * @since 2.0.0 bbPress (r3311)
     347 *
     348 * @return string Path to template file.
    349349 */
    350350function bbp_get_topic_edit_template() {
     
    356356
    357357/**
    358  * Get the topic split template
    359  *
    360  * @since 2.0.0 bbPress (r3311)
    361  *
    362  * @return string Path to template file
     358 * Get the topic split template.
     359 *
     360 * @since 2.0.0 bbPress (r3311)
     361 *
     362 * @return string Path to template file.
    363363 */
    364364function bbp_get_topic_split_template() {
     
    370370
    371371/**
    372  * Get the topic merge template
    373  *
    374  * @since 2.0.0 bbPress (r3311)
    375  *
    376  * @return string Path to template file
     372 * Get the topic merge template.
     373 *
     374 * @since 2.0.0 bbPress (r3311)
     375 *
     376 * @return string Path to template file.
    377377 */
    378378function bbp_get_topic_merge_template() {
     
    384384
    385385/**
    386  * Get the single reply template
     386 * Get the single reply template.
    387387 *
    388388 * @since 2.1.0 bbPress (r3922)
    389389 *
    390  * @return string Path to template file
     390 * @return string Path to template file.
    391391 */
    392392function bbp_get_single_reply_template() {
     
    398398
    399399/**
    400  * Get the reply edit template
    401  *
    402  * @since 2.0.0 bbPress (r3311)
    403  *
    404 * @return string Path to template file
     400 * Get the reply edit template.
     401 *
     402 * @since 2.0.0 bbPress (r3311)
     403 *
     404* @return string Path to template file.
    405405 */
    406406function bbp_get_reply_edit_template() {
     
    412412
    413413/**
    414  * Get the reply move template
     414 * Get the reply move template.
    415415 *
    416416 * @since 2.3.0 bbPress (r4521)
    417417 *
    418  * @return string Path to template file
     418 * @return string Path to template file.
    419419 */
    420420function bbp_get_reply_move_template() {
     
    426426
    427427/**
    428  * Get the topic template
    429  *
    430  * @since 2.0.0 bbPress (r3311)
    431  *
    432  * @return string Path to template file
     428 * Get the topic template.
     429 *
     430 * @since 2.0.0 bbPress (r3311)
     431 *
     432 * @return string Path to template file.
    433433 */
    434434function bbp_get_topic_tag_template() {
     
    443443
    444444/**
    445  * Get the topic edit template
    446  *
    447  * @since 2.0.0 bbPress (r3311)
    448  *
    449  * @return string Path to template file
     445 * Get the topic edit template.
     446 *
     447 * @since 2.0.0 bbPress (r3311)
     448 *
     449 * @return string Path to template file.
    450450 */
    451451function bbp_get_topic_tag_edit_template() {
     
    460460
    461461/**
    462  * Get the templates to use as the endpoint for bbPress template parts
     462 * Get the templates to use as the endpoint for bbPress template parts.
    463463 *
    464464 * @since 2.0.0 bbPress (r3311)
    465465 * @since 2.6.0 bbPress (r5950) Added `singular.php` to template stack
    466466 *
    467  * @return string Path to template file
     467 * @return string Path to template file.
    468468 */
    469469function bbp_get_theme_compat_templates() {
  • trunk/src/includes/core/theme-compat.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Theme Compatibility
     4 * bbPress Theme Compatibility.
    55 *
    66 * @package bbPress
     
    2626
    2727/**
    28  * Theme Compatibility base class
     28 * Theme Compatibility base class.
    2929 *
    3030 * This is only intended to be extended, and is included here as a basic guide
    31  * for future Template Packs to use. @link bbp_setup_theme_compat()
     31 * for future Template Packs to use. @link bbp_setup_theme_compat().
    3232 *
    3333 * @since 2.0.0 bbPress (r3506)
     
    231231
    232232/**
    233  * Gets true/false if page is currently inside theme compatibility
     233 * Gets true/false if page is currently inside theme compatibility.
    234234 *
    235235 * @since 2.0.0 bbPress (r3265)
     
    248248
    249249/**
    250  * Sets true/false if page is currently inside theme compatibility
     250 * Sets true/false if page is currently inside theme compatibility.
    251251 *
    252252 * @since 2.0.0 bbPress (r3265)
     
    262262
    263263/**
    264  * Set the theme compat templates global
     264 * Set the theme compat templates global.
    265265 *
    266266 * Stash possible template files for the current query. Useful if plugins want
     
    276276
    277277/**
    278  * Set the theme compat template global
     278 * Set the theme compat template global.
    279279 *
    280280 * Stash the template file for the current query. Useful if plugins want
     
    290290
    291291/**
    292  * Set the theme compat original_template global
     292 * Set the theme compat original_template global.
    293293 *
    294294 * Stash the original template file for the current query. Useful for checking
     
    304304
    305305/**
    306  * Is a template the original_template global
     306 * Is a template the original_template global.
    307307 *
    308308 * Stash the original template file for the current query. Useful for checking
     
    323323
    324324/**
    325  * Register a new bbPress theme package to the active theme packages array
     325 * Register a new bbPress theme package to the active theme packages array.
    326326 *
    327327 * @since 2.1.0 bbPress (r3829)
     
    517517    }
    518518
    519     /** Users *************************************************************/
     519    /** Users *****************************************************************/
    520520
    521521    if ( bbp_is_single_user_edit() || bbp_is_single_user() ) {
     
    536536        );
    537537
    538     /** Forums ************************************************************/
     538    /** Forums ****************************************************************/
    539539
    540540    // Forum archive
     
    631631        );
    632632
    633     /** Topics ************************************************************/
     633    /** Topics ****************************************************************/
    634634
    635635    // Topic archive
     
    710710        );
    711711
    712     /** Replies ***********************************************************/
     712    /** Replies ***************************************************************/
    713713
    714714    // Reply archive
     
    764764        );
    765765
    766     /** Views *************************************************************/
     766    /** Views *****************************************************************/
    767767
    768768    } elseif ( bbp_is_single_view() ) {
     
    783783        );
    784784
    785     /** Search ************************************************************/
     785    /** Search ****************************************************************/
    786786
    787787    } elseif ( bbp_is_search() ) {
     
    802802        );
    803803
    804     /** Topic Tags ********************************************************/
     804    /** Topic Tags ************************************************************/
    805805
    806806    // Topic Tag Edit
     
    10131013/**
    10141014 * Restores filters from the $bbp global that were removed using
    1015  * bbp_remove_all_filters()
     1015 * bbp_remove_all_filters().
    10161016 *
    10171017 * @since 2.0.0 bbPress (r3251)
     
    10691069
    10701070/**
    1071  * Force comments_status to 'closed' for bbPress post types
     1071 * Force comments_status to 'closed' for bbPress post types.
    10721072 *
    10731073 * @since 2.1.0 bbPress (r3589)
  • trunk/src/includes/core/update.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Updater
     4 * bbPress Updater.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * If there is no raw DB version, this is the first installation
     14 * If there is no raw DB version, this is the first installation.
    1515 *
    1616 * @since 2.1.0 bbPress (r3764)
    1717 *
    18  * @return bool True if update, False if not
     18 * @return bool True if update, False if not.
    1919 */
    2020function bbp_is_install() {
     
    2323
    2424/**
    25  * Compare the bbPress version to the DB version to determine if updating
     25 * Compare the bbPress version to the DB version to determine if updating.
    2626 *
    2727 * @since 2.0.0 bbPress (r3421)
    2828 *
    29  * @return bool True if update, False if not
     29 * @return bool True if update, False if not.
    3030 */
    3131function bbp_is_update() {
     
    3737
    3838/**
    39  * Determine if bbPress is being activated
     39 * Determine if bbPress is being activated.
    4040 *
    4141 * Note that this function currently is not used in bbPress core and is here
     
    4646 * @global string $pagenow The filename of the current screen.
    4747 *
    48  * @return bool True if activating bbPress, false if not
     48 * @param string $basename Plugin base name.
     49 *
     50 * @return bool True if activating bbPress, false if not.
    4951 */
    5052function bbp_is_activation( $basename = '' ) {
     
    9294
    9395/**
    94  * Determine if bbPress is being deactivated
     96 * Determine if bbPress is being deactivated.
    9597 *
    9698 * @since 2.0.0 bbPress (r3421)
     
    98100 * @global string $pagenow The filename of the current screen.
    99101 *
    100  * @return bool True if deactivating bbPress, false if not
     102 * @param string $basename Plugin base name.
     103 *
     104 * @return bool True if deactivating bbPress, false if not.
    101105 */
    102106function bbp_is_deactivation( $basename = '' ) {
     
    144148
    145149/**
    146  * Update the DB to the latest version
     150 * Update the DB to the latest version.
    147151 *
    148152 * @since 2.0.0 bbPress (r3421)
     
    153157
    154158/**
    155  * Setup the bbPress updater
     159 * Setup the bbPress updater.
    156160 *
    157161 * @since 2.0.0 bbPress (r3419)
     
    170174/**
    171175 * Runs when a new site is created in a multisite network, and bbPress is active
    172  * on that site (hooked to `bbp_new_site`)
     176 * on that site (hooked to `bbp_new_site`).
    173177 *
    174178 * @since 2.6.0 bbPress (r6779)
     179 *
     180 * @param int $site_id Side id.
    175181 */
    176182function bbp_setup_new_site( $site_id = 0 ) {
     
    193199
    194200/**
    195  * Create a default forum, topic, and reply
     201 * Create a default forum, topic, and reply.
    196202 *
    197203 * @since 2.1.0 bbPress (r3767)
    198204 *
    199  * @param array $args Array of arguments to override default values
     205 * @param array $args Array of arguments to override default values.
    200206 */
    201207function bbp_create_initial_content( $args = array() ) {
     
    425431
    426432/**
    427  * Redirect user to the "What's New" page on activation
     433 * Redirect user to the "What's New" page on activation.
    428434 *
    429435 * @since 2.2.0 bbPress (r4389)
    430436 *
    431  * @internal Used internally to redirect bbPress to the about page on activation
    432  *
    433  * @return If network admin or bulk activation
     437 * @internal Used internally to redirect bbPress to the about page on activation.
     438 *
     439 * @return If network admin or bulk activation.
    434440 */
    435441function bbp_add_activation_redirect() {
     
    445451
    446452/**
    447  * Redirect user to "What's New" page on activation
     453 * Redirect user to "What's New" page on activation.
    448454 *
    449455 * @since 2.2.0 bbPress (r4389)
    450456 *
    451  * @internal Used internally to redirect bbPress to the about page on activation
    452  *
    453  * @return If no transient, or in network admin, or is bulk activation
     457 * @internal Used internally to redirect bbPress to the about page on activation.
     458 *
     459 * @return If no transient, or in network admin, or is bulk activation.
    454460 */
    455461function bbp_do_activation_redirect() {
     
    484490 * @since 2.4.0 bbPress (r4910)
    485491 *
    486  * @internal Used to internally make the current user a keymaster on activation
    487  *
    488  * @return If user can't activate plugins or is already a keymaster
     492 * @internal Used to internally make the current user a keymaster on activation.
     493 *
     494 * @return If user can't activate plugins or is already a keymaster.
    489495 */
    490496function bbp_make_current_user_keymaster() {
     
    532538
    533539/**
    534  * Return the number of pending upgrades
     540 * Return the number of pending upgrades.
    535541 *
    536542 * @since 2.6.0 bbPress (r6895)
    537543 *
    538  * @param string $type Type of pending upgrades (upgrade|repair|empty)
     544 * @param string $type Type of pending upgrades (upgrade|repair|empty).
    539545 *
    540546 * @return int
     
    545551
    546552/**
    547  * Return an array of pending upgrades
     553 * Return an array of pending upgrades.
    548554 *
    549555 * @since 2.6.0 bbPress (r6895)
    550556 *
    551  * @param string $type Type of pending upgrades (upgrade|repair|empty)
     557 * @param string $type Type of pending upgrades (upgrade|repair|empty).
    552558 *
    553559 * @return array
     
    569575
    570576/**
    571  * Add an upgrade ID to pending upgrades array
     577 * Add an upgrade ID to pending upgrades array.
    572578 *
    573579 * @since 2.6.0 bbPress (r6895)
     
    590596
    591597/**
    592  * Add an upgrade ID to pending upgrades array
     598 * Add an upgrade ID to pending upgrades array.
    593599 *
    594600 * @since 2.6.0 bbPress (r6895)
     
    614620
    615621/**
    616  * Delete all pending upgrades
     622 * Delete all pending upgrades.
    617623 *
    618624 * @since 2.6.0 bbPress (r6895)
     
    623629
    624630/**
    625  * Maybe append an upgrade count to a string
     631 * Maybe append an upgrade count to a string.
    626632 *
    627633 * @since 2.6.0 bbPress (r6896)
    628634 *
    629  * @param string $text Text to append count to
    630  * @param string $type Type of pending upgrades (upgrade|repair|empty)
     635 * @param string $text Text to append count to.
     636 * @param string $type Type of pending upgrades (upgrade|repair|empty).
    631637 *
    632638 * @return string
  • trunk/src/includes/extend/akismet.php

    r7379 r7380  
    22
    33/**
    4  * Main bbPress Akismet Class
     4 * Main bbPress Akismet Class.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Akismet' ) ) :
    1414/**
    15  * Loads Akismet extension
     15 * Loads Akismet extension.
    1616 *
    1717 * @since 2.0.0 bbPress (r3277)
     
    3232
    3333    /**
    34      * The main bbPress Akismet loader
     34     * The main bbPress Akismet loader.
    3535     *
    3636     * @since 2.0.0 bbPress (r3277)
     
    4141
    4242    /**
    43      * Setup the admin hooks
     43     * Setup the admin hooks.
    4444     *
    4545     * @since 2.0.0 bbPress (r3277)
     
    9090
    9191    /**
    92      * Converts topic/reply data into Akismet comment checking format
     92     * Converts topic/reply data into Akismet comment checking format.
    9393     *
    9494     * @since 2.0.0 bbPress (r3277)
     
    9696     * @param array $post_data
    9797     *
    98      * @return array Array of post data
     98     * @return array Array of post data.
    9999     */
    100100    public function check_post( $post_data = array() ) {
     
    272272
    273273    /**
    274      * Submit a post for spamming or hamming
     274     * Submit a post for spamming or hamming.
    275275     *
    276276     * @since 2.0.0 bbPress (r3277)
    277277     *
    278      * @param int $post_id
     278     * @param int $post_id Post id.
    279279     *
    280280     * @global string $akismet_api_host
     
    283283     * @global object $current_site
    284284     *
    285      * @return array Array of existing topic terms
     285     * @return array Array of existing topic terms.
    286286     */
    287287    public function submit_post( $post_id = 0 ) {
     
    438438
    439439    /**
    440      * Ping Akismet service and check for spam/ham response
     440     * Ping Akismet service and check for spam/ham response.
    441441     *
    442442     * @since 2.0.0 bbPress (r3277)
    443443     *
    444444     * @param array $post_data
    445      * @param string $check Accepts check|submit
    446      * @param string $spam Accepts spam|ham
     445     * @param string $check Accepts check|submit.
     446     * @param string $spam Accepts spam|ham.
    447447     *
    448448     * @global string $akismet_api_host
    449449     * @global string $akismet_api_port
    450450     *
    451      * @return array Array of post data
     451     * @return array Array of post data.
    452452     */
    453453    private function maybe_spam( $post_data = array(), $check = 'check', $spam = 'spam' ) {
     
    537537
    538538    /**
    539      * Update post meta after a spam check
     539     * Update post meta after a spam check.
    540540     *
    541541     * @since 2.0.0 bbPress (r3308)
    542542     *
    543      * @param int $post_id
     543     * @param int $post_id Post id.
    544544     * @param object $_post
    545545     *
     
    702702
    703703    /**
    704      * Update Akismet history of a Post
     704     * Update Akismet history of a Post.
    705705     *
    706706     * @since 2.0.0 bbPress (r3308)
     
    741741
    742742    /**
    743      * Get the Akismet history of a Post
     743     * Get the Akismet history of a Post.
    744744     *
    745745     * @since 2.0.0 bbPress (r3308)
     
    747747     * @param int $post_id
    748748     *
    749      * @return array Array of Akismet history
     749     * @return array Array of Akismet history.
    750750     */
    751751    public function get_post_history( $post_id = 0 ) {
     
    761761
    762762    /**
    763      * Handle any terms submitted with a post flagged as spam
     763     * Handle any terms submitted with a post flagged as spam.
    764764     *
    765765     * @since 2.0.0 bbPress (r3308)
    766766     *
    767      * @param string $terms Comma-separated list of terms
     767     * @param string $terms Comma-separated list of terms.
    768768     * @param int $topic_id
    769769     * @param int $reply_id
    770770     *
    771      * @return array Array of existing topic terms
     771     * @return array Array of existing topic terms.
    772772     */
    773773    public function filter_post_terms( $terms = '', $topic_id = 0, $reply_id = 0 ) {
     
    790790
    791791    /**
    792      * Submit data to Akismet service with unique bbPress User Agent
     792     * Submit data to Akismet service with unique bbPress User Agent.
    793793     *
    794794     * This code is directly taken from the akismet_http_post() function and
     
    797797     * @since 2.0.0 bbPress (r3466)
    798798     *
    799      * @param string $request The request we are sending
    800      * @param string $host The host to send our request to
    801      * @param string $path The path from the host
    802      * @param string $port The port to use
    803      * @param string $ip Optional Override $host with an IP address
    804      * @return mixed WP_Error on error, array on success, empty on failure
     799     * @param string $request The request we are sending.
     800     * @param string $host The host to send our request to.
     801     * @param string $path The path from the host.
     802     * @param string $port The port to use.
     803     * @param string $ip Optional Override $host with an IP address.
     804     * @return mixed WP_Error on error, array on success, empty on failure.
    805805     */
    806806    private function http_post( $request, $host, $path, $port = 80, $ip = '' ) {
     
    842842     * @since 2.6.7 (bbPress r7194)
    843843     *
    844      * @param string $host_and_path Scheme-less URL
    845      * @param array  $http_args     Array of arguments for wp_remote_post()
     844     * @param string $host_and_path Scheme-less URL.
     845     * @param array  $http_args     Array of arguments for wp_remote_post().
    846846     * @return array
    847847     */
     
    908908
    909909    /**
    910      * Return a user's roles on this site (including super_admin)
     910     * Return a user's roles on this site (including super_admin).
    911911     *
    912912     * @since 2.3.0 bbPress (r4812)
    913913     *
    914      * @param int $user_id
     914     * @param int $user_id User id.
    915915     *
    916916     * @return boolean
     
    943943
    944944    /**
    945      * Add Aksimet History meta-boxes to topics and replies
     945     * Add Aksimet History meta-boxes to topics and replies.
    946946     *
    947947     * @since 2.4.0 bbPress (r5049)
     
    971971
    972972    /**
    973      * Output for Akismet History meta-box
     973     * Output for Akismet History meta-box.
    974974     *
    975975     * @since 2.4.0 bbPress (r5049)
  • trunk/src/includes/extend/buddypress/activity.php

    r7378 r7380  
    22
    33/**
    4  * bbPress BuddyPress Activity Class
     4 * bbPress BuddyPress Activity Class.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_BuddyPress_Activity' ) ) :
    1414/**
    15  * Loads BuddyPress Activity extension
     15 * Loads BuddyPress Activity extension.
    1616 *
    1717 * @since 2.0.0 bbPress (r3395)
     
    2525
    2626    /**
    27      * The name of the BuddyPress component, used in activity streams
     27     * The name of the BuddyPress component, used in activity streams.
    2828     *
    2929     * @var string
     
    3232
    3333    /**
    34      * Forum Create Activity Action
     34     * Forum Create Activity Action.
    3535     *
    3636     * @var string
     
    3939
    4040    /**
    41      * Topic Create Activity Action
     41     * Topic Create Activity Action.
    4242     *
    4343     * @var string
     
    4646
    4747    /**
    48      * Topic Close Activity Action
     48     * Topic Close Activity Action.
    4949     *
    5050     * @var string
     
    5353
    5454    /**
    55      * Topic Edit Activity Action
     55     * Topic Edit Activity Action.
    5656     *
    5757     * @var string
     
    6060
    6161    /**
    62      * Topic Open Activity Action
     62     * Topic Open Activity Action.
    6363     *
    6464     * @var string
     
    6767
    6868    /**
    69      * Reply Create Activity Action
     69     * Reply Create Activity Action.
    7070     *
    7171     * @var string
     
    7474
    7575    /**
    76      * Reply Edit Activity Action
     76     * Reply Edit Activity Action.
    7777     *
    7878     * @var string
     
    8383
    8484    /**
    85      * The bbPress BuddyPress Activity loader
     85     * The bbPress BuddyPress Activity loader.
    8686     *
    8787     * @since 2.0.0 bbPress (r3395)
     
    9595
    9696    /**
    97      * Extension variables
     97     * Extension variables.
    9898     *
    9999     * @since 2.0.0 bbPress (r3395)
     
    121121
    122122    /**
    123      * Setup the actions
     123     * Setup the actions.
    124124     *
    125125     * @since 2.0.0 bbPress (r3395)
     
    146146
    147147    /**
    148      * Setup the filters
     148     * Setup the filters.
    149149     *
    150150     * @since 2.0.0 bbPress (r3395)
     
    174174
    175175    /**
    176      * Register our activity actions with BuddyPress
     176     * Register our activity actions with BuddyPress.
    177177     *
    178178     * @since 2.0.0 bbPress (r3395)
     
    202202
    203203    /**
    204      * Wrapper for recoding bbPress actions to the BuddyPress activity stream
    205      *
    206      * @since 2.0.0 bbPress (r3395)
    207      *
    208      * @param  array $args Array of arguments for bp_activity_add()
    209      *
    210      * @return int   Activity ID if successful, false if not
     204     * Wrapper for recoding bbPress actions to the BuddyPress activity stream.
     205     *
     206     * @since 2.0.0 bbPress (r3395)
     207     *
     208     * @param  array $args Array of arguments for bp_activity_add().
     209     *
     210     * @return int   Activity ID if successful, false if not.
    211211     */
    212212    private function record_activity( $args = array() ) {
     
    236236
    237237    /**
    238      * Wrapper for deleting bbPress actions from BuddyPress activity stream
    239      *
    240      * @since 2.0.0 bbPress (r3395)
    241      *
    242      * @param  array $args Array of arguments for bp_activity_add()
    243      *
    244      * @return int   Activity ID if successful, false if not
     238     * Wrapper for deleting bbPress actions from BuddyPress activity stream.
     239     *
     240     * @since 2.0.0 bbPress (r3395)
     241     *
     242     * @param  array $args Array of arguments for bp_activity_add().
     243     *
     244     * @return int   Activity ID if successful, false if not.
    245245     */
    246246    public function delete_activity( $args = array() ) {
     
    264264
    265265    /**
    266      * Check for an existing activity stream entry for a given post_id
    267      *
    268      * @param int $post_id ID of the topic or reply
    269      * @return int if an activity id is verified, false if not
     266     * Check for an existing activity stream entry for a given post_id.
     267     *
     268     * @param int $post_id ID of the topic or reply.
     269     * @return int if an activity id is verified, false if not.
    270270     */
    271271    private static function get_activity_id( $post_id = 0 ) {
     
    290290
    291291    /**
    292      * Maybe disable activity stream comments on select actions
     292     * Maybe disable activity stream comments on select actions.
    293293     *
    294294     * @since 2.0.0 bbPress (r3399)
     
    328328
    329329    /**
    330      * Maybe link directly to topics and replies in activity stream entries
     330     * Maybe link directly to topics and replies in activity stream entries.
    331331     *
    332332     * @since 2.0.0 bbPress (r3399)
     
    334334     * @param string $link
    335335     * @param mixed $activity_object
    336      * @return string The link to the activity stream item
     336     * @return string The link to the activity stream item.
    337337     */
    338338    public function activity_get_permalink( $link = '', $activity_object = false ) {
     
    355355
    356356    /**
    357      * Record an activity stream entry when a topic is created or updated
     357     * Record an activity stream entry when a topic is created or updated.
    358358     *
    359359     * @since 2.0.0 bbPress (r3395)
     
    363363     * @param array $anonymous_data
    364364     * @param int $topic_author_id
    365      * @return Bail early if topic is by anonymous user
     365     * @return Bail early if topic is by anonymous user.
    366366     */
    367367    public function topic_create( $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $topic_author_id = 0 ) {
     
    440440
    441441    /**
    442      * Delete the activity stream entry when a topic is spammed, trashed, or deleted
     442     * Delete the activity stream entry when a topic is spammed, trashed, or deleted.
    443443     *
    444444     * @param int $topic_id
     
    456456
    457457    /**
    458      * Update the activity stream entry when a topic status changes
     458     * Update the activity stream entry when a topic status changes.
    459459     *
    460460     * @param int $topic_id
    461461     * @param obj $post
    462      * @return Bail early if not a topic, or topic is by anonymous user
     462     * @return Bail early if not a topic, or topic is by anonymous user.
    463463     */
    464464    public function topic_update( $topic_id = 0, $post = null ) {
     
    497497
    498498    /**
    499      * Record an activity stream entry when a reply is created
     499     * Record an activity stream entry when a reply is created.
    500500     *
    501501     * @since 2.0.0 bbPress (r3395)
     
    505505     * @param array $anonymous_data
    506506     * @param int $topic_author_id
    507      * @return Bail early if topic is by anonymous user
     507     * @return Bail early if topic is by anonymous user.
    508508     */
    509509    public function reply_create( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $reply_author_id = 0 ) {
     
    586586
    587587    /**
    588      * Delete the activity stream entry when a reply is spammed, trashed, or deleted
     588     * Delete the activity stream entry when a reply is spammed, trashed, or deleted.
    589589     *
    590590     * @param int $reply_id
     
    602602
    603603    /**
    604      * Update the activity stream entry when a reply status changes
     604     * Update the activity stream entry when a reply status changes.
    605605     *
    606606     * @param int $reply_id
    607607     * @param obj $post
    608      * @return Bail early if not a reply, or reply is by anonymous user
     608     * @return Bail early if not a reply, or reply is by anonymous user.
    609609     */
    610610    public function reply_update( $reply_id, $post ) {
  • trunk/src/includes/extend/buddypress/functions.php

    r7379 r7380  
    22
    33/**
    4  * Main bbPress BuddyPress Class
     4 * Main bbPress BuddyPress Class.
    55 *
    66 * @package bbPress
     
    2424
    2525/**
    26  * Return component name/ID ('forums' by default)
     26 * Return component name/ID ('forums' by default).
    2727 *
    2828 * This is used primarily for Notifications integration.
     
    4444
    4545/**
    46  * Filter the current bbPress user ID with the current BuddyPress user ID
     46 * Filter the current bbPress user ID with the current BuddyPress user ID.
    4747 *
    4848 * @since 2.1.0 bbPress (r3552)
     
    8080
    8181/**
    82  * Filter the bbPress is_single_user function with BuddyPress equivalent
    83  *
    84  * @since 2.1.0 bbPress (r3552)
    85  *
    86  * @param bool $is Optional. Default false
    87  * @return bool True if viewing single user, false if not
     82 * Filter the bbPress is_single_user function with BuddyPress equivalent.
     83 *
     84 * @since 2.1.0 bbPress (r3552)
     85 *
     86 * @param bool $is Optional. Default false.
     87 * @return bool True if viewing single user, false if not.
    8888 */
    8989function bbp_filter_is_single_user( $is = false ) {
     
    9696
    9797/**
    98  * Filter the bbPress is_user_home function with BuddyPress equivalent
    99  *
    100  * @since 2.1.0 bbPress (r3552)
    101  *
    102  * @param bool $is Optional. Default false
    103  * @return bool True if viewing single user, false if not
     98 * Filter the bbPress is_user_home function with BuddyPress equivalent.
     99 *
     100 * @since 2.1.0 bbPress (r3552)
     101 *
     102 * @param bool $is Optional. Default false.
     103 * @return bool True if viewing single user, false if not.
    104104 */
    105105function bbp_filter_is_user_home( $is = false ) {
     
    112112
    113113/**
    114  * Add the topic title to the <title> if viewing a single group forum topic
     114 * Add the topic title to the <title> if viewing a single group forum topic.
    115115 *
    116116 * @since 2.5.0 bbPress (r5161)
    117117 *
    118  * @param string $new_title The title to filter
    119  * @param string $old_title (Not used)
    120  * @param string $sep The separator to use
    121  * @return string The possibly modified title
     118 * @param string $new_title The title to filter.
     119 * @param string $old_title (Not used).
     120 * @param string $sep The separator to u.se
     121 * @return string The possibly modified title.
    122122 */
    123123function bbp_filter_modify_page_title( $new_title = '', $old_title = '', $sep = '' ) {
     
    151151
    152152/**
    153  * Hook bbPress topics template into plugins template
     153 * Hook bbPress topics template into plugins template.
    154154 *
    155155 * @since 2.1.0 bbPress (r3552)
     
    161161
    162162/**
    163  * Hook bbPress replies template into plugins template
     163 * Hook bbPress replies template into plugins template.
    164164 *
    165165 * @since 2.1.0 bbPress (r3552)
     
    171171
    172172/**
    173  * Hook bbPress engagements template into plugins template
     173 * Hook bbPress engagements template into plugins template.
    174174 *
    175175 * @since 2.6.0 bbPress (r6320)
     
    181181
    182182/**
    183  * Hook bbPress favorites template into plugins template
     183 * Hook bbPress favorites template into plugins template.
    184184 *
    185185 * @since 2.1.0 bbPress (r3552)
     
    191191
    192192/**
    193  * Hook bbPress subscriptions template into plugins template
     193 * Hook bbPress subscriptions template into plugins template.
    194194 *
    195195 * @since 2.1.0 bbPress (r3552)
     
    203203
    204204/**
    205  * Get the topics created template part
     205 * Get the topics created template part.
    206206 *
    207207 * @since 2.1.0 bbPress (r3552)
     
    220220
    221221/**
    222  * Get the topics replied to template part
     222 * Get the topics replied to template part.
    223223 *
    224224 * @since 2.1.0 bbPress (r3552)
     
    237237
    238238/**
    239  * Get the topic engagements template part
     239 * Get the topic engagements template part.
    240240 *
    241241 * @since 2.6.0 bbPress (r6320)
     
    254254
    255255/**
    256  * Get the topics favorited template part
     256 * Get the topics favorited template part.
    257257 *
    258258 * @since 2.1.0 bbPress (r3552)
     
    271271
    272272/**
    273  * Get the topics subscribed template part
     273 * Get the topics subscribed template part.
    274274 *
    275275 * @since 2.1.0 bbPress (r3552)
     
    290290
    291291/**
    292  * Clean up the group root setting if the forum is being deleted
     292 * Clean up the group root setting if the forum is being deleted.
    293293 *
    294294 * @since 2.6.0 bbPress (r6479)
    295295 *
    296  * @param int $forum_id The forum ID being deleted
     296 * @param int $forum_id The forum ID being deleted.
    297297 */
    298298function bbp_maybe_delete_group_forum_root( $forum_id = 0 ) {
     
    314314
    315315/**
    316  * Handle the new group forum root creation
     316 * Handle the new group forum root creation.
    317317 *
    318318 * @since 2.6.0 bbPress (r6479)
     
    372372
    373373/**
    374  * Get forum ID's for a group
     374 * Get forum ID's for a group.
    375375 *
    376376 * @since 2.1.0 bbPress (r3653)
    377377 *
    378  * @param int $group_id
     378 * @param int $group_id Group id.
    379379 */
    380380function bbp_get_group_forum_ids( $group_id = 0 ) {
     
    401401
    402402/**
    403  * Get group ID's for a forum
     403 * Get group ID's for a forum.
    404404 *
    405405 * @since 2.1.0 bbPress (r3653)
    406406 *
    407  * @param int $forum_id
     407 * @param int $forum_id Forum id.
    408408 */
    409409function bbp_get_forum_group_ids( $forum_id = 0 ) {
     
    430430
    431431/**
    432  * Get forum ID's for a group
     432 * Get forum ID's for a group.
    433433 *
    434434 * @since 2.1.0 bbPress (r3653)
    435435 *
    436  * @param int $group_id
     436 * @param int $group_id Group id.
    437437 */
    438438function bbp_update_group_forum_ids( $group_id = 0, $forum_ids = array() ) {
     
    451451
    452452/**
    453  * Update group ID's for a forum
     453 * Update group ID's for a forum.
    454454 *
    455455 * @since 2.1.0 bbPress (r3653)
    456456 *
    457  * @param int $forum_id
     457 * @param int $forum_id Forum id.
    458458 */
    459459function bbp_update_forum_group_ids( $forum_id = 0, $group_ids = array() ) {
     
    468468
    469469/**
    470  * Add a group to a forum
     470 * Add a group to a forum.
    471471 *
    472472 * @since 2.1.0 bbPress (r3653)
    473473 *
    474  * @param int $group_id
     474 * @param int $group_id Group id.
    475475 */
    476476function bbp_add_group_id_to_forum( $forum_id = 0, $group_id = 0 ) {
     
    495495
    496496/**
    497  * Remove a forum from a group
     497 * Remove a forum from a group.
    498498 *
    499499 * @since 2.1.0 bbPress (r3653)
    500500 *
    501  * @param int $group_id
     501 * @param int $group_id Group id.
    502502 */
    503503function bbp_add_forum_id_to_group( $group_id = 0, $forum_id = 0 ) {
     
    522522
    523523/**
    524  * Remove a group from a forum
     524 * Remove a group from a forum.
    525525 *
    526526 * @since 2.1.0 bbPress (r3653)
    527527 *
    528  * @param int $group_id
     528 * @param int $group_id Group id.
    529529 */
    530530function bbp_remove_group_id_from_forum( $forum_id = 0, $group_id = 0 ) {
     
    549549
    550550/**
    551  * Remove a forum from a group
     551 * Remove a forum from a group.
    552552 *
    553553 * @since 2.1.0 bbPress (r3653)
    554554 *
    555  * @param int $group_id
     555 * @param int $group_id Group id.
    556556 */
    557557function bbp_remove_forum_id_from_group( $group_id = 0, $forum_id = 0 ) {
     
    576576
    577577/**
    578  * Remove a group from all forums
     578 * Remove a group from all forums.
    579579 *
    580580 * @since 2.1.0 bbPress (r3653)
    581581 *
    582  * @param int $group_id
     582 * @param int $group_id Group id.
    583583 */
    584584function bbp_remove_group_id_from_all_forums( $group_id = 0 ) {
     
    599599
    600600/**
    601  * Remove a forum from all groups
     601 * Remove a forum from all groups.
    602602 *
    603603 * @since 2.1.0 bbPress (r3653)
    604604 *
    605  * @param int $forum_id
     605 * @param int $forum_id Forum id.
    606606 */
    607607function bbp_remove_forum_id_from_all_groups( $forum_id = 0 ) {
     
    618618
    619619/**
    620  * Return true if a forum is a group forum
     620 * Return true if a forum is a group forum.
    621621 *
    622622 * @since 2.3.0 bbPress (r4571)
    623623 *
    624  * @param int $forum_id
    625  * @return bool True if it is a group forum, false if not
     624 * @param int $forum_id Forum id.
     625 * @return bool True if it is a group forum, false if not.
    626626 */
    627627function bbp_is_forum_group_forum( $forum_id = 0 ) {
     
    643643
    644644/**
    645  * Is the current user an admin of the current group
     645 * Is the current user an admin of the current group.
    646646 *
    647647 * @since 2.3.0 bbPress (r4632)
    648648 *
    649  * @return bool If current user is an admin of the current group
     649 * @return bool If current user is an admin of the current group.
    650650 */
    651651function bbp_group_is_admin() {
     
    668668
    669669/**
    670  * Is the current user a moderator of the current group
     670 * Is the current user a moderator of the current group.
    671671 *
    672672 * @since 2.3.0 bbPress (r4632)
    673673 *
    674  * @return bool If current user is a moderator of the current group
     674 * @return bool If current user is a moderator of the current group.
    675675 */
    676676function bbp_group_is_mod() {
     
    693693
    694694/**
    695  * Is the current user a member of the current group
     695 * Is the current user a member of the current group.
    696696 *
    697697 * @since 2.3.0 bbPress (r4632)
    698698 *
    699  * @return bool If current user is a member of the current group
     699 * @return bool If current user is a member of the current group.
    700700 */
    701701function bbp_group_is_member() {
     
    718718
    719719/**
    720  * Is the current user banned from the current group
     720 * Is the current user banned from the current group.
    721721 *
    722722 * @since 2.3.0 bbPress (r4632)
    723723 *
    724  * @return bool If current user is banned from the current group
     724 * @return bool If current user is banned from the current group.
    725725 */
    726726function bbp_group_is_banned() {
     
    743743
    744744/**
    745  * Is the current user the creator of the current group
     745 * Is the current user the creator of the current group.
    746746 *
    747747 * @since 2.3.0 bbPress (r4632)
    748748 *
    749  * @return bool If current user the creator of the current group
     749 * @return bool If current user the creator of the current group.
    750750 */
    751751function bbp_group_is_creator() {
     
    770770
    771771/**
    772  * Return an array of allowed activity actions
     772 * Return an array of allowed activity actions.
    773773 *
    774774 * @since 2.6.0 bbPress (r6370)
     
    866866     * @since 2.6.0 bbPress (r6370)
    867867     *
    868      * @param string               $activity_action Activity action string value
     868     * @param string               $activity_action Activity action string value.
    869869     * @param string               $type            The type of post. Expects `topic` or `reply`.
    870870     * @param string               $action          The current action string.
     
    879879 * @since 2.6.0 bbPress (r6370)
    880880 *
    881  * @param string $action   The current action string
    882  * @param object $activity The BuddyPress activity object
     881 * @param string $action   The current action string.
     882 * @param object $activity The BuddyPress activity object.
    883883 *
    884884 * @return string The formatted activity action.
     
    903903 * @since 2.6.0 bbPress (r6370)
    904904 *
    905  * @param string $action   The current action string
    906  * @param object $activity The BuddyPress activity object
     905 * @param string $action   The current action string.
     906 * @param object $activity The BuddyPress activity object.
    907907 *
    908908 * @return string The formatted activity action
  • trunk/src/includes/extend/buddypress/groups.php

    r7379 r7380  
    22
    33/**
    4  * bbPress BuddyPress Group Extension Class
     4 * bbPress BuddyPress Group Extension Class.
    55 *
    66 * This file is responsible for connecting bbPress to the BuddyPress Groups
     
    1717if ( ! class_exists( 'BBP_Forums_Group_Extension' ) && class_exists( 'BP_Group_Extension' ) ) :
    1818/**
    19  * Loads Group Extension for Forums Component
     19 * Loads Group Extension for Forums Component.
    2020 *
    2121 * @since 2.1.0 bbPress (r3552)
     
    2929
    3030    /**
    31      * Setup bbPress group extension variables
     31     * Setup bbPress group extension variables.
    3232     *
    3333     * @since 2.1.0 bbPress (r3552)
     
    4242
    4343    /**
    44      * Setup the group forums class variables
     44     * Setup the group forums class variables.
    4545     *
    4646     * @since 2.1.0 bbPress (r3552)
     
    7575
    7676    /**
    77      * Setup the group forums class actions
     77     * Setup the group forums class actions.
    7878     *
    7979     * @since 2.3.0 bbPress (r4552)
     
    108108
    109109    /**
    110      * Setup the group forums class filters
     110     * Setup the group forums class filters.
    111111     *
    112112     * @since 2.3.0 bbPress (r4552)
     
    210210
    211211    /**
    212      * The primary display function for group forums
     212     * The primary display function for group forums.
    213213     *
    214214     * @since 2.1.0 bbPress (r3746)
     
    235235
    236236    /**
    237      * Maybe unset the group forum nav item if group does not have a forum
     237     * Maybe unset the group forum nav item if group does not have a forum.
    238238     *
    239239     * @since 2.3.0 bbPress (r4552)
    240240     *
    241      * @return If not viewing a single group
     241     * @return If not viewing a single group.
    242242     */
    243243    public function maybe_unset_forum_menu() {
     
    339339     * @since 2.6.14
    340340     *
    341      * @param int $topic_id
     341     * @param int $topic_id Topic id.
    342342     */
    343343    public function validate_topic_forum_id( $topic_id = 0 ) {
     
    400400     * @since 2.6.14
    401401     *
    402      * @param int $reply_id
     402     * @param int $reply_id Reply id.
    403403     */
    404404    public function validate_reply_to_id( $reply_id = 0 ) {
     
    456456
    457457    /**
    458      * Show forums and new forum form when editing a group
     458     * Show forums and new forum form when editing a group.
    459459     *
    460460     * @since 2.1.0 bbPress (r3563)
     
    522522
    523523    /**
    524      * Save the Group Forum data on edit
     524     * Save the Group Forum data on edit.
    525525     *
    526526     * @since 2.0.0 bbPress (r3465)
    527527     *
    528      * @param int $group_id (to handle Group Admin UI hook bp_group_admin_edit_after )
     528     * @param int $group_id (to handle Group Admin UI hook bp_group_admin_edit_after).
    529529     */
    530530    public function edit_screen_save( $group_id = 0 ) {
     
    633633
    634634    /**
    635      * Adds a meta-box to BuddyPress Group Admin UI
     635     * Adds a meta-box to BuddyPress Group Admin UI.
    636636     *
    637637     * @since 2.3.0 bbPress (r4814)
     
    649649
    650650    /**
    651      * Displays the bbPress meta-box in BuddyPress Group Admin UI
     651     * Displays the bbPress meta-box in BuddyPress Group Admin UI.
    652652     *
    653653     * @since 2.3.0 bbPress (r4814)
    654654     *
    655      * @param object $item (group object)
     655     * @param object $item (group object).
    656656     */
    657657    public function group_admin_ui_display_metabox( $item ) {
     
    662662
    663663    /**
    664      * Show forums and new forum form when creating a group
     664     * Show forums and new forum form when creating a group.
    665665     *
    666666     * @since 2.0.0 bbPress (r3465)
     
    692692
    693693    /**
    694      * Save the Group Forum data on create
     694     * Save the Group Forum data on create.
    695695     *
    696696     * @since 2.0.0 bbPress (r3465)
     
    781781
    782782    /**
    783      * Used to start an output buffer
     783     * Used to start an output buffer.
    784784     *
    785785     * @since 2.1.0 bbPress (r3746)
     
    790790
    791791    /**
    792      * Used to end an output buffer
     792     * Used to end an output buffer.
    793793     *
    794794     * @since 2.1.0 bbPress (r3746)
     
    799799
    800800    /**
    801      * Creating a group forum or category (including root for group)
     801     * Creating a group forum or category (including root for group).
    802802     *
    803803     * @since 2.1.0 bbPress (r3653)
     
    805805     * @param array $forum_args
    806806     *
    807      * @return void if no forum_id is available
     807     * @return void if no forum_id is available.
    808808     */
    809809    public function new_forum( $forum_args = array() ) {
     
    825825
    826826    /**
    827      * Removing a group forum or category (including root for group)
     827     * Removing a group forum or category (including root for group).
    828828     *
    829829     * @since 2.1.0 bbPress (r3653)
     
    831831     * @param array $forum_args
    832832     *
    833      * @return void if no forum_id is available
     833     * @return void if no forum_id is available.
    834834     */
    835835    public function remove_forum( $forum_args = array() ) {
     
    851851
    852852    /**
    853      * Listening to BuddyPress Group deletion to remove the forum
     853     * Listening to BuddyPress Group deletion to remove the forum.
    854854     *
    855855     * @since 2.3.0 bbPress (r4815)
    856856     *
    857      * @param int $group_id The group ID
     857     * @param int $group_id The group ID.
    858858     */
    859859    public function disconnect_forum_from_group( $group_id = 0 ) {
     
    888888     * Update forum attributes to match those of the associated group.
    889889     *
    890      * Fired whenever a group is saved
     890     * Fired whenever a group is saved.
    891891     *
    892892     * @since 2.6.7 bbPress (r7208)
     
    968968
    969969    /**
    970      * Toggle the enable_forum group setting on or off
     970     * Toggle the enable_forum group setting on or off.
    971971     *
    972972     * @since 2.3.0 bbPress (r4612)
    973973     *
    974      * @param int $group_id The group to toggle
    975      * @param bool $enabled True for on, false for off
    976      * @return False if group is not found, otherwise return the group
     974     * @param int $group_id The group to toggle.
     975     * @param bool $enabled True for on, false for off.
     976     * @return False if group is not found, otherwise return the group.
    977977     */
    978978    public function toggle_group_forum( $group_id = 0, $enabled = false ) {
     
    10071007
    10081008    /**
    1009      * Output the forums for a group in the edit screens
     1009     * Output the forums for a group in the edit screens.
    10101010     *
    10111011     * As of right now, bbPress only supports 1-to-1 group forum relationships.
     
    12411241
    12421242    /**
    1243      * Strip super stickies from the topic query
     1243     * Strip super stickies from the topic query.
    12441244     *
    12451245     * @since 2.3.0 bbPress (r4810)
    12461246     *
    12471247     * @access private
    1248      * @param array $super the super sticky post ID's
     1248     * @param array $super the super sticky post ID's.
    12491249     * @return array (empty)
    12501250     */
     
    12551255
    12561256    /**
    1257      * Unset the type super sticky from topic type
     1257     * Unset the type super sticky from topic type.
    12581258     *
    12591259     * @since 2.3.0 bbPress (r4810)
     
    12611261     * @access private
    12621262     * @param array $args
    1263      * @return array $args without the to-front link
     1263     * @return array $args without the to-front link.
    12641264     */
    12651265    public function unset_super_sticky( $args = array() ) {
     
    12711271
    12721272    /**
    1273      * Ugly preg_replace to hide the to front admin link
     1273     * Ugly preg_replace to hide the to front admin link.
    12741274     *
    12751275     * @since 2.3.0 bbPress (r4810)
     
    12781278     * @param string $retval
    12791279     * @param array $args
    1280      * @return string $retval without the to-front link
     1280     * @return string $retval without the to-front link.
    12811281     */
    12821282    public function hide_super_sticky_admin_link( $retval = '', $args = array() ) {
     
    12911291
    12921292    /**
    1293      * Redirect to the group forum screen
     1293     * Redirect to the group forum screen.
    12941294     *
    12951295     * @since 2.1.0 bbPress (r3653)
     
    13091309
    13101310    /**
    1311      * Redirect to the group forum screen
     1311     * Redirect to the group forum screen.
    13121312     *
    13131313     * @since 2.1.0 bbPress (r3653)
     
    13421342
    13431343    /**
    1344      * Redirect to the group admin forum edit screen
     1344     * Redirect to the group admin forum edit screen.
    13451345     *
    13461346     * @since 2.1.0 bbPress (r3653)
     
    15291529
    15301530    /**
    1531      * Maybe map a bbPress forum/topic/reply permalink to the corresponding group
     1531     * Maybe map a bbPress forum/topic/reply permalink to the corresponding group.
    15321532     *
    15331533     * @since 2.2.0 bbPress (r4266)
    15341534     *
    15351535     * @param int $post_id
    1536      * @return Bail early if not a group forum post
     1536     * @return Bail early if not a group forum post.
    15371537     * @return string
    15381538     */
     
    15851585
    15861586    /**
    1587      * Map a forum permalink to its corresponding group
     1587     * Map a forum permalink to its corresponding group.
    15881588     *
    15891589     * @since 2.1.0 bbPress (r3802)
     
    15981598
    15991599    /**
    1600      * Map a topic permalink to its group forum
     1600     * Map a topic permalink to its group forum.
    16011601     *
    16021602     * @since 2.1.0 bbPress (r3802)
     
    16111611
    16121612    /**
    1613      * Map a reply permalink to its group forum
     1613     * Map a reply permalink to its group forum.
    16141614     *
    16151615     * @since 2.1.0 bbPress (r3802)
     
    16241624
    16251625    /**
    1626      * Map a reply edit link to its group forum
     1626     * Map a reply edit link to its group forum.
    16271627     *
    16281628     * @since 2.2.0 bbPress (r4266)
     
    16431643
    16441644    /**
    1645      * Map a post link to its group forum
     1645     * Map a post link to its group forum.
    16461646     *
    16471647     * @since 2.2.0 bbPress (r4266)
     
    16571657
    16581658    /**
    1659      * Map a page link to its group forum
     1659     * Map a page link to its group forum.
    16601660     *
    16611661     * @since 2.2.0 bbPress (r4266)
     
    16711671
    16721672    /**
    1673      * Map a custom post type link to its group forum
     1673     * Map a custom post type link to its group forum.
    16741674     *
    16751675     * @since 2.2.0 bbPress (r4266)
     
    16861686
    16871687    /**
    1688      * Fix pagination of topics on forum view
     1688     * Fix pagination of topics on forum view.
    16891689     *
    16901690     * @since 2.2.0 bbPress (r4266)
     
    17061706
    17071707    /**
    1708      * Fix pagination of replies on topic view
     1708     * Fix pagination of replies on topic view.
    17091709     *
    17101710     * @since 2.2.0 bbPress (r4266)
     
    17321732     * @since 2.6.14
    17331733     *
    1734      * @param  object $query  Verified query object
    1735      * @param  string $type   Type of variable to compare to
    1736      * @return mixed  Verified object if valid, Default or null if invalid
     1734     * @param  object $query  Verified query object.
     1735     * @param  string $type   Type of variable to compare to.
     1736     * @return mixed  Verified object if valid, Default or null if invalid.
    17371737     */
    17381738    public function rewrite_pagination( $query, $type = '' ) {
  • trunk/src/includes/extend/buddypress/loader.php

    r7379 r7380  
    22
    33/**
    4  * bbPress BuddyPress Component Class
     4 * bbPress BuddyPress Component Class.
    55 *
    66 * bbPress and BuddyPress are designed to connect together seamlessly and
     
    2323if ( ! class_exists( 'BBP_Forums_Component' ) ) :
    2424/**
    25  * Loads Forums Component
     25 * Loads Forums Component.
    2626 *
    2727 * @since 2.1.0 bbPress (r3552)
     
    3333
    3434    /**
    35      * BuddyPress Members component shim
     35     * BuddyPress Members component shim.
    3636     *
    3737     * @since 2.0.0
     
    4242
    4343    /**
    44      * BuddyPress Activity component shim
     44     * BuddyPress Activity component shim.
    4545     *
    4646     * @since 2.0.0
     
    5151
    5252    /**
    53      * Start the forums component creation process
     53     * Start the forums component creation process.
    5454     *
    5555     * @since 2.1.0 bbPress (r3552)
     
    6868
    6969    /**
    70      * Include BuddyPress classes and functions
     70     * Include BuddyPress classes and functions.
    7171     */
    7272    public function includes( $includes = array() ) {
     
    111111
    112112    /**
    113      * Setup globals
     113     * Setup globals.
    114114     *
    115115     * The BP_FORUMS_SLUG constant is deprecated, and only used here for
     
    144144
    145145    /**
    146      * Setup the actions
     146     * Setup the actions.
    147147     *
    148148     * @since 2.0.0 bbPress (r3395)
     
    160160
    161161    /**
    162      * Instantiate classes for BuddyPress integration
     162     * Instantiate classes for BuddyPress integration.
    163163     *
    164164     * @since 2.0.0 bbPress (r3395)
     
    191191
    192192    /**
    193      * Setup BuddyBar navigation
     193     * Setup BuddyBar navigation.
    194194     *
    195195     * @since 2.1.0 bbPress (r3552)
     
    292292
    293293    /**
    294      * Set up the admin bar
     294     * Set up the admin bar.
    295295     *
    296296     * @since 2.1.0 bbPress (r3552)
     
    384384
    385385    /**
    386      * Sets up the title for pages and <title>
     386     * Sets up the title for pages and <title>.
    387387     *
    388388     * @since 2.1.0 bbPress (r3552)
  • trunk/src/includes/extend/buddypress/members.php

    r7311 r7380  
    22
    33/**
    4  * bbPress BuddyPress Members Class
     4 * bbPress BuddyPress Members Class.
    55 *
    66 * @package bbPress
     
    1313if ( ! class_exists( 'BBP_Forums_Members' ) ) :
    1414/**
    15  * Member profile modifications
     15 * Member profile modifications.
    1616 *
    1717 * @since 2.2.0 bbPress (r4395)
     
    2424
    2525    /**
    26      * Main constructor for modifying bbPress profile links
     26     * Main constructor for modifying bbPress profile links.
    2727     *
    2828     * @since 2.2.0 bbPress (r4395)
     
    3535
    3636    /**
    37      * Setup the actions
     37     * Setup the actions.
    3838     *
    3939     * @since 2.2.0 bbPress (r4395)
     
    6060
    6161    /**
    62      * Setup the filters
     62     * Setup the filters.
    6363     *
    6464     * @since 2.2.0 bbPress (r4395)
     
    8989
    9090    /**
    91      * Override bbPress profile URL with BuddyPress profile URL
     91     * Override bbPress profile URL with BuddyPress profile URL.
    9292     *
    9393     * @since 2.0.0 bbPress (r3401)
     
    102102
    103103    /**
    104      * Override bbPress topics created URL with BuddyPress profile URL
     104     * Override bbPress topics created URL with BuddyPress profile URL.
    105105     *
    106106     * @since 2.6.0 bbPress (r3721)
     
    115115
    116116    /**
    117      * Override bbPress replies created URL with BuddyPress profile URL
     117     * Override bbPress replies created URL with BuddyPress profile URL.
    118118     *
    119119     * @since 2.6.0 bbPress (r3721)
     
    128128
    129129    /**
    130      * Override bbPress favorites URL with BuddyPress profile URL
     130     * Override bbPress favorites URL with BuddyPress profile URL.
    131131     *
    132132     * @since 2.1.0 bbPress (r3721)
     
    141141
    142142    /**
    143      * Override bbPress subscriptions URL with BuddyPress profile URL
     143     * Override bbPress subscriptions URL with BuddyPress profile URL.
    144144     *
    145145     * @since 2.1.0 bbPress (r3721)
     
    154154
    155155    /**
    156      * Override bbPress engagements URL with BuddyPress profile URL
     156     * Override bbPress engagements URL with BuddyPress profile URL.
    157157     *
    158158     * @since 2.6.0 bbPress (r6320)
     
    173173     *
    174174     * @global WP_Query $wp_query
    175      * @return If not viewing your own profile
     175     * @return If not viewing your own profile.
    176176     */
    177177    public function set_member_forum_query_vars() {
     
    210210
    211211    /**
    212      * Private method used to concatenate user IDs and slugs into URLs
     212     * Private method used to concatenate user IDs and slugs into URLs.
    213213     *
    214214     * @since 2.6.0 bbPress (r6803)
  • trunk/src/includes/extend/buddypress/notifications.php

    r7378 r7380  
    22
    33/**
    4  * bbPress BuddyPress Notifications
     4 * bbPress BuddyPress Notifications.
    55 *
    66 * @package bbPress
     
    4444
    4545/**
    46  * Format the BuddyBar/Toolbar notifications
     46 * Format the BuddyBar/Toolbar notifications.
    4747 *
    4848 * @since 2.5.0 bbPress (r5155)
     
    193193
    194194/**
    195  * Mark notifications as read when reading a topic
     195 * Mark notifications as read when reading a topic.
    196196 *
    197197 * @since 2.5.0 bbPress (r5155)
    198198 *
    199  * @return If not trying to mark a notification as read
     199 * @return If not trying to mark a notification as read.
    200200 */
    201201function bbp_buddypress_mark_notifications( $action = '' ) {
  • trunk/src/includes/forums/capabilities.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Forum Capabilites
     4 * bbPress Forum Capabilities.
    55 *
    66 * Used to map forum capabilities to WordPress's existing capabilities.
     
    1111
    1212/**
    13  * Return forum capabilities
     13 * Return forum capabilities.
    1414 *
    1515 * @since 2.0.0 bbPress (r2593)
    1616 *
    17  * @return array Forum capabilities
     17 * @return array Forum capabilities.
    1818 */
    1919function bbp_get_forum_caps() {
     
    3535
    3636/**
    37  * Maps forum capabilities
     37 * Maps forum capabilities.
    3838 *
    3939 * @since 2.2.0 bbPress (r4242)
    4040 *
    41  * @param array $caps Capabilities for meta capability
    42  * @param string $cap Capability name
    43  * @param int $user_id User id
    44  * @param array $args Arguments
    45  * @return array Actual capabilities for meta capability
     41 * @param array $caps Capabilities for meta capability.
     42 * @param string $cap Capability name.
     43 * @param int $user_id User id.
     44 * @param array $args Arguments.
     45 * @return array Actual capabilities for meta capability.
    4646 */
    4747function bbp_map_forum_meta_caps( $caps = array(), $cap = '', $user_id = 0, $args = array() ) {
     
    236236 * @param int $forum_id Forum id.
    237237 *
    238  * @return bool Return true if user is moderator of forum
     238 * @return bool Return true if user is moderator of forum.
    239239 */
    240240function bbp_is_user_forum_moderator( $user_id = 0, $forum_id = 0 ) {
     
    260260 * @since 2.6.0 bbPress (r6426)
    261261 *
    262  * @param array $forum_ids Forum IDs to check if the user ID is a moderator of
    263  * @param int   $user_id   User ID to check if is a moderator of forums
     262 * @param array $forum_ids Forum IDs to check if the user ID is a moderator of.
     263 * @param int   $user_id   User ID to check if is a moderator of forums.
    264264 *
    265265 * @return array
  • trunk/src/includes/forums/functions.php

    r7379 r7380  
    1919 * @since 2.0.0 bbPress (r3349)
    2020 *
    21  * @param array $forum_data Forum post data
    22  * @param array $forum_meta Forum meta data
     21 * @param array $forum_data Forum post data.
     22 * @param array $forum_meta Forum meta data.
     23 *
     24 * @return int|false Forum ID on success, false on failure.
    2325 */
    2426function bbp_insert_forum( $forum_data = array(), $forum_meta = array() ) {
     
    121123
    122124/**
    123  * Handles the front end forum submission
    124  *
    125  * @param string $action The requested action to compare this function to
     125 * Handles the front end forum submission.
     126 *
     127 * @param string $action The requested action to compare this function to.
    126128 */
    127129function bbp_new_forum_handler( $action = '' ) {
     
    387389
    388390/**
    389  * Handles the front end edit forum submission
    390  *
    391  * @param string $action The requested action to compare this function to
     391 * Handles the front end edit forum submission.
     392 *
     393 * @param string $action The requested action to compare this function to.
    392394 */
    393395function bbp_edit_forum_handler( $action = '' ) {
     
    642644
    643645/**
    644  * Handle the saving of core forum metadata (Status, Visibility, and Type)
     646 * Handle the saving of core forum metadata (Status, Visibility, and Type).
    645647 *
    646648 * @since 2.1.0 bbPress (r3678)
    647649 *
    648  * @param int $forum_id
    649  * @return If forum ID is empty
     650 * @param int $forum_id.
     651 * @return If forum ID is empty.
    650652 */
    651653function bbp_save_forum_extras( $forum_id = 0 ) {
     
    714716
    715717        /**
    716          * Allow custom forum visibility save actions
     718         * Allow custom forum visibility save actions.
    717719         *
    718720         * @since 2.6.0 bbPress (r5855)
    719721         *
    720          * @param int    $forum_id       The forum ID
    721          * @param string $old_visibility The current forum visibility
    722          * @param string $new_visibility The new forum visibility
     722         * @param int    $forum_id       The forum ID.
     723         * @param string $old_visibility The current forum visibility.
     724         * @param string $new_visibility The new forum visibility.
    723725         */
    724726        do_action( 'bbp_update_forum_visibility', $forum_id, $old_visibility, $new_visibility );
     
    757759
    758760/**
    759  * Closes a forum
     761 * Closes a forum.
    760762 *
    761763 * @since 2.0.0 bbPress (r2746)
    762764 *
    763  * @param int $forum_id forum id
    764  * @return mixed False or {@link WP_Error} on failure, forum id on success
     765 * @param int $forum_id forum id.
     766 * @return mixed False or {@link WP_Error} on failure, forum id on success.
    765767 */
    766768function bbp_close_forum( $forum_id = 0 ) {
     
    778780
    779781/**
    780  * Opens a forum
     782 * Opens a forum.
    781783 *
    782784 * @since 2.0.0 bbPress (r2746)
    783785 *
    784  * @param int $forum_id forum id
    785  * @return mixed False or {@link WP_Error} on failure, forum id on success
     786 * @param int $forum_id forum id.
     787 * @return mixed False or {@link WP_Error} on failure, forum id on success.
    786788 */
    787789function bbp_open_forum( $forum_id = 0 ) {
     
    801803
    802804/**
    803  * Make the forum a category
     805 * Make the forum a category.
    804806 *
    805807 * @since 2.0.0 bbPress (r2746)
    806808 *
    807  * @param int $forum_id Optional. Forum id
    808  * @return bool False on failure, true on success
     809 * @param int $forum_id Optional. Forum id.
     810 * @return bool False on failure, true on success.
    809811 */
    810812function bbp_categorize_forum( $forum_id = 0 ) {
     
    822824
    823825/**
    824  * Remove the category status from a forum
     826 * Remove the category status from a forum.
    825827 *
    826828 * @since 2.0.0 bbPress (r2746)
    827829 *
    828  * @param int $forum_id Optional. Forum id
    829  * @return bool False on failure, true on success
     830 * @param int $forum_id Optional. Forum id.
     831 * @return bool False on failure, true on success.
    830832 */
    831833function bbp_normalize_forum( $forum_id = 0 ) {
     
    845847
    846848/**
    847  * Mark the forum as public
     849 * Mark the forum as public.
    848850 *
    849851 * @since 2.0.0 bbPress (r2746)
    850852 *
    851  * @param int $forum_id Optional. Forum id
    852  * @return bool False on failure, true on success
     853 * @param int $forum_id Optional. Forum id.
     854 * @return bool False on failure, true on success.
    853855 */
    854856function bbp_publicize_forum( $forum_id = 0, $current_visibility = '' ) {
     
    902904
    903905/**
    904  * Mark the forum as private
     906 * Mark the forum as private.
    905907 *
    906908 * @since 2.0.0 bbPress (r2746)
    907909 *
    908  * @param int $forum_id Optional. Forum id
    909  * @return bool False on failure, true on success
     910 * @param int $forum_id Optional. Forum id.
     911 * @return bool False on failure, true on success.
    910912 */
    911913function bbp_privatize_forum( $forum_id = 0, $current_visibility = '' ) {
     
    951953
    952954/**
    953  * Mark the forum as hidden
     955 * Mark the forum as hidden.
    954956 *
    955957 * @since 2.0.0 bbPress (r2996)
    956958 *
    957  * @param int $forum_id Optional. Forum id
    958  * @return bool False on failure, true on success
     959 * @param int $forum_id Optional. Forum id.
     960 * @return bool False on failure, true on success.
    959961 */
    960962function bbp_hide_forum( $forum_id = 0, $current_visibility = '' ) {
     
    10001002
    10011003/**
    1002  * Recaches the private and hidden forums
     1004 * Re-caches the private and hidden forums.
    10031005 *
    10041006 * @since 2.4.0 bbPress (r5017)
    10051007 *
    1006  * @return array An array of the status code and the message
     1008 * @return array An array of the status code and the message.
    10071009 */
    10081010function bbp_repair_forum_visibility() {
     
    10801082
    10811083/**
    1082  * Remove a deleted forum from all user subscriptions
     1084 * Remove a deleted forum from all user subscriptions.
    10831085 *
    10841086 * @since 2.5.0 bbPress (r5156)
    10851087 *
    1086  * @param int $forum_id Get the forum ID to remove
     1088 * @param int $forum_id Get the forum ID to remove.
    10871089 */
    10881090function bbp_remove_forum_from_all_subscriptions( $forum_id = 0 ) {
     
    11061108
    11071109/**
    1108  * Bump the total topic count of a forum
     1110 * Bump the total topic count of a forum.
    11091111 *
    11101112 * @since 2.1.0 bbPress (r3825)
     
    11701172 *
    11711173 * @param int $forum_id The forum id.
    1172  * @return void
    11731174 */
    11741175function bbp_increase_forum_topic_count( $forum_id = 0 ) {
     
    12011202 *
    12021203 * @param int $forum_id The forum id.
    1203  *
    1204  * @return void
    12051204 */
    12061205function bbp_decrease_forum_topic_count( $forum_id = 0 ) {
     
    12281227
    12291228/**
    1230  * Bump the total topic count of a forum
     1229 * Bump the total topic count of a forum.
    12311230 *
    12321231 * @since 2.1.0 bbPress (r3825)
     
    12921291 *
    12931292 * @param int $forum_id The forum id.
    1294  *
    1295  * @return void
    12961293 */
    12971294function bbp_increase_forum_topic_count_hidden( $forum_id = 0 ) {
     
    13241321 *
    13251322 * @param int $forum_id The forum id.
    1326  *
    1327  * @return void
    13281323 */
    13291324function bbp_decrease_forum_topic_count_hidden( $forum_id = 0 ) {
     
    13511346
    13521347/**
    1353  * Bump the total topic count of a forum
     1348 * Bump the total topic count of a forum.
    13541349 *
    13551350 * @since 2.1.0 bbPress (r3825)
    13561351 *
    13571352 * @param int $forum_id Optional. Forum id.
    1358  * @param int $difference Optional. Default 1
    1359  * @param bool $update_ancestors Optional. Default true
     1353 * @param int $difference Optional. Default 1.
     1354 * @param bool $update_ancestors Optional. Default true.
    13601355 *
    13611356 * @return int Forum topic count
     
    14101405
    14111406/**
    1412  * Bump the total topic count of a forum
     1407 * Bump the total topic count of a forum.
    14131408 *
    14141409 * @since 2.6.0 bbPress (r6922)
    14151410 *
    14161411 * @param int $forum_id Optional. Forum id.
    1417  * @param int $difference Optional. Default 1
    1418  * @param bool $update_ancestors Optional. Default true
     1412 * @param int $difference Optional. Default 1.
     1413 * @param bool $update_ancestors Optional. Default true.
    14191414 *
    14201415 * @return int Forum topic count
     
    14741469 *
    14751470 * @param int $forum_id The forum id.
    1476  *
    1477  * @return void
    14781471 */
    14791472function bbp_increase_forum_reply_count( $forum_id = 0 ) {
     
    15061499 *
    15071500 * @param int $forum_id The forum id.
    1508  *
    1509  * @return void
    15101501 */
    15111502function bbp_decrease_forum_reply_count( $forum_id = 0 ) {
     
    15381529 *
    15391530 * @param int $forum_id The forum id.
    1540  *
    1541  * @return void
    15421531 */
    15431532function bbp_increase_forum_reply_count_hidden( $forum_id = 0 ) {
     
    15701559 *
    15711560 * @param int $forum_id The forum id.
    1572  *
    1573  * @return void
    15741561 */
    15751562function bbp_decrease_forum_reply_count_hidden( $forum_id = 0 ) {
     
    16021589 *
    16031590 * @param int $topic_id The topic id.
    1604  *
    1605  * @return void
    16061591 */
    16071592function bbp_approved_unapproved_topic_update_forum_reply_count( $topic_id = 0 ) {
     
    16271612
    16281613/**
    1629  * Update the forum last topic id
     1614 * Update the forum last topic id.
    16301615 *
    16311616 * @since 2.0.0 bbPress (r2625)
     
    16331618 * @param int $forum_id Optional. Forum id.
    16341619 * @param int $topic_id Optional. Topic id.
    1635  * @return int Id of the forums most recent topic
     1620 * @return int Id of the forums most recent topic.
    16361621 */
    16371622function bbp_update_forum_last_topic_id( $forum_id = 0, $topic_id = 0 ) {
     
    16861671
    16871672/**
    1688  * Update the forum last reply id
     1673 * Update the forum last reply id.
    16891674 *
    16901675 * @since 2.0.0 bbPress (r2625)
     
    16921677 * @param int $forum_id Optional. Forum id.
    16931678 * @param int $reply_id Optional. Reply id.
    1694  * @return int Id of the forums most recent reply
     1679 * @return int Id of the forums most recent reply.
    16951680 */
    16961681function bbp_update_forum_last_reply_id( $forum_id = 0, $reply_id = 0 ) {
     
    17421727
    17431728/**
    1744  * Update the forum last active post id
     1729 * Update the forum last active post id.
    17451730 *
    17461731 * @since 2.0.0 bbPress (r2860)
     
    17481733 * @param int $forum_id Optional. Forum id.
    17491734 * @param int $active_id Optional. Active post id.
    1750  * @return int Id of the forums last active post
     1735 * @return int Id of the forums last active post.
    17511736 */
    17521737function bbp_update_forum_last_active_id( $forum_id = 0, $active_id = 0 ) {
     
    18001785
    18011786/**
    1802  * Update the forums last active date/time (aka freshness)
     1787 * Update the forums last active date/time (aka freshness).
    18031788 *
    18041789 * @since 2.0.0 bbPress (r2680)
     
    18071792 * @param string $new_time Optional. New time in mysql format.
    18081793 *
    1809  * @return string MySQL timestamp of last active topic or reply
     1794 * @return string MySQL timestamp of last active topic or reply.
    18101795 */
    18111796function bbp_update_forum_last_active_time( $forum_id = 0, $new_time = '' ) {
     
    18271812
    18281813/**
    1829  * Update the forum sub-forum count
     1814 * Update the forum sub-forum count.
    18301815 *
    18311816 * @since 2.0.0 bbPress (r2625)
    18321817 *
    1833  * @param int $forum_id Optional. Forum id
    1834  * @param int $subforums Optional. Number of subforums
    1835  * @return bool True on success, false on failure
     1818 * @param int $forum_id Optional. Forum id.
     1819 * @param int $subforums Optional. Number of subforums.
     1820 * @return bool True on success, false on failure.
    18361821 */
    18371822function bbp_update_forum_subforum_count( $forum_id = 0, $subforums = false ) {
     
    18501835
    18511836/**
    1852  * Adjust the total topic count of a forum
     1837 * Adjust the total topic count of a forum.
    18531838 *
    18541839 * @since 2.0.0 bbPress (r2464)
     
    18571842 *                       is a topic or a forum. If it's a topic, its parent,
    18581843 *                       i.e. the forum is automatically retrieved.
    1859  * @param bool $total_count Optional. To return the total count or normal count?
    1860  * @return int Forum topic count
     1844 * @param bool $total_count Optional. To return the total count or normal count.
     1845 * @return int Forum topic count.
    18611846 */
    18621847function bbp_update_forum_topic_count( $forum_id = 0 ) {
     
    18881873/**
    18891874 * Adjust the total hidden topic count of a forum (hidden includes trashed,
    1890  * spammed and pending topics)
     1875 * spammed and pending topics).
    18911876 *
    18921877 * @since 2.0.0 bbPress (r2888)
     
    18961881 * @param int $topic_count Optional. Set the topic count manually.
    18971882 *
    1898  * @return int Topic hidden topic count
     1883 * @return int Topic hidden topic count.
    18991884 */
    19001885function bbp_update_forum_topic_count_hidden( $forum_id = 0, $topic_count = false ) {
     
    19491934
    19501935/**
    1951  * Adjust the total reply count of a forum
     1936 * Adjust the total reply count of a forum.
    19521937 *
    19531938 * @since 2.0.0 bbPress (r2464)
    1954  * @since 2.6.0 bbPress (r5954) Replace direct queries with WP_Query() objects
     1939 * @since 2.6.0 bbPress (r5954) Replace direct queries with WP_Query() objects.
    19551940 *
    19561941 * @param int  $forum_id Optional. Forum id or topic id. It is checked whether it
     
    19581943 *                       i.e. the forum is automatically retrieved.
    19591944 *
    1960  * @return int Forum reply count
     1945 * @return int Forum reply count.
    19611946 */
    19621947function bbp_update_forum_reply_count( $forum_id = 0 ) {
     
    19901975
    19911976/**
    1992  * Adjust the total hidden reply count of a forum
     1977 * Adjust the total hidden reply count of a forum.
    19931978 *
    19941979 * @since 2.6.0 bbPress (r6922)
     
    19981983 *                       i.e. the forum is automatically retrieved.
    19991984 *
    2000  * @return int Forum reply count
     1985 * @return int Forum reply count.
    20011986 */
    20021987function bbp_update_forum_reply_count_hidden( $forum_id = 0 ) {
     
    21092094
    21102095/**
    2111  * Return an associative array of available topic statuses
     2096 * Return an associative array of available topic statuses.
    21122097 *
    21132098 * Developers note: these statuses are actually stored as meta data, and
     
    21162101 * @since 2.4.0 bbPress (r5059)
    21172102 *
    2118  * @param int $forum_id   Optional. Forum id.
     2103 * @param int $forum_id Optional. Forum id.
    21192104 *
    21202105 * @return array
     
    21342119
    21352120/**
    2136  * Return an associative array of forum types
     2121 * Return an associative array of forum type.
    21372122 *
    21382123 * @since 2.4.0 bbPress (r5059)
    21392124 *
    2140  * @param int $forum_id   Optional. Forum id.
     2125 * @param int $forum_id Optional. Forum id.
    21412126 *
    21422127 * @return array
     
    21632148 * @since 2.4.0 bbPress (r5059)
    21642149 *
    2165  * @param int $forum_id   Optional. Forum id.
     2150 * @param int $forum_id Optional. Forum id.
    21662151 *
    21672152 * @return array
     
    22172202
    22182203/**
    2219  * Returns the hidden forum ids
     2204 * Returns the hidden forum ids.
    22202205 *
    22212206 * Only hidden forum ids are returned. Public and private ids are not.
     
    22342219
    22352220/**
    2236  * Returns the private forum ids
     2221 * Returns the private forum ids.
    22372222 *
    22382223 * Only private forum ids are returned. Public and hidden ids are not.
     
    22562241 * @since 2.6.0 bbPress (r6425)
    22572242 *
    2258  * @return array Forum IDs to exclude, or an empty array
     2243 * @return array Forum IDs to exclude, or an empty array.
    22592244 */
    22602245function bbp_get_excluded_forum_ids() {
     
    22852270 * @since 2.0.0 bbPress (r3291)
    22862271 *
    2287  * @param string Optional. The type of value to return. (string|array|meta_query)
     2272 * @param string Optional. The type of value to return (string|array|meta_query).
    22882273 */
    22892274function bbp_exclude_forum_ids( $type = 'string' ) {
     
    24212406
    24222407/**
    2423  * Returns the forum's topic ids
    2424  *
    2425  * Only topics with published and closed statuses are returned
     2408 * Returns the forum's topic ids.
     2409 *
     2410 * Only topics with published and closed statuses are returned.
    24262411 *
    24272412 * @since 2.0.0 bbPress (r2908)
    24282413 *
    2429  * @param int $forum_id Forum id
     2414 * @param int $forum_id Forum id.
    24302415 */
    24312416function bbp_forum_query_topic_ids( $forum_id ) {
     
    24372422
    24382423/**
    2439  * Returns the forum's subforum ids
    2440  *
    2441  * Only forums with published status are returned
     2424 * Returns the forum's subforum ids.
     2425 *
     2426 * Only forums with published status are returned.
    24422427 *
    24432428 * @since 2.0.0 bbPress (r2908)
    24442429 *
    2445  * @param int $forum_id Forum id
     2430 * @param int $forum_id Forum id.
    24462431 */
    24472432function bbp_forum_query_subforum_ids( $forum_id ) {
     
    24532438
    24542439/**
    2455  * Returns the forum's last reply id
     2440 * Returns the forum's last reply id.
    24562441 *
    24572442 * @since 2.0.0 bbPress (r2908)
    2458  * @since 2.6.0 bbPress (r5954) Replace direct queries with WP_Query() objects
     2443 * @since 2.6.0 bbPress (r5954) Replace direct queries with WP_Query() objects.
    24592444 *
    24602445 * @param int $forum_id Forum id.
     
    25042489/**
    25052490 * Check if it's a hidden forum or a topic or reply of a hidden forum and if
    2506  * the user can't view it, then sets a 404
     2491 * the user can't view it, then sets a 404.
    25072492 *
    25082493 * @since 2.0.0 bbPress (r2996)
     
    25512536/**
    25522537 * Check if it's a private forum or a topic or reply of a private forum and if
    2553  * the user can't view it, then sets a 404
     2538 * the user can't view it, then sets a 404.
    25542539 *
    25552540 * @since 2.0.0 bbPress (r2996)
     
    25992584
    26002585/**
    2601  * Redirect if unauthorized user is attempting to edit a forum
     2586 * Redirect if unauthorized user is attempting to edit a forum.
    26022587 *
    26032588 * @since 2.1.0 bbPress (r3607)
     
    26172602
    26182603/**
    2619  * Delete all topics (and their replies) for a specific forum ID
     2604 * Delete all topics (and their replies) for a specific forum ID.
    26202605 *
    26212606 * @since 2.1.0 bbPress (r3668)
    26222607 *
    26232608 * @param int $forum_id
    2624  * @return If forum is not valid
    26252609 */
    26262610function bbp_delete_forum_topics( $forum_id = 0 ) {
     
    26682652
    26692653/**
    2670  * Trash all topics inside a forum
     2654 * Trash all topics inside a forum.
    26712655 *
    26722656 * @since 2.1.0 bbPress (r3668)
    26732657 *
    26742658 * @param int $forum_id
    2675  * @return If forum is not valid
    26762659 */
    26772660function bbp_trash_forum_topics( $forum_id = 0 ) {
     
    27362719
    27372720/**
    2738  * Untrash all topics inside a forum
     2721 * Untrash all topics inside a forum.
    27392722 *
    27402723 * @since 2.1.0 bbPress (r3668)
    27412724 *
    27422725 * @param int $forum_id
    2743  * @return If forum is not valid
    27442726 */
    27452727function bbp_untrash_forum_topics( $forum_id = 0 ) {
     
    27922774
    27932775/**
    2794  * Called before trashing a forum
     2776 * Called before trashing a forum.
    27952777 *
    27962778 * This function is supplemental to the actual forum being trashed which is
     
    28112793
    28122794/**
    2813  * Called before untrashing a forum
     2795 * Called before untrashing a forum.
    28142796 *
    28152797 * @since 2.1.0 bbPress (r3668)
     
    28282810
    28292811/**
    2830  * Called after deleting a forum
     2812 * Called after deleting a forum.
    28312813 *
    28322814 * Try not to use this action. All meta & taxonomy terms have already been
     
    28472829
    28482830/**
    2849  * Called after trashing a forum
     2831 * Called after trashing a forum.
    28502832 *
    28512833 * @since 2.1.0 bbPress (r3668)
     
    28622844
    28632845/**
    2864  * Called after untrashing a forum
     2846 * Called after untrashing a forum.
    28652847 *
    28662848 * @since 2.1.0 bbPress (r3668)
  • trunk/src/includes/forums/template.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Forum Template Tags
     4 * bbPress Forum Template Tags.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Output the unique id of the custom post type for forums
     16 * Output the unique id of the custom post type for forums.
    1717 *
    1818 * @since 2.0.0 bbPress (r2857)
     
    2323
    2424/**
    25  * Return the unique id of the custom post type for forums
     25 * Return the unique id of the custom post type for forums.
    2626 *
    2727 * @since 2.0.0 bbPress (r2857)
    2828 *
    29  * @return string The unique forum post type id
     29 * @return string The unique forum post type id.
    3030 */
    3131function bbp_get_forum_post_type() {
     
    3636
    3737/**
    38  * Return array of labels used by the forum post type
     38 * Return array of labels used by the forum post type.
    3939 *
    4040 * @since 2.5.0 bbPress (r5129)
     
    8585
    8686/**
    87  * Return array of forum post type rewrite settings
     87 * Return array of forum post type rewrite settings.
    8888 *
    8989 * @since 2.5.0 bbPress (r5129)
     
    104104
    105105/**
    106  * Return array of features the forum post type supports
     106 * Return array of features the forum post type supports.
    107107 *
    108108 * @since 2.5.0 bbPress (r5129)
     
    134134 * @param array $args All the arguments supported by {@link WP_Query}
    135135 *
    136  * @return object Multidimensional array of forum information
     136 * @return object Multidimensional array of forum information.
    137137 */
    138138function bbp_has_forums( $args = array() ) {
     
    191191
    192192/**
    193  * Whether there are more forums available in the loop
     193 * Whether there are more forums available in the loop.
    194194 *
    195195 * @since 2.0.0 bbPress (r2464)
    196196 *
    197  * @return object Forum information
     197 * @return object Forum information.
    198198 */
    199199function bbp_forums() {
     
    211211
    212212/**
    213  * Loads up the current forum in the loop
     213 * Loads up the current forum in the loop.
    214214 *
    215215 * @since 2.0.0 bbPress (r2464)
    216216 *
    217  * @return object Forum information
     217 * @return object Forum information.
    218218 */
    219219function bbp_the_forum() {
     
    224224
    225225/**
    226  * Output forum id
     226 * Output forum id.
    227227 *
    228228 * @since 2.0.0 bbPress (r2464)
    229229 *
    230  * @param $forum_id Optional. Used to check emptiness
     230 * @param $forum_id Optional. Used to check emptiness.
    231231 */
    232232function bbp_forum_id( $forum_id = 0 ) {
     
    235235
    236236/**
    237  * Return the forum id
     237 * Return the forum id.
    238238 *
    239239 * @since 2.0.0 bbPress (r2464)
    240240 *
    241  * @param $forum_id Optional. Used to check emptiness
    242  * @return int The forum id
     241 * @param $forum_id Optional. Used to check emptiness.
     242 * @return int The forum id.
    243243 */
    244244function bbp_get_forum_id( $forum_id = 0 ) {
     
    280280
    281281/**
    282  * Gets a forum
     282 * Gets a forum.
    283283 *
    284284 * @since 2.0.0 bbPress (r2787)
    285285 *
    286  * @param int|object $forum forum id or forum object
    287  * @param string $output Optional. OBJECT, ARRAY_A, or ARRAY_N. Default = OBJECT
    288  * @param string $filter Optional Sanitation filter. See {@link sanitize_post()}
    289  *
    290  * @return mixed Null if error or forum (in specified form) if success
     286 * @param int|object $forum forum id or forum object.
     287 * @param string $output Optional. OBJECT, ARRAY_A, or ARRAY_N. Default = OBJECT.
     288 * @param string $filter Optional Sanitation filter. See {@link sanitize_post()}.
     289 *
     290 * @return mixed Null if error or forum (in specified form) if success.
    291291 */
    292292function bbp_get_forum( $forum, $output = OBJECT, $filter = 'raw' ) {
     
    325325
    326326/**
    327  * Output the link to the forum
     327 * Output the link to the forum.
    328328 *
    329329 * @since 2.0.0 bbPress (r2464)
    330330 *
    331  * @param int $forum_id Optional. Forum id
     331 * @param int $forum_id Optional. Forum id.
    332332 * @param string $redirect_to Optional. Pass a redirect value for use with
    333333 *                              shortcodes and other fun things.
     
    338338
    339339/**
    340  * Return the link to the forum
     340 * Return the link to the forum.
    341341 *
    342342 * @since 2.0.0 bbPress (r2464)
    343343 *
    344  * @param int $forum_id Optional. Forum id
     344 * @param int $forum_id Optional. Forum id.
    345345 * @param string $redirect_to Optional. Pass a redirect value for use with
    346346 *                              shortcodes and other fun things.
    347347 *
    348  * @return string Permanent link to forum
     348 * @return string Permanent link to forum.
    349349 */
    350350function bbp_get_forum_permalink( $forum_id = 0, $redirect_to = '' ) {
     
    398398
    399399/**
    400  * Output the title of the forum
     400 * Output the title of the forum.
    401401 *
    402402 * @since 2.0.0 bbPress (r2464)
    403403 *
    404  * @param int $forum_id Optional. Forum id
     404 * @param int $forum_id Optional. Forum id.
    405405 */
    406406function bbp_forum_title( $forum_id = 0 ) {
     
    409409
    410410/**
    411  * Return the title of the forum
     411 * Return the title of the forum.
    412412 *
    413413 * @since 2.0.0 bbPress (r2464)
    414414 *
    415  * @param int $forum_id Optional. Forum id
    416  * @return string Title of forum
     415 * @param int $forum_id Optional. Forum id.
     416 * @return string Title of forum.
    417417 */
    418418function bbp_get_forum_title( $forum_id = 0 ) {
     
    426426
    427427/**
    428  * Output the forum archive title
     428 * Output the forum archive title.
    429429 *
    430430 * @since 2.0.0 bbPress (r3249)
    431431 *
    432  * @param string $title Default text to use as title
     432 * @param string $title Default text to use as title.
    433433 */
    434434function bbp_forum_archive_title( $title = '' ) {
     
    437437
    438438/**
    439  * Return the forum archive title
     439 * Return the forum archive title.
    440440 *
    441441 * @since 2.0.0 bbPress (r3249)
    442442 *
    443  * @param string $title Default text to use as title
    444  *
    445  * @return string The forum archive title
     443 * @param string $title Default text to use as title.
     444 *
     445 * @return string The forum archive title.
    446446 */
    447447function bbp_get_forum_archive_title( $title = '' ) {
     
    467467
    468468/**
    469  * Output the content of the forum
     469 * Output the content of the forum.
    470470 *
    471471 * @since 2.0.0 bbPress (r2780)
    472472 *
    473  * @param int $forum_id Optional. Topic id
     473 * @param int $forum_id Optional. Topic id.
    474474 */
    475475function bbp_forum_content( $forum_id = 0 ) {
     
    478478
    479479/**
    480  * Return the content of the forum
     480 * Return the content of the forum.
    481481 *
    482482 * @since 2.0.0 bbPress (r2780)
    483483 *
    484  * @param int $forum_id Optional. Topic id
    485  *
    486  * @return string Content of the forum
     484 * @param int $forum_id Optional. Topic id.
     485 *
     486 * @return string Content of the forum.
    487487 */
    488488function bbp_get_forum_content( $forum_id = 0 ) {
     
    501501
    502502/**
    503  * Allow forum rows to have administrative actions
     503 * Allow forum rows to have administrative actions.
    504504 *
    505505 * @since 2.1.0 bbPress (r3653)
    506506 *
    507  * @todo Links and filter
     507 * @todo Links and filter.
    508508 */
    509509function bbp_forum_row_actions() {
     
    512512
    513513/**
    514  * Output the forums last active ID
     514 * Output the forums last active ID.
    515515 *
    516516 * @since 2.0.0 bbPress (r2860)
    517517 *
    518  * @param int $forum_id Optional. Forum id
     518 * @param int $forum_id Optional. Forum id.
    519519 */
    520520function bbp_forum_last_active_id( $forum_id = 0 ) {
     
    523523
    524524/**
    525  * Return the forums last active ID
     525 * Return the forums last active ID.
    526526 *
    527527 * @since 2.0.0 bbPress (r2860)
    528528 *
    529  * @param int $forum_id Optional. Forum id
    530  *                        the last active id and forum id
    531  * @return int Forum's last active id
     529 * @param int $forum_id Optional. Forum id.
     530 *                        the last active id and forum id.
     531 * @return int Forum's last active id.
    532532 */
    533533function bbp_get_forum_last_active_id( $forum_id = 0 ) {
     
    540540
    541541/**
    542  * Output the forums last update date/time (aka freshness)
     542 * Output the forums last update date/time (aka freshness).
    543543 *
    544544 * @since 2.0.0 bbPress (r2464)
    545545 *
    546  * @param int $forum_id Optional. Forum id
     546 * @param int $forum_id Optional. Forum id.
    547547 */
    548548function bbp_forum_last_active_time( $forum_id = 0 ) {
     
    551551
    552552/**
    553  * Return the forums last update date/time (aka freshness)
     553 * Return the forums last update date/time (aka freshness).
    554554 *
    555555 * @since 2.0.0 bbPress (r2464)
    556556 *
    557  * @param int $forum_id Optional. Forum id
    558  * @return string Forum last update date/time (freshness)
     557 * @param int $forum_id Optional. Forum id.
     558 * @return string Forum last update date/time (freshness).
    559559 */
    560560function bbp_get_forum_last_active_time( $forum_id = 0 ) {
     
    605605 * @since 2.0.0 bbPress (r2625)
    606606 *
    607  * @param int $forum_id Optional. Forum id
     607 * @param int $forum_id Optional. Forum id.
    608608 */
    609609function bbp_get_forum_freshness_link( $forum_id = 0 ) {
     
    641641
    642642/**
    643  * Output parent ID of a forum, if exists
     643 * Output parent ID of a forum, if exists.
    644644 *
    645645 * @since 2.1.0 bbPress (r3675)
    646646 *
    647  * @param int $forum_id Forum ID
     647 * @param int $forum_id Forum ID.
    648648 */
    649649function bbp_forum_parent_id( $forum_id = 0 ) {
     
    652652
    653653/**
    654  * Return ID of forum parent, if exists
     654 * Return ID of forum parent, if exists.
    655655 *
    656656 * @since 2.1.0 bbPress (r3675)
    657657 *
    658  * @param int $forum_id Optional. Forum id
    659  * @return int Forum parent
     658 * @param int $forum_id Optional. Forum id.
     659 * @return int Forum parent id.
    660660 */
    661661function bbp_get_forum_parent_id( $forum_id = 0 ) {
     
    678678
    679679/**
    680  * Return array of parent forums
     680 * Return array of parent forums.
    681681 *
    682682 * @since 2.0.0 bbPress (r2625)
    683683 *
    684  * @param int $forum_id Optional. Forum id
    685  * @return array Forum ancestors
     684 * @param int $forum_id Optional. Forum id.
     685 * @return array Forum ancestors.
    686686 */
    687687function bbp_get_forum_ancestors( $forum_id = 0 ) {
     
    702702
    703703/**
    704  * Return subforums of given forum
     704 * Return subforums of given forum.
    705705 *
    706706 * @since 2.0.0 bbPress (r2747)
    707707 *
    708  * @param array $args All the arguments supported by {@link WP_Query}
    709  * @return mixed false if none, array of subs if yes
     708 * @param array $args All the arguments supported by {@link WP_Query}.
     709 * @return mixed false if none, array of subs if yes.
    710710 */
    711711function bbp_forum_get_subforums( $args = array() ) {
     
    748748
    749749/**
    750  * Output a list of forums (can be used to list subforums)
     750 * Output a list of forums (can be used to list subforums).
    751751 *
    752752 * @since 2.0.0 bbPress (r2708)
     
    862862
    863863/**
    864  * Output the forum subscription link
     864 * Output the forum subscription link.
    865865 *
    866866 * @since 2.5.0 bbPress (r5156)
     
    872872
    873873/**
    874  * Get the forum subscription link
    875  *
    876  * A custom wrapper for bbp_get_user_subscribe_link()
     874 * Get the forum subscription link.
     875 *
     876 * A custom wrapper for bbp_get_user_subscribe_link().
    877877 *
    878878 * @since 2.5.0 bbPress (r5156)
     
    916916
    917917/**
    918  * Output the forum's last topic id
     918 * Output the forum's last topic id.
    919919 *
    920920 * @since 2.0.0 bbPress (r2464)
    921921 *
    922  * @param int $forum_id Optional. Forum id
     922 * @param int $forum_id Optional. Forum id.
    923923 */
    924924function bbp_forum_last_topic_id( $forum_id = 0 ) {
     
    927927
    928928/**
    929  * Return the forum's last topic id
     929 * Return the forum's last topic id.
    930930 *
    931931 * @since 2.0.0 bbPress (r2464)
    932932 *
    933  * @param int $forum_id Optional. Forum id
    934  * @return int Forum's last topic id
     933 * @param int $forum_id Optional. Forum id.
     934 * @return int Forum's last topic id.
    935935 */
    936936function bbp_get_forum_last_topic_id( $forum_id = 0 ) {
     
    943943
    944944/**
    945  * Output the title of the last topic inside a forum
     945 * Output the title of the last topic inside a forum.
    946946 *
    947947 * @since 2.0.0 bbPress (r2625)
    948948 *
    949  * @param int $forum_id Optional. Forum id
     949 * @param int $forum_id Optional. Forum id.
    950950 */
    951951function bbp_forum_last_topic_title( $forum_id = 0 ) {
     
    954954
    955955/**
    956  * Return the title of the last topic inside a forum
     956 * Return the title of the last topic inside a forum.
    957957 *
    958958 * @since 2.0.0 bbPress (r2625)
    959959 *
    960  * @param int $forum_id Optional. Forum id
    961  * @return string Forum's last topic's title
     960 * @param int $forum_id Optional. Forum id.
     961 * @return string Forum's last topic's title.
    962962 */
    963963function bbp_get_forum_last_topic_title( $forum_id = 0 ) {
     
    973973
    974974/**
    975  * Output the link to the last topic in a forum
     975 * Output the link to the last topic in a forum.
    976976 *
    977977 * @since 2.0.0 bbPress (r2464)
    978978 *
    979  * @param int $forum_id Optional. Forum id
     979 * @param int $forum_id Optional. Forum id.
    980980 */
    981981function bbp_forum_last_topic_permalink( $forum_id = 0 ) {
     
    984984
    985985/**
    986  * Return the link to the last topic in a forum
     986 * Return the link to the last topic in a forum.
    987987 *
    988988 * @since 2.0.0 bbPress (r2464)
    989989 *
    990  * @param int $forum_id Optional. Forum id
    991  * @return string Permanent link to topic
     990 * @param int $forum_id Optional. Forum id.
     991 * @return string Permanent link to topic.
    992992 */
    993993function bbp_get_forum_last_topic_permalink( $forum_id = 0 ) {
     
    10011001
    10021002/**
    1003  * Return the author ID of the last topic of a forum
     1003 * Return the author ID of the last topic of a forum.
    10041004 *
    10051005 * @since 2.0.0 bbPress (r2625)
    10061006 *
    1007  * @param int $forum_id Optional. Forum id
    1008  * @return int Forum's last topic's author id
     1007 * @param int $forum_id Optional. Forum id.
     1008 * @return int Forum's last topic's author id.
    10091009 */
    10101010function bbp_get_forum_last_topic_author_id( $forum_id = 0 ) {
     
    10181018
    10191019/**
    1020  * Output link to author of last topic of forum
     1020 * Output link to author of last topic of forum.
    10211021 *
    10221022 * @since 2.0.0 bbPress (r2625)
    10231023 *
    1024  * @param int $forum_id Optional. Forum id
     1024 * @param int $forum_id Optional. Forum id.
    10251025 */
    10261026function bbp_forum_last_topic_author_link( $forum_id = 0 ) {
     
    10291029
    10301030/**
    1031  * Return link to author of last topic of forum
     1031 * Return link to author of last topic of forum.
    10321032 *
    10331033 * @since 2.0.0 bbPress (r2625)
    10341034 *
    1035  * @param int $forum_id Optional. Forum id
    1036  * @return string Forum's last topic's author link
     1035 * @param int $forum_id Optional. Forum id.
     1036 * @return string Forum's last topic's author link.
    10371037 */
    10381038function bbp_get_forum_last_topic_author_link( $forum_id = 0 ) {
     
    10481048
    10491049/**
    1050  * Output the forums last reply id
     1050 * Output the forums last reply id.
    10511051 *
    10521052 * @since 2.0.0 bbPress (r2464)
    10531053 *
    1054  * @param int $forum_id Optional. Forum id
     1054 * @param int $forum_id Optional. Forum id.
    10551055 */
    10561056function bbp_forum_last_reply_id( $forum_id = 0 ) {
     
    10591059
    10601060/**
    1061  * Return the forums last reply id
     1061 * Return the forums last reply id.
    10621062 *
    10631063 * @since 2.0.0 bbPress (r2464)
    10641064 *
    1065  * @param int $forum_id Optional. Forum id
    1066  * @return int Forum's last reply id
     1065 * @param int $forum_id Optional. Forum id.
     1066 * @return int Forum's last reply id.
    10671067 */
    10681068function bbp_get_forum_last_reply_id( $forum_id = 0 ) {
     
    10751075
    10761076/**
    1077  * Output the title of the last reply inside a forum
    1078  *
    1079  * @param int $forum_id Optional. Forum id
     1077 * Output the title of the last reply inside a forum.
     1078 *
     1079 * @param int $forum_id Optional. Forum id.
    10801080 */
    10811081function bbp_forum_last_reply_title( $forum_id = 0 ) {
     
    10841084
    10851085/**
    1086  * Return the title of the last reply inside a forum
    1087  *
    1088  * @param int $forum_id Optional. Forum id
     1086 * Return the title of the last reply inside a forum.
     1087 *
     1088 * @param int $forum_id Optional. Forum id.
    10891089 * @return string
    10901090 */
     
    10991099
    11001100/**
    1101  * Output the link to the last reply in a forum
     1101 * Output the link to the last reply in a forum.
    11021102 *
    11031103 * @since 2.0.0 bbPress (r2464)
    11041104 *
    1105  * @param int $forum_id Optional. Forum id
     1105 * @param int $forum_id Optional. Forum id.
    11061106 */
    11071107function bbp_forum_last_reply_permalink( $forum_id = 0 ) {
     
    11101110
    11111111/**
    1112  * Return the link to the last reply in a forum
     1112 * Return the link to the last reply in a forum.
    11131113 *
    11141114 * @since 2.0.0 bbPress (r2464)
    11151115 *
    1116  * @param int $forum_id Optional. Forum id
    1117  *
    1118  * @return string Permanent link to the forum's last reply
     1116 * @param int $forum_id Optional. Forum id.
     1117 *
     1118 * @return string Permanent link to the forum's last reply.
    11191119 */
    11201120function bbp_get_forum_last_reply_permalink( $forum_id = 0 ) {
     
    11281128
    11291129/**
    1130  * Output the url to the last reply in a forum
     1130 * Output the url to the last reply in a forum.
    11311131 *
    11321132 * @since 2.0.0 bbPress (r2683)
    11331133 *
    1134  * @param int $forum_id Optional. Forum id
     1134 * @param int $forum_id Optional. Forum id.
    11351135 */
    11361136function bbp_forum_last_reply_url( $forum_id = 0 ) {
     
    11391139
    11401140/**
    1141  * Return the url to the last reply in a forum
     1141 * Return the url to the last reply in a forum.
    11421142 *
    11431143 * @since 2.0.0 bbPress (r2683)
    11441144 *
    1145  * @param int $forum_id Optional. Forum id
    1146  * @return string Paginated URL to latest reply
     1145 * @param int $forum_id Optional. Forum id.
     1146 * @return string Paginated URL to latest reply.
    11471147 */
    11481148function bbp_get_forum_last_reply_url( $forum_id = 0 ) {
     
    11691169
    11701170/**
    1171  * Output author ID of last reply of forum
     1171 * Output author ID of last reply of forum.
    11721172 *
    11731173 * @since 2.0.0 bbPress (r2625)
    11741174 *
    1175  * @param int $forum_id Optional. Forum id
     1175 * @param int $forum_id Optional. Forum id.
    11761176 */
    11771177function bbp_forum_last_reply_author_id( $forum_id = 0 ) {
     
    11801180
    11811181/**
    1182  * Return author ID of last reply of forum
     1182 * Return author ID of last reply of forum.
    11831183 *
    11841184 * @since 2.0.0 bbPress (r2625)
    11851185 *
    1186  * @param int $forum_id Optional. Forum id
    1187  * @return int Forum's last reply author id
     1186 * @param int $forum_id Optional. Forum id.
     1187 * @return int Forum's last reply author id.
    11881188 */
    11891189function bbp_get_forum_last_reply_author_id( $forum_id = 0 ) {
     
    11971197
    11981198/**
    1199  * Output link to author of last reply of forum
     1199 * Output link to author of last reply of forum.
    12001200 *
    12011201 * @since 2.0.0 bbPress (r2625)
    12021202 *
    1203  * @param int $forum_id Optional. Forum id
     1203 * @param int $forum_id Optional. Forum id.
    12041204 */
    12051205function bbp_forum_last_reply_author_link( $forum_id = 0 ) {
     
    12081208
    12091209/**
    1210  * Return link to author of last reply of forum
     1210 * Return link to author of last reply of forum.
    12111211 *
    12121212 * @since 2.0.0 bbPress (r2625)
    12131213 *
    1214  * @param int $forum_id Optional. Forum id
    1215  * @return string Link to author of last reply of forum
     1214 * @param int $forum_id Optional. Forum id.
     1215 * @return string Link to author of last reply of forum.
    12161216 */
    12171217function bbp_get_forum_last_reply_author_link( $forum_id = 0 ) {
     
    12271227
    12281228/**
    1229  * Output the topics link of the forum
     1229 * Output the topics link of the forum.
    12301230 *
    12311231 * @since 2.0.0 bbPress (r2883)
    12321232 *
    1233  * @param int $forum_id Optional. Topic id
     1233 * @param int $forum_id Optional. Topic id.
    12341234 */
    12351235function bbp_forum_topics_link( $forum_id = 0 ) {
     
    12381238
    12391239/**
    1240  * Return the topics link of the forum
     1240 * Return the topics link of the forum.
    12411241 *
    12421242 * @since 2.0.0 bbPress (r2883)
    12431243 *
    1244  * @param int $forum_id Optional. Topic id
     1244 * @param int $forum_id Optional. Topic id.
    12451245 */
    12461246function bbp_get_forum_topics_link( $forum_id = 0 ) {
     
    12771277
    12781278/**
    1279  * Output total sub-forum count of a forum
     1279 * Output total sub-forum count of a forum.
    12801280 *
    12811281 * @since 2.0.0 bbPress (r2464)
    12821282 *
    1283  * @param int $forum_id Optional. Forum id to check
    1284  * @param boolean $integer Optional. Whether or not to format the result
     1283 * @param int $forum_id Optional. Forum id to check.
     1284 * @param boolean $integer Optional. Whether or not to format the result.
    12851285 */
    12861286function bbp_forum_subforum_count( $forum_id = 0, $integer = false ) {
     
    12891289
    12901290/**
    1291  * Return total subforum count of a forum
     1291 * Return total subforum count of a forum.
    12921292 *
    12931293 * @since 2.0.0 bbPress (r2464)
    12941294 *
    1295  * @param int $forum_id Optional. Forum id
    1296  * @param boolean $integer Optional. Whether or not to format the result
    1297  * @return int Forum's subforum count
     1295 * @param int $forum_id Optional. Forum id.
     1296 * @param boolean $integer Optional. Whether or not to format the result.
     1297 * @return int Forum's subforum count.
    12981298 */
    12991299function bbp_get_forum_subforum_count( $forum_id = 0, $integer = false ) {
     
    13081308
    13091309/**
    1310  * Output total topic count of a forum
     1310 * Output total topic count of a forum.
    13111311 *
    13121312 * @since 2.0.0 bbPress (r2464)
    13131313 *
    1314  * @param int $forum_id Optional. Forum id
     1314 * @param int $forum_id Optional. Forum id.
    13151315 * @param bool $total_count Optional. To get the total count or normal count?
    1316  * @param boolean $integer Optional. Whether or not to format the result
     1316 * @param boolean $integer Optional. Whether or not to format the result.
    13171317 */
    13181318function bbp_forum_topic_count( $forum_id = 0, $total_count = true, $integer = false ) {
     
    13211321
    13221322/**
    1323  * Return total topic count of a forum
     1323 * Return total topic count of a forum.
    13241324 *
    13251325 * @since 2.0.0 bbPress (r2464)
    13261326 *
    1327  * @param int $forum_id Optional. Forum id
     1327 * @param int $forum_id Optional. Forum id.
    13281328 * @param bool $total_count Optional. To get the total count or normal
    13291329 *                           count? Defaults to total.
    1330  * @param boolean $integer Optional. Whether or not to format the result
    1331  * @return int Forum topic count
     1330 * @param boolean $integer Optional. Whether or not to format the result.
     1331 * @return int Forum topic count.
    13321332 */
    13331333function bbp_get_forum_topic_count( $forum_id = 0, $total_count = true, $integer = false ) {
     
    13431343
    13441344/**
    1345  * Output total reply count of a forum
     1345 * Output total reply count of a forum.
    13461346 *
    13471347 * @since 2.0.0 bbPress (r2464)
    13481348 *
    1349  * @param int $forum_id Optional. Forum id
     1349 * @param int $forum_id Optional. Forum id.
    13501350 * @param bool $total_count Optional. To get the total count or normal count?
    1351  * @param boolean $integer Optional. Whether or not to format the result
     1351 * @param boolean $integer Optional. Whether or not to format the result.
    13521352 */
    13531353function bbp_forum_reply_count( $forum_id = 0, $total_count = true, $integer = false ) {
     
    13561356
    13571357/**
    1358  * Return total post count of a forum
     1358 * Return total post count of a forum.
    13591359 *
    13601360 * @since 2.0.0 bbPress (r2464)
    13611361 *
    1362  * @param int $forum_id Optional. Forum id
     1362 * @param int $forum_id Optional. Forum id.
    13631363 * @param bool $total_count Optional. To get the total count or normal
    13641364 *                           count?
    1365  * @param boolean $integer Optional. Whether or not to format the result
    1366  * @return int Forum reply count
     1365 * @param boolean $integer Optional. Whether or not to format the result.
     1366 * @return int Forum reply count.
    13671367 */
    13681368function bbp_get_forum_reply_count( $forum_id = 0, $total_count = true, $integer = false ) {
     
    13781378
    13791379/**
    1380  * Output total post count of a forum
     1380 * Output total post count of a forum.
    13811381 *
    13821382 * @since 2.0.0 bbPress (r2954)
    13831383 *
    1384  * @param int $forum_id Optional. Forum id
     1384 * @param int $forum_id Optional. Forum id.
    13851385 * @param bool $total_count Optional. To get the total count or normal count?
    1386  * @param boolean $integer Optional. Whether or not to format the result
     1386 * @param boolean $integer Optional. Whether or not to format the result.
    13871387 */
    13881388function bbp_forum_post_count( $forum_id = 0, $total_count = true, $integer = false ) {
     
    13911391
    13921392/**
    1393  * Return total post count of a forum
     1393 * Return total post count of a forum.
    13941394 *
    13951395 * @since 2.0.0 bbPress (r2954)
    13961396 *
    1397  * @param int $forum_id Optional. Forum id
     1397 * @param int $forum_id Optional. Forum id.
    13981398 * @param bool $total_count Optional. To get the total count or normal
    13991399 *                           count?
    1400  * @param boolean $integer Optional. Whether or not to format the result
    1401  * @return int Forum post count
     1400 * @param boolean $integer Optional. Whether or not to format the result.
     1401 * @return int Forum post count.
    14021402 */
    14031403function bbp_get_forum_post_count( $forum_id = 0, $total_count = true, $integer = false ) {
     
    14151415/**
    14161416 * Output total hidden topic count of a forum (hidden includes trashed, spammed,
    1417  * and pending topics)
     1417 * and pending topics).
    14181418 *
    14191419 * @since 2.0.0 bbPress (r2883)
    14201420 * @since 2.6.0 bbPress (r6922) Changed function signature to add total counts
    14211421 *
    1422  * @param int $forum_id Optional. Forum id
     1422 * @param int $forum_id Optional. Forum id.
    14231423 * @param bool $total_count Optional. To get the total count or normal count?
    1424  * @param boolean $integer Optional. Whether or not to format the result
     1424 * @param boolean $integer Optional. Whether or not to format the result.
    14251425 */
    14261426function bbp_forum_topic_count_hidden( $forum_id = 0, $total_count = true, $integer = null ) {
     
    14301430/**
    14311431 * Return total hidden topic count of a forum (hidden includes trashed,
    1432  * spammed and pending topics)
     1432 * spammed and pending topics).
    14331433 *
    14341434 * @since 2.0.0 bbPress (r2883)
    14351435 * @since 2.6.0 bbPress (r6922) Changed function signature to add total counts
    14361436 *
    1437  * @param int $forum_id Optional. Forum id
     1437 * @param int $forum_id Optional. Forum id.
    14381438 * @param bool $total_count Optional. To get the total count or normal count?
    1439  * @param boolean $integer Optional. Whether or not to format the result
    1440  * @return int Topic hidden topic count
     1439 * @param boolean $integer Optional. Whether or not to format the result.
     1440 * @return int Topic hidden topic count.
    14411441 */
    14421442function bbp_get_forum_topic_count_hidden( $forum_id = 0, $total_count = true, $integer = null ) {
     
    14531453/**
    14541454 * Output total hidden reply count of a forum (hidden includes trashed, spammed,
    1455  * and pending replies)
     1455 * and pending replies).
    14561456 *
    14571457 * @since 2.6.0 bbPress (r6922)
    14581458 *
    1459  * @param int $forum_id Optional. Forum id
     1459 * @param int $forum_id Optional. Forum id.
    14601460 * @param bool $total_count Optional. To get the total count or normal count?
    1461  * @param boolean $integer Optional. Whether or not to format the result
     1461 * @param boolean $integer Optional. Whether or not to format the result.
    14621462 */
    14631463function bbp_forum_reply_count_hidden( $forum_id = 0, $total_count = true, $integer = false ) {
     
    14671467/**
    14681468 * Return total hidden reply count of a forum (hidden includes trashed,
    1469  * spammed and pending replies)
     1469 * spammed and pending replies).
    14701470 *
    14711471 * @since 2.6.0 bbPress (r6922)
    14721472 *
    1473  * @param int $forum_id Optional. Forum id
     1473 * @param int $forum_id Optional. Forum id.
    14741474 * @param bool $total_count Optional. To get the total count or normal
    14751475 *                           count?
    1476  * @param boolean $integer Optional. Whether or not to format the result
    1477  * @return int Forum reply count
     1476 * @param boolean $integer Optional. Whether or not to format the result.
     1477 * @return int Forum reply count.
    14781478 */
    14791479function bbp_get_forum_reply_count_hidden( $forum_id = 0, $total_count = true, $integer = false ) {
     
    14891489
    14901490/**
    1491  * Output the status of the forum
     1491 * Output the status of the forum.
    14921492 *
    14931493 * @since 2.0.0 bbPress (r2667)
    14941494 *
    1495  * @param int $forum_id Optional. Forum id
     1495 * @param int $forum_id Optional. Forum id.
    14961496 */
    14971497function bbp_forum_status( $forum_id = 0 ) {
     
    15001500
    15011501/**
    1502  * Return the status of the forum
     1502 * Return the status of the forum.
    15031503 *
    15041504 * @since 2.0.0 bbPress (r2667)
    15051505 *
    1506  * @param int $forum_id Optional. Forum id
    1507  * @return string Status of forum
     1506 * @param int $forum_id Optional. Forum id.
     1507 * @return string Status of forum.
    15081508 */
    15091509function bbp_get_forum_status( $forum_id = 0 ) {
     
    15201520
    15211521/**
    1522  * Output the visibility of the forum
     1522 * Output the visibility of the forum.
    15231523 *
    15241524 * @since 2.0.0 bbPress (r2997)
    15251525 *
    1526  * @param int $forum_id Optional. Forum id
     1526 * @param int $forum_id Optional. Forum id.
    15271527 */
    15281528function bbp_forum_visibility( $forum_id = 0 ) {
     
    15311531
    15321532/**
    1533  * Return the visibility of the forum
     1533 * Return the visibility of the forum.
    15341534 *
    15351535 * @since 2.0.0 bbPress (r2997)
    15361536 *
    1537  * @param int $forum_id Optional. Forum id
    1538  * @return string Status of forum
     1537 * @param int $forum_id Optional. Forum id.
     1538 * @return string Status of forum.
    15391539 */
    15401540function bbp_get_forum_visibility( $forum_id = 0 ) {
     
    15471547
    15481548/**
    1549  * Output the type of the forum
     1549 * Output the type of the forum.
    15501550 *
    15511551 * @since 2.1.0 bbPress (r3563)
    15521552 *
    1553  * @param int $forum_id Optional. Forum id
     1553 * @param int $forum_id Optional. Forum id.
    15541554 */
    15551555function bbp_forum_type( $forum_id = 0 ) {
     
    15621562 * @since 2.1.0 bbPress (r3563)
    15631563 *
    1564  * @param int $forum_id Optional. Forum id
    1565  * @return bool Whether the forum is a category or not
     1564 * @param int $forum_id Optional. Forum id.
     1565 * @return bool Whether the forum is a category or not.
    15661566 */
    15671567function bbp_get_forum_type( $forum_id = 0 ) {
     
    15821582 * @since 2.0.0 bbPress (r2746)
    15831583 *
    1584  * @param int $forum_id Optional. Forum id
    1585  * @return bool Whether the forum is a category or not
     1584 * @param int $forum_id Optional. Forum id.
     1585 * @return bool Whether the forum is a category or not.
    15861586 */
    15871587function bbp_is_forum_category( $forum_id = 0 ) {
     
    15991599 * @since 2.0.0 bbPress (r2746)
    16001600 *
    1601  * @param int $forum_id Optional. Forum id
     1601 * @param int $forum_id Optional. Forum id.
    16021602 * @param bool $check_ancestors Check if the ancestors are open (only
    1603  *                               if they're a category)
    1604  * @return bool Whether the forum is open or not
     1603 *                               if they're a category).
     1604 * @return bool Whether the forum is open or not.
    16051605 */
    16061606function bbp_is_forum_open( $forum_id = 0, $check_ancestors = true ) {
     
    16131613 * @since 2.0.0 bbPress (r2746)
    16141614 *
    1615  * @param int $forum_id Optional. Forum id
     1615 * @param int $forum_id Optional. Forum id.
    16161616 * @param bool $check_ancestors Check if the ancestors are closed (only
    1617  *                               if they're a category)
    1618  * @return bool True if closed, false if not
     1617 *                               if they're a category).
     1618 * @return bool True if closed, false if not.
    16191619 */
    16201620function bbp_is_forum_closed( $forum_id = 0, $check_ancestors = true ) {
     
    16311631
    16321632/**
    1633  * Check if the forum status is a specific one, also maybe checking ancestors
     1633 * Check if the forum status is a specific one, also maybe checking ancestors.
    16341634 *
    16351635 * @since 2.6.0 bbPress (r5499)
    16361636 *
    1637  * @param bool $status_name The forum status name to check
    1638  * @param bool $check_ancestors Check the forum ancestors
     1637 * @param bool $status_name The forum status name to check.
     1638 * @param bool $check_ancestors Check the forum ancestors.
    16391639 * @param string $operator The logical operation to perform.
    16401640 *      'OR' means only one forum from the tree needs to match;
    16411641 *      'AND' means all forums must match. The default is 'AND'.
    1642  * @return bool True if match, false if not
     1642 * @return bool True if match, false if not.
    16431643 */
    16441644function bbp_is_forum_status( $forum_id, $status_name, $check_ancestors = true, $operator = 'AND' ) {
     
    17051705 * @since 2.0.0 bbPress (r2997)
    17061706 *
    1707  * @param int $forum_id Optional. Forum id
    1708  * @param bool $check_ancestors Check if the ancestors are public
    1709  * @return bool True if closed, false if not
     1707 * @param int $forum_id Optional. Forum id.
     1708 * @param bool $check_ancestors Check if the ancestors are public.
     1709 * @return bool True if closed, false if not.
    17101710 */
    17111711function bbp_is_forum_public( $forum_id = 0, $check_ancestors = true ) {
     
    17261726 * @since 2.0.0 bbPress (r2746)
    17271727 *
    1728  * @param int $forum_id Optional. Forum id
    1729  * @param bool $check_ancestors Check if the ancestors are private
    1730  * @return bool True if private, false if not
     1728 * @param int $forum_id Optional. Forum id.
     1729 * @param bool $check_ancestors Check if the ancestors are private.
     1730 * @return bool True if private, false if not.
    17311731 */
    17321732function bbp_is_forum_private( $forum_id = 0, $check_ancestors = true ) {
     
    17471747 * @since 2.0.0 bbPress (r2997)
    17481748 *
    1749  * @param int $forum_id Optional. Forum id
     1749 * @param int $forum_id Optional. Forum id.
    17501750 * @param bool $check_ancestors Check if the ancestors are private (only if
    1751  *                               they're a category)
    1752  * @return bool True if hidden, false if not
     1751 *                               they're a category).
     1752 * @return bool True if hidden, false if not.
    17531753 */
    17541754function bbp_is_forum_hidden( $forum_id = 0, $check_ancestors = true ) {
     
    17651765
    17661766/**
    1767  * Check the forum visibility ID
     1767 * Check the forum visibility ID.
    17681768 *
    17691769 * @since 2.6.0 bbPress (r5499)
    17701770 *
    1771  * @param int $forum_id Optional. Forum id
    1772  * @param bool $status_name The post status name to check
    1773  * @param bool $check_ancestors Check the forum ancestors
     1771 * @param int $forum_id Optional. Forum id.
     1772 * @param bool $status_name The post status name to check.
     1773 * @param bool $check_ancestors Check the forum ancestors.
    17741774 * @param string $operator The logical operation to perform.
    17751775 *      'OR' means only one forum from the tree needs to match;
    17761776 *      'AND' means all forums must match. The default is 'AND'.
    1777  * @return bool True if match, false if not
     1777 * @return bool True if match, false if not.
    17781778 */
    17791779function bbp_is_forum_visibility( $forum_id, $status_name, $check_ancestors = true, $operator = 'AND' ) {
     
    18381838
    18391839/**
    1840  * Output the author ID of the forum
     1840 * Output the author ID of the forum.
    18411841 *
    18421842 * @since 2.1.0 bbPress (r3675)
    18431843 *
    1844  * @param int $forum_id Optional. Forum id
     1844 * @param int $forum_id Optional. Forum id.
    18451845 */
    18461846function bbp_forum_author_id( $forum_id = 0 ) {
     
    18491849
    18501850/**
    1851  * Return the author ID of the forum
     1851 * Return the author ID of the forum.
    18521852 *
    18531853 * @since 2.1.0 bbPress (r3675)
    18541854 *
    1855  * @param int $forum_id Optional. Forum id
    1856  *
    1857  * @return string Author of forum
     1855 * @param int $forum_id Optional. Forum id.
     1856 *
     1857 * @return string Author of forum.
    18581858 */
    18591859function bbp_get_forum_author_id( $forum_id = 0 ) {
     
    18661866
    18671867/**
    1868  * Output the author of the forum
     1868 * Output the author of the forum.
    18691869 *
    18701870 * @since 2.1.0 bbPress (r3675)
    18711871 *
    1872  * @param int $forum_id Optional. Forum id
     1872 * @param int $forum_id Optional. Forum id.
    18731873 */
    18741874function bbp_forum_author_display_name( $forum_id = 0 ) {
     
    18771877
    18781878/**
    1879  * Return the author of the forum
     1879 * Return the author of the forum.
    18801880 *
    18811881 * @since 2.1.0 bbPress (r3675)
    18821882 *
    1883  * @param int $forum_id Optional. Forum id
    1884  * @return string Author of forum
     1883 * @param int $forum_id Optional. Forum id.
     1884 * @return string Author of forum.
    18851885 */
    18861886function bbp_get_forum_author_display_name( $forum_id = 0 ) {
     
    19601960
    19611961/**
    1962  * Output the row class of a forum
     1962 * Output the row class of a forum.
    19631963 *
    19641964 * @since 2.0.0 bbPress (r2667)
    19651965 *
    19661966 * @param int $forum_id Optional. Forum ID.
    1967  * @param array Extra classes you can pass when calling this function
     1967 * @param array Extra classes you can pass when calling this function.
    19681968 */
    19691969function bbp_forum_class( $forum_id = 0, $classes = array() ) {
     
    19721972
    19731973/**
    1974  * Return the row class of a forum
     1974 * Return the row class of a forum.
    19751975 *
    19761976 * @since 2.0.0 bbPress (r2667)
    19771977 *
    1978  * @param int $forum_id Optional. Forum ID
    1979  * @param array Extra classes you can pass when calling this function
    1980  * @return string Row class of the forum
     1978 * @param int $forum_id Optional. Forum ID.
     1979 * @param array Extra classes you can pass when calling this function.
     1980 * @return string Row class of the forum.
    19811981 */
    19821982function bbp_get_forum_class( $forum_id = 0, $classes = array() ) {
     
    20482048 * @since 2.0.0 bbPress (r2860)
    20492049 *
    2050  * @param array $args Arguments passed to alter output
     2050 * @param array $args Arguments passed to alter output.
    20512051 */
    20522052function bbp_single_forum_description( $args = array() ) {
     
    20652065 *  - after: After the text
    20662066 *  - size: Size of the avatar
    2067  * @return string Filtered forum description
     2067 * @return string Filtered forum description.
    20682068 */
    20692069function bbp_get_single_forum_description( $args = array() ) {
     
    21722172
    21732173/**
    2174  * Output the value of forum title field
     2174 * Output the value of forum title field.
    21752175 *
    21762176 * @since 2.1.0 bbPress (r3551)
     
    21812181
    21822182/**
    2183  * Return the value of forum title field
     2183 * Return the value of forum title field.
    21842184 *
    21852185 * @since 2.1.0 bbPress (r3551)
    21862186 *
    2187  * @return string Value of forum title field
     2187 * @return string Value of forum title field.
    21882188 */
    21892189function bbp_get_form_forum_title() {
     
    22072207
    22082208/**
    2209  * Output the value of forum content field
     2209 * Output the value of forum content field.
    22102210 *
    22112211 * @since 2.1.0 bbPress (r3551)
     
    22162216
    22172217/**
    2218  * Return the value of forum content field
     2218 * Return the value of forum content field.
    22192219 *
    22202220 * @since 2.1.0 bbPress (r3551)
    22212221 *
    2222  * @return string Value of forum content field
     2222 * @return string Value of forum content field.
    22232223 */
    22242224function bbp_get_form_forum_content() {
     
    22422242
    22432243/**
    2244  * Output value of forum moderators field
     2244 * Output value of forum moderators field.
    22452245 *
    22462246 * @since 2.6.0 bbPress (r5837)
     
    22512251
    22522252/**
    2253  * Return value of forum moderators field
     2253 * Return value of forum moderators field.
    22542254 *
    22552255 * @since 2.6.0 bbPress (r5837)
    22562256 *
    2257  * @return string Value of forum mods field
     2257 * @return string Value of forum mods field.
    22582258 */
    22592259function bbp_get_form_forum_moderators() {
     
    22932293
    22942294/**
    2295  * Output value of forum parent
     2295 * Output value of forum parent.
    22962296 *
    22972297 * @since 2.1.0 bbPress (r3551)
     
    23022302
    23032303/**
    2304  * Return value of forum parent
     2304 * Return value of forum parent.
    23052305 *
    23062306 * @since 2.1.0 bbPress (r3551)
    23072307 *
    2308  * @return string Value of topic content field
     2308 * @return string Value of topic content field.
    23092309 */
    23102310function bbp_get_form_forum_parent() {
     
    23282328
    23292329/**
    2330  * Output value of forum type
     2330 * Output value of forum type.
    23312331 *
    23322332 * @since 2.1.0 bbPress (r3563)
     
    23372337
    23382338/**
    2339  * Return value of forum type
     2339 * Return value of forum type.
    23402340 *
    23412341 * @since 2.1.0 bbPress (r3563)
    23422342 *
    2343  * @return string Value of topic content field
     2343 * @return string Value of topic content field.
    23442344 */
    23452345function bbp_get_form_forum_type() {
     
    23632363
    23642364/**
    2365  * Output value of forum visibility
     2365 * Output value of forum visibility.
    23662366 *
    23672367 * @since 2.1.0 bbPress (r3563)
     
    23722372
    23732373/**
    2374  * Return value of forum visibility
     2374 * Return value of forum visibility.
    23752375 *
    23762376 * @since 2.1.0 bbPress (r3563)
    23772377 *
    2378  * @return string Value of topic content field
     2378 * @return string Value of topic content field.
    23792379 */
    23802380function bbp_get_form_forum_visibility() {
     
    23982398
    23992399/**
    2400  * Output checked value of forum subscription
     2400 * Output checked value of forum subscription.
    24012401 *
    24022402 * @since 2.5.0 bbPress (r5156)
     
    24072407
    24082408/**
    2409  * Return checked value of forum subscription
     2409 * Return checked value of forum subscription.
    24102410 *
    24112411 * @since 2.5.0 bbPress (r5156)
    24122412 *
    2413  * @return string Checked value of forum subscription
     2413 * @return string Checked value of forum subscription.
    24142414 */
    24152415function bbp_get_form_forum_subscribed() {
     
    24422442
    24432443/**
    2444  * Output value forum type dropdown
     2444 * Output value forum type dropdown.
    24452445 *
    24462446 * @since 2.1.0 bbPress (r3563)
     
    24572457
    24582458/**
    2459  * Return the forum type dropdown
     2459 * Return the forum type dropdown.
    24602460 *
    24612461 * @since 2.1.0 bbPress (r3563)
     
    25292529
    25302530/**
    2531  * Output value forum status dropdown
     2531 * Output value forum status dropdown.
    25322532 *
    25332533 * @since 2.1.0 bbPress (r3563)
     
    25442544
    25452545/**
    2546  * Return the forum status dropdown
     2546 * Return the forum status dropdown.
    25472547 *
    25482548 * @since 2.1.0 bbPress (r3563)
     
    25532553 *  - forum_id: Forum id
    25542554 *  - selected: Override the selected option
    2555  * @return string HTML select list for selecting forum status
     2555 * @return string HTML select list for selecting forum status.
    25562556 */
    25572557function bbp_get_form_forum_status_dropdown( $args = array() ) {
     
    26162616
    26172617/**
    2618  * Output value forum visibility dropdown
     2618 * Output value forum visibility dropdown.
    26192619 *
    26202620 * @since 2.1.0 bbPress (r3563)
     
    26312631
    26322632/**
    2633  * Return the forum visibility dropdown
     2633 * Return the forum visibility dropdown.
    26342634 *
    26352635 * @since 2.1.0 bbPress (r3563)
     
    26402640 *  - forum_id: Forum id
    26412641 *  - selected: Override the selected option
    2642  * @return string HTML select list for selecting forum visibility
     2642 * @return string HTML select list for selecting forum visibility.
    26432643 */
    26442644function bbp_get_form_forum_visibility_dropdown( $args = array() ) {
     
    27122712 * @since 2.6.0 bbPress (r5558)
    27132713 *
    2714  * @return boolean True if is a post request with valid nonce
     2714 * @return boolean True if is a post request with valid nonce.
    27152715 */
    27162716function bbp_is_forum_form_post_request() {
     
    27372737
    27382738/**
    2739  * Output the link for the forum feed
     2739 * Output the link for the forum feed.
    27402740 *
    27412741 * @since 2.0.0 bbPress (r3172)
     
    27482748
    27492749/**
    2750  * Retrieve the link for the forum feed
     2750 * Retrieve the link for the forum feed.
    27512751 *
    27522752 * @since 2.0.0 bbPress (r3172)
     
    27942794
    27952795/**
    2796  * Output the link for the forum replies feed
     2796 * Output the link for the forum replies feed.
    27972797 *
    27982798 * @since 2.0.0 bbPress (r3172)
     
    28052805
    28062806/**
    2807  * Retrieve the link for the forum replies feed
     2807 * Retrieve the link for the forum replies feed.
    28082808 *
    28092809 * @since 2.0.0 bbPress (r3172)
  • trunk/src/includes/replies/capabilities.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Reply Capabilites
     4 * bbPress Reply Capabilities.
    55 *
    66 * Used to map reply capabilities to WordPress's existing capabilities.
     
    1111
    1212/**
    13  * Return reply capabilities
     13 * Return reply capabilities.
    1414 *
    1515 * @since 2.0.0 bbPress (r2593)
    1616 *
    17  * @return array Reply capabilities
     17 * @return array Reply capabilities.
    1818 */
    1919function bbp_get_reply_caps() {
     
    4040
    4141/**
    42  * Maps topic capabilities
     42 * Maps topic capabilities.
    4343 *
    4444 * @since 2.2.0 bbPress (r4242)
     
    4949 * @param array  $args    Arguments.
    5050 *
    51  * @return array Actual capabilities for meta capability
     51 * @return array Actual capabilities for meta capability.
    5252 */
    5353function bbp_map_reply_meta_caps( $caps = array(), $cap = '', $user_id = 0, $args = array() ) {
  • trunk/src/includes/replies/functions.php

    r7379 r7380  
    1919 * @since 2.0.0 bbPress (r3349)
    2020 *
    21  * @param array $reply_data Forum post data
    22  * @param array $reply_meta Forum meta data
     21 * @param array $reply_data Forum post data.
     22 * @param array $reply_meta Forum meta data.
     23 *
     24 * @return int|false Reply ID on success, false on failure.
    2325 */
    2426function bbp_insert_reply( $reply_data = array(), $reply_meta = array() ) {
     
    103105 * @param int $topic_id The topic id.
    104106 * @param int $forum_id The forum id.
    105  *
    106  * @return void
    107107 */
    108108function bbp_insert_reply_update_counts( $reply_id = 0, $topic_id = 0, $forum_id = 0 ) {
     
    123123
    124124/**
    125  * Handles the front end reply submission
     125 * Handles the front end reply submission.
    126126 *
    127127 * @since 2.0.0 bbPress (r2574)
     
    129129 * @param string $action The requested action to compare this function to
    130130 *                    id, anonymous data, reply author, edit (false), and
    131  *                    the reply to id
     131 *                    the reply to id.
    132132 */
    133133function bbp_new_reply_handler( $action = '' ) {
     
    528528
    529529/**
    530  * Handles the front end edit reply submission
     530 * Handles the front end edit reply submission.
    531531 *
    532532 * @param string $action The requested action to compare this function to
    533  *                    id, anonymous data, reply author, bool true (for edit),
    534  *                    and the reply to id
     533 *                       id, anonymous data, reply author, bool true (for edit),
     534 *                       and the reply to id.
    535535 */
    536536function bbp_edit_reply_handler( $action = '' ) {
     
    847847
    848848/**
    849  * Handle all the extra meta stuff from posting a new reply or editing a reply
    850  *
    851  * @param int $reply_id Optional. Reply id
    852  * @param int $topic_id Optional. Topic id
    853  * @param int $forum_id Optional. Forum id
     849 * Handle all the extra meta stuff from posting a new reply or editing a reply.
     850 *
     851 * @param int $reply_id Optional. Reply id.
     852 * @param int $topic_id Optional. Topic id.
     853 * @param int $forum_id Optional. Forum id.
    854854 * @param array $anonymous_data Optional - if it's an anonymous post. Do not
    855855 *                              supply if supplying $author_id. Should be
    856  *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
    857  * @param int $author_id Author id
     856 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}.
     857 * @param int $author_id Author id.
    858858 * @param bool $is_edit Optional. Is the post being edited? Defaults to false.
    859  * @param int $reply_to Optional. Reply to id
     859 * @param int $reply_to Optional. Reply to id.
    860860 */
    861861function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $author_id = 0, $is_edit = false, $reply_to = 0 ) {
     
    953953
    954954/**
    955  * Walk up the ancestor tree from the current reply, and update all the counts
     955 * Walk up the ancestor tree from the current reply, and update all the counts.
    956956 *
    957957 * @since 2.0.0 bbPress (r2884)
    958958 *
    959  * @param int $reply_id Optional. Reply id
    960  * @param string $last_active_time Optional. Last active time
    961  * @param int $forum_id Optional. Forum id
    962  * @param int $topic_id Optional. Topic id
     959 * @param int $reply_id Optional. Reply id.
     960 * @param string $last_active_time Optional. Last active time.
     961 * @param int $forum_id Optional. Forum id.
     962 * @param int $topic_id Optional. Topic id.
    963963 * @param bool $refresh If set to true, unsets all the previous parameters.
    964  *                       Defaults to true
     964 *                       Defaults to true.
    965965 */
    966966function bbp_update_reply_walker( $reply_id, $last_active_time = '', $forum_id = 0, $topic_id = 0, $refresh = true ) {
     
    10631063
    10641064/**
    1065  * Update the reply with its forum id it is in
     1065 * Update the reply with its forum id it is in.
    10661066 *
    10671067 * @since 2.0.0 bbPress (r2855)
    10681068 *
    1069  * @param int $reply_id Optional. Reply id to update
    1070  * @param int $forum_id Optional. Forum id
    1071  * @return bool The forum id of the reply
     1069 * @param int $reply_id Optional. Reply id to update.
     1070 * @param int $forum_id Optional. Forum id.
     1071 * @return bool The forum id of the reply.
    10721072 */
    10731073function bbp_update_reply_forum_id( $reply_id = 0, $forum_id = 0 ) {
     
    11061106
    11071107/**
    1108  * Update the reply with its topic id it is in
     1108 * Update the reply with its topic id it is in.
    11091109 *
    11101110 * @since 2.0.0 bbPress (r2855)
    11111111 *
    1112  * @param int $reply_id Optional. Reply id to update
    1113  * @param int $topic_id Optional. Topic id
    1114  * @return bool The topic id of the reply
     1112 * @param int $reply_id Optional. Reply id to update.
     1113 * @param int $topic_id Optional. Topic id.
     1114 * @return bool The topic id of the reply.
    11151115 */
    11161116function bbp_update_reply_topic_id( $reply_id = 0, $topic_id = 0 ) {
     
    11491149
    11501150/*
    1151  * Update the meta data with its parent reply-to id, of a reply
     1151 * Update the meta data with its parent reply-to id, of a reply.
    11521152 *
    11531153 * @since 2.4.0 bbPress (r4944)
    11541154 *
    1155  * @param int $reply_id Reply id to update
    1156  * @param int $reply_to Optional. Reply to id
    1157  * @return bool The parent reply id of the reply
     1155 * @param int $reply_id Reply id to update.
     1156 * @param int $reply_to Optional. Reply to id.
     1157 * @return bool The parent reply id of the reply.
    11581158 */
    11591159function bbp_update_reply_to( $reply_id = 0, $reply_to = 0 ) {
     
    11811181
    11821182/**
    1183  * Get all ancestors to a reply
     1183 * Get all ancestors to a reply.
    11841184 *
    11851185 * Because settings can be changed, this function does not care if hierarchical
     
    12321232
    12331233/**
    1234  * Update the revision log of the reply
     1234 * Update the revision log of the reply.
    12351235 *
    12361236 * @since 2.0.0 bbPress (r2782)
     
    12411241 *  - reason: Reason for editing
    12421242 *  - revision_id: Revision id
    1243  * @return mixed False on failure, true on success
     1243 * @return mixed False on failure, true on success.
    12441244 */
    12451245function bbp_update_reply_revision_log( $args = array() ) {
     
    12781278
    12791279/**
    1280  * Move reply handler
    1281  *
    1282  * Handles the front end move reply submission
     1280 * Move reply handler.
     1281 *
     1282 * Handles the front end move reply submission.
    12831283 *
    12841284 * @since 2.3.0 bbPress (r4521)
    12851285 *
    1286  * @param string $action The requested action to compare this function to
     1286 * @param string $action The requested action to compare this function to.
    12871287 */
    12881288function bbp_move_reply_handler( $action = '' ) {
     
    15221522
    15231523/**
    1524  * Fix counts on reply move
     1524 * Fix counts on reply move.
    15251525 *
    15261526 * When a reply is moved, update the counts of source and destination topic
     
    15291529 * @since 2.3.0 bbPress (r4521)
    15301530 *
    1531  * @param int $move_reply_id Move reply id
    1532  * @param int $source_topic_id Source topic id
    1533  * @param int $destination_topic_id Destination topic id
     1531 * @param int $move_reply_id Move reply id.
     1532 * @param int $source_topic_id Source topic id.
     1533 * @param int $destination_topic_id Destination topic id.
    15341534 */
    15351535function bbp_move_reply_count( $move_reply_id, $source_topic_id, $destination_topic_id ) {
     
    15601560/**
    15611561 * Handles the front end spamming/unspamming and trashing/untrashing/deleting of
    1562  * replies
     1562 * replies.
    15631563 *
    15641564 * @since 2.0.0 bbPress (r2740)
    15651565 *
    1566  * @param string $action The requested action to compare this function to
     1566 * @param string $action The requested action to compare this function to.
    15671567 */
    15681568function bbp_toggle_reply_handler( $action = '' ) {
     
    16291629
    16301630/**
    1631  * Do the actual reply toggling
     1631 * Do the actual reply toggling.
    16321632 *
    16331633 * This function is used by `bbp_toggle_reply_handler()` to do the actual heavy
     
    17361736
    17371737/**
    1738  * Return an associative array of available reply statuses
     1738 * Return an associative array of available reply statuses.
    17391739 *
    17401740 * @since 2.6.0 bbPress (r5399)
    17411741 *
    1742  * @param int $reply_id   Optional. Reply id.
     1742 * @param int $reply_id Optional. Reply id.
    17431743 *
    17441744 * @return array
     
    17601760
    17611761/**
    1762  * Return array of available reply toggle actions
     1762 * Return array of available reply toggle actions.
    17631763 *
    17641764 * @since 2.6.0 bbPress (r6133)
    17651765 *
    1766  * @param int $reply_id   Optional. Reply id.
     1766 * @param int $reply_id Optional. Reply id.
    17671767 *
    17681768 * @return array
     
    18191819
    18201820/**
    1821  * Marks a reply as spam
     1821 * Marks a reply as spam.
    18221822 *
    18231823 * @since 2.0.0 bbPress (r2740)
    18241824 *
    1825  * @param int $reply_id Reply id
    1826  * @return mixed False or {@link WP_Error} on failure, reply id on success
     1825 * @param int $reply_id Reply id.
     1826 * @return mixed False or {@link WP_Error} on failure, reply id on success.
    18271827 */
    18281828function bbp_spam_reply( $reply_id = 0 ) {
     
    18621862
    18631863/**
    1864  * Unspams a reply
     1864 * Unspams a reply.
    18651865 *
    18661866 * @since 2.0.0 bbPress (r2740)
    18671867 *
    1868  * @param int $reply_id Reply id
    1869  * @return mixed False or {@link WP_Error} on failure, reply id on success
     1868 * @param int $reply_id Reply id.
     1869 * @return mixed False or {@link WP_Error} on failure, reply id on success.
    18701870 */
    18711871function bbp_unspam_reply( $reply_id = 0 ) {
     
    19101910
    19111911/**
    1912  * Approves a reply
     1912 * Approves a reply.
    19131913 *
    19141914 * @since 2.6.0 bbPress (r5506)
    19151915 *
    1916  * @param int $reply_id Reply id
    1917  * @return mixed False or {@link WP_Error} on failure, reply id on success
     1916 * @param int $reply_id Reply id.
     1917 * @return mixed False or {@link WP_Error} on failure, reply id on success.
    19181918 */
    19191919function bbp_approve_reply( $reply_id = 0 ) {
     
    19561956
    19571957/**
    1958  * Unapproves a reply
     1958 * Unapproves a reply.
    19591959 *
    19601960 * @since 2.6.0 bbPress (r5506)
    19611961 *
    1962  * @param int $reply_id Reply id
    1963  * @return mixed False or {@link WP_Error} on failure, reply id on success
     1962 * @param int $reply_id Reply id.
     1963 * @return mixed False or {@link WP_Error} on failure, reply id on success.
    19641964 */
    19651965function bbp_unapprove_reply( $reply_id = 0 ) {
     
    20012001
    20022002/**
    2003  * Called before deleting a reply
     2003 * Called before deleting a reply.
     2004 *
     2005 * @since 2.0.0 bbPress (r2895)
    20042006 */
    20052007function bbp_delete_reply( $reply_id = 0 ) {
     
    20142016
    20152017/**
    2016  * Called before trashing a reply
     2018 * Called before trashing a reply.
     2019 *
     2020 * @since 2.0.0 bbPress (r2895)
    20172021 */
    20182022function bbp_trash_reply( $reply_id = 0 ) {
     
    20272031
    20282032/**
    2029  * Called before untrashing (restoring) a reply
     2033 * Called before untrashing (restoring) a reply.
     2034 *
     2035 * @since 2.0.0 bbPress (r2895)
    20302036 */
    20312037function bbp_untrash_reply( $reply_id = 0 ) {
     
    20422048
    20432049/**
    2044  * Called after deleting a reply
     2050 * Called after deleting a reply.
    20452051 *
    20462052 * @since 2.0.0 bbPress (r2993)
     
    20572063
    20582064/**
    2059  * Called after trashing a reply
     2065 * Called after trashing a reply.
    20602066 *
    20612067 * @since 2.0.0 bbPress (r2993)
     
    20722078
    20732079/**
    2074  * Called after untrashing (restoring) a reply
     2080 * Called after untrashing (restoring) a reply.
    20752081 *
    20762082 * @since 2.0.0 bbPress (r2993)
     
    20892095
    20902096/**
    2091  * Return the replies per page setting
     2097 * Return the replies per page setting.
    20922098 *
    20932099 * @since 2.0.0 bbPress (r3540)
    20942100 *
    2095  * @param int $default Default replies per page (15)
     2101 * @param int $default Default replies per page (15).
    20962102 * @return int
    20972103 */
     
    21112117
    21122118/**
    2113  * Return the replies per RSS page setting
     2119 * Return the replies per RSS page setting.
    21142120 *
    21152121 * @since 2.0.0 bbPress (r3540)
    21162122 *
    2117  * @param int $default Default replies per page (25)
     2123 * @param int $default Default replies per page (25).
    21182124 * @return int
    21192125 */
     
    21352141
    21362142/**
    2137  * Check if autoembeds are enabled and hook them in if so
     2143 * Check if auto-embeds are enabled and hook them in if so.
    21382144 *
    21392145 * @since 2.1.0 bbPress (r3752)
     
    21522158
    21532159/**
    2154  * Used by bbp_has_replies() to add the lead topic post to the posts loop
     2160 * Used by bbp_has_replies() to add the lead topic post to the posts loop.
    21552161 *
    21562162 * This function filters the 'post_where' of the WP_Query, and changes the query
     
    23552361
    23562362/**
    2357  * Redirect if unauthorized user is attempting to edit a reply
     2363 * Redirect if unauthorized user is attempting to edit a reply.
    23582364 *
    23592365 * @since 2.1.0 bbPress (r3605)
     
    24812487 *
    24822488 * @since 2.4.0 bbPress (r4944)
    2483  * @since 2.6.0 bbPress (r6245) Always false on user profile reply pages
    2484  *
    2485  * @param bool $default Optional. Default value true
     2489 * @since 2.6.0 bbPress (r6245) Always false on user profile reply pages.
     2490 *
     2491 * @param bool $default Optional. Default value true.
    24862492 *
    24872493 * @return bool Are replies threaded?
     
    25042510
    25052511/**
    2506  * List threaded replies
     2512 * List threaded replies.
    25072513 *
    25082514 * @since 2.4.0 bbPress (r4944)
     
    25622568
    25632569/**
    2564  * Validate a `reply_to` field for hierarchical replies
     2570 * Validate a `reply_to` field for hierarchical replies.
    25652571 *
    25662572 * Checks for 2 scenarios:
  • trunk/src/includes/replies/template.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Reply Template Tags
     4 * bbPress Reply Template Tags.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Return the unique id of the custom post type for replies
     16 * Return the unique id of the custom post type for replies.
    1717 *
    1818 * @since 2.0.0 bbPress (r2857)
     
    2424
    2525/**
    26  * Return the unique id of the custom post type for replies
     26 * Return the unique id of the custom post type for replies.
    2727 *
    2828 * @since 2.0.0 bbPress (r2857)
    2929 *
    30  *                        post type id
    31  * @return string The unique reply post type id
     30 * @return string The unique reply post type id.
    3231 */
    3332function bbp_get_reply_post_type() {
     
    3837
    3938/**
    40  * Return array of labels used by the reply post type
     39 * Return array of labels used by the reply post type.
    4140 *
    4241 * @since 2.5.0 bbPress (r5129)
     
    8786
    8887/**
    89  * Return array of reply post type rewrite settings
     88 * Return array of reply post type rewrite settings.
    9089 *
    9190 * @since 2.5.0 bbPress (r5129)
     
    106105
    107106/**
    108  * Return array of features the reply post type supports
     107 * Return array of features the reply post type supports.
    109108 *
    110109 * @since 2.5.0 bbPress (r5129)
     
    128127
    129128/**
    130  * The main reply loop. WordPress makes this easy for us
     129 * The main reply loop. WordPress makes this easy for us.
    131130 *
    132131 * @since 2.0.0 bbPress (r2553)
    133132 *
    134  * @param array $args All the arguments supported by {@link WP_Query}
    135  * @return object Multidimensional array of reply information
     133 * @param array $args All the arguments supported by {@link WP_Query}.
     134 * @return object Multidimensional array of reply information.
    136135 */
    137136function bbp_has_replies( $args = array() ) {
     
    275274
    276275/**
    277  * Whether there are more replies available in the loop
     276 * Whether there are more replies available in the loop.
    278277 *
    279278 * @since 2.0.0 bbPress (r2553)
    280279 *
    281  * @return object Replies information
     280 * @return object Replies information.
    282281 */
    283282function bbp_replies() {
     
    295294
    296295/**
    297  * Loads up the current reply in the loop
     296 * Loads up the current reply in the loop.
    298297 *
    299298 * @since 2.0.0 bbPress (r2553)
    300299 *
    301  * @return object Reply information
     300 * @return object Reply information.
    302301 */
    303302function bbp_the_reply() {
     
    306305
    307306/**
    308  * Output reply id
     307 * Output reply id.
    309308 *
    310309 * @since 2.0.0 bbPress (r2553)
    311310 *
    312  * @param $reply_id Optional. Used to check emptiness
     311 * @param $reply_id Optional. Used to check emptiness.
    313312 */
    314313function bbp_reply_id( $reply_id = 0 ) {
     
    317316
    318317/**
    319  * Return the id of the reply in a replies loop
     318 * Return the id of the reply in a replies loop.
    320319 *
    321320 * @since 2.0.0 bbPress (r2553)
    322321 *
    323  * @param $reply_id Optional. Used to check emptiness
    324  * @return int The reply id
     322 * @param $reply_id Optional. Used to check emptiness.
     323 * @return int The reply id.
    325324 */
    326325function bbp_get_reply_id( $reply_id = 0 ) {
     
    358357
    359358/**
    360  * Gets a reply
     359 * Gets a reply.
    361360 *
    362361 * @since 2.0.0 bbPress (r2787)
    363362 *
    364  * @param int|object $reply reply id or reply object
    365  * @param string $output Optional. OBJECT, ARRAY_A, or ARRAY_N. Default = OBJECT
    366  * @param string $filter Optional Sanitation filter. See {@link sanitize_post()}
    367  * @return mixed Null if error or reply (in specified form) if success
     363 * @param int|object $reply reply id or reply object.
     364 * @param string $output Optional. OBJECT, ARRAY_A, or ARRAY_N. Default = OBJECT.
     365 * @param string $filter Optional Sanitation filter. See {@link sanitize_post()}.
     366 * @return mixed Null if error or reply (in specified form) if success.
    368367 */
    369368function bbp_get_reply( $reply, $output = OBJECT, $filter = 'raw' ) {
     
    402401
    403402/**
    404  * Output the link to the reply in the reply loop
     403 * Output the link to the reply in the reply loop.
    405404 *
    406405 * @since 2.0.0 bbPress (r2553)
    407406 *
    408  * @param int $reply_id Optional. Reply id
     407 * @param int $reply_id Optional. Reply id.
    409408 */
    410409function bbp_reply_permalink( $reply_id = 0 ) {
     
    413412
    414413/**
    415  * Return the link to the reply
     414 * Return the link to the reply.
    416415 *
    417416 * @since 2.0.0 bbPress (r2553)
    418417 *
    419  * @param int $reply_id Optional. Reply id
    420  *
    421  * @return string Permanent link to reply
     418 * @param int $reply_id Optional. Reply id.
     419 *
     420 * @return string Permanent link to reply.
    422421 */
    423422function bbp_get_reply_permalink( $reply_id = 0 ) {
     
    429428
    430429/**
    431  * Output the paginated url to the reply in the reply loop
     430 * Output the paginated url to the reply in the reply loop.
    432431 *
    433432 * @since 2.0.0 bbPress (r2679)
    434433 *
    435  * @param int $reply_id Optional. Reply id
     434 * @param int $reply_id Optional. Reply id.
    436435 */
    437436function bbp_reply_url( $reply_id = 0 ) {
     
    440439
    441440/**
    442  * Return the paginated url to the reply in the reply loop
     441 * Return the paginated url to the reply in the reply loop.
    443442 *
    444443 * @since 2.0.0 bbPress (r2679)
    445444 *
    446  * @param int $reply_id Optional. Reply id
     445 * @param int $reply_id Optional. Reply id.
    447446 * @param string $redirect_to Optional. Pass a redirect value for use with
    448447 *                              shortcodes and other fun things.
    449  * @return string Link to reply relative to paginated topic
     448 * @return string Link to reply relative to paginated topic.
    450449 */
    451450function bbp_get_reply_url( $reply_id = 0, $redirect_to = '' ) {
     
    521520
    522521/**
    523  * Output the title of the reply
     522 * Output the title of the reply.
    524523 *
    525524 * @since 2.0.0 bbPress (r2553)
    526525 *
    527  * @param int $reply_id Optional. Reply id
     526 * @param int $reply_id Optional. Reply id.
    528527 */
    529528function bbp_reply_title( $reply_id = 0 ) {
     
    532531
    533532/**
    534  * Return the title of the reply
     533 * Return the title of the reply.
    535534 *
    536535 * @since 2.0.0 bbPress (r2553)
    537536 *
    538  * @param int $reply_id Optional. Reply id
    539  * @return string Title of reply
     537 * @param int $reply_id Optional. Reply id.
     538 * @return string Title of reply.
    540539 */
    541540function bbp_get_reply_title( $reply_id = 0 ) {
     
    553552 * @since 2.5.0 bbPress (r5177)
    554553 *
    555  * @param string $post_title Required. Reply Title
    556  * @param int $post_id Required. Reply ID
    557  * @return string Title of reply
     554 * @param string $post_title Required. Reply Title.
     555 * @param int $post_id Required. Reply ID.
     556 * @return string Title of reply.
    558557 */
    559558function bbp_get_reply_title_fallback( $post_title = '', $post_id = 0 ) {
     
    579578
    580579/**
    581  * Output the content of the reply
     580 * Output the content of the reply.
    582581 *
    583582 * @since 2.0.0 bbPress (r2553)
    584583 *
    585  * @param int $reply_id Optional. reply id
     584 * @param int $reply_id Optional. reply id.
    586585 */
    587586function bbp_reply_content( $reply_id = 0 ) {
     
    590589
    591590/**
    592  * Return the content of the reply
     591 * Return the content of the reply.
    593592 *
    594593 * @since 2.0.0 bbPress (r2780)
    595594 *
    596  * @param int $reply_id Optional. reply id
    597  * @return string Content of the reply
     595 * @param int $reply_id Optional. reply id.
     596 * @return string Content of the reply.
    598597 */
    599598function bbp_get_reply_content( $reply_id = 0 ) {
     
    612611
    613612/**
    614  * Output the excerpt of the reply
     613 * Output the excerpt of the reply.
    615614 *
    616615 * @since 2.0.0 bbPress (r2751)
    617616 *
    618  * @param int $reply_id Optional. Reply id
    619  * @param int $length Optional. Length of the excerpt. Defaults to 100 letters
     617 * @param int $reply_id Optional. Reply id.
     618 * @param int $length Optional. Length of the excerpt. Defaults to 100 letters.
    620619 */
    621620function bbp_reply_excerpt( $reply_id = 0, $length = 100 ) {
     
    624623
    625624/**
    626  * Return the excerpt of the reply
     625 * Return the excerpt of the reply.
    627626 *
    628627 * @since 2.0.0 bbPress (r2751)
    629628 *
    630  * @param int $reply_id Optional. Reply id
     629 * @param int $reply_id Optional. Reply id.
    631630 * @param int $length Optional. Length of the excerpt. Defaults to 100
    632  *                     letters
    633  * @return string Reply Excerpt
     631 *                     letters.
     632 * @return string Reply Excerpt.
    634633 */
    635634function bbp_get_reply_excerpt( $reply_id = 0, $length = 100 ) {
     
    661660
    662661/**
    663  * Output the post date and time of a reply
     662 * Output the post date and time of a reply.
    664663 *
    665664 * @since 2.2.0 bbPress (r4155)
    666665 *
    667666 * @param int $reply_id Optional. Reply id.
    668  * @param bool $humanize Optional. Humanize output using time_since
    669  * @param bool $gmt Optional. Use GMT
     667 * @param bool $humanize Optional. Humanize output using time_since.
     668 * @param bool $gmt Optional. Use GMT.
    670669 */
    671670function bbp_reply_post_date( $reply_id = 0, $humanize = false, $gmt = false ) {
     
    674673
    675674/**
    676  * Return the post date and time of a reply
     675 * Return the post date and time of a reply.
    677676 *
    678677 * @since 2.2.0 bbPress (r4155)
    679678 *
    680679 * @param int $reply_id Optional. Reply id.
    681  * @param bool $humanize Optional. Humanize output using time_since
    682  * @param bool $gmt Optional. Use GMT
     680 * @param bool $humanize Optional. Humanize output using time_since.
     681 * @param bool $gmt Optional. Use GMT.
    683682 * @return string
    684683 */
     
    706705
    707706/**
    708  * Append revisions to the reply content
     707 * Append revisions to the reply content.
    709708 *
    710709 * @since 2.0.0 bbPress (r2782)
    711710 *
    712  * @param string $content Optional. Content to which we need to append the revisions to
    713  * @param int $reply_id Optional. Reply id
    714  * @return string Content with the revisions appended
     711 * @param string $content Optional. Content to which we need to append the revisions to.
     712 * @param int $reply_id Optional. Reply id.
     713 * @return string Content with the revisions appended.
    715714 */
    716715function bbp_reply_content_append_revisions( $content = '', $reply_id = 0 ) {
     
    729728
    730729/**
    731  * Output the revision log of the reply
     730 * Output the revision log of the reply.
    732731 *
    733732 * @since 2.0.0 bbPress (r2782)
    734733 *
    735  * @param int $reply_id Optional. Reply id
     734 * @param int $reply_id Optional. Reply id.
    736735 */
    737736function bbp_reply_revision_log( $reply_id = 0 ) {
     
    740739
    741740/**
    742  * Return the formatted revision log of the reply
     741 * Return the formatted revision log of the reply.
    743742 *
    744743 * @since 2.0.0 bbPress (r2782)
    745744 *
    746  * @param int $reply_id Optional. Reply id
    747  * @return string Revision log of the reply
     745 * @param int $reply_id Optional. Reply id.
     746 * @return string Revision log of the reply.
    748747 */
    749748function bbp_get_reply_revision_log( $reply_id = 0 ) {
     
    812811
    813812/**
    814  * Return the raw revision log of the reply
     813 * Return the raw revision log of the reply.
    815814 *
    816815 * @since 2.0.0 bbPress (r2782)
    817816 *
    818  * @param int $reply_id Optional. Reply id
    819  * @return string Raw revision log of the reply
     817 * @param int $reply_id Optional. Reply id.
     818 * @return string Raw revision log of the reply.
    820819 */
    821820function bbp_get_reply_raw_revision_log( $reply_id = 0 ) {
     
    831830
    832831/**
    833  * Return the revisions of the reply
     832 * Return the revisions of the reply.
    834833 *
    835834 * @since 2.0.0 bbPress (r2782)
    836835 *
    837  * @param int $reply_id Optional. Reply id
    838  * @return WP_Post[]|int[] reply revisions
     836 * @param int $reply_id Optional. Reply id.
     837 * @return WP_Post[]|int[] reply revisions.
    839838 */
    840839function bbp_get_reply_revisions( $reply_id = 0 ) {
     
    847846
    848847/**
    849  * Return the revision count of the reply
     848 * Return the revision count of the reply.
    850849 *
    851850 * @since 2.0.0 bbPress (r2782)
    852851 *
    853  * @param int $reply_id Optional. Reply id
    854  * @param boolean $integer Optional. Whether or not to format the result
    855  * @return string reply revision count
     852 * @param int $reply_id Optional. Reply id.
     853 * @param boolean $integer Optional. Whether or not to format the result.
     854 * @return string reply revision count.
    856855 */
    857856function bbp_get_reply_revision_count( $reply_id = 0, $integer = false ) {
     
    866865
    867866/**
    868  * Output the status of the reply
     867 * Output the status of the reply.
    869868 *
    870869 * @since 2.0.0 bbPress (r2667)
    871870 *
    872  * @param int $reply_id Optional. Reply id
     871 * @param int $reply_id Optional. Reply id.
    873872 */
    874873function bbp_reply_status( $reply_id = 0 ) {
     
    877876
    878877/**
    879  * Return the status of the reply
     878 * Return the status of the reply.
    880879 *
    881880 * @since 2.0.0 bbPress (r2667)
    882881 *
    883  * @param int $reply_id Optional. Reply id
    884  * @return string Status of reply
     882 * @param int $reply_id Optional. Reply id.
     883 * @return string Status of reply.
    885884 */
    886885function bbp_get_reply_status( $reply_id = 0 ) {
     
    898897 * @since 2.6.0 bbPress (r6391)
    899898 *
    900  * @param int $reply_id Optional. Reply id
     899 * @param int $reply_id Optional. Reply id.
    901900 * @return bool True if public, false if not.
    902901 */
     
    917916 * @since 2.6.0 bbPress (r6922) Returns false if topic is also not published
    918917 *
    919  * @param int $reply_id Optional. Topic id
     918 * @param int $reply_id Optional. Topic id.
    920919 * @return bool True if published, false if not.
    921920 */
     
    937936 * @since 2.0.0 bbPress (r2740)
    938937 *
    939  * @param int $reply_id Optional. Reply id
     938 * @param int $reply_id Optional. Reply id.
    940939 * @return bool True if spam, false if not.
    941940 */
     
    954953 * @since 2.0.0 bbPress (r2884)
    955954 *
    956  * @param int $reply_id Optional. Topic id
     955 * @param int $reply_id Optional. Topic id.
    957956 * @return bool True if spam, false if not.
    958957 */
     
    971970 * @since 2.6.0 bbPress (r5507)
    972971 *
    973  * @param int $reply_id Optional. Topic id
     972 * @param int $reply_id Optional. Topic id.
    974973 * @return bool True if pending, false if not.
    975974 */
     
    988987 * @since 2.6.0 bbPress (r5507)
    989988 *
    990  * @param int $reply_id Optional. Topic id
     989 * @param int $reply_id Optional. Topic id.
    991990 * @return bool True if private, false if not.
    992991 */
     
    10051004 * @since 2.0.0 bbPress (r2753)
    10061005 *
    1007  * @param int $reply_id Optional. Reply id
     1006 * @param int $reply_id Optional. Reply id.
    10081007 * @return bool True if the post is by an anonymous user, false if not.
    10091008 */
     
    10291028 * Deprecated. Use bbp_reply_author_display_name() instead.
    10301029 *
    1031  * Output the author of the reply
     1030 * Output the author of the reply.
    10321031 *
    10331032 * @since 2.0.0 bbPress (r2667)
     
    10351034 * @deprecated 2.5.0 bbPress (r5119)
    10361035 *
    1037  * @param int $reply_id Optional. Reply id
     1036 * @param int $reply_id Optional. Reply id.
    10381037 */
    10391038function bbp_reply_author( $reply_id = 0 ) {
     
    10441043 * Deprecated. Use bbp_get_reply_author_display_name() instead.
    10451044 *
    1046  * Return the author of the reply
     1045 * Return the author of the reply.
    10471046 *
    10481047 * @since 2.0.0 bbPress (r2667)
     
    10501049 * @deprecated 2.5.0 bbPress (r5119)
    10511050 *
    1052  * @param int $reply_id Optional. Reply id
    1053  * @return string Author of reply
     1051 * @param int $reply_id Optional. Reply id.
     1052 * @return string Author of reply.
    10541053 */
    10551054function bbp_get_reply_author( $reply_id = 0 ) {
     
    10671066
    10681067/**
    1069  * Output the author ID of the reply
     1068 * Output the author ID of the reply.
    10701069 *
    10711070 * @since 2.0.0 bbPress (r2667)
    10721071 *
    1073  * @param int $reply_id Optional. Reply id
     1072 * @param int $reply_id Optional. Reply id.
    10741073 */
    10751074function bbp_reply_author_id( $reply_id = 0 ) {
     
    10781077
    10791078/**
    1080  * Return the author ID of the reply
     1079 * Return the author ID of the reply.
    10811080 *
    10821081 * @since 2.0.0 bbPress (r2667)
    10831082 *
    1084  * @param int $reply_id Optional. Reply id
    1085  * @return string Author id of reply
     1083 * @param int $reply_id Optional. Reply id.
     1084 * @return string Author id of reply.
    10861085 */
    10871086function bbp_get_reply_author_id( $reply_id = 0 ) {
     
    10941093
    10951094/**
    1096  * Output the author display_name of the reply
     1095 * Output the author display_name of the reply.
    10971096 *
    10981097 * @since 2.0.0 bbPress (r2667)
    10991098 *
    1100  * @param int $reply_id Optional. Reply id
     1099 * @param int $reply_id Optional. Reply id.
    11011100 */
    11021101function bbp_reply_author_display_name( $reply_id = 0 ) {
     
    11051104
    11061105/**
    1107  * Return the author display_name of the reply
     1106 * Return the author display_name of the reply.
    11081107 *
    11091108 * @since 2.0.0 bbPress (r2667)
    11101109 *
    1111  * @param int $reply_id Optional. Reply id
    1112  * @return string The display name of the author of the reply
     1110 * @param int $reply_id Optional. Reply id.
     1111 * @return string The display name of the author of the reply.
    11131112 */
    11141113function bbp_get_reply_author_display_name( $reply_id = 0 ) {
     
    11441143
    11451144/**
    1146  * Output the author avatar of the reply
     1145 * Output the author avatar of the reply.
    11471146 *
    11481147 * @since 2.0.0 bbPress (r2667)
    11491148 *
    1150  * @param int $reply_id Optional. Reply id
    1151  * @param int $size Optional. Size of the avatar. Defaults to 40
     1149 * @param int $reply_id Optional. Reply id.
     1150 * @param int $size Optional. Size of the avatar. Defaults to 40.
    11521151 */
    11531152function bbp_reply_author_avatar( $reply_id = 0, $size = 40 ) {
     
    11561155
    11571156/**
    1158  * Return the author avatar of the reply
     1157 * Return the author avatar of the reply.
    11591158 *
    11601159 * @since 2.0.0 bbPress (r2667)
    11611160 *
    11621161 * @param int $reply_id Optional. Reply id
    1163  * @param int $size Optional. Size of the avatar. Defaults to 40
    1164  * @return string Avatar of author of the reply
     1162 * @param int $size Optional. Size of the avatar. Defaults to 40.
     1163 * @return string Avatar of author of the reply.
    11651164 */
    11661165function bbp_get_reply_author_avatar( $reply_id = 0, $size = 40 ) {
     
    11841183
    11851184/**
    1186  * Output the author link of the reply
     1185 * Output the author link of the reply.
    11871186 *
    11881187 * @since 2.0.0 bbPress (r2717)
     
    11951194
    11961195/**
    1197  * Return the author link of the reply
     1196 * Return the author link of the reply.
    11981197 *
    11991198 * @since 2.0.0 bbPress (r2717)
    12001199 *
    12011200 * @param array $args Optional. If an integer, it is used as reply id.
    1202  * @return string Author link of reply
     1201 * @return string Author link of reply.
    12031202 */
    12041203function bbp_get_reply_author_link( $args = array() ) {
     
    13011300
    13021301/**
    1303  * Output the author url of the reply
     1302 * Output the author url of the reply.
    13041303 *
    13051304 * @since 2.0.0 bbPress (r2667)
    13061305 *
    1307  * @param int $reply_id Optional. Reply id
     1306 * @param int $reply_id Optional. Reply id.
    13081307 */
    13091308function bbp_reply_author_url( $reply_id = 0 ) {
     
    13121311
    13131312/**
    1314  * Return the author url of the reply
     1313 * Return the author url of the reply.
    13151314 *
    13161315 * @since 2.0.0 bbPress (r2667)
    13171316 *
    1318  * @param int $reply_id Optional. Reply id
    1319  * @return string Author URL of the reply
     1317 * @param int $reply_id Optional. Reply id.
     1318 * @return string Author URL of the reply.
    13201319 */
    13211320function bbp_get_reply_author_url( $reply_id = 0 ) {
     
    13381337
    13391338/**
    1340  * Output the reply author email address
     1339 * Output the reply author email address.
    13411340 *
    13421341 * @since 2.0.0 bbPress (r3445)
    13431342 *
    1344  * @param int $reply_id Optional. Reply id
     1343 * @param int $reply_id Optional. Reply id.
    13451344 */
    13461345function bbp_reply_author_email( $reply_id = 0 ) {
     
    13491348
    13501349/**
    1351  * Return the reply author email address
     1350 * Return the reply author email address.
    13521351 *
    13531352 * @since 2.0.0 bbPress (r3445)
    13541353 *
    1355  * @param int $reply_id Optional. Reply id
    1356  * @return string Reply author email address
     1354 * @param int $reply_id Optional. Reply id.
     1355 * @return string Reply author email address.
    13571356 */
    13581357function bbp_get_reply_author_email( $reply_id = 0 ) {
     
    13841383
    13851384/**
    1386  * Output the reply author role
     1385 * Output the reply author role.
    13871386 *
    13881387 * @since 2.1.0 bbPress (r3860)
     
    13951394
    13961395/**
    1397  * Return the reply author role
     1396 * Return the reply author role.
    13981397 *
    13991398 * @since 2.1.0 bbPress (r3860)
    14001399 *
    14011400 * @param array $args Optional.
    1402  * @return string Reply author role
     1401 * @return string Reply author role.
    14031402 */
    14041403function bbp_get_reply_author_role( $args = array() ) {
     
    14401439
    14411440/**
    1442  * Output the topic title a reply belongs to
     1441 * Output the topic title a reply belongs to.
    14431442 *
    14441443 * @since 2.0.0 bbPress (r2553)
    14451444 *
    1446  * @param int $reply_id Optional. Reply id
     1445 * @param int $reply_id Optional. Reply id.
    14471446 */
    14481447function bbp_reply_topic_title( $reply_id = 0 ) {
     
    14511450
    14521451/**
    1453  * Return the topic title a reply belongs to
     1452 * Return the topic title a reply belongs to.
    14541453 *
    14551454 * @since 2.0.0 bbPress (r2553)
    14561455 *
    1457  * @param int $reply_id Optional. Reply id
    1458  * @return string The topic title of the reply
     1456 * @param int $reply_id Optional. Reply id.
     1457 * @return string The topic title of the reply.
    14591458 */
    14601459function bbp_get_reply_topic_title( $reply_id = 0 ) {
     
    14681467
    14691468/**
    1470  * Output the topic id a reply belongs to
     1469 * Output the topic id a reply belongs to.
    14711470 *
    14721471 * @since 2.0.0 bbPress (r2553)
    14731472 *
    1474  * @param int $reply_id Optional. Reply id
     1473 * @param int $reply_id Optional. Reply id.
    14751474 */
    14761475function bbp_reply_topic_id( $reply_id = 0 ) {
     
    14791478
    14801479/**
    1481  * Return the topic id a reply belongs to
     1480 * Return the topic id a reply belongs to.
    14821481 *
    14831482 * @since 2.0.0 bbPress (r2553)
    14841483 *
    1485  * @param int $reply_id Optional. Reply id
    1486  * @return int The topic id of the reply
     1484 * @param int $reply_id Optional. Reply id.
     1485 * @return int The topic id of the reply.
    14871486 */
    14881487function bbp_get_reply_topic_id( $reply_id = 0 ) {
     
    15051504
    15061505/**
    1507  * Output the forum id a reply belongs to
     1506 * Output the forum id a reply belongs to.
    15081507 *
    15091508 * @since 2.0.0 bbPress (r2679)
    15101509 *
    1511  * @param int $reply_id Optional. Reply id
     1510 * @param int $reply_id Optional. Reply id.
    15121511 */
    15131512function bbp_reply_forum_id( $reply_id = 0 ) {
     
    15161515
    15171516/**
    1518  * Return the forum id a reply belongs to
     1517 * Return the forum id a reply belongs to.
    15191518 *
    15201519 * @since 2.0.0 bbPress (r2679)
    15211520 *
    1522  * @param int $reply_id Optional. Reply id
    1523  *
    1524  * @return int The forum id of the reply
     1521 * @param int $reply_id Optional. Reply id.
     1522 *
     1523 * @return int The forum id of the reply.
    15251524 */
    15261525function bbp_get_reply_forum_id( $reply_id = 0 ) {
     
    15441543
    15451544/**
    1546  * Output the ancestor reply id of a reply
     1545 * Output the ancestor reply id of a reply.
    15471546 *
    15481547 * @since 2.4.0 bbPress (r4944)
    15491548 *
    1550  * @param int $reply_id Optional. Reply id
     1549 * @param int $reply_id Optional. Reply id.
    15511550 */
    15521551function bbp_reply_ancestor_id( $reply_id = 0 ) {
     
    15551554
    15561555/**
    1557  * Return the ancestor reply id of a reply
     1556 * Return the ancestor reply id of a reply.
    15581557 *
    15591558 * @since 2.4.0 bbPress (r4944)
    15601559 *
    1561  * @param in $reply_id Reply id
     1560 * @param in $reply_id Reply id.
    15621561 */
    15631562function bbp_get_reply_ancestor_id( $reply_id = 0 ) {
     
    15851584
    15861585/**
    1587  * Output the reply to id of a reply
     1586 * Output the reply to id of a reply.
    15881587 *
    15891588 * @since 2.4.0 bbPress (r4944)
    15901589 *
    1591  * @param int $reply_id Optional. Reply id
     1590 * @param int $reply_id Optional. Reply id.
    15921591 */
    15931592function bbp_reply_to( $reply_id = 0 ) {
     
    15961595
    15971596/**
    1598  * Return the reply to id of a reply
     1597 * Return the reply to id of a reply.
    15991598 *
    16001599 * @since 2.4.0 bbPress (r4944)
    16011600 *
    1602  * @param int $reply_id Optional. Reply id
    1603  * @return int The parent reply id of the reply
     1601 * @param int $reply_id Optional. Reply id.
     1602 * @return int The parent reply id of the reply.
    16041603 */
    16051604function bbp_get_reply_to( $reply_id = 0 ) {
     
    16211620
    16221621/**
    1623  * Output the link for the reply to
     1622 * Output the link for the reply to.
    16241623 *
    16251624 * @since 2.4.0 bbPress (r4944)
     
    16321631
    16331632/**
    1634  * Return the link for a reply to a reply
     1633 * Return the link for a reply to a reply.
    16351634 *
    16361635 * @since 2.4.0 bbPress (r4944)
    16371636 *
    1638  * @param array $args Arguments
    1639  * @return string Link for a reply to a reply
     1637 * @param array $args Arguments.
     1638 * @return string Link for a reply to a reply.
    16401639 */
    16411640function bbp_get_reply_to_link( $args = array() ) {
     
    17001699
    17011700/**
    1702  * Output the reply to a reply cancellation link
     1701 * Output the reply to a reply cancellation link.
    17031702 *
    17041703 * @since 2.4.0 bbPress (r4944)
     
    17091708
    17101709/**
    1711  * Return the cancellation link for a reply to a reply
     1710 * Return the cancellation link for a reply to a reply.
    17121711 *
    17131712 * @since 2.4.0 bbPress (r4944)
    17141713 *
    1715  * @param string $text The cancel text
    1716  * @return string The cancellation link
     1714 * @param string $text The cancel text.
     1715 * @return string The cancellation link.
    17171716 */
    17181717function bbp_get_cancel_reply_to_link( $text = '' ) {
     
    17431742
    17441743/**
    1745  * Output the numeric position of a reply within a topic
     1744 * Output the numeric position of a reply within a topic.
    17461745 *
    17471746 * @since 2.0.0 bbPress (r2984)
    17481747 *
    1749  * @param int $reply_id Optional. Reply id
    1750  * @param int $topic_id Optional. Topic id
     1748 * @param int $reply_id Optional. Reply id.
     1749 * @param int $topic_id Optional. Topic id.
    17511750 */
    17521751function bbp_reply_position( $reply_id = 0, $topic_id = 0 ) {
     
    17551754
    17561755/**
    1757  * Return the numeric position of a reply within a topic
     1756 * Return the numeric position of a reply within a topic.
    17581757 *
    17591758 * @since 2.0.0 bbPress (r2984)
    17601759 *
    1761  * @param int $reply_id Optional. Reply id
    1762  * @param int $topic_id Optional. Topic id
    1763  * @return int Reply position
     1760 * @param int $reply_id Optional. Reply id.
     1761 * @param int $topic_id Optional. Topic id.
     1762 * @return int Reply position.
    17641763 */
    17651764function bbp_get_reply_position( $reply_id = 0, $topic_id = 0 ) {
     
    18051804
    18061805/**
    1807  * Output admin links for reply
     1806 * Output admin links for reply.
    18081807 *
    18091808 * @since 2.0.0 bbPress (r2667)
     
    18161815
    18171816/**
    1818  * Return admin links for reply
     1817 * Return admin links for reply.
    18191818 *
    18201819 * @since 2.0.0 bbPress (r2667)
     
    18281827 *  - links: Array of the links to display. By default, edit, trash,
    18291828 *            spam, reply move, and topic split links are displayed
    1830  * @return string Reply admin links
     1829 * @return string Reply admin links.
    18311830 */
    18321831function bbp_get_reply_admin_links( $args = array() ) {
     
    19021901
    19031902/**
    1904  * Output the edit link of the reply
     1903 * Output the edit link of the reply.
    19051904 *
    19061905 * @since 2.0.0 bbPress (r2740)
    19071906 *
    1908  * @param array $args See {@link bbp_get_reply_edit_link()}
     1907 * @param array $args See {@link bbp_get_reply_edit_link()}.
    19091908 */
    19101909function bbp_reply_edit_link( $args = array() ) {
     
    19131912
    19141913/**
    1915  * Return the edit link of the reply
     1914 * Return the edit link of the reply.
    19161915 *
    19171916 * @since 2.0.0 bbPress (r2740)
     
    19221921 *  - link_after: HTML after the link
    19231922 *  - edit_text: Edit text. Defaults to 'Edit'
    1924  * @return string Reply edit link
     1923 * @return string Reply edit link.
    19251924 */
    19261925function bbp_get_reply_edit_link( $args = array() ) {
     
    19651964
    19661965/**
    1967  * Output URL to the reply edit page
     1966 * Output URL to the reply edit page.
    19681967 *
    19691968 * @since 2.0.0 bbPress (r2753)
    19701969 *
    1971  * @param int $reply_id Optional. Reply id
     1970 * @param int $reply_id Optional. Reply id.
    19721971 */
    19731972function bbp_reply_edit_url( $reply_id = 0 ) {
     
    19761975
    19771976/**
    1978  * Return URL to the reply edit page
     1977 * Return URL to the reply edit page.
    19791978 *
    19801979 * @since 2.0.0 bbPress (r2753)
    19811980 *
    1982  * @param int $reply_id Optional. Reply id
    1983  * @return string Reply edit url
     1981 * @param int $reply_id Optional. Reply id.
     1982 * @return string Reply edit url.
    19841983 */
    19851984function bbp_get_reply_edit_url( $reply_id = 0 ) {
     
    20182017
    20192018/**
    2020  * Output the trash link of the reply
     2019 * Output the trash link of the reply.
    20212020 *
    20222021 * @since 2.0.0 bbPress (r2740)
    20232022 *
    2024  * @param array $args See {@link bbp_get_reply_trash_link()}
     2023 * @param array $args See {@link bbp_get_reply_trash_link()}.
    20252024 */
    20262025function bbp_reply_trash_link( $args = array() ) {
     
    20292028
    20302029/**
    2031  * Return the trash link of the reply
     2030 * Return the trash link of the reply.
    20322031 *
    20332032 * @since 2.0.0 bbPress (r2740)
     
    20412040 *  - restore_text: Restore text
    20422041 *  - delete_text: Delete text
    2043  * @return string Reply trash link
     2042 * @return string Reply trash link.
    20442043 */
    20452044function bbp_get_reply_trash_link( $args = array() ) {
     
    21082107
    21092108/**
    2110  * Output the spam link of the reply
     2109 * Output the spam link of the reply.
    21112110 *
    21122111 * @since 2.0.0 bbPress (r2740)
    21132112 *
    2114  * @param array $args See {@link bbp_get_reply_spam_link()}
     2113 * @param array $args See {@link bbp_get_reply_spam_link()}.
    21152114 */
    21162115function bbp_reply_spam_link( $args = array() ) {
     
    21192118
    21202119/**
    2121  * Return the spam link of the reply
     2120 * Return the spam link of the reply.
    21222121 *
    21232122 * @since 2.0.0 bbPress (r2740)
     
    21292128 *  - spam_text: Spam text
    21302129 *  - unspam_text: Unspam text
    2131  * @return string Reply spam link
     2130 * @return string Reply spam link.
    21322131 */
    21332132function bbp_get_reply_spam_link( $args = array() ) {
     
    21722171
    21732172/**
    2174  * Move reply link
    2175  *
    2176  * Output the move link of the reply
     2173 * Move reply link.
     2174 *
     2175 * Output the move link of the reply.
    21772176 *
    21782177 * @since 2.3.0 bbPress (r4521)
    21792178 *
    2180  * @param array $args See {@link bbp_get_reply_move_link()}
     2179 * @param array $args See {@link bbp_get_reply_move_link()}.
    21812180 */
    21822181function bbp_reply_move_link( $args = array() ) {
     
    21852184
    21862185/**
    2187  * Get move reply link
    2188  *
    2189  * Return the move link of the reply
     2186 * Get move reply link.
     2187 *
     2188 * Return the move link of the reply.
    21902189 *
    21912190 * @since 2.3.0 bbPress (r4521)
     
    21972196 *  - move_text: Move text
    21982197 *  - move_title: Move title attribute
    2199  * @return string Reply move link
     2198 * @return string Reply move link.
    22002199 */
    22012200function bbp_get_reply_move_link( $args = array() ) {
     
    22382237
    22392238/**
    2240  * Split topic link
    2241  *
    2242  * Output the split link of the topic (but is bundled with each reply)
     2239 * Split topic link.
     2240 *
     2241 * Output the split link of the topic (but is bundled with each reply).
    22432242 *
    22442243 * @since 2.0.0 bbPress (r2756)
    22452244 *
    2246  * @param array $args See {@link bbp_get_topic_split_link()}
     2245 * @param array $args See {@link bbp_get_topic_split_link()}.
    22472246 */
    22482247function bbp_topic_split_link( $args = array() ) {
     
    22512250
    22522251/**
    2253  * Get split topic link
    2254  *
    2255  * Return the split link of the topic (but is bundled with each reply)
     2252 * Get split topic link.
     2253 *
     2254 * Return the split link of the topic (but is bundled with each reply).
    22562255 *
    22572256 * @since 2.0.0 bbPress (r2756)
     
    22632262 *  - split_text: Split text
    22642263 *  - split_title: Split title attribute
    2265  * @return string Topic split link
     2264 * @return string Topic split link.
    22662265 */
    22672266function bbp_get_topic_split_link( $args = array() ) {
     
    23042303
    23052304/**
    2306  * Output the approve link of the reply
     2305 * Output the approve link of the reply.
    23072306 *
    23082307 * @since 2.6.0 bbPress (r5507)
    23092308 *
    2310  * @param array $args See {@link bbp_get_reply_approve_link()}
     2309 * @param array $args See {@link bbp_get_reply_approve_link()}.
    23112310 */
    23122311function bbp_reply_approve_link( $args = array() ) {
     
    23152314
    23162315/**
    2317  * Return the approve link of the reply
     2316 * Return the approve link of the reply.
    23182317 *
    23192318 * @since 2.6.0 bbPress (r5507)
     
    23262325 *  - approve_text: Approve text
    23272326 *  - unapprove_text: Unapprove text
    2328  * @return string Reply approve link
     2327 * @return string Reply approve link.
    23292328 */
    23302329function bbp_get_reply_approve_link( $args = array() ) {
     
    23702369
    23712370/**
    2372  * Output the row class of a reply
     2371 * Output the row class of a reply.
    23732372 *
    23742373 * @since 2.0.0 bbPress (r2678)
    23752374 *
    2376  * @param int $reply_id Optional. Reply ID
    2377  * @param array Extra classes you can pass when calling this function
     2375 * @param int $reply_id Optional. Reply ID.
     2376 * @param array Extra classes you can pass when calling this function.
    23782377 */
    23792378function bbp_reply_class( $reply_id = 0, $classes = array() ) {
     
    23822381
    23832382/**
    2384  * Return the row class of a reply
     2383 * Return the row class of a reply.
    23852384 *
    23862385 * @since 2.0.0 bbPress (r2678)
    23872386 *
    2388  * @param int $reply_id Optional. Reply ID
    2389  * @param array Extra classes you can pass when calling this function
    2390  * @return string Row class of the reply
     2387 * @param int $reply_id Optional. Reply ID.
     2388 * @param array Extra classes you can pass when calling this function.
     2389 * @return string Row class of the reply.
    23912390 */
    23922391function bbp_get_reply_class( $reply_id = 0, $classes = array() ) {
     
    24432442
    24442443/**
    2445  * Return the base URL used inside of pagination links
     2444 * Return the base URL used inside of pagination links.
    24462445 *
    24472446 * @since 2.6.0 bbPress (r6679)
    24482447 *
    2449  * @param int $topic_id
     2448 * @param int $topic_id Topic id.
    24502449 * @return string
    24512450 */
     
    24842483
    24852484/**
    2486  * Output the topic pagination count
     2485 * Output the topic pagination count.
    24872486 *
    24882487 * The results are unescaped by design, to allow them to be filtered freely via
     
    24972496
    24982497/**
    2499  * Return the topic pagination count
     2498 * Return the topic pagination count.
    25002499 *
    25012500 * @since 2.0.0 bbPress (r2519)
    25022501 *
    2503  * @return string Topic pagination count
     2502 * @return string Topic pagination count.
    25042503 */
    25052504function bbp_get_topic_pagination_count() {
     
    25702569
    25712570/**
    2572  * Output topic pagination links
     2571 * Output topic pagination links.
    25732572 *
    25742573 * @since 2.0.0 bbPress (r2519)
     
    25792578
    25802579/**
    2581  * Return topic pagination links
     2580 * Return topic pagination links.
    25822581 *
    25832582 * @since 2.0.0 bbPress (r2519)
    25842583 *
    2585  * @return string Topic pagination links
     2584 * @return string Topic pagination links.
    25862585 */
    25872586function bbp_get_topic_pagination_links() {
     
    25992598
    26002599/**
    2601  * Output the value of reply content field
     2600 * Output the value of reply content field.
    26022601 *
    26032602 * @since 2.0.0 bbPress (r3130)
     
    26082607
    26092608/**
    2610  * Return the value of reply content field
     2609 * Return the value of reply content field.
    26112610 *
    26122611 * @since 2.0.0 bbPress (r3130)
    26132612 *
    2614  * @return string Value of reply content field
     2613 * @return string Value of reply content field.
    26152614 */
    26162615function bbp_get_form_reply_content() {
     
    26342633
    26352634/**
    2636  * Output the value of the reply to field
     2635 * Output the value of the reply to field.
    26372636 *
    26382637 * @since 2.4.0 bbPress (r4944)
     
    26432642
    26442643/**
    2645  * Return the value of reply to field
     2644 * Return the value of reply to field.
    26462645 *
    26472646 * @since 2.4.0 bbPress (r4944)
    26482647 *
    2649  * @return string Value of reply to field
     2648 * @return string Value of reply to field.
    26502649 */
    26512650function bbp_get_form_reply_to() {
     
    26742673 * @since 2.6.0 bbPress (r5387)
    26752674 *
    2676  * @param int $reply_id
     2675 * @param int $reply_id Reply id.
    26772676 */
    26782677function bbp_reply_to_dropdown( $reply_id = 0 ) {
     
    26852684 * @since 2.6.0 bbPress (r5387)
    26862685 *
    2687  * @param int $reply_id
    2688  *
    2689  * @return string The dropdown
     2686 * @param int $reply_id Reply id.
     2687 *
     2688 * @return string The dropdown.
    26902689 */
    26912690function bbp_get_reply_to_dropdown( $reply_id = 0 ) {
     
    27522751
    27532752/**
    2754  * Output checked value of reply log edit field
     2753 * Output checked value of reply log edit field.
    27552754 *
    27562755 * @since 2.0.0 bbPress (r3130)
     
    27612760
    27622761/**
    2763  * Return checked value of reply log edit field
     2762 * Return checked value of reply log edit field.
    27642763 *
    27652764 * @since 2.0.0 bbPress (r3130)
    27662765 *
    2767  * @return string Reply log edit checked value
     2766 * @return string Reply log edit checked value.
    27682767 */
    27692768function bbp_get_form_reply_log_edit() {
     
    27862785
    27872786/**
    2788  * Output the value of the reply edit reason
     2787 * Output the value of the reply edit reason.
    27892788 *
    27902789 * @since 2.0.0 bbPress (r3130)
     
    27952794
    27962795/**
    2797  * Return the value of the reply edit reason
     2796 * Return the value of the reply edit reason.
    27982797 *
    27992798 * @since 2.0.0 bbPress (r3130)
    28002799 *
    2801  * @return string Reply edit reason value
     2800 * @return string Reply edit reason value.
    28022801 */
    28032802function bbp_get_form_reply_edit_reason() {
     
    28172816
    28182817/**
    2819  * Output value reply status dropdown
     2818 * Output value reply status dropdown.
    28202819 *
    28212820 * @since 2.6.0 bbPress (r5399)
     
    28322831
    28332832/**
    2834  * Returns reply status dropdown
     2833 * Returns reply status dropdown.
    28352834 *
    28362835 * This dropdown is only intended to be seen by users with the 'moderate'
     
    29082907 * @since 2.6.0 bbPress (r5558)
    29092908 *
    2910  * @return boolean True if is a post request with valid nonce
     2909 * @return boolean True if is a post request with valid nonce.
    29112910 */
    29122911function bbp_is_reply_form_post_request() {
  • trunk/src/includes/search/functions.php

    r7333 r7380  
    22
    33/**
    4  * bbPress Search Functions
     4 * bbPress Search Functions.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Run the search query
     16 * Run the search query.
    1717 *
    1818 * @since 2.3.0 bbPress (r4579)
    1919 *
    20  * @param mixed $new_args New arguments
    21  * @return bool False if no results, otherwise if search results are there
     20 * @param mixed $new_args New arguments.
     21 * @return bool False if no results, otherwise if search results are there.
    2222 */
    2323function bbp_search_query( $new_args = array() ) {
     
    3636
    3737/**
    38  * Return the search query args
     38 * Return the search query arguments.
    3939 *
    4040 * @since 2.3.0 bbPress (r4579)
    4141 *
    42  * @return array Query arguments
     42 * @return array Query arguments.
    4343 */
    4444function bbp_get_search_query_args() {
     
    5555
    5656/**
    57  * Redirect to search results page if needed
     57 * Redirect to search results page if needed.
    5858 *
    5959 * @since 2.4.0 bbPress (r4928)
    6060 *
    61  * @return If a redirect is not needed
     61 * @return If a redirect is not needed.
    6262 */
    6363function bbp_search_results_redirect() {
     
    8484
    8585/**
    86  * Return an array of search types
     86 * Return an array of search types.
    8787 *
    8888 * @since 2.6.0 bbPress (r6903)
     
    101101 * @since 2.6.0 bbPress (r6903)
    102102 *
    103  * @param string $query_arg s|fs|ts|rs
     103 * @param string $query_arg s|fs|ts|rs.
    104104 *
    105105 * @return mixed
  • trunk/src/includes/search/template.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Search Template Tags
     4 * bbPress Search Template Tags.
    55 *
    66 * @package bbPress
     
    1818 * @since 2.3.0 bbPress (r4579)
    1919 *
    20  * @param array $args All the arguments supported by {@link WP_Query}
    21  * @return object Multidimensional array of search information
     20 * @param array $args All the arguments supported by {@link WP_Query}.
     21 * @return object Multidimensional array of search information.
    2222 */
    2323function bbp_has_search_results( $args = array() ) {
     
    115115
    116116/**
    117  * Whether there are more search results available in the loop
    118  *
    119  * @since 2.3.0 bbPress (r4579)
    120  *
    121  * @return object Search information
     117 * Whether there are more search results available in the loop.
     118 *
     119 * @since 2.3.0 bbPress (r4579)
     120 *
     121 * @return object Search information.
    122122 */
    123123function bbp_search_results() {
     
    135135
    136136/**
    137  * Loads up the current search result in the loop
    138  *
    139  * @since 2.3.0 bbPress (r4579)
    140  *
    141  * @return object Search information
     137 * Loads up the current search result in the loop.
     138 *
     139 * @since 2.3.0 bbPress (r4579)
     140 *
     141 * @return object Search information.
    142142 */
    143143function bbp_the_search_result() {
     
    153153
    154154/**
    155  * Output the search page title
     155 * Output the search page title.
    156156 *
    157157 * @since 2.3.0 bbPress (r4579)
     
    161161}
    162162
    163     /**
    164      * Get the search page title
    165     *
    166     * @since 2.3.0 bbPress (r4579)
    167     */
    168     function bbp_get_search_title() {
    169 
    170         // Get search terms
    171         $search_terms = bbp_get_search_terms();
    172 
    173         // No search terms specified
    174         if ( empty( $search_terms ) ) {
    175             $title = esc_html__( 'Search', 'bbpress' );
    176 
    177         // Include search terms in title
    178         } else {
    179             /* translators: %s: Search query terms */
    180             $title = sprintf( esc_html__( "Search Results for '%s'", 'bbpress' ), esc_attr( $search_terms ) );
    181         }
    182 
    183         // Filter & return
    184         return apply_filters( 'bbp_get_search_title', $title, $search_terms );
    185     }
    186 
    187 /**
    188  * Output the search url
     163/**
     164 * Get the search page title.
     165 *
     166 * @since 2.3.0 bbPress (r4579)
     167 */
     168function bbp_get_search_title() {
     169
     170    // Get search terms
     171    $search_terms = bbp_get_search_terms();
     172
     173    // No search terms specified
     174    if ( empty( $search_terms ) ) {
     175        $title = esc_html__( 'Search', 'bbpress' );
     176
     177    // Include search terms in title
     178    } else {
     179        /* translators: %s: Search query terms */
     180        $title = sprintf( esc_html__( "Search Results for '%s'", 'bbpress' ), esc_attr( $search_terms ) );
     181    }
     182
     183    // Filter & return
     184    return apply_filters( 'bbp_get_search_title', $title, $search_terms );
     185}
     186
     187/**
     188 * Output the search url.
    189189 *
    190190 * @since 2.3.0 bbPress (r4579)
     
    193193    echo esc_url( bbp_get_search_url() );
    194194}
    195     /**
    196      * Return the search url
    197      *
    198      * @since 2.3.0 bbPress (r4579)
    199      *
    200      * @return string Search url
    201      */
    202     function bbp_get_search_url() {
    203 
    204         // Pretty permalinks
    205         if ( bbp_use_pretty_urls() ) {
    206 
    207             // Run through home_url()
    208             $url = bbp_get_root_url() . bbp_get_search_slug();
    209             $url = user_trailingslashit( $url );
    210             $url = home_url( $url );
    211 
    212         // Unpretty permalinks
    213         } else {
    214             $url = add_query_arg(
    215                 array(
    216                     bbp_get_search_rewrite_id() => ''
    217                 ),
    218                 home_url( '/' )
    219             );
    220         }
    221 
    222         // Filter & return
    223         return apply_filters( 'bbp_get_search_url', $url );
    224     }
    225 
    226 /**
    227  * Output the search results url
     195
     196/**
     197 * Return the search url.
     198 *
     199 * @since 2.3.0 bbPress (r4579)
     200 *
     201 * @return string Search url.
     202 */
     203function bbp_get_search_url() {
     204
     205    // Pretty permalinks
     206    if ( bbp_use_pretty_urls() ) {
     207
     208        // Run through home_url()
     209        $url = bbp_get_root_url() . bbp_get_search_slug();
     210        $url = user_trailingslashit( $url );
     211        $url = home_url( $url );
     212
     213    // Unpretty permalinks
     214    } else {
     215        $url = add_query_arg(
     216            array(
     217                bbp_get_search_rewrite_id() => ''
     218            ),
     219            home_url( '/' )
     220        );
     221    }
     222
     223    // Filter & return
     224    return apply_filters( 'bbp_get_search_url', $url );
     225}
     226
     227/**
     228 * Output the search results url.
    228229 *
    229230 * @since 2.4.0 bbPress (r4928)
     
    232233    echo esc_url( bbp_get_search_results_url() );
    233234}
    234     /**
    235      * Return the search url
    236      *
    237      * @since 2.4.0 bbPress (r4928)
    238      *
    239      * @return string Search url
    240      */
    241     function bbp_get_search_results_url() {
    242 
    243         // Get the search terms
    244         $search_terms = bbp_get_search_terms();
    245 
    246         // Pretty permalinks
    247         if ( bbp_use_pretty_urls() ) {
    248 
    249             // Root search URL
    250             $url = bbp_get_root_url() . bbp_get_search_slug();
    251 
    252             // Append search terms
    253             if ( ! empty( $search_terms ) ) {
    254                 $url = trailingslashit( $url ) . urlencode( $search_terms );
    255             }
    256 
    257             // Run through home_url()
    258             $url = user_trailingslashit( $url );
    259             $url = home_url( $url );
    260 
    261         // Unpretty permalinks
    262         } else {
    263             $url = add_query_arg(
    264                 array(
    265                     bbp_get_search_rewrite_id() => urlencode( $search_terms )
    266                 ),
    267                 home_url( '/' )
    268             );
     235
     236/**
     237 * Return the search url.
     238 *
     239 * @since 2.4.0 bbPress (r4928)
     240 *
     241 * @return string Search url.
     242 */
     243function bbp_get_search_results_url() {
     244
     245    // Get the search terms
     246    $search_terms = bbp_get_search_terms();
     247
     248    // Pretty permalinks
     249    if ( bbp_use_pretty_urls() ) {
     250
     251        // Root search URL
     252        $url = bbp_get_root_url() . bbp_get_search_slug();
     253
     254        // Append search terms
     255        if ( ! empty( $search_terms ) ) {
     256            $url = trailingslashit( $url ) . urlencode( $search_terms );
    269257        }
    270258
    271         // Filter & return
    272         return apply_filters( 'bbp_get_search_results_url', $url );
    273     }
    274 
    275 /**
    276  * Output the search terms
    277  *
    278  * @since 2.3.0 bbPress (r4579)
    279  *
    280  * @param string $search_terms Optional. Search terms
     259        // Run through home_url()
     260        $url = user_trailingslashit( $url );
     261        $url = home_url( $url );
     262
     263    // Unpretty permalinks
     264    } else {
     265        $url = add_query_arg(
     266            array(
     267                bbp_get_search_rewrite_id() => urlencode( $search_terms )
     268            ),
     269            home_url( '/' )
     270        );
     271    }
     272
     273    // Filter & return
     274    return apply_filters( 'bbp_get_search_results_url', $url );
     275}
     276
     277/**
     278 * Output the search terms.
     279 *
     280 * @since 2.3.0 bbPress (r4579)
     281 *
     282 * @param string $search_terms Optional. Search terms.
    281283 */
    282284function bbp_search_terms( $search_terms = '' ) {
     
    284286}
    285287
    286     /**
    287      * Get the search terms
    288      *
    289      * @since 2.3.0 bbPress (r4579)
    290      *
    291      * If search terms are supplied, those are used. Otherwise check the
    292      * search rewrite id query var.
    293      *
    294      * @param string $passed_terms Optional. Search terms
    295      * @return bool|string Search terms on success, false on failure
    296      */
    297     function bbp_get_search_terms( $passed_terms = '' ) {
    298 
    299         // Sanitize terms if they were passed in
    300         if ( ! empty( $passed_terms ) ) {
    301             $search_terms = sanitize_title( $passed_terms );
    302 
    303         // Use query variable if not
     288/**
     289 * Get the search terms.
     290 *
     291 * @since 2.3.0 bbPress (r4579)
     292 *
     293 * If search terms are supplied, those are used. Otherwise check the
     294 * search rewrite id query var.
     295 *
     296 * @param string $passed_terms Optional. Search terms.
     297 * @return bool|string Search terms on success, false on failure.
     298 */
     299function bbp_get_search_terms( $passed_terms = '' ) {
     300
     301    // Sanitize terms if they were passed in
     302    if ( ! empty( $passed_terms ) ) {
     303        $search_terms = sanitize_title( $passed_terms );
     304
     305    // Use query variable if not
     306    } else {
     307
     308        // Global
     309        $search_terms = get_query_var( bbp_get_search_rewrite_id(), null );
     310
     311        // Searching globally
     312        if ( ! is_null( $search_terms ) ) {
     313            $search_terms = wp_unslash( $search_terms );
     314
     315        // Other searches
    304316        } else {
    305317
    306             // Global
    307             $search_terms = get_query_var( bbp_get_search_rewrite_id(), null );
    308 
    309             // Searching globally
    310             if ( ! is_null( $search_terms ) ) {
    311                 $search_terms = wp_unslash( $search_terms );
    312 
    313             // Other searches
    314             } else {
    315 
    316                 // Get known search type IDs
    317                 $types = bbp_get_search_type_ids();
    318 
    319                 // Filterable, so make sure types exist
    320                 if ( ! empty( $types ) ) {
    321 
    322                     // Loop through types
    323                     foreach ( $types as $type ) {
    324 
    325                         // Look for search terms
    326                         $terms = bbp_sanitize_search_request( $type );
    327 
    328                         // Skip if no terms
    329                         if ( empty( $terms ) ) {
    330                             continue;
    331                         }
    332 
    333                         // Set terms if not empty
    334                         $search_terms = $terms;
     318            // Get known search type IDs
     319            $types = bbp_get_search_type_ids();
     320
     321            // Filterable, so make sure types exist
     322            if ( ! empty( $types ) ) {
     323
     324                // Loop through types
     325                foreach ( $types as $type ) {
     326
     327                    // Look for search terms
     328                    $terms = bbp_sanitize_search_request( $type );
     329
     330                    // Skip if no terms
     331                    if ( empty( $terms ) ) {
     332                        continue;
    335333                    }
     334
     335                    // Set terms if not empty
     336                    $search_terms = $terms;
    336337                }
    337338            }
    338339        }
    339 
    340         // Trim whitespace & decode if non-empty string, or set to false
    341         $search_terms = ! empty( $search_terms ) && is_string( $search_terms )
    342             ? urldecode( trim( $search_terms ) )
    343             : false;
    344 
    345         // Filter & return
    346         return apply_filters( 'bbp_get_search_terms', $search_terms, $passed_terms );
    347     }
     340    }
     341
     342    // Trim whitespace & decode if non-empty string, or set to false
     343    $search_terms = ! empty( $search_terms ) && is_string( $search_terms )
     344        ? urldecode( trim( $search_terms ) )
     345        : false;
     346
     347    // Filter & return
     348    return apply_filters( 'bbp_get_search_terms', $search_terms, $passed_terms );
     349}
    348350
    349351/** Pagination ****************************************************************/
    350352
    351353/**
    352  * Return the base URL used inside of pagination links
     354 * Return the base URL used inside of pagination links.
    353355 *
    354356 * @since 2.6.0 bbPress (r6679)
     
    383385
    384386/**
    385  * Output the search result pagination count
     387 * Output the search result pagination count.
    386388 *
    387389 * @since 2.3.0 bbPress (r4579)
     
    392394
    393395/**
    394  * Return the search results pagination count
    395  *
    396  * @since 2.3.0 bbPress (r4579)
    397  *
    398  * @return string Search pagination count
     396 * Return the search results pagination count.
     397 *
     398 * @since 2.3.0 bbPress (r4579)
     399 *
     400 * @return string Search pagination count.
    399401 */
    400402function bbp_get_search_pagination_count() {
     
    448450
    449451/**
    450  * Output search pagination links
     452 * Output search pagination links.
    451453 *
    452454 * @since 2.3.0 bbPress (r4579)
     
    456458}
    457459
    458     /**
    459      * Return search pagination links
    460     *
    461     * @since 2.3.0 bbPress (r4579)
    462     *
    463      * @return string Search pagination links
    464     */
    465     function bbp_get_search_pagination_links() {
    466         $bbp = bbpress();
    467 
    468         if ( ! isset( $bbp->search_query->pagination_links ) || empty( $bbp->search_query->pagination_links ) ) {
    469             return false;
    470         }
    471 
    472         // Filter & return
    473         return apply_filters( 'bbp_get_search_pagination_links', $bbp->search_query->pagination_links );
    474     }
     460/**
     461 * Return search pagination links.
     462 *
     463 * @since 2.3.0 bbPress (r4579)
     464 *
     465 * @return string Search pagination links.
     466 */
     467function bbp_get_search_pagination_links() {
     468    $bbp = bbpress();
     469
     470    if ( ! isset( $bbp->search_query->pagination_links ) || empty( $bbp->search_query->pagination_links ) ) {
     471        return false;
     472    }
     473
     474    // Filter & return
     475    return apply_filters( 'bbp_get_search_pagination_links', $bbp->search_query->pagination_links );
     476}
  • trunk/src/includes/topics/capabilities.php

    r7378 r7380  
    22
    33/**
    4  * bbPress Topic Capabilites
     4 * bbPress Topic Capabilities.
    55 *
    66 * Used to map topic capabilities to WordPress's existing capabilities.
     
    1111
    1212/**
    13  * Return topic capabilities
     13 * Return topic capabilities.
    1414 *
    1515 * @since 2.0.0 bbPress (r2593)
    1616 *
    17  * @return array Topic capabilities
     17 * @return array Topic capabilities.
    1818 */
    1919function bbp_get_topic_caps() {
     
    3535
    3636/**
    37  * Return topic tag capabilities
     37 * Return topic tag capabilities.
    3838 *
    3939 * @since 2.0.0 bbPress (r2593)
    4040 *
    41  *
    42  * @return array Topic tag capabilities
     41 * @return array Topic tag capabilities.
    4342 */
    4443function bbp_get_topic_tag_caps() {
     
    5756
    5857/**
    59  * Maps topic capabilities
     58 * Maps topic capabilities.
    6059 *
    6160 * @since 2.2.0 bbPress (r4242)
     
    6665 * @param array  $args    Arguments.
    6766 *
    68  * @return array Actual capabilities for meta capability
     67 * @return array Actual capabilities for meta capability.
    6968 */
    7069function bbp_map_topic_meta_caps( $caps = array(), $cap = '', $user_id = 0, $args = array() ) {
     
    268267
    269268/**
    270  * Maps topic tag capabilities
     269 * Maps topic tag capabilities.
    271270 *
    272271 * @since 2.2.0 bbPress (r4242)
    273272 *
    274  * @param array $caps Capabilities for meta capability
    275  * @param string $cap Capability name
    276  * @param int $user_id User id
    277  * @param array $args Arguments
    278  *
    279  * @return array Actual capabilities for meta capability
     273 * @param array $caps Capabilities for meta capability.
     274 * @param string $cap Capability name.
     275 * @param int $user_id User id.
     276 * @param array $args Arguments.
     277 *
     278 * @return array Actual capabilities for meta capability.
    280279 */
    281280function bbp_map_topic_tag_meta_caps( $caps, $cap, $user_id, $args ) {
  • trunk/src/includes/topics/functions.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Topic Functions
     4 * bbPress Topic Functions.
    55 *
    66 * @package bbPress
     
    1919 * @since 2.0.0 bbPress (r3349)
    2020 *
    21  * @param array $topic_data Forum post data
    22  * @param array $topic_meta Forum meta data
     21 * @param array $topic_data Forum post data.
     22 * @param array $topic_meta Forum meta data.
     23 *
     24 * @return int|false Topic ID on success, false on failure.
    2325 */
    2426function bbp_insert_topic( $topic_data = array(), $topic_meta = array() ) {
     
    98100
    99101/**
    100  * Handles the front end topic submission
    101  *
    102  * @param string $action The requested action to compare this function to
     102 * Handles the front end topic submission.
     103 *
     104 * @param string $action The requested action to compare this function to.
    103105 */
    104106function bbp_new_topic_handler( $action = '' ) {
     
    434436
    435437/**
    436  * Handles the front end edit topic submission
    437  *
    438  * @param string $action The requested action to compare this function to
     438 * Handles the front end edit topic submission.
     439 *
     440 * @param string $action The requested action to compare this function to.
    439441 */
    440442function bbp_edit_topic_handler( $action = '' ) {
     
    779781
    780782/**
    781  * Handle all the extra meta stuff from posting a new topic
    782  *
    783  * @param int $topic_id Optional. Topic id
    784  * @param int $forum_id Optional. Forum id
     783 * Handle all the extra meta stuff from posting a new topic.
     784 *
     785 * @param int $topic_id Optional. Topic id.
     786 * @param int $forum_id Optional. Forum id.
    785787 * @param array $anonymous_data Optional - if it's an anonymous post. Do not
    786788 *                              supply if supplying $author_id. Should be
    787789 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
    788  * @param int $author_id Author id
     790 * @param int $author_id Author id.
    789791 * @param bool $is_edit Optional. Is the post being edited? Defaults to false.
    790792 */
     
    921923 * @since 2.0.0 bbPress (r2800)
    922924 *
    923  * @param int $topic_id Topic id
    924  * @param string $last_active_time Optional. Last active time
    925  * @param int $forum_id Optional. Forum id
    926  * @param int $reply_id Optional. Reply id
     925 * @param int $topic_id Topic id.
     926 * @param string $last_active_time Optional. Last active time.
     927 * @param int $forum_id Optional. Forum id.
     928 * @param int $reply_id Optional. Reply id.
    927929 * @param bool $refresh Reset all the previous parameters? Defaults to true.
    928930 */
     
    11381140
    11391141/**
    1140  * Merge topic handler
    1141  *
    1142  * Handles the front end merge topic submission
     1142 * Merge topic handler.
     1143 *
     1144 * Handles the front end merge topic submission.
    11431145 *
    11441146 * @since 2.0.0 bbPress (r2756)
    11451147 *
    1146  * @param string $action The requested action to compare this function to
     1148 * @param string $action The requested action to compare this function to.
    11471149 */
    11481150function bbp_merge_topic_handler( $action = '' ) {
     
    13741376
    13751377/**
    1376  * Fix counts on topic merge
     1378 * Fix counts on topic merge.
    13771379 *
    13781380 * When a topic is merged, update the counts of source and destination topic
     
    13811383 * @since 2.0.0 bbPress (r2756)
    13821384 *
    1383  * @param int $destination_topic_id Destination topic id
    1384  * @param int $source_topic_id Source topic id
    1385  * @param int $source_topic_forum_id Source topic's forum id
     1385 * @param int $destination_topic_id Destination topic id.
     1386 * @param int $source_topic_id Source topic id.
     1387 * @param int $source_topic_forum_id Source topic's forum id.
    13861388 */
    13871389function bbp_merge_topic_count( $destination_topic_id, $source_topic_id, $source_topic_forum_id ) {
     
    14101412
    14111413/**
    1412  * Split topic handler
    1413  *
    1414  * Handles the front end split topic submission
     1414 * Split topic handler.
     1415 *
     1416 * Handles the front end split topic submission.
    14151417 *
    14161418 * @since 2.0.0 bbPress (r2756)
    14171419 *
    1418  * @param string $action The requested action to compare this function to
     1420 * @param string $action The requested action to compare this function to.
    14191421 */
    14201422function bbp_split_topic_handler( $action = '' ) {
     
    17241726
    17251727/**
    1726  * Fix counts on topic split
     1728 * Fix counts on topic split.
    17271729 *
    17281730 * When a topic is split, update the counts of source and destination topic
     
    17311733 * @since 2.0.0 bbPress (r2756)
    17321734 *
    1733  * @param int $from_reply_id From reply id
    1734  * @param int $source_topic_id Source topic id
    1735  * @param int $destination_topic_id Destination topic id
     1735 * @param int $from_reply_id From reply id.
     1736 * @param int $source_topic_id Source topic id.
     1737 * @param int $destination_topic_id Destination topic id.
    17361738 */
    17371739function bbp_split_topic_count( $from_reply_id, $source_topic_id, $destination_topic_id ) {
     
    17591761
    17601762/**
    1761  * Handles the front end tag management (renaming, merging, destroying)
     1763 * Handles the front end tag management (renaming, merging, destroying).
    17621764 *
    17631765 * @since 2.0.0 bbPress (r2768)
    17641766 *
    1765  * @param string $action The requested action to compare this function to
     1767 * @param string $action The requested action to compare this function to.
    17661768 */
    17671769function bbp_edit_topic_tag_handler( $action = '' ) {
     
    19661968
    19671969/**
    1968  * Return an associative array of available topic statuses
     1970 * Return an associative array of available topic statuses.
    19691971 *
    19701972 * @since 2.4.0 bbPress (r5059)
    19711973 *
    1972  * @param int $topic_id   Optional. Topic id.
     1974 * @param int $topic_id Optional. Topic id.
    19731975 *
    19741976 * @return array
     
    19911993
    19921994/**
    1993  * Return an associative array of topic sticky types
     1995 * Return an associative array of topic sticky types.
    19941996 *
    19951997 * @since 2.4.0 bbPress (r5059)
    19961998 *
    1997  * @param int $topic_id   Optional. Topic id.
     1999 * @param int $topic_id Optional. Topic id.
    19982000 *
    19992001 * @return array
     
    20142016
    20152017/**
    2016  * Return array of available topic toggle actions
     2018 * Return array of available topic toggle actions.
    20172019 *
    20182020 * @since 2.6.0 bbPress (r6133)
    20192021 *
    2020  * @param int $topic_id   Optional. Topic id.
     2022 * @param int $topic_id Optional. Topic id.
    20212023 *
    20222024 * @return array
     
    20762078
    20772079/**
    2078  * Return sticky topics of a forum
     2080 * Return sticky topics of a forum.
    20792081 *
    20802082 * @since 2.0.0 bbPress (r2592)
    20812083 *
    20822084 * @param int $forum_id Optional. If not passed, super stickies are returned.
    2083  * @return array IDs of sticky topics of a forum or super stickies
     2085 *
     2086 * @return array IDs of sticky topics of a forum or super stickies.
    20842087 */
    20852088function bbp_get_stickies( $forum_id = 0 ) {
     
    21002103
    21012104/**
    2102  * Return topics stuck to front page of the forums
     2105 * Return topics stuck to front page of the forums.
    21032106 *
    21042107 * @since 2.0.0 bbPress (r2592)
    21052108 *
    2106  * @return array IDs of super sticky topics
     2109 * @return array IDs of super sticky topics.
    21072110 */
    21082111function bbp_get_super_stickies() {
     
    21242127/**
    21252128 * Handles the front end opening/closing, spamming/unspamming,
    2126  * sticking/unsticking and trashing/untrashing/deleting of topics
     2129 * sticking/unsticking and trashing/untrashing/deleting of topics.
    21272130 *
    21282131 * @since 2.0.0 bbPress (r2727)
    21292132 *
    2130  * @param string $action The requested action to compare this function to
     2133 * @param string $action The requested action to compare this function to.
    21312134 */
    21322135function bbp_toggle_topic_handler( $action = '' ) {
     
    21932196
    21942197/**
    2195  * Do the actual topic toggling
     2198 * Do the actual topic toggling.
    21962199 *
    21972200 * This function is used by `bbp_toggle_topic_handler()` to do the actual heavy
     
    23572360
    23582361/**
    2359  * Remove a deleted topic from all user favorites
     2362 * Remove a deleted topic from all user favorites.
    23602363 *
    23612364 * @since 2.0.0 bbPress (r2652)
    23622365 *
    2363  * @param int $topic_id Get the topic id to remove
     2366 * @param int $topic_id Get the topic id to remove.
    23642367 */
    23652368function bbp_remove_topic_from_all_favorites( $topic_id = 0 ) {
     
    23872390
    23882391/**
    2389  * Remove a deleted topic from all user subscriptions
     2392 * Remove a deleted topic from all user subscriptions.
    23902393 *
    23912394 * @since 2.0.0 bbPress (r2652)
    23922395 *
    2393  * @param int $topic_id Get the topic id to remove
     2396 * @param int $topic_id Get the topic id to remove.
    23942397 */
    23952398function bbp_remove_topic_from_all_subscriptions( $topic_id = 0 ) {
     
    24132416
    24142417/**
    2415  * Bump the total reply count of a topic
     2418 * Bump the total reply count of a topic.
    24162419 *
    24172420 * @since 2.1.0 bbPress (r3825)
    24182421 *
    24192422 * @param int $topic_id   Optional. Topic id.
    2420  * @param int $difference Optional. Default 1
    2421  * @return int Topic reply count
     2423 * @param int $difference Optional. Default 1.
     2424 *
     2425 * @return int Topic reply count.
    24222426 */
    24232427function bbp_bump_topic_reply_count( $topic_id = 0, $difference = 1 ) {
     
    24472451 *
    24482452 * @param int $topic_id The topic id.
    2449  *
    2450  * @return void
    24512453 */
    24522454function bbp_increase_topic_reply_count( $topic_id = 0 ) {
     
    24792481 *
    24802482 * @param int $topic_id The topic id.
    2481  *
    2482  * @return void
    24832483 */
    24842484function bbp_decrease_topic_reply_count( $topic_id = 0 ) {
     
    25062506
    25072507/**
    2508  * Bump the total hidden reply count of a topic
     2508 * Bump the total hidden reply count of a topic.
    25092509 *
    25102510 * @since 2.1.0 bbPress (r3825)
    25112511 *
    25122512 * @param int $topic_id   Optional. Topic id.
    2513  * @param int $difference Optional. Default 1
    2514  * @return int Topic hidden reply count
     2513 * @param int $difference Optional. Default 1.
     2514 *
     2515 * @return int Topic hidden reply count.
    25152516 */
    25162517function bbp_bump_topic_reply_count_hidden( $topic_id = 0, $difference = 1 ) {
     
    25402541 *
    25412542 * @param int $topic_id The topic id.
    2542  *
    2543  * @return void
    25442543 */
    25452544function bbp_increase_topic_reply_count_hidden( $topic_id = 0 ) {
     
    25722571 *
    25732572 * @param int $topic_id The topic id.
    2574  *
    2575  * @return void
    25762573 */
    25772574function bbp_decrease_topic_reply_count_hidden( $topic_id = 0 ) {
     
    26052602 * @param int $topic_id The topic id.
    26062603 * @param int $forum_id The forum id.
    2607  *
    2608  * @return void
    26092604 */
    26102605function bbp_insert_topic_update_counts( $topic_id = 0, $forum_id = 0 ) {
     
    26272622 * @since 2.0.0 bbPress (r2855)
    26282623 *
    2629  * @param int $topic_id Optional. Topic id to update
     2624 * @param int $topic_id Optional. Topic id to update.
    26302625 * @param int $forum_id Optional. Forum id
    2631  * @return int Forum id
     2626 *
     2627 * @return int Forum id.
    26322628 */
    26332629function bbp_update_topic_forum_id( $topic_id = 0, $forum_id = 0 ) {
     
    26512647
    26522648/**
    2653  * Update the topic's topic id
     2649 * Update the topic's topic id.
    26542650 *
    26552651 * @since 2.0.0 bbPress (r2954)
    26562652 *
    2657  * @param int $topic_id Optional. Topic id to update
    2658  * @return int Topic id
     2653 * @param int $topic_id Optional. Topic id to update.
     2654 *
     2655 * @return int Topic id.
    26592656 */
    26602657function bbp_update_topic_topic_id( $topic_id = 0 ) {
     
    26672664
    26682665/**
    2669  * Adjust the total reply count of a topic
     2666 * Adjust the total reply count of a topic.
    26702667 *
    26712668 * @since 2.0.0 bbPress (r2467)
    26722669 *
    2673  * @param int $topic_id Optional. Topic id to update
     2670 * @param int $topic_id Optional. Topic id to update.
    26742671 * @param int $reply_count Optional. Set the reply count manually.
    2675  * @return int Topic reply count
     2672 *
     2673 * @return int Topic reply count.
    26762674 */
    26772675function bbp_update_topic_reply_count( $topic_id = 0, $reply_count = false ) {
     
    26952693/**
    26962694 * Adjust the total hidden reply count of a topic (hidden includes trashed,
    2697  * spammed and pending replies)
     2695 * spammed and pending replies).
    26982696 *
    26992697 * @since 2.0.0 bbPress (r2740)
    27002698 *
    2701  * @param int $topic_id Optional. Topic id to update
    2702  * @param int $reply_count Optional. Set the reply count manually
    2703  * @return int Topic hidden reply count
     2699 * @param int $topic_id Optional. Topic id to update.
     2700 * @param int $reply_count Optional. Set the reply count manually.
     2701 *
     2702 * @return int Topic hidden reply count.
    27042703 */
    27052704function bbp_update_topic_reply_count_hidden( $topic_id = 0, $reply_count = false ) {
     
    27222721
    27232722/**
    2724  * Update the topic with the last active post ID
     2723 * Update the topic with the last active post ID.
    27252724 *
    27262725 * @since 2.0.0 bbPress (r2888)
    27272726 *
    2728  * @param int $topic_id Optional. Topic id to update
    2729  * @param int $active_id Optional. active id
    2730  * @return int Active id
     2727 * @param int $topic_id Optional. Topic id to update.
     2728 * @param int $active_id Optional. Active id.
     2729 *
     2730 * @return int Active id.
    27312731 */
    27322732function bbp_update_topic_last_active_id( $topic_id = 0, $active_id = 0 ) {
     
    27572757
    27582758/**
    2759  * Update the topics last active date/time (aka freshness)
     2759 * Update the topics last active date/time (aka freshness).
    27602760 *
    27612761 * @since 2.0.0 bbPress (r2680)
     
    27632763 * @param int    $topic_id Optional. Topic id.
    27642764 * @param string $new_time Optional. New time in mysql format.
    2765  * @return string MySQL timestamp of last active reply
     2765 *
     2766 * @return string MySQL timestamp of last active reply.
    27662767 */
    27672768function bbp_update_topic_last_active_time( $topic_id = 0, $new_time = '' ) {
     
    27872788
    27882789/**
    2789  * Update the topic with the most recent reply ID
     2790 * Update the topic with the most recent reply ID.
    27902791 *
    27912792 * @since 2.0.0 bbPress (r2625)
    27922793 *
    2793  * @param int $topic_id Optional. Topic id to update
    2794  * @param int $reply_id Optional. Reply id
    2795  * @return int Reply id
     2794 * @param int $topic_id Optional. Topic id to update.
     2795 * @param int $reply_id Optional. Reply id.
     2796 *
     2797 * @return int Reply id.
    27962798 */
    27972799function bbp_update_topic_last_reply_id( $topic_id = 0, $reply_id = 0 ) {
     
    28252827
    28262828/**
    2827  * Adjust the total voice count of a topic
     2829 * Adjust the total voice count of a topic.
    28282830 *
    28292831 * @since 2.0.0 bbPress (r2567)
    2830  * @since 2.6.0 bbPress (r6515) This must be called after any engagement changes
    2831  *
    2832  * @param int $topic_id Optional. Topic id to update
    2833  * @return int Voice count
     2832 * @since 2.6.0 bbPress (r6515) This must be called after any engagement changes.
     2833 *
     2834 * @param int $topic_id Optional. Topic id to update.
     2835 *
     2836 * @return int Voice count.
    28342837 */
    28352838function bbp_update_topic_voice_count( $topic_id = 0 ) {
     
    28562859
    28572860/**
    2858  * Adjust the total anonymous reply count of a topic
     2861 * Adjust the total anonymous reply count of a topic.
    28592862 *
    28602863 * @since 2.0.0 bbPress (r2567)
    28612864 *
    2862  * @param int $topic_id Optional. Topic id to update
    2863  * @return int Anonymous reply count
     2865 * @param int $topic_id Optional. Topic id to update.
     2866 *
     2867 * @return int Anonymous reply count.
    28642868 */
    28652869function bbp_update_topic_anonymous_reply_count( $topic_id = 0 ) {
     
    28822886
    28832887/**
    2884  * Update the revision log of the topic
     2888 * Update the revision log of the topic.
    28852889 *
    28862890 * @since 2.0.0 bbPress (r2782)
     
    28912895 *  - reason: Reason for editing
    28922896 *  - revision_id: Revision id
    2893  * @return mixed False on failure, true on success
     2897 *
     2898 * @return mixed False on failure, true on success.
    28942899 */
    28952900function bbp_update_topic_revision_log( $args = array() ) {
     
    29272932
    29282933/**
    2929  * Closes a topic
     2934 * Closes a topic.
    29302935 *
    29312936 * @since 2.0.0 bbPress (r2740)
    29322937 *
    2933  * @param int $topic_id Topic id
    2934  * @return mixed False or {@link WP_Error} on failure, topic id on success
     2938 * @param int $topic_id Topic id.
     2939 *
     2940 * @return mixed False or {@link WP_Error} on failure, topic id on success.
    29352941 */
    29362942function bbp_close_topic( $topic_id = 0 ) {
     
    29862992
    29872993/**
    2988  * Opens a topic
     2994 * Opens a topic.
    29892995 *
    29902996 * @since 2.0.0 bbPress (r2740)
    29912997 *
    2992  * @param int $topic_id Topic id
    2993  * @return mixed False or {@link WP_Error} on failure, topic id on success
     2998 * @param int $topic_id Topic id.
     2999 *
     3000 * @return mixed False or {@link WP_Error} on failure, topic id on success.
    29943001 */
    29953002function bbp_open_topic( $topic_id = 0 ) {
     
    30463053
    30473054/**
    3048  * Marks a topic as spam
     3055 * Marks a topic as spam.
    30493056 *
    30503057 * @since 2.0.0 bbPress (r2740)
    30513058 *
    3052  * @param int $topic_id Topic id
    3053  * @return mixed False or {@link WP_Error} on failure, topic id on success
     3059 * @param int $topic_id Topic id.
     3060 * @return mixed False or {@link WP_Error} on failure, topic id on success.
    30543061 */
    30553062function bbp_spam_topic( $topic_id = 0 ) {
     
    30953102
    30963103/**
    3097  * Trash replies to a topic when it's marked as spam
     3104 * Trash replies to a topic when it's marked as spam.
    30983105 *
    30993106 * Usually you'll want to do this before the topic itself is marked as spam.
     
    31013108 * @since 2.6.0 bbPress (r5405)
    31023109 *
    3103  * @param int $topic_id
     3110 * @param int $topic_id Topic id.
    31043111 */
    31053112function bbp_spam_topic_replies( $topic_id = 0 ) {
     
    31563163 * @since 2.6.0 bbPress (r5405)
    31573164 *
    3158  * @param int $topic_id
     3165 * @param int $topic_id Topic id.
     3166 *
     3167 * @return array
    31593168 */
    31603169function bbp_spam_topic_tags( $topic_id = 0 ) {
     
    31893198
    31903199/**
    3191  * Unspams a topic
     3200 * Unspams a topic.
    31923201 *
    31933202 * @since 2.0.0 bbPress (r2740)
    31943203 *
    3195  * @param int $topic_id Topic id
    3196  * @return mixed False or {@link WP_Error} on failure, topic id on success
     3204 * @param int $topic_id Topic id.
     3205 *
     3206 * @return mixed False or {@link WP_Error} on failure, topic id on success.
    31973207 */
    31983208function bbp_unspam_topic( $topic_id = 0 ) {
     
    32473257 * @since 2.6.0 bbPress (r5405)
    32483258 *
    3249  * @param int $topic_id
     3259 * @param int $topic_id Topic id.
    32503260 */
    32513261function bbp_unspam_topic_replies( $topic_id = 0 ) {
     
    32823292 * @since 2.6.0 bbPress (r5405)
    32833293 *
    3284  * @param int $topic_id
     3294 * @param int $topic_id Topic id.
     3295 *
     3296 * @return array
    32853297 */
    32863298function bbp_unspam_topic_tags( $topic_id = 0 ) {
     
    33013313
    33023314/**
    3303  * Sticks a topic to a forum or front
     3315 * Sticks a topic to a forum or front.
    33043316 *
    33053317 * @since 2.0.0 bbPress (r2754)
    33063318 *
    3307  * @param int $topic_id Optional. Topic id
     3319 * @param int $topic_id Optional. Topic id.
    33083320 * @param int $super Should we make the topic a super sticky?
     3321 *
    33093322 * @return bool True on success, false on failure
    33103323 */
     
    33563369
    33573370/**
    3358  * Approves a pending topic
     3371 * Approves a pending topic.
    33593372 *
    33603373 * @since 2.6.0 bbPress (r5503)
    33613374 *
    3362  * @param int $topic_id Topic id
    3363  * @return mixed False or {@link WP_Error} on failure, topic id on success
     3375 * @param int $topic_id Topic id.
     3376 *
     3377 * @return mixed False or {@link WP_Error} on failure, topic id on success.
    33643378 */
    33653379function bbp_approve_topic( $topic_id = 0 ) {
     
    34023416
    34033417/**
    3404  * Unapproves a topic
     3418 * Unapproves a topic.
    34053419 *
    34063420 * @since 2.6.0 bbPress (r5503)
    34073421 *
    3408  * @param int $topic_id Topic id
    3409  * @return mixed False or {@link WP_Error} on failure, topic id on success
     3422 * @param int $topic_id Topic id.
     3423 *
     3424 * @return mixed False or {@link WP_Error} on failure, topic id on success.
    34103425 */
    34113426function bbp_unapprove_topic( $topic_id = 0 ) {
     
    34453460
    34463461/**
    3447  * Unsticks a topic both from front and it's forum
     3462 * Unsticks a topic both from front and it's forum.
    34483463 *
    34493464 * @since 2.0.0 bbPress (r2754)
    34503465 *
    3451  * @param int $topic_id Optional. Topic id
     3466 * @param int $topic_id Optional. Topic id.
     3467 *
    34523468 * @return bool Always true.
    34533469 */
     
    35033519 * handled by WordPress core API functions. It is used to clean up after
    35043520 * a topic that is being deleted.
     3521 *
     3522 * @since 2.0.0 bbPress (r2895)
     3523 *
     3524 * @param int $topic_id Topic id.
    35053525 */
    35063526function bbp_delete_topic( $topic_id = 0 ) {
     
    35173537
    35183538/**
    3519  * Delete replies to a topic when it's deleted
     3539 * Delete replies to a topic when it's deleted.
    35203540 *
    35213541 * Usually you'll want to do this before the topic itself is deleted.
     
    35233543 * @since 2.6.0 bbPress (r5405)
    35243544 *
    3525  * @param int $topic_id
     3545 * @param int $topic_id Topic id.
    35263546 */
    35273547function bbp_delete_topic_replies( $topic_id = 0 ) {
     
    35623582
    35633583/**
    3564  * Called before trashing a topic
     3584 * Called before trashing a topic.
    35653585 *
    35663586 * This function is supplemental to the actual topic being trashed which is
    35673587 * handled by WordPress core API functions. It is used to clean up after
    35683588 * a topic that is being trashed.
     3589 *
     3590 * @since 2.0.0 bbPress (r2895)
     3591 *
     3592 * @param int $topic_id Topic id.
    35693593 */
    35703594function bbp_trash_topic( $topic_id = 0 ) {
     
    35873611 * @since 2.6.0 bbPress (r5405)
    35883612 *
    3589  * @param int $topic_id
     3613 * @param int $topic_id Topic id.
    35903614 */
    35913615function bbp_trash_topic_replies( $topic_id = 0 ) {
     
    36353659
    36363660/**
    3637  * Called before untrashing a topic
     3661 * Called before untrashing a topic.
     3662 *
     3663 * @since 2.0.0 bbPress (r2895)
     3664 *
     3665 * @param int $topic_id Topic id.
    36383666 */
    36393667function bbp_untrash_topic( $topic_id = 0 ) {
     
    36543682 * @since 2.6.0 bbPress (r5405)
    36553683 *
    3656  * @param int $topic_id
     3684 * @param int $topic_id Topic id.
    36573685 */
    36583686function bbp_untrash_topic_replies( $topic_id = 0 ) {
     
    36853713
    36863714/**
    3687  * Called after deleting a topic
     3715 * Called after deleting a topic.
    36883716 *
    36893717 * @since 2.0.0 bbPress (r2993)
     3718 *
     3719 * @param int $topic_id Topic id.
    36903720 */
    36913721function bbp_deleted_topic( $topic_id = 0 ) {
     
    37003730
    37013731/**
    3702  * Called after trashing a topic
     3732 * Called after trashing a topic.
    37033733 *
    37043734 * @since 2.0.0 bbPress (r2993)
     3735 *
     3736 * @param int $topic_id Topic id.
    37053737 */
    37063738function bbp_trashed_topic( $topic_id = 0 ) {
     
    37153747
    37163748/**
    3717  * Called after untrashing a topic
     3749 * Called after untrashing a topic.
    37183750 *
    37193751 * @since 2.0.0 bbPress (r2993)
     3752 *
     3753 * @param int $topic_id Topic id.
    37203754 */
    37213755function bbp_untrashed_topic( $topic_id = 0 ) {
     
    37323766
    37333767/**
    3734  * Return the topics per page setting
     3768 * Return the topics per page setting.
    37353769 *
    37363770 * @since 2.0.0 bbPress (r3540)
    3737  * @return int
     3771 *
     3772 * @param int $default Optional. Number of topics per page if no value exists.
     3773 *
     3774 * @return int Number of topics per page.
    37383775 */
    37393776function bbp_get_topics_per_page( $default = 15 ) {
     
    37523789
    37533790/**
    3754  * Return the topics per RSS page setting
     3791 * Return the topics per RSS page setting.
    37553792 *
    37563793 * @since 2.0.0 bbPress (r3540)
    37573794 *
    37583795 * @param int $default Default replies per page (25)
    3759  * @return int
     3796 *
     3797 * @return int Number of topics per RSS page.
    37603798 */
    37613799function bbp_get_topics_per_rss_page( $default = 25 ) {
     
    37763814
    37773815/**
    3778  * Get topic tags for a specific topic ID
     3816 * Get topic tags for a specific topic ID.
    37793817 *
    37803818 * @since 2.6.0 bbPress (r5836)
    37813819 *
    3782  * @param int $topic_id
     3820 * @param int $topic_id Topic id.
    37833821 *
    37843822 * @return string
     
    37943832
    37953833/**
    3796  * Get topic tags for a specific topic ID
     3834 * Get topic tags for a specific topic ID.
    37973835 *
    37983836 * @since 2.2.0 bbPress (r4165)
    37993837 *
    3800  * @param int    $topic_id
    3801  * @param string $sep
     3838 * @param int    $topic_id Topic id.
     3839 * @param string $sep      Separator string.
    38023840 *
    38033841 * @return string
     
    38763914
    38773915/**
    3878  * Check if autoembeds are enabled and hook them in if so
     3916 * Check if autoembeds are enabled and hook them in if so.
    38793917 *
    38803918 * @since 2.1.0 bbPress (r3752)
     
    39894027
    39904028/**
    3991  * Redirect if unauthorized user is attempting to edit a topic
     4029 * Redirect if unauthorized user is attempting to edit a topic.
    39924030 *
    39934031 * @since 2.1.0 bbPress (r3605)
     
    40074045
    40084046/**
    4009  * Redirect if unauthorized user is attempting to edit a topic tag
     4047 * Redirect if unauthorized user is attempting to edit a topic tag.
    40104048 *
    40114049 * @since 2.1.0 bbPress (r3605)
  • trunk/src/includes/topics/template.php

    r7379 r7380  
    22
    33/**
    4  * bbPress Topic Template Tags
     4 * bbPress Topic Template Tags.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Output the unique id of the custom post type for topics
     16 * Output the unique id of the custom post type for topics.
    1717 *
    1818 * @since 2.0.0 bbPress (r2857)
     
    2121    echo bbp_get_topic_post_type();
    2222}
    23     /**
    24      * Return the unique id of the custom post type for topics
    25      *
    26      * @since 2.0.0 bbPress (r2857)
    27      *
    28      * @return string The unique topic post type id
    29      */
    30     function bbp_get_topic_post_type() {
    31 
    32         // Filter & return
    33         return apply_filters( 'bbp_get_topic_post_type', bbpress()->topic_post_type );
    34     }
    35 
    36 /**
    37  * Return array of labels used by the topic post type
     23
     24/**
     25 * Return the unique id of the custom post type for topics.
     26 *
     27 * @since 2.0.0 bbPress (r2857)
     28 *
     29 * @return string The unique topic post type id.
     30 */
     31function bbp_get_topic_post_type() {
     32
     33    // Filter & return
     34    return apply_filters( 'bbp_get_topic_post_type', bbpress()->topic_post_type );
     35}
     36
     37/**
     38 * Return array of labels used by the topic post type.
    3839 *
    3940 * @since 2.5.0 bbPress (r5129)
     
    8485
    8586/**
    86  * Return array of topic post type rewrite settings
     87 * Return array of topic post type rewrite settings.
    8788 *
    8889 * @since 2.5.0 bbPress (r5129)
     
    103104
    104105/**
    105  * Return array of features the topic post type supports
     106 * Return array of features the topic post type supports.
    106107 *
    107108 * @since 2.5.0 bbPress (r5129)
     
    129130 * @since 2.0.0 bbPress (r2954)
    130131 *
    131  * @param $show_lead Optional. Default false
    132  * @return bool Yes if the topic appears as a lead, otherwise false
     132 * @param $show_lead Optional. Default false.
     133 * @return bool Yes if the topic appears as a lead, otherwise false.
    133134 */
    134135function bbp_show_lead_topic( $show_lead = false ) {
     
    146147
    147148/**
    148  * The main topic loop. WordPress makes this easy for us
     149 * The main topic loop. WordPress makes this easy for us.
    149150 *
    150151 * @since 2.0.0 bbPress (r2485)
    151152 *
    152  * @param array $args All the arguments supported by {@link WP_Query}
    153  * @return object Multidimensional array of topic information
     153 * @param array $args All the arguments supported by {@link WP_Query}.
     154 * @return object Multidimensional array of topic information.
    154155 */
    155156function bbp_has_topics( $args = array() ) {
     
    294295
    295296/**
    296  * Whether there are more topics available in the loop
     297 * Whether there are more topics available in the loop.
    297298 *
    298299 * @since 2.0.0 bbPress (r2485)
    299300 *
    300  * @return object Topic information
     301 * @return object Topic information.
    301302 */
    302303function bbp_topics() {
     
    314315
    315316/**
    316  * Loads up the current topic in the loop
     317 * Loads up the current topic in the loop.
    317318 *
    318319 * @since 2.0.0 bbPress (r2485)
    319320 *
    320  * @return object Topic information
     321 * @return object Topic information.
    321322 */
    322323function bbp_the_topic() {
     
    325326
    326327/**
    327  * Add sticky topics to a topics query object
     328 * Add sticky topics to a topics query object.
    328329 *
    329330 * @since 2.6.0 bbPress (r6402)
     
    467468
    468469/**
    469  * Output the topic id
     470 * Output the topic id.
    470471 *
    471472 * @since 2.0.0 bbPress (r2485)
     
    474475    echo bbp_get_topic_id( $topic_id );
    475476}
    476     /**
    477      * Return the topic id
    478      *
    479      * @since 2.0.0 bbPress (r2485)
    480      *
    481      * @param $topic_id Optional. Used to check emptiness
    482      * @return int The topic id
    483      */
    484     function bbp_get_topic_id( $topic_id = 0 ) {
    485         $bbp      = bbpress();
    486         $wp_query = bbp_get_wp_query();
    487 
    488         // Easy empty checking
    489         if ( ! empty( $topic_id ) && is_numeric( $topic_id ) ) {
    490             $bbp_topic_id = $topic_id;
    491 
    492         // Currently inside a topic loop
    493         } elseif ( ! empty( $bbp->topic_query->in_the_loop ) && isset( $bbp->topic_query->post->ID ) ) {
    494             $bbp_topic_id = $bbp->topic_query->post->ID;
    495 
    496         // Currently inside a search loop
    497         } elseif ( ! empty( $bbp->search_query->in_the_loop ) && isset( $bbp->search_query->post->ID ) && bbp_is_topic( $bbp->search_query->post->ID ) ) {
    498             $bbp_topic_id = $bbp->search_query->post->ID;
    499 
    500         // Currently viewing/editing a topic, likely alone
    501         } elseif ( ( bbp_is_single_topic() || bbp_is_topic_edit() ) && ! empty( $bbp->current_topic_id ) ) {
    502             $bbp_topic_id = $bbp->current_topic_id;
    503 
    504         // Currently viewing/editing a topic, likely in a loop
    505         } elseif ( ( bbp_is_single_topic() || bbp_is_topic_edit() ) && isset( $wp_query->post->ID ) ) {
    506             $bbp_topic_id = $wp_query->post->ID;
    507 
    508         // Currently viewing/editing a reply
    509         } elseif ( bbp_is_single_reply() || bbp_is_reply_edit() ) {
    510             $bbp_topic_id = bbp_get_reply_topic_id();
    511 
    512         // Fallback
    513         } else {
    514             $bbp_topic_id = 0;
    515         }
    516 
    517         // Filter & return
    518         return (int) apply_filters( 'bbp_get_topic_id', (int) $bbp_topic_id, $topic_id );
    519     }
    520 
    521 /**
    522  * Gets a topic
     477
     478/**
     479 * Return the topic id.
     480 *
     481 * @since 2.0.0 bbPress (r2485)
     482 *
     483 * @param $topic_id Optional. Used to check emptiness.
     484 * @return int The topic id.
     485 */
     486function bbp_get_topic_id( $topic_id = 0 ) {
     487    $bbp      = bbpress();
     488    $wp_query = bbp_get_wp_query();
     489
     490    // Easy empty checking
     491    if ( ! empty( $topic_id ) && is_numeric( $topic_id ) ) {
     492        $bbp_topic_id = $topic_id;
     493
     494    // Currently inside a topic loop
     495    } elseif ( ! empty( $bbp->topic_query->in_the_loop ) && isset( $bbp->topic_query->post->ID ) ) {
     496        $bbp_topic_id = $bbp->topic_query->post->ID;
     497
     498    // Currently inside a search loop
     499    } elseif ( ! empty( $bbp->search_query->in_the_loop ) && isset( $bbp->search_query->post->ID ) && bbp_is_topic( $bbp->search_query->post->ID ) ) {
     500        $bbp_topic_id = $bbp->search_query->post->ID;
     501
     502    // Currently viewing/editing a topic, likely alone
     503    } elseif ( ( bbp_is_single_topic() || bbp_is_topic_edit() ) && ! empty( $bbp->current_topic_id ) ) {
     504        $bbp_topic_id = $bbp->current_topic_id;
     505
     506    // Currently viewing/editing a topic, likely in a loop
     507    } elseif ( ( bbp_is_single_topic() || bbp_is_topic_edit() ) && isset( $wp_query->post->ID ) ) {
     508        $bbp_topic_id = $wp_query->post->ID;
     509
     510    // Currently viewing/editing a reply
     511    } elseif ( bbp_is_single_reply() || bbp_is_reply_edit() ) {
     512        $bbp_topic_id = bbp_get_reply_topic_id();
     513
     514    // Fallback
     515    } else {
     516        $bbp_topic_id = 0;
     517    }
     518
     519    // Filter & return
     520    return (int) apply_filters( 'bbp_get_topic_id', (int) $bbp_topic_id, $topic_id );
     521}
     522
     523/**
     524 * Gets a topic.
    523525 *
    524526 * @since 2.0.0 bbPress (r2787)
    525527 *
    526  * @return mixed Null if error or topic (in specified form) if success
     528 * @return mixed Null if error or topic (in specified form) if success.
    527529 */
    528530function bbp_get_topic( $topic, $output = OBJECT, $filter = 'raw' ) {
     
    561563
    562564/**
    563  * Output the link to the topic in the topic loop
     565 * Output the link to the topic in the topic loop.
    564566 *
    565567 * @since 2.0.0 bbPress (r2485)
    566568 *
    567  * @param int $topic_id Optional. Topic id
     569 * @param int $topic_id Optional. Topic id.
    568570 * @param string $redirect_to Optional. Pass a redirect value for use with
    569571 *                              shortcodes and other fun things.
     
    572574    echo esc_url( bbp_get_topic_permalink( $topic_id, $redirect_to ) );
    573575}
    574     /**
    575      * Return the link to the topic
    576      *
    577      * @since 2.0.0 bbPress (r2485)
    578      *
    579      * @param int $topic_id Optional. Topic id
    580      * @param string $redirect_to Optional. Pass a redirect value for use with
    581      *                              shortcodes and other fun things.
    582      * @return string Permanent link to topic
    583      */
    584     function bbp_get_topic_permalink( $topic_id = 0, $redirect_to = '' ) {
    585         $topic_id = bbp_get_topic_id( $topic_id );
    586 
    587         // Use the redirect address
    588         if ( ! empty( $redirect_to ) ) {
    589             $topic_permalink = esc_url_raw( $redirect_to );
    590 
    591         // Use the topic permalink
    592         } else {
    593             $topic_permalink = get_permalink( $topic_id );
    594         }
    595 
    596         // Filter & return
    597         return apply_filters( 'bbp_get_topic_permalink', $topic_permalink, $topic_id );
    598     }
    599 
    600 /**
    601  * Output the title of the topic
     576
     577/**
     578 * Return the link to the topic.
    602579 *
    603580 * @since 2.0.0 bbPress (r2485)
    604581 *
    605  * @param int $topic_id Optional. Topic id
     582 * @param int $topic_id Optional. Topic id.
     583 * @param string $redirect_to Optional. Pass a redirect value for use with
     584 *                              shortcodes and other fun things.
     585 * @return string Permanent link to topic.
     586 */
     587function bbp_get_topic_permalink( $topic_id = 0, $redirect_to = '' ) {
     588    $topic_id = bbp_get_topic_id( $topic_id );
     589
     590    // Use the redirect address
     591    if ( ! empty( $redirect_to ) ) {
     592        $topic_permalink = esc_url_raw( $redirect_to );
     593
     594    // Use the topic permalink
     595    } else {
     596        $topic_permalink = get_permalink( $topic_id );
     597    }
     598
     599    // Filter & return
     600    return apply_filters( 'bbp_get_topic_permalink', $topic_permalink, $topic_id );
     601}
     602
     603/**
     604 * Output the title of the topic.
     605 *
     606 * @since 2.0.0 bbPress (r2485)
     607 *
     608 * @param int $topic_id Optional. Topic id.
    606609 */
    607610function bbp_topic_title( $topic_id = 0 ) {
    608611    echo bbp_get_topic_title( $topic_id );
    609612}
    610     /**
    611      * Return the title of the topic
    612      *
    613      * @since 2.0.0 bbPress (r2485)
    614      *
    615      * @param int $topic_id Optional. Topic id
    616      * @return string Title of topic
    617      */
    618     function bbp_get_topic_title( $topic_id = 0 ) {
    619         $topic_id = bbp_get_topic_id( $topic_id );
    620         $title    = get_post_field( 'post_title', $topic_id );
    621         $title    = apply_filters( 'the_title', $title, $topic_id );
    622 
    623         // Filter & return
    624         return apply_filters( 'bbp_get_topic_title', $title, $topic_id );
    625     }
    626 
    627 /**
    628  * Output the topic archive title
     613
     614/**
     615 * Return the title of the topic.
     616 *
     617 * @since 2.0.0 bbPress (r2485)
     618 *
     619 * @param int $topic_id Optional. Topic id.
     620 * @return string Title of topic.
     621 */
     622function bbp_get_topic_title( $topic_id = 0 ) {
     623    $topic_id = bbp_get_topic_id( $topic_id );
     624    $title    = get_post_field( 'post_title', $topic_id );
     625    $title    = apply_filters( 'the_title', $title, $topic_id );
     626
     627    // Filter & return
     628    return apply_filters( 'bbp_get_topic_title', $title, $topic_id );
     629}
     630
     631/**
     632 * Output the topic archive title.
    629633 *
    630634 * @since 2.0.0 bbPress (r3249)
    631635 *
    632  * @param string $title Default text to use as title
     636 * @param string $title Default text to use as title.
    633637 */
    634638function bbp_topic_archive_title( $title = '' ) {
    635639    echo bbp_get_topic_archive_title( $title );
    636640}
    637     /**
    638      * Return the topic archive title
    639      *
    640      * @since 2.0.0 bbPress (r3249)
    641      *
    642      * @param string $title Default text to use as title
    643      *
    644      * @return string The topic archive title
    645      */
    646     function bbp_get_topic_archive_title( $title = '' ) {
    647 
    648         // If no title was passed
    649         if ( empty( $title ) ) {
    650 
    651             // Set root text to page title
    652             $page = bbp_get_page_by_path( bbp_get_topic_archive_slug() );
    653             if ( ! empty( $page ) ) {
    654                 $title = get_the_title( $page->ID );
    655 
    656             // Default to topic post type name label
    657             } else {
    658                 $tto   = get_post_type_object( bbp_get_topic_post_type() );
    659                 $title = $tto->labels->name;
    660             }
     641
     642/**
     643 * Return the topic archive title.
     644 *
     645 * @since 2.0.0 bbPress (r3249)
     646 *
     647 * @param string $title Default text to use as title.
     648 *
     649 * @return string The topic archive title.
     650 */
     651function bbp_get_topic_archive_title( $title = '' ) {
     652
     653    // If no title was passed
     654    if ( empty( $title ) ) {
     655
     656        // Set root text to page title
     657        $page = bbp_get_page_by_path( bbp_get_topic_archive_slug() );
     658        if ( ! empty( $page ) ) {
     659            $title = get_the_title( $page->ID );
     660
     661        // Default to topic post type name label
     662        } else {
     663            $tto   = get_post_type_object( bbp_get_topic_post_type() );
     664            $title = $tto->labels->name;
    661665        }
    662 
    663         // Filter & return
    664         return apply_filters( 'bbp_get_topic_archive_title', $title );
    665     }
    666 
    667 /**
    668  * Output the content of the topic
     666    }
     667
     668    // Filter & return
     669    return apply_filters( 'bbp_get_topic_archive_title', $title );
     670}
     671
     672/**
     673 * Output the content of the topic.
    669674 *
    670675 * @since 2.0.0 bbPress (r2780)
    671676 *
    672  * @param int $topic_id Optional. Topic id
     677 * @param int $topic_id Optional. Topic id.
    673678 */
    674679function bbp_topic_content( $topic_id = 0 ) {
    675680    echo bbp_get_topic_content( $topic_id );
    676681}
    677     /**
    678      * Return the content of the topic
    679      *
    680      * @since 2.0.0 bbPress (r2780)
    681      *
    682      * @param int $topic_id Optional. Topic id
    683      * @return string Content of the topic
    684      */
    685     function bbp_get_topic_content( $topic_id = 0 ) {
    686         $topic_id = bbp_get_topic_id( $topic_id );
    687 
    688         // Check if password is required
    689         if ( post_password_required( $topic_id ) ) {
    690             return get_the_password_form();
    691         }
    692 
    693         $content = get_post_field( 'post_content', $topic_id );
    694 
    695         // Filter & return
    696         return apply_filters( 'bbp_get_topic_content', $content, $topic_id );
    697     }
    698 
    699 /**
    700  * Output the excerpt of the topic
     682
     683/**
     684 * Return the content of the topic.
    701685 *
    702686 * @since 2.0.0 bbPress (r2780)
    703687 *
    704  * @param int $topic_id Optional. Topic id
    705  * @param int $length Optional. Length of the excerpt. Defaults to 100 letters
     688 * @param int $topic_id Optional. Topic id.
     689 * @return string Content of the topic.
     690 */
     691function bbp_get_topic_content( $topic_id = 0 ) {
     692    $topic_id = bbp_get_topic_id( $topic_id );
     693
     694    // Check if password is required
     695    if ( post_password_required( $topic_id ) ) {
     696        return get_the_password_form();
     697    }
     698
     699    $content = get_post_field( 'post_content', $topic_id );
     700
     701    // Filter & return
     702    return apply_filters( 'bbp_get_topic_content', $content, $topic_id );
     703}
     704
     705/**
     706 * Output the excerpt of the topic.
     707 *
     708 * @since 2.0.0 bbPress (r2780)
     709 *
     710 * @param int $topic_id Optional. Topic id.
     711 * @param int $length Optional. Length of the excerpt. Defaults to 100 letters.
    706712 */
    707713function bbp_topic_excerpt( $topic_id = 0, $length = 100 ) {
    708714    echo bbp_get_topic_excerpt( $topic_id, $length );
    709715}
    710     /**
    711      * Return the excerpt of the topic
    712      *
    713      * @since 2.0.0 bbPress (r2780)
    714      *
    715      * @param int $topic_id Optional. topic id
    716      * @param int $length Optional. Length of the excerpt. Defaults to 100
    717      *                     letters
    718      * @return string topic Excerpt
    719      */
    720     function bbp_get_topic_excerpt( $topic_id = 0, $length = 100 ) {
    721         $topic_id = bbp_get_topic_id( $topic_id );
    722         $length   = (int) $length;
    723         $excerpt  = get_post_field( 'post_excerpt', $topic_id );
    724 
    725         if ( empty( $excerpt ) ) {
    726             $excerpt = bbp_get_topic_content( $topic_id );
    727         }
    728 
    729         $excerpt = wp_strip_all_tags( $excerpt );
    730 
    731         // Multibyte support
    732         if ( function_exists( 'mb_strlen' ) ) {
    733             $excerpt_length = mb_strlen( $excerpt );
    734         } else {
    735             $excerpt_length = strlen( $excerpt );
    736         }
    737 
    738         if ( ! empty( $length ) && ( $excerpt_length > $length ) ) {
    739             $excerpt  = mb_substr( $excerpt, 0, $length - 1 );
    740             $excerpt .= '&hellip;';
    741         }
    742 
    743         // Filter & return
    744         return apply_filters( 'bbp_get_topic_excerpt', $excerpt, $topic_id, $length );
    745     }
    746 
    747 /**
    748  * Output the post date and time of a topic
     716
     717/**
     718 * Return the excerpt of the topic.
     719 *
     720 * @since 2.0.0 bbPress (r2780)
     721 *
     722 * @param int $topic_id Optional. topic id.
     723 * @param int $length Optional. Length of the excerpt. Defaults to 100
     724 *                     letters.
     725 * @return string topic Excerpt.
     726 */
     727function bbp_get_topic_excerpt( $topic_id = 0, $length = 100 ) {
     728    $topic_id = bbp_get_topic_id( $topic_id );
     729    $length   = (int) $length;
     730    $excerpt  = get_post_field( 'post_excerpt', $topic_id );
     731
     732    if ( empty( $excerpt ) ) {
     733        $excerpt = bbp_get_topic_content( $topic_id );
     734    }
     735
     736    $excerpt = wp_strip_all_tags( $excerpt );
     737
     738    // Multibyte support
     739    if ( function_exists( 'mb_strlen' ) ) {
     740        $excerpt_length = mb_strlen( $excerpt );
     741    } else {
     742        $excerpt_length = strlen( $excerpt );
     743    }
     744
     745    if ( ! empty( $length ) && ( $excerpt_length > $length ) ) {
     746        $excerpt  = mb_substr( $excerpt, 0, $length - 1 );
     747        $excerpt .= '&hellip;';
     748    }
     749
     750    // Filter & return
     751    return apply_filters( 'bbp_get_topic_excerpt', $excerpt, $topic_id, $length );
     752}
     753
     754/**
     755 * Output the post date and time of a topic.
    749756 *
    750757 * @since 2.2.0 bbPress (r4155)
    751758 *
    752759 * @param int $topic_id Optional. Topic id.
    753  * @param bool $humanize Optional. Humanize output using time_since
    754  * @param bool $gmt Optional. Use GMT
     760 * @param bool $humanize Optional. Humanize output using time_since.
     761 * @param bool $gmt Optional. Use GMT.
    755762 */
    756763function bbp_topic_post_date( $topic_id = 0, $humanize = false, $gmt = false ) {
    757764    echo bbp_get_topic_post_date( $topic_id, $humanize, $gmt );
    758765}
    759     /**
    760      * Return the post date and time of a topic
    761      *
    762      * @since 2.2.0 bbPress (r4155)
    763      *
    764      * @param int $topic_id Optional. Topic id.
    765      * @param bool $humanize Optional. Humanize output using time_since
    766      * @param bool $gmt Optional. Use GMT
    767      * @return string
    768      */
    769     function bbp_get_topic_post_date( $topic_id = 0, $humanize = false, $gmt = false ) {
    770         $topic_id = bbp_get_topic_id( $topic_id );
    771 
    772         // 4 days, 4 hours ago
    773         if ( ! empty( $humanize ) ) {
    774             $gmt_s  = ! empty( $gmt ) ? 'G' : 'U';
    775             $date   = get_post_time( $gmt_s, $gmt, $topic_id );
    776             $time   = false; // For filter below
    777             $result = bbp_get_time_since( $date );
    778 
    779         // August 4, 2012 at 2:37 pm
    780         } else {
    781             $date   = get_post_time( get_option( 'date_format' ), $gmt, $topic_id, true );
    782             $time   = get_post_time( get_option( 'time_format' ), $gmt, $topic_id, true );
    783             /* translators: 1: Date, 2: Time */
    784             $result = sprintf( _x( '%1$s at %2$s', 'date at time', 'bbpress' ), $date, $time );
    785         }
    786 
    787         // Filter & return
    788         return apply_filters( 'bbp_get_topic_post_date', $result, $topic_id, $humanize, $gmt, $date, $time );
    789     }
    790 
    791 /**
    792  * Output pagination links of a topic within the topic loop
     766
     767/**
     768 * Return the post date and time of a topic.
     769 *
     770 * @since 2.2.0 bbPress (r4155)
     771 *
     772 * @param int $topic_id Optional. Topic id.
     773 * @param bool $humanize Optional. Humanize output using time_since.
     774 * @param bool $gmt Optional. Use GMT.
     775 * @return string
     776 */
     777function bbp_get_topic_post_date( $topic_id = 0, $humanize = false, $gmt = false ) {
     778    $topic_id = bbp_get_topic_id( $topic_id );
     779
     780    // 4 days, 4 hours ago
     781    if ( ! empty( $humanize ) ) {
     782        $gmt_s  = ! empty( $gmt ) ? 'G' : 'U';
     783        $date   = get_post_time( $gmt_s, $gmt, $topic_id );
     784        $time   = false; // For filter below
     785        $result = bbp_get_time_since( $date );
     786
     787    // August 4, 2012 at 2:37 pm
     788    } else {
     789        $date   = get_post_time( get_option( 'date_format' ), $gmt, $topic_id, true );
     790        $time   = get_post_time( get_option( 'time_format' ), $gmt, $topic_id, true );
     791        /* translators: 1: Date, 2: Time */
     792        $result = sprintf( _x( '%1$s at %2$s', 'date at time', 'bbpress' ), $date, $time );
     793    }
     794
     795    // Filter & return
     796    return apply_filters( 'bbp_get_topic_post_date', $result, $topic_id, $humanize, $gmt, $date, $time );
     797}
     798
     799/**
     800 * Output pagination links of a topic within the topic loop.
    793801 *
    794802 * @since 2.0.0 bbPress (r2966)
    795803 *
    796  * @param array $args See {@link bbp_get_topic_pagination()}
     804 * @param array $args See {@link bbp_get_topic_pagination()}.
    797805 */
    798806function bbp_topic_pagination( $args = array() ) {
    799807    echo bbp_get_topic_pagination( $args );
    800808}
    801     /**
    802      * Returns pagination links of a topic within the topic loop
    803      *
    804      * @since 2.0.0 bbPress (r2966)
    805      *
    806      * @param array $args This function supports these arguments:
    807      *  - topic_id: Topic id
    808      *  - before: Before the links
    809      *  - after: After the links
    810      * @return string Pagination links
    811      */
    812     function bbp_get_topic_pagination( $args = array() ) {
    813 
    814         // Bail if threading replies
    815         if ( bbp_thread_replies() ) {
    816             return;
    817         }
    818 
    819         // Parse arguments against default values
    820         $r = bbp_parse_args(
    821             $args,
    822             array(
    823                 'topic_id' => bbp_get_topic_id(),
    824                 'before'   => '<span class="bbp-topic-pagination">',
    825                 'after'    => '</span>',
    826             ),
    827             'get_topic_pagination'
    828         );
    829 
    830         // Slug must be checked for topics that have never been approved/published
    831         $has_slug = bbp_get_topic( $r['topic_id'] )->post_name;
    832 
    833         // Get the topic permalink
    834         $topic_permalink = bbp_get_topic_permalink( $r['topic_id'] );
    835 
    836         // If pretty permalinks are enabled, make our pagination pretty
    837         $base = ! empty( $has_slug ) && bbp_use_pretty_urls() && bbp_is_topic_public( $r['topic_id'] )
    838             ? trailingslashit( $topic_permalink ) . user_trailingslashit( bbp_get_paged_slug() . '/%#%/' )
    839             : add_query_arg( 'paged', '%#%', $topic_permalink );
    840 
    841         // Get total and add 1 if topic is included in the reply loop
    842         $total = bbp_get_topic_reply_count( $r['topic_id'], true );
    843 
    844         // Bump if topic is in loop
    845         if ( ! bbp_show_lead_topic() ) {
    846             ++$total;
    847         }
    848 
    849         // Total for pagination boundaries
    850         $total_pages = ceil( $total / bbp_get_replies_per_page() );
    851 
    852         // Maybe add view-all args
    853         $add_args = bbp_get_view_all( 'edit_others_replies' )
    854             ? array( 'view' => 'all' )
    855             : false;
    856 
    857         // Pagination settings with filter
    858         $bbp_topic_pagination = apply_filters(
    859             'bbp_get_topic_pagination',
    860             array(
    861                 'base'      => $base,
    862                 'total'     => $total_pages,
    863                 'current'   => 0,
    864                 'prev_next' => false,
    865                 'mid_size'  => 2,
    866                 'end_size'  => 2,
    867                 'add_args'  => $add_args
    868             )
    869         );
    870 
    871         // Add pagination to query object
    872         $pagination_links = bbp_paginate_links( $bbp_topic_pagination );
    873 
    874         // Maybe add before and after to pagination links
    875         if ( ! empty( $pagination_links ) ) {
    876             $pagination_links = $r['before'] . $pagination_links . $r['after'];
    877         }
    878 
    879         // Filter & return
    880         return apply_filters( 'bbp_get_topic_pagination', $pagination_links, $args );
    881     }
    882 
    883 /**
    884  * Append revisions to the topic content
     809
     810/**
     811 * Returns pagination links of a topic within the topic loop.
     812 *
     813 * @since 2.0.0 bbPress (r2966)
     814 *
     815 * @param array $args This function supports these arguments:
     816 *  - topic_id: Topic id
     817 *  - before: Before the links
     818 *  - after: After the links
     819 * @return string Pagination links.
     820 */
     821function bbp_get_topic_pagination( $args = array() ) {
     822
     823    // Bail if threading replies
     824    if ( bbp_thread_replies() ) {
     825        return;
     826    }
     827
     828    // Parse arguments against default values
     829    $r = bbp_parse_args(
     830        $args,
     831        array(
     832            'topic_id' => bbp_get_topic_id(),
     833            'before'   => '<span class="bbp-topic-pagination">',
     834            'after'    => '</span>',
     835        ),
     836        'get_topic_pagination'
     837    );
     838
     839    // Slug must be checked for topics that have never been approved/published
     840    $has_slug = bbp_get_topic( $r['topic_id'] )->post_name;
     841
     842    // Get the topic permalink
     843    $topic_permalink = bbp_get_topic_permalink( $r['topic_id'] );
     844
     845    // If pretty permalinks are enabled, make our pagination pretty
     846    $base = ! empty( $has_slug ) && bbp_use_pretty_urls() && bbp_is_topic_public( $r['topic_id'] )
     847        ? trailingslashit( $topic_permalink ) . user_trailingslashit( bbp_get_paged_slug() . '/%#%/' )
     848        : add_query_arg( 'paged', '%#%', $topic_permalink );
     849
     850    // Get total and add 1 if topic is included in the reply loop
     851    $total = bbp_get_topic_reply_count( $r['topic_id'], true );
     852
     853    // Bump if topic is in loop
     854    if ( ! bbp_show_lead_topic() ) {
     855        ++$total;
     856    }
     857
     858    // Total for pagination boundaries
     859    $total_pages = ceil( $total / bbp_get_replies_per_page() );
     860
     861    // Maybe add view-all args
     862    $add_args = bbp_get_view_all( 'edit_others_replies' )
     863        ? array( 'view' => 'all' )
     864        : false;
     865
     866    // Pagination settings with filter
     867    $bbp_topic_pagination = apply_filters(
     868        'bbp_get_topic_pagination',
     869        array(
     870            'base'      => $base,
     871            'total'     => $total_pages,
     872            'current'   => 0,
     873            'prev_next' => false,
     874            'mid_size'  => 2,
     875            'end_size'  => 2,
     876            'add_args'  => $add_args
     877        )
     878    );
     879
     880    // Add pagination to query object
     881    $pagination_links = bbp_paginate_links( $bbp_topic_pagination );
     882
     883    // Maybe add before and after to pagination links
     884    if ( ! empty( $pagination_links ) ) {
     885        $pagination_links = $r['before'] . $pagination_links . $r['after'];
     886    }
     887
     888    // Filter & return
     889    return apply_filters( 'bbp_get_topic_pagination', $pagination_links, $args );
     890}
     891
     892/**
     893 * Append revisions to the topic content.
    885894 *
    886895 * @since 2.0.0 bbPress (r2782)
    887896 *
    888  * @param string $content Optional. Content to which we need to append the revisions to
    889  * @param int $topic_id Optional. Topic id
    890  * @return string Content with the revisions appended
     897 * @param string $content Optional. Content to which we need to append the revisions to.
     898 * @param int $topic_id Optional. Topic id.
     899 * @return string Content with the revisions appended.
    891900 */
    892901function bbp_topic_content_append_revisions( $content = '', $topic_id = 0 ) {
     
    905914
    906915/**
    907  * Output the revision log of the topic
     916 * Output the revision log of the topic.
    908917 *
    909918 * @since 2.0.0 bbPress (r2782)
    910919 *
    911  * @param int $topic_id Optional. Topic id
     920 * @param int $topic_id Optional. Topic id.
    912921 */
    913922function bbp_topic_revision_log( $topic_id = 0 ) {
    914923    echo bbp_get_topic_revision_log( $topic_id );
    915924}
    916     /**
    917      * Return the formatted revision log of the topic
    918      *
    919      * @since 2.0.0 bbPress (r2782)
    920      *
    921      * @param int $topic_id Optional. Topic id
    922      * @return string Revision log of the topic
    923      */
    924     function bbp_get_topic_revision_log( $topic_id = 0 ) {
    925 
    926         // Create necessary variables
    927         $topic_id     = bbp_get_topic_id( $topic_id );
    928         $revision_log = bbp_get_topic_raw_revision_log( $topic_id );
    929 
    930         if ( empty( $topic_id ) || empty( $revision_log ) || ! is_array( $revision_log ) ) {
    931             return false;
     925
     926/**
     927 * Return the formatted revision log of the topic.
     928 *
     929 * @since 2.0.0 bbPress (r2782)
     930 *
     931 * @param int $topic_id Optional. Topic id.
     932 * @return string Revision log of the topic.
     933 */
     934function bbp_get_topic_revision_log( $topic_id = 0 ) {
     935
     936    // Create necessary variables
     937    $topic_id     = bbp_get_topic_id( $topic_id );
     938    $revision_log = bbp_get_topic_raw_revision_log( $topic_id );
     939
     940    if ( empty( $topic_id ) || empty( $revision_log ) || ! is_array( $revision_log ) ) {
     941        return false;
     942    }
     943
     944    $revisions = bbp_get_topic_revisions( $topic_id );
     945    if ( empty( $revisions ) ) {
     946        return false;
     947    }
     948
     949    $retval = "\n\n" . '<ul id="bbp-topic-revision-log-' . esc_attr( $topic_id ) . '" class="bbp-topic-revision-log">' . "\n\n";
     950
     951    // Loop through revisions
     952    foreach ( (array) $revisions as $revision ) {
     953
     954        if ( empty( $revision_log[ $revision->ID ] ) ) {
     955            $author_id = $revision->post_author;
     956            $reason    = '';
     957        } else {
     958            $author_id = $revision_log[ $revision->ID ]['author'];
     959            $reason    = $revision_log[ $revision->ID ]['reason'];
    932960        }
    933961
    934         $revisions = bbp_get_topic_revisions( $topic_id );
    935         if ( empty( $revisions ) ) {
    936             return false;
     962        $since  = bbp_get_time_since( bbp_convert_date( $revision->post_modified ) );
     963        $author = bbp_get_author_link(
     964            array(
     965                'size'      => 14,
     966                'link_text' => bbp_get_topic_author_display_name( $revision->ID ),
     967                'post_id'   => $revision->ID
     968            )
     969        );
     970
     971        $retval .= "\t" . '<li id="bbp-topic-revision-log-' . esc_attr( $topic_id ) . '-item-' . esc_attr( $revision->ID ) . '" class="bbp-topic-revision-log-item">' . "\n";
     972        if ( ! empty( $reason ) ) {
     973            /* translators: 1: Time since modification, 2: Author link, 3: Modification reason */
     974            $retval .= "\t\t" . sprintf( esc_html__( 'This topic was modified %1$s by %2$s. Reason: %3$s', 'bbpress' ), esc_html( $since ), $author, esc_html( $reason ) ) . "\n";
     975        } else {
     976            /* translators: 1: Time since modification, 2: Author link */
     977            $retval .= "\t\t" . sprintf( esc_html__( 'This topic was modified %1$s by %2$s.',              'bbpress' ), esc_html( $since ), $author ) . "\n";
    937978        }
    938 
    939         $retval = "\n\n" . '<ul id="bbp-topic-revision-log-' . esc_attr( $topic_id ) . '" class="bbp-topic-revision-log">' . "\n\n";
    940 
    941         // Loop through revisions
    942         foreach ( (array) $revisions as $revision ) {
    943 
    944             if ( empty( $revision_log[ $revision->ID ] ) ) {
    945                 $author_id = $revision->post_author;
    946                 $reason    = '';
    947             } else {
    948                 $author_id = $revision_log[ $revision->ID ]['author'];
    949                 $reason    = $revision_log[ $revision->ID ]['reason'];
    950             }
    951 
    952             $since  = bbp_get_time_since( bbp_convert_date( $revision->post_modified ) );
    953             $author = bbp_get_author_link(
    954                 array(
    955                     'size'      => 14,
    956                     'link_text' => bbp_get_topic_author_display_name( $revision->ID ),
    957                     'post_id'   => $revision->ID
    958                 )
    959             );
    960 
    961             $retval .= "\t" . '<li id="bbp-topic-revision-log-' . esc_attr( $topic_id ) . '-item-' . esc_attr( $revision->ID ) . '" class="bbp-topic-revision-log-item">' . "\n";
    962             if ( ! empty( $reason ) ) {
    963                 /* translators: 1: Time since modification, 2: Author link, 3: Modification reason */
    964                 $retval .= "\t\t" . sprintf( esc_html__( 'This topic was modified %1$s by %2$s. Reason: %3$s', 'bbpress' ), esc_html( $since ), $author, esc_html( $reason ) ) . "\n";
    965             } else {
    966                 /* translators: 1: Time since modification, 2: Author link */
    967                 $retval .= "\t\t" . sprintf( esc_html__( 'This topic was modified %1$s by %2$s.',              'bbpress' ), esc_html( $since ), $author ) . "\n";
    968             }
    969             $retval .= "\t" . '</li>' . "\n";
    970         }
    971 
    972         $retval .= "\n" . '</ul>' . "\n\n";
    973 
    974         // Filter & return
    975         return apply_filters( 'bbp_get_topic_revision_log', $retval, $topic_id );
    976     }
    977         /**
    978          * Return the raw revision log of the topic
    979          *
    980          * @since 2.0.0 bbPress (r2782)
    981          *
    982          * @param int $topic_id Optional. Topic id
    983          * @return string Raw revision log of the topic
    984          */
    985         function bbp_get_topic_raw_revision_log( $topic_id = 0 ) {
    986             $topic_id = bbp_get_topic_id( $topic_id );
    987 
    988             $revision_log = get_post_meta( $topic_id, '_bbp_revision_log', true );
    989             $revision_log = ! empty( $revision_log )
    990                 ? $revision_log
    991                 : array();
    992 
    993             // Filter & return
    994             return apply_filters( 'bbp_get_topic_raw_revision_log', $revision_log, $topic_id );
    995         }
    996 
    997 /**
    998  * Return the revisions of the topic
     979        $retval .= "\t" . '</li>' . "\n";
     980    }
     981
     982    $retval .= "\n" . '</ul>' . "\n\n";
     983
     984    // Filter & return
     985    return apply_filters( 'bbp_get_topic_revision_log', $retval, $topic_id );
     986}
     987
     988/**
     989 * Return the raw revision log of the topic.
    999990 *
    1000991 * @since 2.0.0 bbPress (r2782)
    1001992 *
    1002  * @param int $topic_id Optional. Topic id
    1003  * @return WP_Post[]|int[] Topic revisions
     993 * @param int $topic_id Optional. Topic id.
     994 * @return string Raw revision log of the topic.
     995 */
     996function bbp_get_topic_raw_revision_log( $topic_id = 0 ) {
     997    $topic_id = bbp_get_topic_id( $topic_id );
     998
     999    $revision_log = get_post_meta( $topic_id, '_bbp_revision_log', true );
     1000    $revision_log = ! empty( $revision_log )
     1001        ? $revision_log
     1002        : array();
     1003
     1004    // Filter & return
     1005    return apply_filters( 'bbp_get_topic_raw_revision_log', $revision_log, $topic_id );
     1006}
     1007
     1008/**
     1009 * Return the revisions of the topic.
     1010 *
     1011 * @since 2.0.0 bbPress (r2782)
     1012 *
     1013 * @param int $topic_id Optional. Topic id.
     1014 * @return WP_Post[]|int[] Topic revisions.
    10041015 */
    10051016function bbp_get_topic_revisions( $topic_id = 0 ) {
     
    10121023
    10131024/**
    1014  * Return the revision count of the topic
     1025 * Return the revision count of the topic.
    10151026 *
    10161027 * @since 2.0.0 bbPress (r2782)
    10171028 *
    1018  * @param int $topic_id Optional. Topic id
    1019  * @return string Topic revision count
     1029 * @param int $topic_id Optional. Topic id.
     1030 * @return string Topic revision count.
    10201031 */
    10211032function bbp_get_topic_revision_count( $topic_id = 0, $integer = false ) {
     
    10341045 * @since 2.0.0 bbPress (r2754)
    10351046 *
    1036  * @param int $topic_id Optional. Topic id
     1047 * @param int $topic_id Optional. Topic id.
    10371048 * @param int $check_super Optional. If set to true and if the topic is not a
    10381049 *                           normal sticky, it is checked if it is a super
     
    10601071 * @since 2.0.0 bbPress (r2754)
    10611072 *
    1062  * @param int $topic_id Optional. Topic id
     1073 * @param int $topic_id Optional. Topic id.
    10631074 * @return bool True if super sticky, false if not.
    10641075 */
     
    10731084
    10741085/**
    1075  * Output the status of the topic
     1086 * Output the status of the topic.
    10761087 *
    10771088 * @since 2.0.0 bbPress (r2667)
    10781089 *
    1079  * @param int $topic_id Optional. Topic id
     1090 * @param int $topic_id Optional. Topic id.
    10801091 */
    10811092function bbp_topic_status( $topic_id = 0 ) {
    10821093    echo bbp_get_topic_status( $topic_id );
    10831094}
    1084     /**
    1085      * Return the status of the topic
    1086      *
    1087      * @since 2.0.0 bbPress (r2667)
    1088      *
    1089      * @param int $topic_id Optional. Topic id
    1090      * @return string Status of topic
    1091      */
    1092     function bbp_get_topic_status( $topic_id = 0 ) {
    1093         $topic_id = bbp_get_topic_id( $topic_id );
    1094 
    1095         // Filter & return
    1096         return apply_filters( 'bbp_get_topic_status', get_post_status( $topic_id ), $topic_id );
    1097     }
     1095
     1096/**
     1097 * Return the status of the topic.
     1098 *
     1099 * @since 2.0.0 bbPress (r2667)
     1100 *
     1101 * @param int $topic_id Optional. Topic id.
     1102 * @return string Status of topic.
     1103 */
     1104function bbp_get_topic_status( $topic_id = 0 ) {
     1105    $topic_id = bbp_get_topic_id( $topic_id );
     1106
     1107    // Filter & return
     1108    return apply_filters( 'bbp_get_topic_status', get_post_status( $topic_id ), $topic_id );
     1109}
    10981110
    10991111/**
     
    11021114 * @since 2.0.0 bbPress (r2746)
    11031115 *
    1104  * @param int $topic_id Optional. Topic id
     1116 * @param int $topic_id Optional. Topic id.
    11051117 *
    11061118 * @return bool True if closed, false if not.
     
    11201132 * @since 2.0.0 bbPress (r2727)
    11211133 *
    1122  * @param int $topic_id Optional. Topic id
     1134 * @param int $topic_id Optional. Topic id.
    11231135 *
    11241136 * @return bool True if open, false if closed.
     
    11351147 * @since 2.6.0 bbPress (r6383)
    11361148 *
    1137  * @param int $topic_id Optional. Topic id
     1149 * @param int $topic_id Optional. Topic id.
    11381150 * @return bool True if public, false if not.
    11391151 */
     
    11531165 * @since 2.0.0 bbPress (r3496)
    11541166 *
    1155  * @param int $topic_id Optional. Topic id
     1167 * @param int $topic_id Optional. Topic id.
    11561168 * @return bool True if published, false if not.
    11571169 */
     
    11701182 * @since 2.0.0 bbPress (r2727)
    11711183 *
    1172  * @param int $topic_id Optional. Topic id
     1184 * @param int $topic_id Optional. Topic id.
    11731185 * @return bool True if spam, false if not.
    11741186 */
     
    11871199 * @since 2.0.0 bbPress (r2888)
    11881200 *
    1189  * @param int $topic_id Optional. Topic id
     1201 * @param int $topic_id Optional. Topic id.
    11901202 * @return bool True if trashed, false if not.
    11911203 */
     
    12041216 * @since 2.6.0 bbPress (r5504)
    12051217 *
    1206  * @param int $topic_id Optional. Topic id
     1218 * @param int $topic_id Optional. Topic id.
    12071219 * @return bool True if pending, false if not.
    12081220 */
     
    12211233 * @since 2.6.0 bbPress (r5504)
    12221234 *
    1223  * @param int $topic_id Optional. Topic id
     1235 * @param int $topic_id Optional. Topic id.
    12241236 * @return bool True if private, false if not.
    12251237 */
     
    12381250 * @since 2.0.0 bbPress (r2753)
    12391251 *
    1240  * @param int $topic_id Optional. Topic id
     1252 * @param int $topic_id Optional. Topic id.
    12411253 * @return bool True if the post is by an anonymous user, false if not.
    12421254 */
     
    12681280 * @deprecated 2.5.0 bbPress (r5119)
    12691281 *
    1270  * @param int $topic_id Optional. Topic id
     1282 * @param int $topic_id Optional. Topic id.
    12711283 */
    12721284function bbp_topic_author( $topic_id = 0 ) {
    12731285    echo bbp_get_topic_author_display_name( $topic_id );
    12741286}
    1275     /**
    1276      * Deprecated. Use bbp_get_topic_author_display_name() instead.
    1277      *
    1278      * Return the author of the topic
    1279      *
    1280      * @since 2.0.0 bbPress (r2590)
    1281      *
    1282      * @deprecated 2.5.0 bbPress (r5119)
    1283      *
    1284      * @param int $topic_id Optional. Topic id
    1285      * @return string Author of topic
    1286      */
    1287     function bbp_get_topic_author( $topic_id = 0 ) {
    1288         $topic_id = bbp_get_topic_id( $topic_id );
    1289 
    1290         if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
    1291             $author = get_the_author_meta( 'display_name', bbp_get_topic_author_id( $topic_id ) );
    1292         } else {
    1293             $author = get_post_meta( $topic_id, '_bbp_anonymous_name', true );
    1294         }
    1295 
    1296         // Filter & return
    1297         return apply_filters( 'bbp_get_topic_author', $author, $topic_id );
    1298     }
    1299 
    1300 /**
    1301  * Output the author ID of the topic
     1287
     1288/**
     1289 * Deprecated. Use bbp_get_topic_author_display_name() instead.
     1290 *
     1291 * Return the author of the topic.
    13021292 *
    13031293 * @since 2.0.0 bbPress (r2590)
    13041294 *
    1305  * @param int $topic_id Optional. Topic id
     1295 * @deprecated 2.5.0 bbPress (r5119)
     1296 *
     1297 * @param int $topic_id Optional. Topic id.
     1298 * @return string Author of topic.
     1299 */
     1300function bbp_get_topic_author( $topic_id = 0 ) {
     1301    $topic_id = bbp_get_topic_id( $topic_id );
     1302
     1303    if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
     1304        $author = get_the_author_meta( 'display_name', bbp_get_topic_author_id( $topic_id ) );
     1305    } else {
     1306        $author = get_post_meta( $topic_id, '_bbp_anonymous_name', true );
     1307    }
     1308
     1309    // Filter & return
     1310    return apply_filters( 'bbp_get_topic_author', $author, $topic_id );
     1311}
     1312
     1313/**
     1314 * Output the author ID of the topic.
     1315 *
     1316 * @since 2.0.0 bbPress (r2590)
     1317 *
     1318 * @param int $topic_id Optional. Topic id.
    13061319 */
    13071320function bbp_topic_author_id( $topic_id = 0 ) {
    13081321    echo bbp_get_topic_author_id( $topic_id );
    13091322}
    1310     /**
    1311      * Return the author ID of the topic
    1312      *
    1313      * @since 2.0.0 bbPress (r2590)
    1314      *
    1315      * @param int $topic_id Optional. Topic id
    1316      * @return string Author of topic
    1317      */
    1318     function bbp_get_topic_author_id( $topic_id = 0 ) {
    1319         $topic_id  = bbp_get_topic_id( $topic_id );
    1320         $author_id = get_post_field( 'post_author', $topic_id );
    1321 
    1322         // Filter & return
    1323         return (int) apply_filters( 'bbp_get_topic_author_id', (int) $author_id, $topic_id );
    1324     }
    1325 
    1326 /**
    1327  * Output the author display_name of the topic
     1323
     1324/**
     1325 * Return the author ID of the topic.
    13281326 *
    13291327 * @since 2.0.0 bbPress (r2590)
    13301328 *
    1331  * @param int $topic_id Optional. Topic id
     1329 * @param int $topic_id Optional. Topic id.
     1330 * @return string Author of topic.
     1331 */
     1332function bbp_get_topic_author_id( $topic_id = 0 ) {
     1333    $topic_id  = bbp_get_topic_id( $topic_id );
     1334    $author_id = get_post_field( 'post_author', $topic_id );
     1335
     1336    // Filter & return
     1337    return (int) apply_filters( 'bbp_get_topic_author_id', (int) $author_id, $topic_id );
     1338}
     1339
     1340/**
     1341 * Output the author display_name of the topic.
     1342 *
     1343 * @since 2.0.0 bbPress (r2590)
     1344 *
     1345 * @param int $topic_id Optional. Topic id.
    13321346 */
    13331347function bbp_topic_author_display_name( $topic_id = 0 ) {
    13341348    echo bbp_get_topic_author_display_name( $topic_id );
    13351349}
    1336     /**
    1337      * Return the author display_name of the topic
    1338      *
    1339      * @since 2.0.0 bbPress (r2485)
    1340      *
    1341      * @param int $topic_id Optional. Topic id
    1342      * @return string Topic's author's display name
    1343      */
    1344     function bbp_get_topic_author_display_name( $topic_id = 0 ) {
    1345         $topic_id = bbp_get_topic_id( $topic_id );
    1346 
    1347         // Check for anonymous user
    1348         if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
    1349 
    1350             // Get the author ID
    1351             $author_id = bbp_get_topic_author_id( $topic_id );
    1352 
    1353             // Try to get a display name
    1354             $author_name = get_the_author_meta( 'display_name', $author_id );
    1355 
    1356             // Fall back to user login
    1357             if ( empty( $author_name ) ) {
    1358                 $author_name = get_the_author_meta( 'user_login', $author_id );
    1359             }
    1360 
    1361         // User does not have an account
    1362         } else {
    1363             $author_name = get_post_meta( $topic_id, '_bbp_anonymous_name', true );
     1350
     1351/**
     1352 * Return the author display_name of the topic.
     1353 *
     1354 * @since 2.0.0 bbPress (r2485)
     1355 *
     1356 * @param int $topic_id Optional. Topic id.
     1357 * @return string Topic's author's display name.
     1358 */
     1359function bbp_get_topic_author_display_name( $topic_id = 0 ) {
     1360    $topic_id = bbp_get_topic_id( $topic_id );
     1361
     1362    // Check for anonymous user
     1363    if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
     1364
     1365        // Get the author ID
     1366        $author_id = bbp_get_topic_author_id( $topic_id );
     1367
     1368        // Try to get a display name
     1369        $author_name = get_the_author_meta( 'display_name', $author_id );
     1370
     1371        // Fall back to user login
     1372        if ( empty( $author_name ) ) {
     1373            $author_name = get_the_author_meta( 'user_login', $author_id );
    13641374        }
    13651375
    1366         // Fallback if nothing could be found
    1367         if ( empty( $author_name ) ) {
    1368             $author_name = bbp_get_fallback_display_name( $topic_id );
    1369         }
    1370 
    1371         // Filter & return
    1372         return apply_filters( 'bbp_get_topic_author_display_name', $author_name, $topic_id );
    1373     }
    1374 
    1375 /**
    1376  * Output the author avatar of the topic
     1376    // User does not have an account
     1377    } else {
     1378        $author_name = get_post_meta( $topic_id, '_bbp_anonymous_name', true );
     1379    }
     1380
     1381    // Fallback if nothing could be found
     1382    if ( empty( $author_name ) ) {
     1383        $author_name = bbp_get_fallback_display_name( $topic_id );
     1384    }
     1385
     1386    // Filter & return
     1387    return apply_filters( 'bbp_get_topic_author_display_name', $author_name, $topic_id );
     1388}
     1389
     1390/**
     1391 * Output the author avatar of the topic.
    13771392 *
    13781393 * @since 2.0.0 bbPress (r2590)
    13791394 *
    1380  * @param int $topic_id Optional. Topic id
    1381  * @param int $size Optional. Avatar size. Defaults to 40
     1395 * @param int $topic_id Optional. Topic id.
     1396 * @param int $size Optional. Avatar size. Defaults to 40.
    13821397 */
    13831398function bbp_topic_author_avatar( $topic_id = 0, $size = 40 ) {
    13841399    echo bbp_get_topic_author_avatar( $topic_id, $size );
    13851400}
    1386     /**
    1387      * Return the author avatar of the topic
    1388      *
    1389      * @since 2.0.0 bbPress (r2590)
    1390      *
    1391      * @param int $topic_id Optional. Topic id
    1392      * @param int $size Optional. Avatar size. Defaults to 40
    1393      * @return string Avatar of the author of the topic
    1394      */
    1395     function bbp_get_topic_author_avatar( $topic_id = 0, $size = 40 ) {
    1396         $author_avatar = '';
    1397 
    1398         $topic_id = bbp_get_topic_id( $topic_id );
    1399         if ( ! empty( $topic_id ) ) {
    1400             if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
    1401                 $author_avatar = get_avatar( bbp_get_topic_author_id( $topic_id ), $size );
    1402             } else {
    1403                 $author_avatar = get_avatar( get_post_meta( $topic_id, '_bbp_anonymous_email', true ), $size );
    1404             }
     1401
     1402/**
     1403 * Return the author avatar of the topic.
     1404 *
     1405 * @since 2.0.0 bbPress (r2590)
     1406 *
     1407 * @param int $topic_id Optional. Topic id.
     1408 * @param int $size Optional. Avatar size. Defaults to 40.
     1409 * @return string Avatar of the author of the topic.
     1410 */
     1411function bbp_get_topic_author_avatar( $topic_id = 0, $size = 40 ) {
     1412    $author_avatar = '';
     1413
     1414    $topic_id = bbp_get_topic_id( $topic_id );
     1415    if ( ! empty( $topic_id ) ) {
     1416        if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
     1417            $author_avatar = get_avatar( bbp_get_topic_author_id( $topic_id ), $size );
     1418        } else {
     1419            $author_avatar = get_avatar( get_post_meta( $topic_id, '_bbp_anonymous_email', true ), $size );
    14051420        }
    1406 
    1407         // Filter & return
    1408         return apply_filters( 'bbp_get_topic_author_avatar', $author_avatar, $topic_id, $size );
    1409     }
    1410 
    1411 /**
    1412  * Output the author link of the topic
     1421    }
     1422
     1423    // Filter & return
     1424    return apply_filters( 'bbp_get_topic_author_avatar', $author_avatar, $topic_id, $size );
     1425}
     1426
     1427/**
     1428 * Output the author link of the topic.
    14131429 *
    14141430 * @since 2.0.0 bbPress (r2717)
     
    14191435    echo bbp_get_topic_author_link( $args );
    14201436}
    1421     /**
    1422      * Return the author link of the topic
    1423      *
    1424      * @since 2.0.0 bbPress (r2717)
    1425      *
    1426      * @param mixed|int $args If it is an integer, it is used as topic id.
    1427      *                         Optional.
    1428      * @return string Author link of topic
    1429      */
    1430     function bbp_get_topic_author_link( $args = array() ) {
    1431 
    1432         // Parse arguments against default values
    1433         $r = bbp_parse_args(
    1434             $args,
    1435             array(
    1436                 'post_id'    => 0,
    1437                 'link_title' => '',
    1438                 'type'       => 'both',
    1439                 'size'       => 80,
    1440                 'sep'        => '',
    1441                 'show_role'  => false
    1442             ),
    1443             'get_topic_author_link'
    1444         );
    1445 
    1446         // Default return value
    1447         $author_link = '';
    1448 
    1449         // Used as topic_id
    1450         $topic_id = is_numeric( $args )
    1451             ? bbp_get_topic_id( $args )
    1452             : bbp_get_topic_id( $r['post_id'] );
    1453 
    1454         // Topic ID is good
    1455         if ( ! empty( $topic_id ) ) {
    1456 
    1457             // Get some useful topic information
    1458             $author_url = bbp_get_topic_author_url( $topic_id );
    1459             $anonymous  = bbp_is_topic_anonymous( $topic_id );
    1460 
    1461             // Tweak link title if empty
    1462             if ( empty( $r['link_title'] ) ) {
    1463                 $author = bbp_get_topic_author_display_name( $topic_id );
    1464                 $title  = empty( $anonymous )
    1465                     /* translators: %s: Author's name */
    1466                     ? esc_attr__( "View %s's profile",  'bbpress' )
    1467                     /* translators: %s: Author's name */
    1468                     : esc_attr__( "Visit %s's website", 'bbpress' );
    1469 
    1470                 $link_title = sprintf( $title, $author );
    1471 
    1472             // Use what was passed if not
    1473             } else {
    1474                 $link_title = $r['link_title'];
    1475             }
    1476 
    1477             // Setup title and author_links array
    1478             $author_links = array();
    1479             $link_title   = ! empty( $link_title )
    1480                 ? ' title="' . esc_attr( $link_title ) . '"'
    1481                 : '';
    1482 
    1483             // Get avatar (unescaped, because HTML)
    1484             if ( ( 'avatar' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
    1485                 $author_links['avatar'] = bbp_get_topic_author_avatar( $topic_id, $r['size'] );
    1486             }
    1487 
    1488             // Get display name (escaped, because never HTML)
    1489             if ( ( 'name' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
    1490                 $author_links['name'] = esc_html( bbp_get_topic_author_display_name( $topic_id ) );
    1491             }
    1492 
    1493             // Empty array
    1494             $links  = array();
    1495             $sprint = '<span%1$s>%2$s</span>';
    1496 
    1497             // Wrap each link
    1498             foreach ( $author_links as $link => $link_text ) {
    1499                 $link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
    1500                 $links[]    = sprintf( $sprint, $link_class, $link_text );
    1501             }
    1502 
    1503             // Juggle
    1504             $author_links = $links;
    1505             unset( $links );
    1506 
    1507             // Filter sections
    1508             $sections = apply_filters( 'bbp_get_topic_author_links', $author_links, $r, $args );
    1509 
    1510             // Assemble sections into author link
    1511             $author_link = implode( $r['sep'], $sections );
    1512 
    1513             // Only wrap in link if profile exists
    1514             if ( empty( $anonymous ) && bbp_user_has_profile( bbp_get_topic_author_id( $topic_id ) ) ) {
    1515                 $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
    1516             }
    1517 
    1518             // Role is not linked
    1519             if ( true === $r['show_role'] ) {
    1520                 $author_link .= bbp_get_topic_author_role( array( 'topic_id' => $topic_id ) );
    1521             }
     1437
     1438/**
     1439 * Return the author link of the topic.
     1440 *
     1441 * @since 2.0.0 bbPress (r2717)
     1442 *
     1443 * @param mixed|int $args If it is an integer, it is used as topic id.
     1444 *                         Optional.
     1445 * @return string Author link of topic.
     1446 */
     1447function bbp_get_topic_author_link( $args = array() ) {
     1448
     1449    // Parse arguments against default values
     1450    $r = bbp_parse_args(
     1451        $args,
     1452        array(
     1453            'post_id'    => 0,
     1454            'link_title' => '',
     1455            'type'       => 'both',
     1456            'size'       => 80,
     1457            'sep'        => '',
     1458            'show_role'  => false
     1459        ),
     1460        'get_topic_author_link'
     1461    );
     1462
     1463    // Default return value
     1464    $author_link = '';
     1465
     1466    // Used as topic_id
     1467    $topic_id = is_numeric( $args )
     1468        ? bbp_get_topic_id( $args )
     1469        : bbp_get_topic_id( $r['post_id'] );
     1470
     1471    // Topic ID is good
     1472    if ( ! empty( $topic_id ) ) {
     1473
     1474        // Get some useful topic information
     1475        $author_url = bbp_get_topic_author_url( $topic_id );
     1476        $anonymous  = bbp_is_topic_anonymous( $topic_id );
     1477
     1478        // Tweak link title if empty
     1479        if ( empty( $r['link_title'] ) ) {
     1480            $author = bbp_get_topic_author_display_name( $topic_id );
     1481            $title  = empty( $anonymous )
     1482                /* translators: %s: Author's name */
     1483                ? esc_attr__( "View %s's profile",  'bbpress' )
     1484                /* translators: %s: Author's name */
     1485                : esc_attr__( "Visit %s's website", 'bbpress' );
     1486
     1487            $link_title = sprintf( $title, $author );
     1488
     1489        // Use what was passed if not
     1490        } else {
     1491            $link_title = $r['link_title'];
    15221492        }
    15231493
    1524         // Filter & return
    1525         return apply_filters( 'bbp_get_topic_author_link', $author_link, $r, $args );
    1526     }
    1527 
    1528 /**
    1529  * Output the author url of the topic
     1494        // Setup title and author_links array
     1495        $author_links = array();
     1496        $link_title   = ! empty( $link_title )
     1497            ? ' title="' . esc_attr( $link_title ) . '"'
     1498            : '';
     1499
     1500        // Get avatar (unescaped, because HTML)
     1501        if ( ( 'avatar' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
     1502            $author_links['avatar'] = bbp_get_topic_author_avatar( $topic_id, $r['size'] );
     1503        }
     1504
     1505        // Get display name (escaped, because never HTML)
     1506        if ( ( 'name' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
     1507            $author_links['name'] = esc_html( bbp_get_topic_author_display_name( $topic_id ) );
     1508        }
     1509
     1510        // Empty array
     1511        $links  = array();
     1512        $sprint = '<span%1$s>%2$s</span>';
     1513
     1514        // Wrap each link
     1515        foreach ( $author_links as $link => $link_text ) {
     1516            $link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
     1517            $links[]    = sprintf( $sprint, $link_class, $link_text );
     1518        }
     1519
     1520        // Juggle
     1521        $author_links = $links;
     1522        unset( $links );
     1523
     1524        // Filter sections
     1525        $sections = apply_filters( 'bbp_get_topic_author_links', $author_links, $r, $args );
     1526
     1527        // Assemble sections into author link
     1528        $author_link = implode( $r['sep'], $sections );
     1529
     1530        // Only wrap in link if profile exists
     1531        if ( empty( $anonymous ) && bbp_user_has_profile( bbp_get_topic_author_id( $topic_id ) ) ) {
     1532            $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
     1533        }
     1534
     1535        // Role is not linked
     1536        if ( true === $r['show_role'] ) {
     1537            $author_link .= bbp_get_topic_author_role( array( 'topic_id' => $topic_id ) );
     1538        }
     1539    }
     1540
     1541    // Filter & return
     1542    return apply_filters( 'bbp_get_topic_author_link', $author_link, $r, $args );
     1543}
     1544
     1545/**
     1546 * Output the author url of the topic.
    15301547 *
    15311548 * @since 2.0.0 bbPress (r2590)
    15321549 *
    1533  * @param int $topic_id Optional. Topic id
     1550 * @param int $topic_id Optional. Topic id.
    15341551 */
    15351552function bbp_topic_author_url( $topic_id = 0 ) {
     
    15371554}
    15381555
    1539     /**
    1540      * Return the author url of the topic
    1541      *
    1542      * @since 2.0.0 bbPress (r2590)
    1543      *
    1544      * @param int $topic_id Optional. Topic id
    1545      * @return string Author URL of topic
    1546      */
    1547     function bbp_get_topic_author_url( $topic_id = 0 ) {
    1548         $topic_id = bbp_get_topic_id( $topic_id );
    1549 
    1550         // Check for anonymous user or non-existant user
    1551         if ( ! bbp_is_topic_anonymous( $topic_id ) && bbp_user_has_profile( bbp_get_topic_author_id( $topic_id ) ) ) {
    1552             $author_url = bbp_get_user_profile_url( bbp_get_topic_author_id( $topic_id ) );
    1553         } else {
    1554             $author_url = get_post_meta( $topic_id, '_bbp_anonymous_website', true );
    1555 
    1556             // Set empty author_url as empty string
    1557             if ( empty( $author_url ) ) {
    1558                 $author_url = '';
    1559             }
     1556/**
     1557 * Return the author url of the topic.
     1558 *
     1559 * @since 2.0.0 bbPress (r2590)
     1560 *
     1561 * @param int $topic_id Optional. Topic id.
     1562 * @return string Author URL of topic.
     1563 */
     1564function bbp_get_topic_author_url( $topic_id = 0 ) {
     1565    $topic_id = bbp_get_topic_id( $topic_id );
     1566
     1567    // Check for anonymous user or non-existant user
     1568    if ( ! bbp_is_topic_anonymous( $topic_id ) && bbp_user_has_profile( bbp_get_topic_author_id( $topic_id ) ) ) {
     1569        $author_url = bbp_get_user_profile_url( bbp_get_topic_author_id( $topic_id ) );
     1570    } else {
     1571        $author_url = get_post_meta( $topic_id, '_bbp_anonymous_website', true );
     1572
     1573        // Set empty author_url as empty string
     1574        if ( empty( $author_url ) ) {
     1575            $author_url = '';
    15601576        }
    1561 
    1562         // Filter & return
    1563         return apply_filters( 'bbp_get_topic_author_url', $author_url, $topic_id );
    1564     }
    1565 
    1566 /**
    1567  * Output the topic author email address
     1577    }
     1578
     1579    // Filter & return
     1580    return apply_filters( 'bbp_get_topic_author_url', $author_url, $topic_id );
     1581}
     1582
     1583/**
     1584 * Output the topic author email address.
    15681585 *
    15691586 * @since 2.0.0 bbPress (r3445)
    15701587 *
    1571  * @param int $topic_id Optional. Reply id
     1588 * @param int $topic_id Optional. Reply id.
    15721589 */
    15731590function bbp_topic_author_email( $topic_id = 0 ) {
    15741591    echo bbp_get_topic_author_email( $topic_id );
    15751592}
    1576     /**
    1577      * Return the topic author email address
    1578      *
    1579      * @since 2.0.0 bbPress (r3445)
    1580      *
    1581      * @param int $topic_id Optional. Reply id
    1582      * @return string Topic author email address
    1583      */
    1584     function bbp_get_topic_author_email( $topic_id = 0 ) {
    1585         $topic_id = bbp_get_topic_id( $topic_id );
    1586 
    1587         // Not anonymous user
    1588         if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
    1589 
    1590             // Use topic author email address
    1591             $user_id      = bbp_get_topic_author_id( $topic_id );
    1592             $user         = get_userdata( $user_id );
    1593             $author_email = ! empty( $user->user_email ) ? $user->user_email : '';
    1594 
    1595         // Anonymous
    1596         } else {
    1597 
    1598             // Get email from post meta
    1599             $author_email = get_post_meta( $topic_id, '_bbp_anonymous_email', true );
    1600 
    1601             // Sanity check for missing email address
    1602             if ( empty( $author_email ) ) {
    1603                 $author_email = '';
    1604             }
     1593
     1594/**
     1595 * Return the topic author email address.
     1596 *
     1597 * @since 2.0.0 bbPress (r3445)
     1598 *
     1599 * @param int $topic_id Optional. Reply id.
     1600 * @return string Topic author email address.
     1601 */
     1602function bbp_get_topic_author_email( $topic_id = 0 ) {
     1603    $topic_id = bbp_get_topic_id( $topic_id );
     1604
     1605    // Not anonymous user
     1606    if ( ! bbp_is_topic_anonymous( $topic_id ) ) {
     1607
     1608        // Use topic author email address
     1609        $user_id      = bbp_get_topic_author_id( $topic_id );
     1610        $user         = get_userdata( $user_id );
     1611        $author_email = ! empty( $user->user_email ) ? $user->user_email : '';
     1612
     1613    // Anonymous
     1614    } else {
     1615
     1616        // Get email from post meta
     1617        $author_email = get_post_meta( $topic_id, '_bbp_anonymous_email', true );
     1618
     1619        // Sanity check for missing email address
     1620        if ( empty( $author_email ) ) {
     1621            $author_email = '';
    16051622        }
    1606 
    1607         // Filter & return
    1608         return apply_filters( 'bbp_get_topic_author_email', $author_email, $topic_id );
    1609     }
    1610 
    1611 /**
    1612  * Output the topic author role
     1623    }
     1624
     1625    // Filter & return
     1626    return apply_filters( 'bbp_get_topic_author_email', $author_email, $topic_id );
     1627}
     1628
     1629/**
     1630 * Output the topic author role.
    16131631 *
    16141632 * @since 2.1.0 bbPress (r3860)
     
    16191637    echo bbp_get_topic_author_role( $args );
    16201638}
    1621     /**
    1622      * Return the topic author role
    1623      *
    1624      * @since 2.1.0 bbPress (r3860)
    1625      *
    1626      * @param array $args Optional.
    1627      * @return string topic author role
    1628      */
    1629     function bbp_get_topic_author_role( $args = array() ) {
    1630 
    1631         // Parse arguments against default values
    1632         $r = bbp_parse_args(
    1633             $args,
    1634             array(
    1635                 'topic_id' => 0,
    1636                 'class'    => false,
    1637                 'before'   => '<div class="bbp-author-role">',
    1638                 'after'    => '</div>'
    1639             ),
    1640             'get_topic_author_role'
    1641         );
    1642 
    1643         $topic_id = bbp_get_topic_id( $r['topic_id'] );
    1644         $role     = bbp_get_user_display_role( bbp_get_topic_author_id( $topic_id ) );
    1645         $css_role = sanitize_key( $role );
    1646 
    1647         // Add role as CSS class to default 'before' value.
    1648         if ( empty( $args['before'] ) ) {
    1649             $r['before'] = '<div class="bbp-author-role bbp-role-' . esc_attr( $css_role ) . '">';
    1650         }
    1651 
    1652         // Backwards compatibilty with old 'class' argument
    1653         if ( ! empty( $r['class'] ) ) {
    1654             $author_role = sprintf( '%1$s<div class="%2$s">%3$s</div>%4$s', $r['before'], $r['class'], $role, $r['after'] );
    1655 
    1656         // Simpler before & after arguments
    1657         // https://bbpress.trac.wordpress.org/ticket/2557
    1658         } else {
    1659             $author_role = $r['before'] . $role . $r['after'];
    1660         }
    1661 
    1662         // Filter & return
    1663         return apply_filters( 'bbp_get_topic_author_role', $author_role, $r );
    1664     }
    1665 
    1666 
    1667 /**
    1668  * Output the title of the forum a topic belongs to
     1639
     1640/**
     1641 * Return the topic author role.
     1642 *
     1643 * @since 2.1.0 bbPress (r3860)
     1644 *
     1645 * @param array $args Optional.
     1646 * @return string topic author role.
     1647 */
     1648function bbp_get_topic_author_role( $args = array() ) {
     1649
     1650    // Parse arguments against default values
     1651    $r = bbp_parse_args(
     1652        $args,
     1653        array(
     1654            'topic_id' => 0,
     1655            'class'    => false,
     1656            'before'   => '<div class="bbp-author-role">',
     1657            'after'    => '</div>'
     1658        ),
     1659        'get_topic_author_role'
     1660    );
     1661
     1662    $topic_id = bbp_get_topic_id( $r['topic_id'] );
     1663    $role     = bbp_get_user_display_role( bbp_get_topic_author_id( $topic_id ) );
     1664    $css_role = sanitize_key( $role );
     1665
     1666    // Add role as CSS class to default 'before' value.
     1667    if ( empty( $args['before'] ) ) {
     1668        $r['before'] = '<div class="bbp-author-role bbp-role-' . esc_attr( $css_role ) . '">';
     1669    }
     1670
     1671    // Backwards compatibilty with old 'class' argument
     1672    if ( ! empty( $r['class'] ) ) {
     1673        $author_role = sprintf( '%1$s<div class="%2$s">%3$s</div>%4$s', $r['before'], $r['class'], $role, $r['after'] );
     1674
     1675    // Simpler before & after arguments
     1676    // https://bbpress.trac.wordpress.org/ticket/2557
     1677    } else {
     1678        $author_role = $r['before'] . $role . $r['after'];
     1679    }
     1680
     1681    // Filter & return
     1682    return apply_filters( 'bbp_get_topic_author_role', $author_role, $r );
     1683}
     1684
     1685/**
     1686 * Output the title of the forum a topic belongs to.
    16691687 *
    16701688 * @since 2.0.0 bbPress (r2485)
    16711689 *
    1672  * @param int $topic_id Optional. Topic id
     1690 * @param int $topic_id Optional. Topic id.
    16731691 */
    16741692function bbp_topic_forum_title( $topic_id = 0 ) {
    16751693    echo bbp_get_topic_forum_title( $topic_id );
    16761694}
    1677     /**
    1678      * Return the title of the forum a topic belongs to
    1679      *
    1680      * @since 2.0.0 bbPress (r2485)
    1681      *
    1682      * @param int $topic_id Optional. Topic id
    1683      * @return string Topic forum title
    1684      */
    1685     function bbp_get_topic_forum_title( $topic_id = 0 ) {
    1686         $topic_id = bbp_get_topic_id( $topic_id );
    1687         $forum_id = bbp_get_topic_forum_id( $topic_id );
    1688 
    1689         // Filter & return
    1690         return apply_filters( 'bbp_get_topic_forum', bbp_get_forum_title( $forum_id ), $topic_id, $forum_id );
    1691     }
    1692 
    1693 /**
    1694  * Output the forum id a topic belongs to
     1695
     1696/**
     1697 * Return the title of the forum a topic belongs to.
     1698 *
     1699 * @since 2.0.0 bbPress (r2485)
     1700 *
     1701 * @param int $topic_id Optional. Topic id.
     1702 * @return string Topic forum title.
     1703 */
     1704function bbp_get_topic_forum_title( $topic_id = 0 ) {
     1705    $topic_id = bbp_get_topic_id( $topic_id );
     1706    $forum_id = bbp_get_topic_forum_id( $topic_id );
     1707
     1708    // Filter & return
     1709    return apply_filters( 'bbp_get_topic_forum', bbp_get_forum_title( $forum_id ), $topic_id, $forum_id );
     1710}
     1711
     1712/**
     1713 * Output the forum id a topic belongs to.
    16951714 *
    16961715 * @since 2.0.0 bbPress (r2491)
    16971716 *
    1698  * @param int $topic_id Optional. Topic id
     1717 * @param int $topic_id Optional. Topic id.
    16991718 */
    17001719function bbp_topic_forum_id( $topic_id = 0 ) {
    17011720    echo bbp_get_topic_forum_id( $topic_id );
    17021721}
    1703     /**
    1704      * Return the forum id a topic belongs to
    1705      *
    1706      * @since 2.0.0 bbPress (r2491)
    1707      *
    1708      * @param int $topic_id Optional. Topic id
    1709      * @return int Topic forum id
    1710      */
    1711     function bbp_get_topic_forum_id( $topic_id = 0 ) {
    1712         $topic_id = bbp_get_topic_id( $topic_id );
    1713         $forum_id = (int) get_post_field( 'post_parent', $topic_id );
    1714 
    1715         // Meta-data fallback
    1716         if ( empty( $forum_id ) ) {
    1717             $forum_id = (int) get_post_meta( $topic_id, '_bbp_forum_id', true );
    1718         }
    1719 
    1720         // Filter
    1721         if ( ! empty( $forum_id ) ) {
    1722             $forum_id = (int) bbp_get_forum_id( $forum_id );
    1723         }
    1724 
    1725         // Filter & return
    1726         return (int) apply_filters( 'bbp_get_topic_forum_id', $forum_id, $topic_id );
    1727     }
    1728 
    1729 /**
    1730  * Output the topics last active ID
     1722
     1723/**
     1724 * Return the forum id a topic belongs to.
     1725 *
     1726 * @since 2.0.0 bbPress (r2491)
     1727 *
     1728 * @param int $topic_id Optional. Topic id.
     1729 * @return int Topic forum id.
     1730 */
     1731function bbp_get_topic_forum_id( $topic_id = 0 ) {
     1732    $topic_id = bbp_get_topic_id( $topic_id );
     1733    $forum_id = (int) get_post_field( 'post_parent', $topic_id );
     1734
     1735    // Meta-data fallback
     1736    if ( empty( $forum_id ) ) {
     1737        $forum_id = (int) get_post_meta( $topic_id, '_bbp_forum_id', true );
     1738    }
     1739
     1740    // Filter
     1741    if ( ! empty( $forum_id ) ) {
     1742        $forum_id = (int) bbp_get_forum_id( $forum_id );
     1743    }
     1744
     1745    // Filter & return
     1746    return (int) apply_filters( 'bbp_get_topic_forum_id', $forum_id, $topic_id );
     1747}
     1748
     1749/**
     1750 * Output the topics last active ID.
    17311751 *
    17321752 * @since 2.0.0 bbPress (r2860)
    17331753 *
    1734  * @param int $topic_id Optional. Forum id
     1754 * @param int $topic_id Optional. Forum id.
    17351755 */
    17361756function bbp_topic_last_active_id( $topic_id = 0 ) {
    17371757    echo bbp_get_topic_last_active_id( $topic_id );
    17381758}
    1739     /**
    1740      * Return the topics last active ID
    1741      *
    1742      * @since 2.0.0 bbPress (r2860)
    1743      *
    1744      * @param int $topic_id Optional. Forum id
    1745      * @return int Forum's last active id
    1746      */
    1747     function bbp_get_topic_last_active_id( $topic_id = 0 ) {
    1748         $topic_id  = bbp_get_topic_id( $topic_id );
    1749         $active_id = (int) get_post_meta( $topic_id, '_bbp_last_active_id', true );
    1750 
    1751         // Filter & return
    1752         return (int) apply_filters( 'bbp_get_topic_last_active_id', $active_id, $topic_id );
    1753     }
    1754 
    1755 /**
    1756  * Output the topics last update date/time (aka freshness)
     1759
     1760/**
     1761 * Return the topics last active ID.
     1762 *
     1763 * @since 2.0.0 bbPress (r2860)
     1764 *
     1765 * @param int $topic_id Optional. Forum id.
     1766 * @return int Forum's last active id.
     1767 */
     1768function bbp_get_topic_last_active_id( $topic_id = 0 ) {
     1769    $topic_id  = bbp_get_topic_id( $topic_id );
     1770    $active_id = (int) get_post_meta( $topic_id, '_bbp_last_active_id', true );
     1771
     1772    // Filter & return
     1773    return (int) apply_filters( 'bbp_get_topic_last_active_id', $active_id, $topic_id );
     1774}
     1775
     1776/**
     1777 * Output the topics last update date/time (aka freshness).
    17571778 *
    17581779 * @since 2.0.0 bbPress (r2625)
    17591780 *
    1760  * @param int $topic_id Optional. Topic id
     1781 * @param int $topic_id Optional. Topic id.
    17611782 */
    17621783function bbp_topic_last_active_time( $topic_id = 0 ) {
    17631784    echo bbp_get_topic_last_active_time( $topic_id );
    17641785}
    1765     /**
    1766      * Return the topics last update date/time (aka freshness)
    1767      *
    1768      * @since 2.0.0 bbPress (r2625)
    1769      *
    1770      * @param int $topic_id Optional. Topic id
    1771      * @return string Topic freshness
    1772      */
    1773     function bbp_get_topic_last_active_time( $topic_id = 0 ) {
    1774         $topic_id = bbp_get_topic_id( $topic_id );
    1775 
    1776         // Try to get the most accurate freshness time possible
    1777         $last_active = get_post_meta( $topic_id, '_bbp_last_active_time', true );
    1778         if ( empty( $last_active ) ) {
    1779             $reply_id = bbp_get_topic_last_reply_id( $topic_id );
    1780             if ( ! empty( $reply_id ) ) {
    1781                 $last_active = get_post_field( 'post_date', $reply_id );
    1782             } else {
    1783                 $last_active = get_post_field( 'post_date', $topic_id );
    1784             }
     1786
     1787/**
     1788 * Return the topics last update date/time (aka freshness).
     1789 *
     1790 * @since 2.0.0 bbPress (r2625)
     1791 *
     1792 * @param int $topic_id Optional. Topic id.
     1793 * @return string Topic freshness.
     1794 */
     1795function bbp_get_topic_last_active_time( $topic_id = 0 ) {
     1796    $topic_id = bbp_get_topic_id( $topic_id );
     1797
     1798    // Try to get the most accurate freshness time possible
     1799    $last_active = get_post_meta( $topic_id, '_bbp_last_active_time', true );
     1800    if ( empty( $last_active ) ) {
     1801        $reply_id = bbp_get_topic_last_reply_id( $topic_id );
     1802        if ( ! empty( $reply_id ) ) {
     1803            $last_active = get_post_field( 'post_date', $reply_id );
     1804        } else {
     1805            $last_active = get_post_field( 'post_date', $topic_id );
    17851806        }
    1786 
    1787         $last_active = ! empty( $last_active ) ? bbp_get_time_since( bbp_convert_date( $last_active ) ) : '';
    1788 
    1789         // Filter & return
    1790         return apply_filters( 'bbp_get_topic_last_active', $last_active, $topic_id );
    1791     }
     1807    }
     1808
     1809    $last_active = ! empty( $last_active ) ? bbp_get_time_since( bbp_convert_date( $last_active ) ) : '';
     1810
     1811    // Filter & return
     1812    return apply_filters( 'bbp_get_topic_last_active', $last_active, $topic_id );
     1813}
    17921814
    17931815/** Topic Subscriptions *******************************************************/
    17941816
    17951817/**
    1796  * Output the topic subscription link
     1818 * Output the topic subscription link.
    17971819 *
    17981820 * @since 2.5.0 bbPress (r5156)
     
    18031825}
    18041826
    1805     /**
    1806      * Get the topic subscription link
    1807      *
    1808      * A custom wrapper for bbp_get_user_subscribe_link()
    1809      *
    1810      * @since 2.5.0 bbPress (r5156)
    1811      * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
    1812      */
    1813     function bbp_get_topic_subscription_link( $args = array() ) {
    1814 
    1815         // Defaults
    1816         $retval      = false;
    1817         $user_id     = bbp_get_current_user_id();
    1818         $redirect_to = bbp_is_subscriptions()
    1819             ? bbp_get_subscriptions_permalink( $user_id )
    1820             : '';
    1821 
    1822         // Parse the arguments
    1823         $r = bbp_parse_args(
    1824             $args,
    1825             array(
    1826                 'user_id'     => $user_id,
    1827                 'object_id'   => bbp_get_topic_id(),
    1828                 'object_type' => 'post',
    1829                 'before'      => '&nbsp;|&nbsp;',
    1830                 'after'       => '',
    1831                 'subscribe'   => esc_html__( 'Subscribe',   'bbpress' ),
    1832                 'unsubscribe' => esc_html__( 'Unsubscribe', 'bbpress' ),
    1833                 'redirect_to' => $redirect_to
    1834             ),
    1835             'get_topic_subscribe_link'
    1836         );
    1837 
    1838         // Get the link
    1839         $retval = bbp_get_user_subscribe_link( $r );
    1840 
    1841         // Filter & return
    1842         return apply_filters( 'bbp_get_topic_subscribe_link', $retval, $r, $args );
    1843     }
    1844 
    1845 /** Topic Favorites ***********************************************************/
    1846 
    1847 /**
    1848  * Output the topic favorite link
     1827/**
     1828 * Get the topic subscription link.
     1829 *
     1830 * A custom wrapper for bbp_get_user_subscribe_link()
    18491831 *
    18501832 * @since 2.5.0 bbPress (r5156)
    18511833 * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
    18521834 */
     1835function bbp_get_topic_subscription_link( $args = array() ) {
     1836
     1837    // Defaults
     1838    $retval      = false;
     1839    $user_id     = bbp_get_current_user_id();
     1840    $redirect_to = bbp_is_subscriptions()
     1841        ? bbp_get_subscriptions_permalink( $user_id )
     1842        : '';
     1843
     1844    // Parse the arguments
     1845    $r = bbp_parse_args(
     1846        $args,
     1847        array(
     1848            'user_id'     => $user_id,
     1849            'object_id'   => bbp_get_topic_id(),
     1850            'object_type' => 'post',
     1851            'before'      => '&nbsp;|&nbsp;',
     1852            'after'       => '',
     1853            'subscribe'   => esc_html__( 'Subscribe',   'bbpress' ),
     1854            'unsubscribe' => esc_html__( 'Unsubscribe', 'bbpress' ),
     1855            'redirect_to' => $redirect_to
     1856        ),
     1857        'get_topic_subscribe_link'
     1858    );
     1859
     1860    // Get the link
     1861    $retval = bbp_get_user_subscribe_link( $r );
     1862
     1863    // Filter & return
     1864    return apply_filters( 'bbp_get_topic_subscribe_link', $retval, $r, $args );
     1865}
     1866
     1867/** Topic Favorites ***********************************************************/
     1868
     1869/**
     1870 * Output the topic favorite link.
     1871 *
     1872 * @since 2.5.0 bbPress (r5156)
     1873 * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
     1874 */
    18531875function bbp_topic_favorite_link( $args = array() ) {
    18541876    echo bbp_get_topic_favorite_link( $args );
    18551877}
    18561878
    1857     /**
    1858      * Get the forum favorite link
    1859     *
    1860      * A custom wrapper for bbp_get_user_favorites_link()
    1861     *
    1862     * @since 2.5.0 bbPress (r5156)
    1863     * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
    1864     */
    1865     function bbp_get_topic_favorite_link( $args = array() ) {
    1866 
    1867         // No link
    1868         $retval      = false;
    1869         $user_id     = bbp_get_current_user_id();
    1870         $redirect_to = bbp_is_favorites()
    1871             ? bbp_get_favorites_permalink( $user_id )
    1872             : '';
    1873 
    1874         // Parse the arguments
    1875         $r = bbp_parse_args(
    1876             $args,
    1877             array(
    1878                 'user_id'     => $user_id,
    1879                 'object_id'   => bbp_get_topic_id(),
    1880                 'object_type' => 'post',
    1881                 'before'      => '',
    1882                 'after'       => '',
    1883                 'favorite'    => esc_html__( 'Favorite',   'bbpress' ),
    1884                 'favorited'   => esc_html__( 'Unfavorite', 'bbpress' ),
    1885                 'redirect_to' => $redirect_to
    1886             ),
    1887             'get_topic_favorite_link'
    1888         );
    1889 
    1890         // Get the link
    1891         $retval = bbp_get_user_favorites_link( $r );
    1892 
    1893         // Filter & return
    1894         return apply_filters( 'bbp_get_topic_favorite_link', $retval, $r, $args );
    1895     }
     1879/**
     1880 * Get the forum favorite link.
     1881 *
     1882 * A custom wrapper for bbp_get_user_favorites_link().
     1883 *
     1884 * @since 2.5.0 bbPress (r5156)
     1885 * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
     1886 */
     1887function bbp_get_topic_favorite_link( $args = array() ) {
     1888
     1889    // No link
     1890    $retval      = false;
     1891    $user_id     = bbp_get_current_user_id();
     1892    $redirect_to = bbp_is_favorites()
     1893        ? bbp_get_favorites_permalink( $user_id )
     1894        : '';
     1895
     1896    // Parse the arguments
     1897    $r = bbp_parse_args(
     1898        $args,
     1899        array(
     1900            'user_id'     => $user_id,
     1901            'object_id'   => bbp_get_topic_id(),
     1902            'object_type' => 'post',
     1903            'before'      => '',
     1904            'after'       => '',
     1905            'favorite'    => esc_html__( 'Favorite',   'bbpress' ),
     1906            'favorited'   => esc_html__( 'Unfavorite', 'bbpress' ),
     1907            'redirect_to' => $redirect_to
     1908        ),
     1909        'get_topic_favorite_link'
     1910    );
     1911
     1912    // Get the link
     1913    $retval = bbp_get_user_favorites_link( $r );
     1914
     1915    // Filter & return
     1916    return apply_filters( 'bbp_get_topic_favorite_link', $retval, $r, $args );
     1917}
    18961918
    18971919/** Topic Last Reply **********************************************************/
    18981920
    18991921/**
    1900  * Output the id of the topics last reply
     1922 * Output the id of the topics last reply.
    19011923 *
    19021924 * @since 2.0.0 bbPress (r2625)
    19031925 *
    1904  * @param int $topic_id Optional. Topic id
     1926 * @param int $topic_id Optional. Topic id.
    19051927 */
    19061928function bbp_topic_last_reply_id( $topic_id = 0 ) {
    19071929    echo bbp_get_topic_last_reply_id( $topic_id );
    19081930}
    1909     /**
    1910      * Return the id of the topics last reply
    1911      *
    1912      * @since 2.0.0 bbPress (r2625)
    1913      *
    1914      * @param int $topic_id Optional. Topic id
    1915      * @return int Topic last reply id
    1916      */
    1917     function bbp_get_topic_last_reply_id( $topic_id = 0 ) {
    1918         $topic_id = bbp_get_topic_id( $topic_id );
    1919         $reply_id = (int) get_post_meta( $topic_id, '_bbp_last_reply_id', true );
    1920 
    1921         // Filter & return
    1922         return (int) apply_filters( 'bbp_get_topic_last_reply_id', $reply_id, $topic_id );
    1923     }
    1924 
    1925 /**
    1926  * Output the title of the last reply inside a topic
     1931
     1932/**
     1933 * Return the id of the topics last reply.
     1934 *
     1935 * @since 2.0.0 bbPress (r2625)
     1936 *
     1937 * @param int $topic_id Optional. Topic id.
     1938 * @return int Topic last reply id.
     1939 */
     1940function bbp_get_topic_last_reply_id( $topic_id = 0 ) {
     1941    $topic_id = bbp_get_topic_id( $topic_id );
     1942    $reply_id = (int) get_post_meta( $topic_id, '_bbp_last_reply_id', true );
     1943
     1944    // Filter & return
     1945    return (int) apply_filters( 'bbp_get_topic_last_reply_id', $reply_id, $topic_id );
     1946}
     1947
     1948/**
     1949 * Output the title of the last reply inside a topic.
    19271950 *
    19281951 * @since 2.0.0 bbPress (r2753)
    19291952 *
    1930  * @param int $topic_id Optional. Topic id
     1953 * @param int $topic_id Optional. Topic id.
    19311954 */
    19321955function bbp_topic_last_reply_title( $topic_id = 0 ) {
    19331956    echo bbp_get_topic_last_reply_title( $topic_id );
    19341957}
    1935     /**
    1936      * Return the title of the last reply inside a topic
    1937      *
    1938      * @since 2.0.0 bbPress (r2753)
    1939      * @since 2.6.0 bbPress https://bbpress.trac.wordpress.org/ticket/3039
    1940      *
    1941      * @param int $topic_id Optional. Topic id
    1942      * @return string Topic last reply title
    1943      */
    1944     function bbp_get_topic_last_reply_title( $topic_id = 0 ) {
    1945         $topic_id = bbp_get_topic_id( $topic_id );
    1946         $reply_id = bbp_get_topic_last_reply_id( $topic_id );
    1947         $retval   = bbp_get_reply_title( $reply_id );
    1948 
    1949         // Misspelled. Use 'bbp_get_topic_last_reply_title' hook instead.
    1950         $retval = apply_filters( 'bbp_get_topic_last_topic_title', $retval, $topic_id, $reply_id );
    1951 
    1952         // Filter & return
    1953         return apply_filters( 'bbp_get_topic_last_reply_title', $retval, $topic_id, $reply_id );
    1954     }
    1955 
    1956 /**
    1957  * Output the link to the last reply in a topic
     1958
     1959/**
     1960 * Return the title of the last reply inside a topic.
     1961 *
     1962 * @since 2.0.0 bbPress (r2753)
     1963 * @since 2.6.0 bbPress https://bbpress.trac.wordpress.org/ticket/3039
     1964 *
     1965 * @param int $topic_id Optional. Topic id.
     1966 * @return string Topic last reply title.
     1967 */
     1968function bbp_get_topic_last_reply_title( $topic_id = 0 ) {
     1969    $topic_id = bbp_get_topic_id( $topic_id );
     1970    $reply_id = bbp_get_topic_last_reply_id( $topic_id );
     1971    $retval   = bbp_get_reply_title( $reply_id );
     1972
     1973    // Misspelled. Use 'bbp_get_topic_last_reply_title' hook instead.
     1974    $retval = apply_filters( 'bbp_get_topic_last_topic_title', $retval, $topic_id, $reply_id );
     1975
     1976    // Filter & return
     1977    return apply_filters( 'bbp_get_topic_last_reply_title', $retval, $topic_id, $reply_id );
     1978}
     1979
     1980/**
     1981 * Output the link to the last reply in a topic.
    19581982 *
    19591983 * @since 2.0.0 bbPress (r2464)
    19601984 *
    1961  * @param int $topic_id Optional. Topic id
     1985 * @param int $topic_id Optional. Topic id.
    19621986 */
    19631987function bbp_topic_last_reply_permalink( $topic_id = 0 ) {
    19641988    echo esc_url( bbp_get_topic_last_reply_permalink( $topic_id ) );
    19651989}
    1966     /**
    1967      * Return the link to the last reply in a topic
    1968      *
    1969      * @since 2.0.0 bbPress (r2464)
    1970      *
    1971      * @param int $topic_id Optional. Topic id
    1972      * @return string Permanent link to the reply
    1973      */
    1974     function bbp_get_topic_last_reply_permalink( $topic_id = 0 ) {
    1975         $topic_id = bbp_get_topic_id( $topic_id );
    1976         $reply_id = bbp_get_topic_last_reply_id( $topic_id );
    1977         $retval   = bbp_get_reply_permalink( $reply_id );
    1978 
    1979         // Filter & return
    1980         return apply_filters( 'bbp_get_topic_last_reply_permalink', $retval, $topic_id, $reply_id );
    1981     }
    1982 
    1983 /**
    1984  * Output the link to the last reply in a topic
     1990
     1991/**
     1992 * Return the link to the last reply in a topic.
     1993 *
     1994 * @since 2.0.0 bbPress (r2464)
     1995 *
     1996 * @param int $topic_id Optional. Topic id.
     1997 * @return string Permanent link to the reply.
     1998 */
     1999function bbp_get_topic_last_reply_permalink( $topic_id = 0 ) {
     2000    $topic_id = bbp_get_topic_id( $topic_id );
     2001    $reply_id = bbp_get_topic_last_reply_id( $topic_id );
     2002    $retval   = bbp_get_reply_permalink( $reply_id );
     2003
     2004    // Filter & return
     2005    return apply_filters( 'bbp_get_topic_last_reply_permalink', $retval, $topic_id, $reply_id );
     2006}
     2007
     2008/**
     2009 * Output the link to the last reply in a topic.
    19852010 *
    19862011 * @since 2.0.0 bbPress (r2683)
    19872012 *
    1988  * @param int $topic_id Optional. Topic id
     2013 * @param int $topic_id Optional. Topic id.
    19892014 */
    19902015function bbp_topic_last_reply_url( $topic_id = 0 ) {
    19912016    echo esc_url( bbp_get_topic_last_reply_url( $topic_id ) );
    19922017}
    1993     /**
    1994      * Return the link to the last reply in a topic
    1995      *
    1996      * @since 2.0.0 bbPress (r2683)
    1997      *
    1998      * @param int $topic_id Optional. Topic id
    1999      * @return string Topic last reply url
    2000      */
    2001     function bbp_get_topic_last_reply_url( $topic_id = 0 ) {
    2002         $topic_id = bbp_get_topic_id( $topic_id );
    2003         $reply_id = bbp_get_topic_last_reply_id( $topic_id );
    2004 
    2005         if ( ! empty( $reply_id ) && ( $reply_id !== $topic_id ) ) {
    2006             $reply_url = bbp_get_reply_url( $reply_id );
    2007         } else {
    2008             $reply_url = bbp_get_topic_permalink( $topic_id );
    2009         }
    2010 
    2011         // Filter & return
    2012         return apply_filters( 'bbp_get_topic_last_reply_url', $reply_url, $topic_id, $reply_id );
    2013     }
     2018
     2019/**
     2020 * Return the link to the last reply in a topic.
     2021 *
     2022 * @since 2.0.0 bbPress (r2683)
     2023 *
     2024 * @param int $topic_id Optional. Topic id.
     2025 * @return string Topic last reply url.
     2026 */
     2027function bbp_get_topic_last_reply_url( $topic_id = 0 ) {
     2028    $topic_id = bbp_get_topic_id( $topic_id );
     2029    $reply_id = bbp_get_topic_last_reply_id( $topic_id );
     2030
     2031    if ( ! empty( $reply_id ) && ( $reply_id !== $topic_id ) ) {
     2032        $reply_url = bbp_get_reply_url( $reply_id );
     2033    } else {
     2034        $reply_url = bbp_get_topic_permalink( $topic_id );
     2035    }
     2036
     2037    // Filter & return
     2038    return apply_filters( 'bbp_get_topic_last_reply_url', $reply_url, $topic_id, $reply_id );
     2039}
    20142040
    20152041/**
     
    20192045 * @since 2.0.0 bbPress (r2625)
    20202046 *
    2021  * @param int $topic_id Optional. Topic id
     2047 * @param int $topic_id Optional. Topic id.
    20222048 */
    20232049function bbp_topic_freshness_link( $topic_id = 0 ) {
    20242050    echo bbp_get_topic_freshness_link( $topic_id );
    20252051}
    2026     /**
    2027      * Returns link to the most recent activity inside a topic, complete
    2028      * with link attributes and content.
    2029      *
    2030      * @since 2.0.0 bbPress (r2625)
    2031      *
    2032      * @param int $topic_id Optional. Topic id
    2033      * @return string Topic freshness link
    2034      */
    2035     function bbp_get_topic_freshness_link( $topic_id = 0 ) {
    2036         $topic_id   = bbp_get_topic_id( $topic_id );
    2037         $link_url   = bbp_get_topic_last_reply_url( $topic_id );
    2038         $title      = bbp_get_topic_last_reply_title( $topic_id );
    2039         $time_since = bbp_get_topic_last_active_time( $topic_id );
    2040 
    2041         if ( ! empty( $time_since ) ) {
    2042             $anchor = '<a href="' . esc_url( $link_url ) . '" title="' . esc_attr( $title ) . '">' . esc_html( $time_since ) . '</a>';
    2043         } else {
    2044             $anchor = esc_html__( 'No Replies', 'bbpress' );
    2045         }
    2046 
    2047         // Filter & return
    2048         return apply_filters( 'bbp_get_topic_freshness_link', $anchor, $topic_id, $time_since, $link_url, $title );
    2049     }
    2050 
    2051 /**
    2052  * Output the replies link of the topic
     2052
     2053/**
     2054 * Returns link to the most recent activity inside a topic, complete
     2055 * with link attributes and content.
     2056 *
     2057 * @since 2.0.0 bbPress (r2625)
     2058 *
     2059 * @param int $topic_id Optional. Topic id.
     2060 * @return string Topic freshness link.
     2061 */
     2062function bbp_get_topic_freshness_link( $topic_id = 0 ) {
     2063    $topic_id   = bbp_get_topic_id( $topic_id );
     2064    $link_url   = bbp_get_topic_last_reply_url( $topic_id );
     2065    $title      = bbp_get_topic_last_reply_title( $topic_id );
     2066    $time_since = bbp_get_topic_last_active_time( $topic_id );
     2067
     2068    if ( ! empty( $time_since ) ) {
     2069        $anchor = '<a href="' . esc_url( $link_url ) . '" title="' . esc_attr( $title ) . '">' . esc_html( $time_since ) . '</a>';
     2070    } else {
     2071        $anchor = esc_html__( 'No Replies', 'bbpress' );
     2072    }
     2073
     2074    // Filter & return
     2075    return apply_filters( 'bbp_get_topic_freshness_link', $anchor, $topic_id, $time_since, $link_url, $title );
     2076}
     2077
     2078/**
     2079 * Output the replies link of the topic.
    20532080 *
    20542081 * @since 2.0.0 bbPress (r2740)
    20552082 *
    2056  * @param int $topic_id Optional. Topic id
     2083 * @param int $topic_id Optional. Topic id.
    20572084 */
    20582085function bbp_topic_replies_link( $topic_id = 0 ) {
     
    20602087}
    20612088
    2062     /**
    2063      * Return the replies link of the topic
    2064     *
    2065     * @since 2.0.0 bbPress (r2740)
    2066     *
    2067      * @param int $topic_id Optional. Topic id
    2068     */
    2069     function bbp_get_topic_replies_link( $topic_id = 0 ) {
    2070         $topic_id = bbp_get_topic_id( $topic_id );
    2071         $link     = bbp_get_topic_permalink( $topic_id );
    2072         /* translators: %s: Number of replies */
    2073         $replies  = sprintf( _n( '%s reply', '%s replies', bbp_get_topic_reply_count( $topic_id, true ), 'bbpress' ), bbp_get_topic_reply_count( $topic_id, false ) );
    2074 
    2075         // First link never has view=all
    2076         $retval = bbp_get_view_all( 'edit_others_replies' )
    2077             ? "<a href='" . esc_url( bbp_remove_view_all( $link ) ) . "'>" . esc_html( $replies ) . '</a>'
    2078             : $replies;
    2079 
    2080         // Any deleted replies?
    2081         $deleted_int = bbp_get_topic_reply_count_hidden( $topic_id, true  );
    2082 
    2083         // This topic has hidden replies
    2084         if ( ! empty( $deleted_int ) && current_user_can( 'edit_others_replies' ) ) {
    2085 
    2086             // Hidden replies
    2087             $deleted_num = bbp_get_topic_reply_count_hidden( $topic_id, false );
    2088             /* translators: %s: Number of hidden replies */
    2089             $extra       = ' ' . sprintf( _n( '(+%s hidden)', '(+%s hidden)', $deleted_int, 'bbpress' ), $deleted_num );
    2090 
    2091             // Hidden link
    2092             $retval .= ! bbp_get_view_all( 'edit_others_replies' )
    2093                 ? " <a href='" . esc_url( bbp_add_view_all( $link, true ) ) . "'>" . esc_html( $extra ) . '</a>'
    2094                 : " {$extra}";
    2095         }
    2096 
    2097         // Filter & return
    2098         return apply_filters( 'bbp_get_topic_replies_link', $retval, $topic_id );
    2099     }
    2100 
    2101 /**
    2102  * Output total reply count of a topic
     2089/**
     2090 * Return the replies link of the topic.
     2091 *
     2092 * @since 2.0.0 bbPress (r2740)
     2093 *
     2094 * @param int $topic_id Optional. Topic id.
     2095 */
     2096function bbp_get_topic_replies_link( $topic_id = 0 ) {
     2097    $topic_id = bbp_get_topic_id( $topic_id );
     2098    $link     = bbp_get_topic_permalink( $topic_id );
     2099    /* translators: %s: Number of replies */
     2100    $replies  = sprintf( _n( '%s reply', '%s replies', bbp_get_topic_reply_count( $topic_id, true ), 'bbpress' ), bbp_get_topic_reply_count( $topic_id, false ) );
     2101
     2102    // First link never has view=all
     2103    $retval = bbp_get_view_all( 'edit_others_replies' )
     2104        ? "<a href='" . esc_url( bbp_remove_view_all( $link ) ) . "'>" . esc_html( $replies ) . '</a>'
     2105        : $replies;
     2106
     2107    // Any deleted replies?
     2108    $deleted_int = bbp_get_topic_reply_count_hidden( $topic_id, true  );
     2109
     2110    // This topic has hidden replies
     2111    if ( ! empty( $deleted_int ) && current_user_can( 'edit_others_replies' ) ) {
     2112
     2113        // Hidden replies
     2114        $deleted_num = bbp_get_topic_reply_count_hidden( $topic_id, false );
     2115        /* translators: %s: Number of hidden replies */
     2116        $extra       = ' ' . sprintf( _n( '(+%s hidden)', '(+%s hidden)', $deleted_int, 'bbpress' ), $deleted_num );
     2117
     2118        // Hidden link
     2119        $retval .= ! bbp_get_view_all( 'edit_others_replies' )
     2120            ? " <a href='" . esc_url( bbp_add_view_all( $link, true ) ) . "'>" . esc_html( $extra ) . '</a>'
     2121            : " {$extra}";
     2122    }
     2123
     2124    // Filter & return
     2125    return apply_filters( 'bbp_get_topic_replies_link', $retval, $topic_id );
     2126}
     2127
     2128/**
     2129 * Output total reply count of a topic.
    21032130 *
    21042131 * @since 2.0.0 bbPress (r2485)
    21052132 *
    2106  * @param int $topic_id Optional. Topic id
    2107  * @param boolean $integer Optional. Whether or not to format the result
     2133 * @param int $topic_id Optional. Topic id.
     2134 * @param boolean $integer Optional. Whether or not to format the result.
    21082135 */
    21092136function bbp_topic_reply_count( $topic_id = 0, $integer = false ) {
    21102137    echo bbp_get_topic_reply_count( $topic_id, $integer );
    21112138}
    2112     /**
    2113      * Return total reply count of a topic
    2114      *
    2115      * @since 2.0.0 bbPress (r2485)
    2116      *
    2117      * @param int $topic_id Optional. Topic id
    2118      * @param boolean $integer Optional. Whether or not to format the result
    2119      * @return int Reply count
    2120      */
    2121     function bbp_get_topic_reply_count( $topic_id = 0, $integer = false ) {
    2122         $topic_id = bbp_get_topic_id( $topic_id );
    2123         $replies  = (int) get_post_meta( $topic_id, '_bbp_reply_count', true );
    2124         $filter   = ( true === $integer )
    2125             ? 'bbp_get_topic_reply_count_int'
    2126             : 'bbp_get_topic_reply_count';
    2127 
    2128         return apply_filters( $filter, $replies, $topic_id );
    2129     }
    2130 
    2131 /**
    2132  * Output total post count of a topic
     2139
     2140/**
     2141 * Return total reply count of a topic.
     2142 *
     2143 * @since 2.0.0 bbPress (r2485)
     2144 *
     2145 * @param int $topic_id Optional. Topic id.
     2146 * @param boolean $integer Optional. Whether or not to format the result.
     2147 * @return int Reply count.
     2148 */
     2149function bbp_get_topic_reply_count( $topic_id = 0, $integer = false ) {
     2150    $topic_id = bbp_get_topic_id( $topic_id );
     2151    $replies  = (int) get_post_meta( $topic_id, '_bbp_reply_count', true );
     2152    $filter   = ( true === $integer )
     2153        ? 'bbp_get_topic_reply_count_int'
     2154        : 'bbp_get_topic_reply_count';
     2155
     2156    return apply_filters( $filter, $replies, $topic_id );
     2157}
     2158
     2159/**
     2160 * Output total post count of a topic.
    21332161 *
    21342162 * @since 2.0.0 bbPress (r2954)
    21352163 *
    2136  * @param int $topic_id Optional. Topic id
    2137  * @param boolean $integer Optional. Whether or not to format the result
     2164 * @param int $topic_id Optional. Topic id.
     2165 * @param boolean $integer Optional. Whether or not to format the result.
    21382166 */
    21392167function bbp_topic_post_count( $topic_id = 0, $integer = false ) {
    21402168    echo bbp_get_topic_post_count( $topic_id, $integer );
    21412169}
    2142     /**
    2143      * Return total post count of a topic
    2144      *
    2145      * @since 2.0.0 bbPress (r2954)
    2146      *
    2147      * @param int $topic_id Optional. Topic id
    2148      * @param boolean $integer Optional. Whether or not to format the result
    2149      * @return int Post count
    2150      */
    2151     function bbp_get_topic_post_count( $topic_id = 0, $integer = false ) {
    2152         $topic_id = bbp_get_topic_id( $topic_id );
    2153         $replies  = ( (int) get_post_meta( $topic_id, '_bbp_reply_count', true ) ) + 1;
    2154         $filter   = ( true === $integer )
    2155             ? 'bbp_get_topic_post_count_int'
    2156             : 'bbp_get_topic_post_count';
    2157 
    2158         return apply_filters( $filter, $replies, $topic_id );
    2159     }
     2170
     2171/**
     2172 * Return total post count of a topic.
     2173 *
     2174 * @since 2.0.0 bbPress (r2954)
     2175 *
     2176 * @param int $topic_id Optional. Topic id.
     2177 * @param boolean $integer Optional. Whether or not to format the result.
     2178 * @return int Post count.
     2179 */
     2180function bbp_get_topic_post_count( $topic_id = 0, $integer = false ) {
     2181    $topic_id = bbp_get_topic_id( $topic_id );
     2182    $replies  = ( (int) get_post_meta( $topic_id, '_bbp_reply_count', true ) ) + 1;
     2183    $filter   = ( true === $integer )
     2184        ? 'bbp_get_topic_post_count_int'
     2185        : 'bbp_get_topic_post_count';
     2186
     2187    return apply_filters( $filter, $replies, $topic_id );
     2188}
    21602189
    21612190/**
    21622191 * Output total hidden reply count of a topic (hidden includes trashed and
    2163  * spammed replies)
     2192 * spammed replies).
    21642193 *
    21652194 * @since 2.0.0 bbPress (r2740)
    21662195 *
    2167  * @param int $topic_id Optional. Topic id
    2168  * @param boolean $integer Optional. Whether or not to format the result
     2196 * @param int $topic_id Optional. Topic id.
     2197 * @param boolean $integer Optional. Whether or not to format the result.
    21692198 */
    21702199function bbp_topic_reply_count_hidden( $topic_id = 0, $integer = false ) {
    21712200    echo bbp_get_topic_reply_count_hidden( $topic_id, $integer );
    21722201}
    2173     /**
    2174      * Return total hidden reply count of a topic (hidden includes trashed
    2175      * and spammed replies)
    2176      *
    2177      * @since 2.0.0 bbPress (r2740)
    2178      *
    2179      * @param int $topic_id Optional. Topic id
    2180      * @param boolean $integer Optional. Whether or not to format the result
    2181      * @return int Topic hidden reply count
    2182      */
    2183     function bbp_get_topic_reply_count_hidden( $topic_id = 0, $integer = false ) {
    2184         $topic_id = bbp_get_topic_id( $topic_id );
    2185         $replies  = (int) get_post_meta( $topic_id, '_bbp_reply_count_hidden', true );
    2186         $filter   = ( true === $integer )
    2187             ? 'bbp_get_topic_reply_count_hidden_int'
    2188             : 'bbp_get_topic_reply_count_hidden';
    2189 
    2190         return apply_filters( $filter, $replies, $topic_id );
    2191     }
    2192 
    2193 /**
    2194  * Output total voice count of a topic
     2202
     2203/**
     2204 * Return total hidden reply count of a topic (hidden includes trashed
     2205 * and spammed replies).
     2206 *
     2207 * @since 2.0.0 bbPress (r2740)
     2208 *
     2209 * @param int $topic_id Optional. Topic id.
     2210 * @param boolean $integer Optional. Whether or not to format the result.
     2211 * @return int Topic hidden reply count.
     2212 */
     2213function bbp_get_topic_reply_count_hidden( $topic_id = 0, $integer = false ) {
     2214    $topic_id = bbp_get_topic_id( $topic_id );
     2215    $replies  = (int) get_post_meta( $topic_id, '_bbp_reply_count_hidden', true );
     2216    $filter   = ( true === $integer )
     2217        ? 'bbp_get_topic_reply_count_hidden_int'
     2218        : 'bbp_get_topic_reply_count_hidden';
     2219
     2220    return apply_filters( $filter, $replies, $topic_id );
     2221}
     2222
     2223/**
     2224 * Output total voice count of a topic.
    21952225 *
    21962226 * @since 2.0.0 bbPress (r2567)
    21972227 *
    2198  * @param int $topic_id Optional. Topic id
     2228 * @param int $topic_id Optional. Topic id.
    21992229 */
    22002230function bbp_topic_voice_count( $topic_id = 0, $integer = false ) {
    22012231    echo bbp_get_topic_voice_count( $topic_id, $integer );
    22022232}
    2203     /**
    2204      * Return total voice count of a topic
    2205      *
    2206      * @since 2.0.0 bbPress (r2567)
    2207      *
    2208      * @param int $topic_id Optional. Topic id
    2209      * @return int Voice count of the topic
    2210      */
    2211     function bbp_get_topic_voice_count( $topic_id = 0, $integer = false ) {
    2212         $topic_id = bbp_get_topic_id( $topic_id );
    2213         $voices   = (int) get_post_meta( $topic_id, '_bbp_voice_count', true );
    2214         $filter   = ( true === $integer )
    2215             ? 'bbp_get_topic_voice_count_int'
    2216             : 'bbp_get_topic_voice_count';
    2217 
    2218         return apply_filters( $filter, $voices, $topic_id );
    2219     }
    2220 
    2221 /**
    2222  * Output a the tags of a topic
     2233
     2234/**
     2235 * Return total voice count of a topic.
     2236 *
     2237 * @since 2.0.0 bbPress (r2567)
     2238 *
     2239 * @param int $topic_id Optional. Topic id.
     2240 * @return int Voice count of the topic.
     2241 */
     2242function bbp_get_topic_voice_count( $topic_id = 0, $integer = false ) {
     2243    $topic_id = bbp_get_topic_id( $topic_id );
     2244    $voices   = (int) get_post_meta( $topic_id, '_bbp_voice_count', true );
     2245    $filter   = ( true === $integer )
     2246        ? 'bbp_get_topic_voice_count_int'
     2247        : 'bbp_get_topic_voice_count';
     2248
     2249    return apply_filters( $filter, $voices, $topic_id );
     2250}
     2251
     2252/**
     2253 * Output a the tags of a topic.
    22232254 *
    22242255 * @since 2.0.0 bbPress (r2688)
    22252256 *
    2226  * @param int $topic_id Optional. Topic id
    2227  * @param array $args See {@link bbp_get_topic_tag_list()}
     2257 * @param int $topic_id Optional. Topic id.
     2258 * @param array $args See {@link bbp_get_topic_tag_list()}.
    22282259 */
    22292260function bbp_topic_tag_list( $topic_id = 0, $args = array() ) {
    22302261    echo bbp_get_topic_tag_list( $topic_id, $args );
    22312262}
    2232     /**
    2233      * Return the tags of a topic
    2234      *
    2235      * @since 2.0.0 bbPress (r2688)
    2236      *
    2237      * @param int $topic_id Optional. Topic id
    2238      * @param array $args This function supports these arguments:
    2239      *  - before: Before the tag list
    2240      *  - sep: Tag separator
    2241      *  - after: After the tag list
    2242      * @return string Tag list of the topic
    2243      */
    2244     function bbp_get_topic_tag_list( $topic_id = 0, $args = array() ) {
    2245 
    2246         // Bail if topic-tags are off
    2247         if ( ! bbp_allow_topic_tags() ) {
    2248             return '';
     2263
     2264/**
     2265 * Return the tags of a topic.
     2266 *
     2267 * @since 2.0.0 bbPress (r2688)
     2268 *
     2269 * @param int $topic_id Optional. Topic id.
     2270 * @param array $args This function supports these arguments:
     2271 *  - before: Before the tag list
     2272 *  - sep: Tag separator
     2273 *  - after: After the tag list
     2274 * @return string Tag list of the topic.
     2275 */
     2276function bbp_get_topic_tag_list( $topic_id = 0, $args = array() ) {
     2277
     2278    // Bail if topic-tags are off
     2279    if ( ! bbp_allow_topic_tags() ) {
     2280        return '';
     2281    }
     2282
     2283    // Parse arguments against default values
     2284    $r = bbp_parse_args(
     2285        $args,
     2286        array(
     2287            'before' => '<div class="bbp-topic-tags"><p>' . esc_html__( 'Tagged:', 'bbpress' ) . '&nbsp;',
     2288            'sep'    => ', ',
     2289            'after'  => '</p></div>',
     2290            'none'   => ''
     2291        ),
     2292        'get_topic_tag_list'
     2293    );
     2294
     2295    $topic_id = bbp_get_topic_id( $topic_id );
     2296
     2297    // Topic is spammed, so display pre-spam terms
     2298    if ( bbp_is_topic_spam( $topic_id ) ) {
     2299
     2300        // Get pre-spam terms
     2301        $terms = get_post_meta( $topic_id, '_bbp_spam_topic_tags', true );
     2302
     2303        // If terms exist, implode them and compile the return value
     2304        if ( ! empty( $terms ) ) {
     2305            $terms = $r['before'] . implode( $r['sep'], $terms ) . $r['after'];
    22492306        }
    22502307
    2251         // Parse arguments against default values
    2252         $r = bbp_parse_args(
    2253             $args,
    2254             array(
    2255                 'before' => '<div class="bbp-topic-tags"><p>' . esc_html__( 'Tagged:', 'bbpress' ) . '&nbsp;',
    2256                 'sep'    => ', ',
    2257                 'after'  => '</p></div>',
    2258                 'none'   => ''
    2259             ),
    2260             'get_topic_tag_list'
    2261         );
    2262 
    2263         $topic_id = bbp_get_topic_id( $topic_id );
    2264 
    2265         // Topic is spammed, so display pre-spam terms
    2266         if ( bbp_is_topic_spam( $topic_id ) ) {
    2267 
    2268             // Get pre-spam terms
    2269             $terms = get_post_meta( $topic_id, '_bbp_spam_topic_tags', true );
    2270 
    2271             // If terms exist, implode them and compile the return value
    2272             if ( ! empty( $terms ) ) {
    2273                 $terms = $r['before'] . implode( $r['sep'], $terms ) . $r['after'];
    2274             }
    2275 
    2276         // Topic is not spam so display a clickable term list
    2277         } else {
    2278             $terms = get_the_term_list( $topic_id, bbp_get_topic_tag_tax_id(), $r['before'], $r['sep'], $r['after'] );
    2279         }
    2280 
    2281         // No terms so return none string
    2282         if ( ! empty( $terms ) ) {
    2283             $retval = $terms;
    2284         } else {
    2285             $retval = $r['none'];
    2286         }
    2287 
    2288         return $retval;
    2289     }
    2290 
    2291 /**
    2292  * Output the row class of a topic
     2308    // Topic is not spam so display a clickable term list
     2309    } else {
     2310        $terms = get_the_term_list( $topic_id, bbp_get_topic_tag_tax_id(), $r['before'], $r['sep'], $r['after'] );
     2311    }
     2312
     2313    // No terms so return none string
     2314    if ( ! empty( $terms ) ) {
     2315        $retval = $terms;
     2316    } else {
     2317        $retval = $r['none'];
     2318    }
     2319
     2320    return $retval;
     2321}
     2322
     2323/**
     2324 * Output the row class of a topic.
    22932325 *
    22942326 * @since 2.0.0 bbPress (r2667)
    22952327 *
    2296  * @param int $topic_id Optional. Topic id
    2297  * @param array Extra classes you can pass when calling this function
     2328 * @param int $topic_id Optional. Topic id.
     2329 * @param array Extra classes you can pass when calling this function.
    22982330 */
    22992331function bbp_topic_class( $topic_id = 0, $classes = array() ) {
    23002332    echo bbp_get_topic_class( $topic_id, $classes );
    23012333}
    2302     /**
    2303      * Return the row class of a topic
    2304      *
    2305      * @since 2.0.0 bbPress (r2667)
    2306      *
    2307      * @param int $topic_id Optional. Topic id
    2308      * @param array Extra classes you can pass when calling this function
    2309      * @return string Row class of a topic
    2310      */
    2311     function bbp_get_topic_class( $topic_id = 0, $classes = array() ) {
    2312         $bbp       = bbpress();
    2313         $topic_id  = bbp_get_topic_id( $topic_id );
    2314         $forum_id  = bbp_get_topic_forum_id( $topic_id );
    2315         $author_id = bbp_get_topic_author_id( $topic_id );
    2316         $classes   = array_filter( (array) $classes );
    2317         $count     = isset( $bbp->topic_query->current_post )
    2318             ? (int) $bbp->topic_query->current_post
    2319             : 1;
    2320 
    2321         //  Stripes
    2322         $even_odd = ( $count % 2 )
    2323             ? 'even'
    2324             : 'odd';
    2325 
    2326         // Forum moderator replied to topic
    2327         $forum_moderator = ( bbp_is_user_forum_moderator( $author_id, $forum_id ) === $author_id )
    2328             ? 'forum-mod'
    2329             : '';
    2330 
    2331         // Is this topic a sticky?
    2332         $sticky = bbp_is_topic_sticky( $topic_id, false )
    2333             ? 'sticky'
    2334             : '';
    2335 
    2336         // Is this topic a super-sticky?
    2337         $super_sticky = bbp_is_topic_super_sticky( $topic_id  )
    2338             ? 'super-sticky'
    2339             : '';
    2340 
    2341         // Get topic classes
    2342         $topic_classes = array(
    2343             'loop-item-'        . $count,
    2344             'user-id-'          . $author_id,
    2345             'bbp-parent-forum-' . $forum_id,
    2346             $even_odd,
    2347             $forum_moderator,
    2348             $sticky,
    2349             $super_sticky
    2350         );
    2351 
    2352         // Run the topic classes through the post-class filters, which also
    2353         // handles the escaping of each individual class.
    2354         $post_classes = get_post_class( array_merge( $classes, $topic_classes ), $topic_id );
    2355 
    2356         // Filter
    2357         $new_classes  = apply_filters( 'bbp_get_topic_class', $post_classes, $topic_id, $classes );
    2358 
    2359         // Return
    2360         return 'class="' . implode( ' ', $new_classes ) . '"';
    2361     }
     2334
     2335/**
     2336 * Return the row class of a topic.
     2337 *
     2338 * @since 2.0.0 bbPress (r2667)
     2339 *
     2340 * @param int $topic_id Optional. Topic id.
     2341 * @param array Extra classes you can pass when calling this function.
     2342 * @return string Row class of a topic.
     2343 */
     2344function bbp_get_topic_class( $topic_id = 0, $classes = array() ) {
     2345    $bbp       = bbpress();
     2346    $topic_id  = bbp_get_topic_id( $topic_id );
     2347    $forum_id  = bbp_get_topic_forum_id( $topic_id );
     2348    $author_id = bbp_get_topic_author_id( $topic_id );
     2349    $classes   = array_filter( (array) $classes );
     2350    $count     = isset( $bbp->topic_query->current_post )
     2351        ? (int) $bbp->topic_query->current_post
     2352        : 1;
     2353
     2354    //  Stripes
     2355    $even_odd = ( $count % 2 )
     2356        ? 'even'
     2357        : 'odd';
     2358
     2359    // Forum moderator replied to topic
     2360    $forum_moderator = ( bbp_is_user_forum_moderator( $author_id, $forum_id ) === $author_id )
     2361        ? 'forum-mod'
     2362        : '';
     2363
     2364    // Is this topic a sticky?
     2365    $sticky = bbp_is_topic_sticky( $topic_id, false )
     2366        ? 'sticky'
     2367        : '';
     2368
     2369    // Is this topic a super-sticky?
     2370    $super_sticky = bbp_is_topic_super_sticky( $topic_id  )
     2371        ? 'super-sticky'
     2372        : '';
     2373
     2374    // Get topic classes
     2375    $topic_classes = array(
     2376        'loop-item-'        . $count,
     2377        'user-id-'          . $author_id,
     2378        'bbp-parent-forum-' . $forum_id,
     2379        $even_odd,
     2380        $forum_moderator,
     2381        $sticky,
     2382        $super_sticky
     2383    );
     2384
     2385    // Run the topic classes through the post-class filters, which also
     2386    // handles the escaping of each individual class.
     2387    $post_classes = get_post_class( array_merge( $classes, $topic_classes ), $topic_id );
     2388
     2389    // Filter
     2390    $new_classes  = apply_filters( 'bbp_get_topic_class', $post_classes, $topic_id, $classes );
     2391
     2392    // Return
     2393    return 'class="' . implode( ' ', $new_classes ) . '"';
     2394}
    23622395
    23632396/** Topic Admin Links *********************************************************/
    23642397
    23652398/**
    2366  * Output admin links for topic
    2367  *
    2368  * @param array $args See {@link bbp_get_topic_admin_links()}
     2399 * Output admin links for topic.
     2400 *
     2401 * @param array $args See {@link bbp_get_topic_admin_links()}.
    23692402 */
    23702403function bbp_topic_admin_links( $args = array() ) {
    23712404    echo bbp_get_topic_admin_links( $args );
    23722405}
    2373     /**
    2374      * Return admin links for topic.
    2375      *
    2376      * Move topic functionality is handled by the edit topic page.
    2377      *
    2378      * @param array $args This function supports these arguments:
    2379      *  - id: Optional. Topic id
    2380      *  - before: Before the links
    2381      *  - after: After the links
    2382      *  - sep: Links separator
    2383      *  - links: Topic admin links array
    2384      * @return string Topic admin links
    2385      */
    2386     function bbp_get_topic_admin_links( $args = array() ) {
    2387 
    2388         // Parse arguments against default values
    2389         $r = bbp_parse_args(
    2390             $args,
     2406
     2407/**
     2408 * Return admin links for topic.
     2409 *
     2410 * Move topic functionality is handled by the edit topic page.
     2411 *
     2412 * @param array $args This function supports these arguments:
     2413 *  - id: Optional. Topic id
     2414 *  - before: Before the links
     2415 *  - after: After the links
     2416 *  - sep: Links separator
     2417 *  - links: Topic admin links array
     2418 * @return string Topic admin links.
     2419 */
     2420function bbp_get_topic_admin_links( $args = array() ) {
     2421
     2422    // Parse arguments against default values
     2423    $r = bbp_parse_args(
     2424        $args,
     2425        array(
     2426            'id'     => bbp_get_topic_id(),
     2427            'before' => '<span class="bbp-admin-links">',
     2428            'after'  => '</span>',
     2429            'sep'    => ' | ',
     2430            'links'  => array()
     2431        ),
     2432        'get_topic_admin_links'
     2433    );
     2434
     2435    if ( empty( $r['links'] ) ) {
     2436        $r['links'] = apply_filters(
     2437            'bbp_topic_admin_links',
    23912438            array(
    2392                 'id'     => bbp_get_topic_id(),
    2393                 'before' => '<span class="bbp-admin-links">',
    2394                 'after'  => '</span>',
    2395                 'sep'    => ' | ',
    2396                 'links'  => array()
     2439                'edit'    => bbp_get_topic_edit_link   ( $r ),
     2440                'merge'   => bbp_get_topic_merge_link  ( $r ),
     2441                'close'   => bbp_get_topic_close_link  ( $r ),
     2442                'stick'   => bbp_get_topic_stick_link  ( $r ),
     2443                'trash'   => bbp_get_topic_trash_link  ( $r ),
     2444                'spam'    => bbp_get_topic_spam_link   ( $r ),
     2445                'approve' => bbp_get_topic_approve_link( $r ),
     2446                'reply'   => bbp_get_topic_reply_link  ( $r )
    23972447            ),
    2398             'get_topic_admin_links'
     2448            $r['id']
    23992449        );
    2400 
    2401         if ( empty( $r['links'] ) ) {
    2402             $r['links'] = apply_filters(
    2403                 'bbp_topic_admin_links',
    2404                 array(
    2405                     'edit'    => bbp_get_topic_edit_link   ( $r ),
    2406                     'merge'   => bbp_get_topic_merge_link  ( $r ),
    2407                     'close'   => bbp_get_topic_close_link  ( $r ),
    2408                     'stick'   => bbp_get_topic_stick_link  ( $r ),
    2409                     'trash'   => bbp_get_topic_trash_link  ( $r ),
    2410                     'spam'    => bbp_get_topic_spam_link   ( $r ),
    2411                     'approve' => bbp_get_topic_approve_link( $r ),
    2412                     'reply'   => bbp_get_topic_reply_link  ( $r )
    2413                 ),
    2414                 $r['id']
    2415             );
     2450    }
     2451
     2452    // See if links need to be unset
     2453    $topic_status = bbp_get_topic_status( $r['id'] );
     2454    if ( in_array( $topic_status, bbp_get_non_public_topic_statuses(), true ) ) {
     2455
     2456        // Close link shouldn't be visible on trashed/spammed/pending topics
     2457        unset( $r['links']['close'] );
     2458
     2459        // Spam link shouldn't be visible on trashed topics
     2460        if ( bbp_get_trash_status_id() === $topic_status ) {
     2461            unset( $r['links']['spam'] );
     2462
     2463        // Trash link shouldn't be visible on spam topics
     2464        } elseif ( bbp_get_spam_status_id() === $topic_status ) {
     2465            unset( $r['links']['trash'] );
    24162466        }
    2417 
    2418         // See if links need to be unset
    2419         $topic_status = bbp_get_topic_status( $r['id'] );
    2420         if ( in_array( $topic_status, bbp_get_non_public_topic_statuses(), true ) ) {
    2421 
    2422             // Close link shouldn't be visible on trashed/spammed/pending topics
    2423             unset( $r['links']['close'] );
    2424 
    2425             // Spam link shouldn't be visible on trashed topics
    2426             if ( bbp_get_trash_status_id() === $topic_status ) {
    2427                 unset( $r['links']['spam'] );
    2428 
    2429             // Trash link shouldn't be visible on spam topics
    2430             } elseif ( bbp_get_spam_status_id() === $topic_status ) {
    2431                 unset( $r['links']['trash'] );
    2432             }
    2433         }
    2434 
    2435         // Process the admin links
    2436         $links  = implode( $r['sep'], array_filter( $r['links'] ) );
    2437         $retval = $r['before'] . $links . $r['after'];
    2438 
    2439         // Filter & return
    2440         return apply_filters( 'bbp_get_topic_admin_links', $retval, $r, $args );
    2441     }
    2442 
    2443 /**
    2444  * Output the edit link of the topic
     2467    }
     2468
     2469    // Process the admin links
     2470    $links  = implode( $r['sep'], array_filter( $r['links'] ) );
     2471    $retval = $r['before'] . $links . $r['after'];
     2472
     2473    // Filter & return
     2474    return apply_filters( 'bbp_get_topic_admin_links', $retval, $r, $args );
     2475}
     2476
     2477/**
     2478 * Output the edit link of the topic.
    24452479 *
    24462480 * @since 2.0.0 bbPress (r2727)
    24472481 *
    2448  * @param array $args See {@link bbp_get_topic_edit_link()}
     2482 * @param array $args See {@link bbp_get_topic_edit_link()}.
    24492483 */
    24502484function bbp_topic_edit_link( $args = array() ) {
     
    24522486}
    24532487
    2454     /**
    2455      * Return the edit link of the topic
    2456      *
    2457      * @since 2.0.0 bbPress (r2727)
    2458      *
    2459      * @param array $args This function supports these args:
    2460      *  - id: Optional. Topic id
    2461      *  - link_before: Before the link
    2462      *  - link_after: After the link
    2463      *  - edit_text: Edit text
    2464      * @return string Topic edit link
    2465      */
    2466     function bbp_get_topic_edit_link( $args = array() ) {
    2467 
    2468         // Parse arguments against default values
    2469         $r = bbp_parse_args(
    2470             $args,
    2471             array(
    2472                 'id'           => 0,
    2473                 'link_before'  => '',
    2474                 'link_after'   => '',
    2475                 'edit_text'    => esc_html__( 'Edit', 'bbpress' )
    2476             ),
    2477             'get_topic_edit_link'
    2478         );
    2479 
    2480         // Get the topic
    2481         $topic = bbp_get_topic( $r['id'] );
    2482 
    2483         // Bypass check if user has caps
    2484         if ( ! current_user_can( 'edit_others_topics' ) ) {
    2485 
    2486             // User cannot edit or it is past the lock time
    2487             if ( empty( $topic ) || ! current_user_can( 'edit_topic', $topic->ID ) || bbp_past_edit_lock( $topic->post_date_gmt ) ) {
    2488                 return;
    2489             }
    2490         }
    2491 
    2492         // Get uri
    2493         $uri = bbp_get_topic_edit_url( $topic->ID );
    2494 
    2495         // Bail if no uri
    2496         if ( empty( $uri ) ) {
     2488/**
     2489 * Return the edit link of the topic.
     2490 *
     2491 * @since 2.0.0 bbPress (r2727)
     2492 *
     2493 * @param array $args This function supports these args:
     2494 *  - id: Optional. Topic id
     2495 *  - link_before: Before the link
     2496 *  - link_after: After the link
     2497 *  - edit_text: Edit text
     2498 * @return string Topic edit link.
     2499 */
     2500function bbp_get_topic_edit_link( $args = array() ) {
     2501
     2502    // Parse arguments against default values
     2503    $r = bbp_parse_args(
     2504        $args,
     2505        array(
     2506            'id'           => 0,
     2507            'link_before'  => '',
     2508            'link_after'   => '',
     2509            'edit_text'    => esc_html__( 'Edit', 'bbpress' )
     2510        ),
     2511        'get_topic_edit_link'
     2512    );
     2513
     2514    // Get the topic
     2515    $topic = bbp_get_topic( $r['id'] );
     2516
     2517    // Bypass check if user has caps
     2518    if ( ! current_user_can( 'edit_others_topics' ) ) {
     2519
     2520        // User cannot edit or it is past the lock time
     2521        if ( empty( $topic ) || ! current_user_can( 'edit_topic', $topic->ID ) || bbp_past_edit_lock( $topic->post_date_gmt ) ) {
    24972522            return;
    24982523        }
    2499 
    2500         $retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-edit-link">' . $r['edit_text'] . '</a>' . $r['link_after'];
    2501 
    2502         // Filter & return
    2503         return apply_filters( 'bbp_get_topic_edit_link', $retval, $r, $args );
    2504     }
    2505 
    2506 /**
    2507  * Output URL to the topic edit page
     2524    }
     2525
     2526    // Get uri
     2527    $uri = bbp_get_topic_edit_url( $topic->ID );
     2528
     2529    // Bail if no uri
     2530    if ( empty( $uri ) ) {
     2531        return;
     2532    }
     2533
     2534    $retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-edit-link">' . $r['edit_text'] . '</a>' . $r['link_after'];
     2535
     2536    // Filter & return
     2537    return apply_filters( 'bbp_get_topic_edit_link', $retval, $r, $args );
     2538}
     2539
     2540/**
     2541 * Output URL to the topic edit page.
    25082542 *
    25092543 * @since 2.0.0 bbPress (r2753)
    25102544 *
    2511  * @param int $topic_id Optional. Topic id
     2545 * @param int $topic_id Optional. Topic id.
    25122546 */
    25132547function bbp_topic_edit_url( $topic_id = 0 ) {
    25142548    echo esc_url( bbp_get_topic_edit_url( $topic_id ) );
    25152549}
    2516     /**
    2517      * Return URL to the topic edit page
    2518      *
    2519      * @since 2.0.0 bbPress (r2753)
    2520      *
    2521      * @param int $topic_id Optional. Topic id
    2522      * @return string Topic edit url
    2523      */
    2524     function bbp_get_topic_edit_url( $topic_id = 0 ) {
    2525 
    2526         $topic = bbp_get_topic( $topic_id );
    2527         if ( empty( $topic ) ) {
    2528             return;
    2529         }
    2530 
    2531         // Remove view=all link from edit
    2532         $topic_link = bbp_remove_view_all( bbp_get_topic_permalink( $topic_id ) );
    2533 
    2534         // Pretty permalinks, previously used `bbp_use_pretty_urls()`
    2535         // https://bbpress.trac.wordpress.org/ticket/3054
    2536         if ( false === strpos( $topic_link, '?' ) ) {
    2537             $url = trailingslashit( $topic_link ) . bbp_get_edit_slug();
    2538             $url = user_trailingslashit( $url );
    2539 
    2540         // Unpretty permalinks
    2541         } else {
    2542             $url = add_query_arg(
    2543                 array(
    2544                     bbp_get_topic_post_type() => $topic->post_name,
    2545                     bbp_get_edit_rewrite_id() => '1'
    2546                 ),
    2547                 $topic_link
    2548             );
    2549         }
    2550 
    2551         // Maybe add view=all
    2552         $url = bbp_add_view_all( $url );
    2553 
    2554         // Filter & return
    2555         return apply_filters( 'bbp_get_topic_edit_url', $url, $topic_id );
    2556     }
    2557 
    2558 /**
    2559  * Output the trash link of the topic
     2550
     2551/**
     2552 * Return URL to the topic edit page.
     2553 *
     2554 * @since 2.0.0 bbPress (r2753)
     2555 *
     2556 * @param int $topic_id Optional. Topic id.
     2557 * @return string Topic edit url.
     2558 */
     2559function bbp_get_topic_edit_url( $topic_id = 0 ) {
     2560
     2561    $topic = bbp_get_topic( $topic_id );
     2562    if ( empty( $topic ) ) {
     2563        return;
     2564    }
     2565
     2566    // Remove view=all link from edit
     2567    $topic_link = bbp_remove_view_all( bbp_get_topic_permalink( $topic_id ) );
     2568
     2569    // Pretty permalinks, previously used `bbp_use_pretty_urls()`
     2570    // https://bbpress.trac.wordpress.org/ticket/3054
     2571    if ( false === strpos( $topic_link, '?' ) ) {
     2572        $url = trailingslashit( $topic_link ) . bbp_get_edit_slug();
     2573        $url = user_trailingslashit( $url );
     2574
     2575    // Unpretty permalinks
     2576    } else {
     2577        $url = add_query_arg(
     2578            array(
     2579                bbp_get_topic_post_type() => $topic->post_name,
     2580                bbp_get_edit_rewrite_id() => '1'
     2581            ),
     2582            $topic_link
     2583        );
     2584    }
     2585
     2586    // Maybe add view=all
     2587    $url = bbp_add_view_all( $url );
     2588
     2589    // Filter & return
     2590    return apply_filters( 'bbp_get_topic_edit_url', $url, $topic_id );
     2591}
     2592
     2593/**
     2594 * Output the trash link of the topic.
    25602595 *
    25612596 * @since 2.0.0 bbPress (r2727)
    25622597 *
    2563  * @param array $args See {@link bbp_get_topic_trash_link()}
     2598 * @param array $args See {@link bbp_get_topic_trash_link()}.
    25642599 */
    25652600function bbp_topic_trash_link( $args = array() ) {
     
    25672602}
    25682603
    2569     /**
    2570      * Return the trash link of the topic
    2571      *
    2572      * @since 2.0.0 bbPress (r2727)
    2573      *
    2574      * @param array $args This function supports these args:
    2575      *  - id: Optional. Topic id
    2576      *  - link_before: Before the link
    2577      *  - link_after: After the link
    2578      *  - sep: Links separator
    2579      *  - trash_text: Trash text
    2580      *  - restore_text: Restore text
    2581      *  - delete_text: Delete text
    2582      * @return string Topic trash link
    2583      */
    2584     function bbp_get_topic_trash_link( $args = array() ) {
    2585 
    2586         // Parse arguments against default values
    2587         $r = bbp_parse_args(
    2588             $args,
     2604/**
     2605 * Return the trash link of the topic.
     2606 *
     2607 * @since 2.0.0 bbPress (r2727)
     2608 *
     2609 * @param array $args This function supports these args:
     2610 *  - id: Optional. Topic id
     2611 *  - link_before: Before the link
     2612 *  - link_after: After the link
     2613 *  - sep: Links separator
     2614 *  - trash_text: Trash text
     2615 *  - restore_text: Restore text
     2616 *  - delete_text: Delete text
     2617 * @return string Topic trash link.
     2618 */
     2619function bbp_get_topic_trash_link( $args = array() ) {
     2620
     2621    // Parse arguments against default values
     2622    $r = bbp_parse_args(
     2623        $args,
     2624        array(
     2625            'id'           => 0,
     2626            'link_before'  => '',
     2627            'link_after'   => '',
     2628            'sep'          => ' | ',
     2629            'trash_text'   => esc_html__( 'Trash',   'bbpress' ),
     2630            'restore_text' => esc_html__( 'Restore', 'bbpress' ),
     2631            'delete_text'  => esc_html__( 'Delete',  'bbpress' )
     2632        ),
     2633        'get_topic_trash_link'
     2634    );
     2635
     2636    // Get topic
     2637    $topic = bbp_get_topic( $r['id'] );
     2638
     2639    // Bail if no topic or current user cannot delete
     2640    if ( empty( $topic ) || ! current_user_can( 'delete_topic', $topic->ID ) ) {
     2641        return;
     2642    }
     2643
     2644    $actions    = array();
     2645    $trash_days = bbp_get_trash_days( bbp_get_topic_post_type() );
     2646
     2647    if ( bbp_is_topic_trash( $topic->ID ) ) {
     2648        $action_url = add_query_arg(
    25892649            array(
    2590                 'id'           => 0,
    2591                 'link_before'  => '',
    2592                 'link_after'   => '',
    2593                 'sep'          => ' | ',
    2594                 'trash_text'   => esc_html__( 'Trash',   'bbpress' ),
    2595                 'restore_text' => esc_html__( 'Restore', 'bbpress' ),
    2596                 'delete_text'  => esc_html__( 'Delete',  'bbpress' )
    2597             ),
    2598             'get_topic_trash_link'
     2650                'action'     => 'bbp_toggle_topic_trash',
     2651                'sub_action' => 'untrash',
     2652                'topic_id'   => $topic->ID
     2653            )
    25992654        );
    2600 
    2601         // Get topic
    2602         $topic = bbp_get_topic( $r['id'] );
    2603 
    2604         // Bail if no topic or current user cannot delete
    2605         if ( empty( $topic ) || ! current_user_can( 'delete_topic', $topic->ID ) ) {
    2606             return;
    2607         }
    2608 
    2609         $actions    = array();
    2610         $trash_days = bbp_get_trash_days( bbp_get_topic_post_type() );
    2611 
    2612         if ( bbp_is_topic_trash( $topic->ID ) ) {
    2613             $action_url = add_query_arg(
    2614                 array(
    2615                     'action'     => 'bbp_toggle_topic_trash',
    2616                     'sub_action' => 'untrash',
    2617                     'topic_id'   => $topic->ID
    2618                 )
    2619             );
    2620             $action    = 'untrash-' . $topic->post_type . '_' . $topic->ID;
    2621             $nonce_url = wp_nonce_url( $action_url, $action );
    2622 
    2623             $actions['untrash'] = '<a title="' . esc_attr__( 'Restore this item from the Trash', 'bbpress' ) . '" href="' . esc_url( $nonce_url ) . '" class="bbp-topic-restore-link">' . $r['restore_text'] . '</a>';
    2624         } elseif ( ! empty( $trash_days ) ) {
    2625             $action_url = add_query_arg(
    2626                 array(
    2627                     'action'     => 'bbp_toggle_topic_trash',
    2628                     'sub_action' => 'trash',
    2629                     'topic_id'   => $topic->ID
    2630                 )
    2631             );
    2632             $action    = 'trash-' . $topic->post_type . '_' . $topic->ID;
    2633             $nonce_url = wp_nonce_url( $action_url, $action );
    2634 
    2635             $actions['trash']   = '<a title="' . esc_attr__( 'Move this item to the Trash',      'bbpress' ) . '" href="' . esc_url( $nonce_url ) . '" class="bbp-topic-trash-link">'   . $r['trash_text']   . '</a>';
    2636         }
    2637 
    2638         if ( bbp_is_topic_trash( $topic->ID ) || empty( $trash_days ) ) {
    2639             $action_url = add_query_arg(
    2640                 array(
    2641                     'action'     => 'bbp_toggle_topic_trash',
    2642                     'sub_action' => 'delete',
    2643                     'topic_id'   => $topic->ID
    2644                 )
    2645             );
    2646             $action    = 'delete-' . $topic->post_type . '_' . $topic->ID;
    2647             $nonce_url = wp_nonce_url( $action_url, $action );
    2648 
    2649             $actions['delete']  = '<a title="' . esc_attr__( 'Delete this item permanently',     'bbpress' ) . '" href="' . esc_url( $nonce_url ) . '" onclick="return confirm(\'' . esc_js( esc_html__( 'Are you sure you want to delete that permanently?', 'bbpress' ) ) . '\' );" class="bbp-topic-delete-link">' . $r['delete_text'] . '</a>';
    2650         }
    2651 
    2652         // Process the admin links
    2653         $retval = $r['link_before'] . implode( $r['sep'], $actions ) . $r['link_after'];
    2654 
    2655         // Filter & return
    2656         return apply_filters( 'bbp_get_topic_trash_link', $retval, $r, $args );
    2657     }
    2658 
    2659 /**
    2660  * Output the close link of the topic
     2655        $action    = 'untrash-' . $topic->post_type . '_' . $topic->ID;
     2656        $nonce_url = wp_nonce_url( $action_url, $action );
     2657
     2658        $actions['untrash'] = '<a title="' . esc_attr__( 'Restore this item from the Trash', 'bbpress' ) . '" href="' . esc_url( $nonce_url ) . '" class="bbp-topic-restore-link">' . $r['restore_text'] . '</a>';
     2659    } elseif ( ! empty( $trash_days ) ) {
     2660        $action_url = add_query_arg(
     2661            array(
     2662                'action'     => 'bbp_toggle_topic_trash',
     2663                'sub_action' => 'trash',
     2664                'topic_id'   => $topic->ID
     2665            )
     2666        );
     2667        $action    = 'trash-' . $topic->post_type . '_' . $topic->ID;
     2668        $nonce_url = wp_nonce_url( $action_url, $action );
     2669
     2670        $actions['trash']   = '<a title="' . esc_attr__( 'Move this item to the Trash',      'bbpress' ) . '" href="' . esc_url( $nonce_url ) . '" class="bbp-topic-trash-link">'   . $r['trash_text']   . '</a>';
     2671    }
     2672
     2673    if ( bbp_is_topic_trash( $topic->ID ) || empty( $trash_days ) ) {
     2674        $action_url = add_query_arg(
     2675            array(
     2676                'action'     => 'bbp_toggle_topic_trash',
     2677                'sub_action' => 'delete',
     2678                'topic_id'   => $topic->ID
     2679            )
     2680        );
     2681        $action    = 'delete-' . $topic->post_type . '_' . $topic->ID;
     2682        $nonce_url = wp_nonce_url( $action_url, $action );
     2683
     2684        $actions['delete']  = '<a title="' . esc_attr__( 'Delete this item permanently',     'bbpress' ) . '" href="' . esc_url( $nonce_url ) . '" onclick="return confirm(\'' . esc_js( esc_html__( 'Are you sure you want to delete that permanently?', 'bbpress' ) ) . '\' );" class="bbp-topic-delete-link">' . $r['delete_text'] . '</a>';
     2685    }
     2686
     2687    // Process the admin links
     2688    $retval = $r['link_before'] . implode( $r['sep'], $actions ) . $r['link_after'];
     2689
     2690    // Filter & return
     2691    return apply_filters( 'bbp_get_topic_trash_link', $retval, $r, $args );
     2692}
     2693
     2694/**
     2695 * Output the close link of the topic.
    26612696 *
    26622697 * @since 2.0.0 bbPress (r2727)
    26632698 *
    2664  * @param array $args See {@link bbp_get_topic_close_link()}
     2699 * @param array $args See {@link bbp_get_topic_close_link()}.
    26652700 */
    26662701function bbp_topic_close_link( $args = array() ) {
     
    26682703}
    26692704
    2670     /**
    2671      * Return the close link of the topic
    2672      *
    2673      * @since 2.0.0 bbPress (r2727)
    2674      *
    2675      * @param array $args This function supports these args:
    2676      *  - id: Optional. Topic id
    2677      *  - link_before: Before the link
    2678      *  - link_after: After the link
    2679      *  - close_text: Close text
    2680      *  - open_text: Open text
    2681      * @return string Topic close link
    2682      */
    2683     function bbp_get_topic_close_link( $args = array() ) {
    2684 
    2685         // Parse arguments against default values
    2686         $r = bbp_parse_args(
    2687             $args,
     2705/**
     2706 * Return the close link of the topic.
     2707 *
     2708 * @since 2.0.0 bbPress (r2727)
     2709 *
     2710 * @param array $args This function supports these args:
     2711 *  - id: Optional. Topic id
     2712 *  - link_before: Before the link
     2713 *  - link_after: After the link
     2714 *  - close_text: Close text
     2715 *  - open_text: Open text
     2716 * @return string Topic close link.
     2717 */
     2718function bbp_get_topic_close_link( $args = array() ) {
     2719
     2720    // Parse arguments against default values
     2721    $r = bbp_parse_args(
     2722        $args,
     2723        array(
     2724            'id'          => 0,
     2725            'link_before' => '',
     2726            'link_after'  => '',
     2727            'sep'         => ' | ',
     2728            'close_text'  => esc_html_x( 'Close', 'Close the topic', 'bbpress' ),
     2729            'open_text'   => esc_html_x( 'Open',  'Open the topic', 'bbpress' )
     2730        ),
     2731        'get_topic_close_link'
     2732    );
     2733
     2734    // Get topic
     2735    $topic = bbp_get_topic( $r['id'] );
     2736
     2737    // Bail if no topic or current user cannot moderate
     2738    if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
     2739        return;
     2740    }
     2741
     2742    $display = bbp_is_topic_open( $topic->ID ) ? $r['close_text'] : $r['open_text'];
     2743    $uri     = add_query_arg(
     2744        array(
     2745            'action'   => 'bbp_toggle_topic_close',
     2746            'topic_id' => $topic->ID
     2747        )
     2748    );
     2749    $uri     = wp_nonce_url( $uri, 'close-topic_' . $topic->ID );
     2750    $retval  = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-close-link">' . $display . '</a>' . $r['link_after'];
     2751
     2752    // Filter & return
     2753    return apply_filters( 'bbp_get_topic_close_link', $retval, $r, $args );
     2754}
     2755
     2756/**
     2757 * Output the approve link of the topic.
     2758 *
     2759 * @since 2.6.0 bbPress (r5504)
     2760 *
     2761 * @param array $args See {@link bbp_get_topic_approve_link()}.
     2762 */
     2763function bbp_topic_approve_link( $args = array() ) {
     2764    echo bbp_get_topic_approve_link( $args );
     2765}
     2766
     2767/**
     2768 * Return the approve link of the topic.
     2769 *
     2770 * @since 2.6.0 bbPress (r5504)
     2771 *
     2772 * @param array $args This function supports these args:
     2773 *  - id: Optional. Topic id
     2774 *  - link_before: Before the link
     2775 *  - link_after: After the link
     2776 *  - sep: Separator between links
     2777 *  - approve_text: Approve text
     2778 *  - unapprove_text: Unapprove text
     2779 * @return string Topic approve link.
     2780 */
     2781function bbp_get_topic_approve_link( $args = array() ) {
     2782
     2783    // Parse arguments against default values
     2784    $r = bbp_parse_args(
     2785        $args,
     2786        array(
     2787            'id'             => 0,
     2788            'link_before'    => '',
     2789            'link_after'     => '',
     2790            'sep'            => ' | ',
     2791            'approve_text'   => esc_html_x( 'Approve',   'Approve the topic', 'bbpress' ),
     2792            'unapprove_text' => esc_html_x( 'Unapprove', 'Unapprove the topic', 'bbpress' )
     2793        ),
     2794        'get_topic_approve_link'
     2795    );
     2796
     2797    // Get topic
     2798    $topic = bbp_get_topic( $r['id'] );
     2799
     2800    // Bail if no topic or current user cannot moderate
     2801    if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
     2802        return;
     2803    }
     2804
     2805    $display = bbp_is_topic_pending( $topic->ID ) ? $r['approve_text'] : $r['unapprove_text'];
     2806    $uri     = add_query_arg(
     2807        array(
     2808            'action'   => 'bbp_toggle_topic_approve',
     2809            'topic_id' => $topic->ID
     2810        )
     2811    );
     2812    $uri     = wp_nonce_url( $uri, 'approve-topic_' . $topic->ID );
     2813    $retval  = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-approve-link">' . $display . '</a>' . $r['link_after'];
     2814
     2815    // Filter & return
     2816    return apply_filters( 'bbp_get_topic_approve_link', $retval, $r, $args );
     2817}
     2818
     2819/**
     2820 * Output the stick link of the topic.
     2821 *
     2822 * @since 2.0.0 bbPress (r2754)
     2823 *
     2824 * @param array $args See {@link bbp_get_topic_stick_link()}.
     2825 */
     2826function bbp_topic_stick_link( $args = array() ) {
     2827    echo bbp_get_topic_stick_link( $args );
     2828}
     2829
     2830/**
     2831 * Return the stick link of the topic.
     2832 *
     2833 * @since 2.0.0 bbPress (r2754)
     2834 *
     2835 * @param array $args This function supports these args:
     2836 *  - id: Optional. Topic id
     2837 *  - link_before: Before the link
     2838 *  - link_after: After the link
     2839 *  - stick_text: Stick text
     2840 *  - unstick_text: Unstick text
     2841 *  - super_text: Stick to front text
     2842 *
     2843 * @return string Topic stick link.
     2844 */
     2845function bbp_get_topic_stick_link( $args = array() ) {
     2846
     2847    // Parse arguments against default values
     2848    $r = bbp_parse_args(
     2849        $args,
     2850        array(
     2851            'id'           => 0,
     2852            'link_before'  => '',
     2853            'link_after'   => '',
     2854            'stick_text'   => esc_html__( 'Stick',      'bbpress' ),
     2855            'unstick_text' => esc_html__( 'Unstick',    'bbpress' ),
     2856            'super_text'   => esc_html__( '(to front)', 'bbpress' ),
     2857        ),
     2858        'get_topic_stick_link'
     2859    );
     2860
     2861    // Get topic
     2862    $topic = bbp_get_topic( $r['id'] );
     2863
     2864    // Bail if no topic or current user cannot moderate
     2865    if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
     2866        return;
     2867    }
     2868
     2869    $is_sticky = bbp_is_topic_sticky( $topic->ID );
     2870
     2871    $stick_uri = add_query_arg(
     2872        array(
     2873            'action'   => 'bbp_toggle_topic_stick',
     2874            'topic_id' => $topic->ID
     2875        )
     2876    );
     2877    $stick_uri = wp_nonce_url( $stick_uri, 'stick-topic_' . $topic->ID );
     2878
     2879    $stick_display = ( true === $is_sticky )
     2880        ? $r['unstick_text']
     2881        : $r['stick_text'];
     2882    $stick_display = '<a href="' . esc_url( $stick_uri ) . '" class="bbp-topic-sticky-link">' . $stick_display . '</a>';
     2883
     2884    if ( empty( $is_sticky ) ) {
     2885        $super_uri = add_query_arg(
    26882886            array(
    2689                 'id'          => 0,
    2690                 'link_before' => '',
    2691                 'link_after'  => '',
    2692                 'sep'         => ' | ',
    2693                 'close_text'  => esc_html_x( 'Close', 'Close the topic', 'bbpress' ),
    2694                 'open_text'   => esc_html_x( 'Open',  'Open the topic', 'bbpress' )
    2695             ),
    2696             'get_topic_close_link'
    2697         );
    2698 
    2699         // Get topic
    2700         $topic = bbp_get_topic( $r['id'] );
    2701 
    2702         // Bail if no topic or current user cannot moderate
    2703         if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
    2704             return;
    2705         }
    2706 
    2707         $display = bbp_is_topic_open( $topic->ID ) ? $r['close_text'] : $r['open_text'];
    2708         $uri     = add_query_arg(
    2709             array(
    2710                 'action'   => 'bbp_toggle_topic_close',
    2711                 'topic_id' => $topic->ID
     2887                'action'   => 'bbp_toggle_topic_stick',
     2888                'topic_id' => $topic->ID,
     2889                'super'    => 1
    27122890            )
    27132891        );
    2714         $uri     = wp_nonce_url( $uri, 'close-topic_' . $topic->ID );
    2715         $retval  = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-close-link">' . $display . '</a>' . $r['link_after'];
    2716 
    2717         // Filter & return
    2718         return apply_filters( 'bbp_get_topic_close_link', $retval, $r, $args );
    2719     }
    2720 
    2721 /**
    2722  * Output the approve link of the topic
    2723  *
    2724  * @since 2.6.0 bbPress (r5504)
    2725  *
    2726  * @param array $args See {@link bbp_get_topic_approve_link()}
    2727  */
    2728 function bbp_topic_approve_link( $args = array() ) {
    2729     echo bbp_get_topic_approve_link( $args );
    2730 }
    2731 
    2732     /**
    2733      * Return the approve link of the topic
    2734      *
    2735      * @since 2.6.0 bbPress (r5504)
    2736      *
    2737      * @param array $args This function supports these args:
    2738      *  - id: Optional. Topic id
    2739      *  - link_before: Before the link
    2740      *  - link_after: After the link
    2741      *  - sep: Separator between links
    2742      *  - approve_text: Approve text
    2743      *  - unapprove_text: Unapprove text
    2744      * @return string Topic approve link
    2745      */
    2746     function bbp_get_topic_approve_link( $args = array() ) {
    2747 
    2748         // Parse arguments against default values
    2749         $r = bbp_parse_args(
    2750             $args,
    2751             array(
    2752                 'id'             => 0,
    2753                 'link_before'    => '',
    2754                 'link_after'     => '',
    2755                 'sep'            => ' | ',
    2756                 'approve_text'   => esc_html_x( 'Approve',   'Approve the topic', 'bbpress' ),
    2757                 'unapprove_text' => esc_html_x( 'Unapprove', 'Unapprove the topic', 'bbpress' )
    2758             ),
    2759             'get_topic_approve_link'
    2760         );
    2761 
    2762         // Get topic
    2763         $topic = bbp_get_topic( $r['id'] );
    2764 
    2765         // Bail if no topic or current user cannot moderate
    2766         if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
    2767             return;
    2768         }
    2769 
    2770         $display = bbp_is_topic_pending( $topic->ID ) ? $r['approve_text'] : $r['unapprove_text'];
    2771         $uri     = add_query_arg(
    2772             array(
    2773                 'action'   => 'bbp_toggle_topic_approve',
    2774                 'topic_id' => $topic->ID
    2775             )
    2776         );
    2777         $uri     = wp_nonce_url( $uri, 'approve-topic_' . $topic->ID );
    2778         $retval  = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-approve-link">' . $display . '</a>' . $r['link_after'];
    2779 
    2780         // Filter & return
    2781         return apply_filters( 'bbp_get_topic_approve_link', $retval, $r, $args );
    2782     }
    2783 
    2784 /**
    2785  * Output the stick link of the topic
    2786  *
    2787  * @since 2.0.0 bbPress (r2754)
    2788  *
    2789  * @param array $args See {@link bbp_get_topic_stick_link()}
    2790  */
    2791 function bbp_topic_stick_link( $args = array() ) {
    2792     echo bbp_get_topic_stick_link( $args );
    2793 }
    2794 
    2795     /**
    2796      * Return the stick link of the topic
    2797      *
    2798      * @since 2.0.0 bbPress (r2754)
    2799      *
    2800      * @param array $args This function supports these args:
    2801      *  - id: Optional. Topic id
    2802      *  - link_before: Before the link
    2803      *  - link_after: After the link
    2804      *  - stick_text: Stick text
    2805      *  - unstick_text: Unstick text
    2806      *  - super_text: Stick to front text
    2807      *
    2808      * @return string Topic stick link
    2809      */
    2810     function bbp_get_topic_stick_link( $args = array() ) {
    2811 
    2812         // Parse arguments against default values
    2813         $r = bbp_parse_args(
    2814             $args,
    2815             array(
    2816                 'id'           => 0,
    2817                 'link_before'  => '',
    2818                 'link_after'   => '',
    2819                 'stick_text'   => esc_html__( 'Stick',      'bbpress' ),
    2820                 'unstick_text' => esc_html__( 'Unstick',    'bbpress' ),
    2821                 'super_text'   => esc_html__( '(to front)', 'bbpress' ),
    2822             ),
    2823             'get_topic_stick_link'
    2824         );
    2825 
    2826         // Get topic
    2827         $topic = bbp_get_topic( $r['id'] );
    2828 
    2829         // Bail if no topic or current user cannot moderate
    2830         if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
    2831             return;
    2832         }
    2833 
    2834         $is_sticky = bbp_is_topic_sticky( $topic->ID );
    2835 
    2836         $stick_uri = add_query_arg(
    2837             array(
    2838                 'action'   => 'bbp_toggle_topic_stick',
    2839                 'topic_id' => $topic->ID
    2840             )
    2841         );
    2842         $stick_uri = wp_nonce_url( $stick_uri, 'stick-topic_' . $topic->ID );
    2843 
    2844         $stick_display = ( true === $is_sticky )
    2845             ? $r['unstick_text']
    2846             : $r['stick_text'];
    2847         $stick_display = '<a href="' . esc_url( $stick_uri ) . '" class="bbp-topic-sticky-link">' . $stick_display . '</a>';
    2848 
    2849         if ( empty( $is_sticky ) ) {
    2850             $super_uri = add_query_arg(
    2851                 array(
    2852                     'action'   => 'bbp_toggle_topic_stick',
    2853                     'topic_id' => $topic->ID,
    2854                     'super'    => 1
    2855                 )
    2856             );
    2857             $super_uri = wp_nonce_url( $super_uri, 'stick-topic_' . $topic->ID );
    2858 
    2859             $super_display = ' <a href="' . esc_url( $super_uri ) . '" class="bbp-topic-super-sticky-link">' . $r['super_text'] . '</a>';
    2860         } else {
    2861             $super_display = '';
    2862         }
    2863 
    2864         // Combine the HTML into 1 string
    2865         $retval = $r['link_before'] . $stick_display . $super_display . $r['link_after'];
    2866 
    2867         // Filter & return
    2868         return apply_filters( 'bbp_get_topic_stick_link', $retval, $r, $args );
    2869     }
    2870 
    2871 /**
    2872  * Output the merge link of the topic
     2892        $super_uri = wp_nonce_url( $super_uri, 'stick-topic_' . $topic->ID );
     2893
     2894        $super_display = ' <a href="' . esc_url( $super_uri ) . '" class="bbp-topic-super-sticky-link">' . $r['super_text'] . '</a>';
     2895    } else {
     2896        $super_display = '';
     2897    }
     2898
     2899    // Combine the HTML into 1 string
     2900    $retval = $r['link_before'] . $stick_display . $super_display . $r['link_after'];
     2901
     2902    // Filter & return
     2903    return apply_filters( 'bbp_get_topic_stick_link', $retval, $r, $args );
     2904}
     2905
     2906/**
     2907 * Output the merge link of the topic.
    28732908 *
    28742909 * @since 2.0.0 bbPress (r2756)
     
    28802915}
    28812916
    2882     /**
    2883      * Return the merge link of the topic
    2884     *
    2885     * @since 2.0.0 bbPress (r2756)
    2886     *
    2887     * @param array $args This function supports these args:
    2888     *  - id: Optional. Topic id
    2889     *  - link_before: Before the link
    2890     *  - link_after: After the link
    2891     *  - merge_text: Merge text
    2892     *
    2893      * @return string Topic merge link
    2894     */
    2895     function bbp_get_topic_merge_link( $args = array() ) {
    2896 
    2897         // Parse arguments against default values
    2898         $r = bbp_parse_args(
    2899             $args,
    2900             array(
    2901                 'id'           => 0,
    2902                 'link_before'  => '',
    2903                 'link_after'   => '',
    2904                 'merge_text'   => esc_html__( 'Merge', 'bbpress' ),
    2905             ),
    2906             'get_topic_merge_link'
    2907         );
    2908 
    2909         // Get topic
    2910         $topic = bbp_get_topic( $r['id'] );
    2911 
    2912         // Bail if no topic or current user cannot moderate
    2913         if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
    2914             return;
    2915         }
    2916 
    2917         $query  = array( 'action' => 'merge' );
    2918         $uri    = add_query_arg( $query, bbp_get_topic_edit_url( $topic->ID ) );
    2919         $retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-merge-link">' . $r['merge_text'] . '</a>' . $r['link_after'];
    2920 
    2921         // Filter & return
    2922         return apply_filters( 'bbp_get_topic_merge_link', $retval, $r, $args );
    2923     }
    2924 
    2925 /**
    2926  * Output the spam link of the topic
     2917/**
     2918 * Return the merge link of the topic.
     2919 *
     2920 * @since 2.0.0 bbPress (r2756)
     2921 *
     2922 * @param array $args This function supports these args:
     2923 *  - id: Optional. Topic id
     2924 *  - link_before: Before the link
     2925 *  - link_after: After the link
     2926 *  - merge_text: Merge text
     2927 *
     2928 * @return string Topic merge link.
     2929 */
     2930function bbp_get_topic_merge_link( $args = array() ) {
     2931
     2932    // Parse arguments against default values
     2933    $r = bbp_parse_args(
     2934        $args,
     2935        array(
     2936            'id'           => 0,
     2937            'link_before'  => '',
     2938            'link_after'   => '',
     2939            'merge_text'   => esc_html__( 'Merge', 'bbpress' ),
     2940        ),
     2941        'get_topic_merge_link'
     2942    );
     2943
     2944    // Get topic
     2945    $topic = bbp_get_topic( $r['id'] );
     2946
     2947    // Bail if no topic or current user cannot moderate
     2948    if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
     2949        return;
     2950    }
     2951
     2952    $query  = array( 'action' => 'merge' );
     2953    $uri    = add_query_arg( $query, bbp_get_topic_edit_url( $topic->ID ) );
     2954    $retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-merge-link">' . $r['merge_text'] . '</a>' . $r['link_after'];
     2955
     2956    // Filter & return
     2957    return apply_filters( 'bbp_get_topic_merge_link', $retval, $r, $args );
     2958}
     2959
     2960/**
     2961 * Output the spam link of the topic.
    29272962 *
    29282963 * @since 2.0.0 bbPress (r2727)
    29292964 *
    2930  * @param array $args See {@link bbp_get_topic_spam_link()}
     2965 * @param array $args See {@link bbp_get_topic_spam_link()}.
    29312966 */
    29322967function bbp_topic_spam_link( $args = array() ) {
     
    29342969}
    29352970
    2936     /**
    2937      * Return the spam link of the topic
    2938     *
    2939     * @since 2.0.0 bbPress (r2727)
    2940     *
    2941     * @param array $args This function supports these args:
    2942     *  - id: Optional. Topic id
    2943     *  - link_before: Before the link
    2944     *  - link_after: After the link
    2945     *  - spam_text: Spam text
    2946     *  - unspam_text: Unspam text
    2947     *
    2948      * @return string Topic spam link
    2949     */
    2950     function bbp_get_topic_spam_link( $args = array() ) {
    2951 
    2952         // Parse arguments against default values
    2953         $r = bbp_parse_args(
    2954             $args,
    2955             array(
    2956                 'id'           => 0,
    2957                 'link_before'  => '',
    2958                 'link_after'   => '',
    2959                 'sep'          => ' | ',
    2960                 'spam_text'    => esc_html__( 'Spam',   'bbpress' ),
    2961                 'unspam_text'  => esc_html__( 'Unspam', 'bbpress' )
    2962             ),
    2963             'get_topic_spam_link'
    2964         );
    2965 
    2966         $topic = bbp_get_topic( $r['id'] );
    2967 
    2968         if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
    2969             return;
    2970         }
    2971 
    2972         $display = bbp_is_topic_spam( $topic->ID )
    2973             ? $r['unspam_text']
    2974             : $r['spam_text'];
    2975 
    2976         $uri = add_query_arg(
    2977             array(
    2978                 'action'   => 'bbp_toggle_topic_spam',
    2979                 'topic_id' => $topic->ID
    2980             )
    2981         );
    2982 
    2983         $uri    = wp_nonce_url( $uri, 'spam-topic_' . $topic->ID );
    2984         $retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-spam-link">' . $display . '</a>' . $r['link_after'];
    2985 
    2986         // Filter & return
    2987         return apply_filters( 'bbp_get_topic_spam_link', $retval, $r, $args );
    2988     }
    2989 
    2990 /**
    2991  * Output the link to go directly to the reply form
     2971/**
     2972 * Return the spam link of the topic.
     2973 *
     2974 * @since 2.0.0 bbPress (r2727)
     2975 *
     2976 * @param array $args This function supports these args:
     2977 *  - id: Optional. Topic id
     2978 *  - link_before: Before the link
     2979 *  - link_after: After the link
     2980 *  - spam_text: Spam text
     2981 *  - unspam_text: Unspam text
     2982 *
     2983 * @return string Topic spam link.
     2984 */
     2985function bbp_get_topic_spam_link( $args = array() ) {
     2986
     2987    // Parse arguments against default values
     2988    $r = bbp_parse_args(
     2989        $args,
     2990        array(
     2991            'id'           => 0,
     2992            'link_before'  => '',
     2993            'link_after'   => '',
     2994            'sep'          => ' | ',
     2995            'spam_text'    => esc_html__( 'Spam',   'bbpress' ),
     2996            'unspam_text'  => esc_html__( 'Unspam', 'bbpress' )
     2997        ),
     2998        'get_topic_spam_link'
     2999    );
     3000
     3001    $topic = bbp_get_topic( $r['id'] );
     3002
     3003    if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
     3004        return;
     3005    }
     3006
     3007    $display = bbp_is_topic_spam( $topic->ID )
     3008        ? $r['unspam_text']
     3009        : $r['spam_text'];
     3010
     3011    $uri = add_query_arg(
     3012        array(
     3013            'action'   => 'bbp_toggle_topic_spam',
     3014            'topic_id' => $topic->ID
     3015        )
     3016    );
     3017
     3018    $uri    = wp_nonce_url( $uri, 'spam-topic_' . $topic->ID );
     3019    $retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-spam-link">' . $display . '</a>' . $r['link_after'];
     3020
     3021    // Filter & return
     3022    return apply_filters( 'bbp_get_topic_spam_link', $retval, $r, $args );
     3023}
     3024
     3025/**
     3026 * Output the link to go directly to the reply form.
    29923027 *
    29933028 * @since 2.4.0 bbPress (r4966)
     
    29993034}
    30003035
    3001     /**
    3002      * Return the link to go directly to the reply form
    3003     *
    3004     * @since 2.4.0 bbPress (r4966)
    3005     *
    3006      * @param array $args Arguments
    3007     *
    3008      * @return string Link for a reply to a topic
    3009     */
    3010     function bbp_get_topic_reply_link( $args = array() ) {
    3011 
    3012         // Parse arguments against default values
    3013         $r = bbp_parse_args(
    3014             $args,
    3015             array(
    3016                 'id'          => 0,
    3017                 'link_before' => '',
    3018                 'link_after'  => '',
    3019                 'reply_text'  => esc_html_x( 'Reply', 'verb', 'bbpress' ),
    3020                 'add_below'   => 'post',
    3021                 'respond_id'  => 'new-reply-' . bbp_get_topic_id(),
    3022             ),
    3023             'get_topic_reply_link'
    3024         );
    3025 
    3026         // Get the topic to use it's ID and post_parent
    3027         $topic = bbp_get_topic( $r['id'] );
    3028 
    3029         // Bail if no topic or user cannot reply
    3030         if ( empty( $topic ) || bbp_is_single_reply() || ! bbp_current_user_can_access_create_reply_form() ) {
    3031             return;
    3032         }
    3033 
    3034         // Only add onclick if replies are threaded
    3035         $onclick = bbp_thread_replies()
    3036             ? ' onclick="return addReply.cancelForm();"'
    3037             : '';
    3038 
    3039         // Add $uri to the array, to be passed through the filter
    3040         $r['uri'] = remove_query_arg( array( 'bbp_reply_to', '_wpnonce' ) ) . '#new-post';
    3041         $retval   = $r['link_before'] . '<a role="button" href="' . esc_url( $r['uri'] ) . '" class="bbp-topic-reply-link"' . $onclick . '>' . $r['reply_text'] . '</a>' . $r['link_after'];
    3042 
    3043         // Filter & return
    3044         return apply_filters( 'bbp_get_topic_reply_link', $retval, $r, $args );
    3045     }
     3036/**
     3037 * Return the link to go directly to the reply form.
     3038 *
     3039 * @since 2.4.0 bbPress (r4966)
     3040 *
     3041 * @param array $args Arguments.
     3042 *
     3043 * @return string Link for a reply to a topic.
     3044 */
     3045function bbp_get_topic_reply_link( $args = array() ) {
     3046
     3047    // Parse arguments against default values
     3048    $r = bbp_parse_args(
     3049        $args,
     3050        array(
     3051            'id'          => 0,
     3052            'link_before' => '',
     3053            'link_after'  => '',
     3054            'reply_text'  => esc_html_x( 'Reply', 'verb', 'bbpress' ),
     3055            'add_below'   => 'post',
     3056            'respond_id'  => 'new-reply-' . bbp_get_topic_id(),
     3057        ),
     3058        'get_topic_reply_link'
     3059    );
     3060
     3061    // Get the topic to use it's ID and post_parent
     3062    $topic = bbp_get_topic( $r['id'] );
     3063
     3064    // Bail if no topic or user cannot reply
     3065    if ( empty( $topic ) || bbp_is_single_reply() || ! bbp_current_user_can_access_create_reply_form() ) {
     3066        return;
     3067    }
     3068
     3069    // Only add onclick if replies are threaded
     3070    $onclick = bbp_thread_replies()
     3071        ? ' onclick="return addReply.cancelForm();"'
     3072        : '';
     3073
     3074    // Add $uri to the array, to be passed through the filter
     3075    $r['uri'] = remove_query_arg( array( 'bbp_reply_to', '_wpnonce' ) ) . '#new-post';
     3076    $retval   = $r['link_before'] . '<a role="button" href="' . esc_url( $r['uri'] ) . '" class="bbp-topic-reply-link"' . $onclick . '>' . $r['reply_text'] . '</a>' . $r['link_after'];
     3077
     3078    // Filter & return
     3079    return apply_filters( 'bbp_get_topic_reply_link', $retval, $r, $args );
     3080}
    30463081
    30473082/** Topic Pagination **********************************************************/
    30483083
    30493084/**
    3050  * Return the base URL used inside of pagination links
     3085 * Return the base URL used inside of pagination links.
    30513086 *
    30523087 * @since 2.6.0 bbPress (r6402)
    30533088 *
    3054  * @param int $forum_id
     3089 * @param int $forum_id Forum id.
    30553090 * @return string
    30563091 */
     
    31183153
    31193154/**
    3120  * Output the pagination count
     3155 * Output the pagination count.
    31213156 *
    31223157 * The results are unescaped by design, to allow them to be filtered freely via
     
    31283163    echo bbp_get_forum_pagination_count();
    31293164}
    3130     /**
    3131      * Return the pagination count
    3132      *
    3133      * @since 2.0.0 bbPress (r2519)
    3134      *
    3135      * @return string Forum Pagination count
    3136      */
    3137     function bbp_get_forum_pagination_count() {
    3138         $bbp = bbpress();
    3139 
    3140         // Define local variable(s)
    3141         $retstr = '';
    3142 
    3143         // Topic query exists
    3144         if ( ! empty( $bbp->topic_query ) ) {
    3145 
    3146             // Set pagination values
    3147             $count_int = intval( $bbp->topic_query->post_count );
    3148             $start_num = intval( ( $bbp->topic_query->paged - 1 ) * $bbp->topic_query->posts_per_page ) + 1;
    3149             $total_int = ! empty( $bbp->topic_query->found_posts )
    3150                 ? (int) $bbp->topic_query->found_posts
    3151                 : $count_int;
    3152 
    3153             // Format numbers for display
    3154             $count_num = bbp_number_format( $count_int );
    3155             $from_num  = bbp_number_format( $start_num );
    3156             $total     = bbp_number_format( $total_int );
    3157             $to_num    = bbp_number_format( ( $start_num + ( $bbp->topic_query->posts_per_page - 1 ) > $bbp->topic_query->found_posts )
    3158                 ? $bbp->topic_query->found_posts
    3159                 : $start_num + ( $bbp->topic_query->posts_per_page - 1 )
    3160             );
    3161 
    3162             // Several topics in a forum with a single page
    3163             if ( empty( $to_num ) ) {
    3164                 /* translators: %1$s: Total number of topics */
    3165                 $retstr = sprintf( _n( 'Viewing %1$s topic', 'Viewing %1$s topics', $total_int, 'bbpress' ), $total );
    3166 
    3167             // Several topics in a forum with several pages
    3168             } else {
    3169                 $retstr = sprintf( _n( 'Viewing topic %2$s (of %4$s total)', 'Viewing %1$s topics - %2$s through %3$s (of %4$s total)', $total_int, 'bbpress' ), $count_num, $from_num, $to_num, $total );  //phpcs:ignore
    3170             }
    3171 
    3172             // Escape results of _n()
    3173             $retstr = esc_html( $retstr );
     3165
     3166/**
     3167 * Return the pagination count.
     3168 *
     3169 * @since 2.0.0 bbPress (r2519)
     3170 *
     3171 * @return string Forum Pagination count.
     3172 */
     3173function bbp_get_forum_pagination_count() {
     3174    $bbp = bbpress();
     3175
     3176    // Define local variable(s)
     3177    $retstr = '';
     3178
     3179    // Topic query exists
     3180    if ( ! empty( $bbp->topic_query ) ) {
     3181
     3182        // Set pagination values
     3183        $count_int = intval( $bbp->topic_query->post_count );
     3184        $start_num = intval( ( $bbp->topic_query->paged - 1 ) * $bbp->topic_query->posts_per_page ) + 1;
     3185        $total_int = ! empty( $bbp->topic_query->found_posts )
     3186            ? (int) $bbp->topic_query->found_posts
     3187            : $count_int;
     3188
     3189        // Format numbers for display
     3190        $count_num = bbp_number_format( $count_int );
     3191        $from_num  = bbp_number_format( $start_num );
     3192        $total     = bbp_number_format( $total_int );
     3193        $to_num    = bbp_number_format( ( $start_num + ( $bbp->topic_query->posts_per_page - 1 ) > $bbp->topic_query->found_posts )
     3194            ? $bbp->topic_query->found_posts
     3195            : $start_num + ( $bbp->topic_query->posts_per_page - 1 )
     3196        );
     3197
     3198        // Several topics in a forum with a single page
     3199        if ( empty( $to_num ) ) {
     3200            /* translators: %1$s: Total number of topics */
     3201            $retstr = sprintf( _n( 'Viewing %1$s topic', 'Viewing %1$s topics', $total_int, 'bbpress' ), $total );
     3202
     3203        // Several topics in a forum with several pages
     3204        } else {
     3205            $retstr = sprintf( _n( 'Viewing topic %2$s (of %4$s total)', 'Viewing %1$s topics - %2$s through %3$s (of %4$s total)', $total_int, 'bbpress' ), $count_num, $from_num, $to_num, $total );  //phpcs:ignore
    31743206        }
    31753207
    3176         // Filter & return
    3177         return apply_filters( 'bbp_get_forum_pagination_count', $retstr );
    3178     }
    3179 
    3180 /**
    3181  * Output pagination links
     3208        // Escape results of _n()
     3209        $retstr = esc_html( $retstr );
     3210    }
     3211
     3212    // Filter & return
     3213    return apply_filters( 'bbp_get_forum_pagination_count', $retstr );
     3214}
     3215
     3216/**
     3217 * Output pagination links.
    31823218 *
    31833219 * @since 2.0.0 bbPress (r2519)
     
    31863222    echo bbp_get_forum_pagination_links();
    31873223}
    3188     /**
    3189      * Return pagination links
    3190      *
    3191      * @since 2.0.0 bbPress (r2519)
    3192      *
    3193      * @return string Pagination links
    3194      */
    3195     function bbp_get_forum_pagination_links() {
    3196         $bbp = bbpress();
    3197 
    3198         if ( empty( $bbp->topic_query ) ) {
    3199             return false;
    3200         }
    3201 
    3202         // Filter & return
    3203         return apply_filters( 'bbp_get_forum_pagination_links', $bbp->topic_query->pagination_links );
    3204     }
    3205 
    3206 /**
    3207  * Displays topic notices
     3224
     3225/**
     3226 * Return pagination links.
     3227 *
     3228 * @since 2.0.0 bbPress (r2519)
     3229 *
     3230 * @return string Pagination links.
     3231 */
     3232function bbp_get_forum_pagination_links() {
     3233    $bbp = bbpress();
     3234
     3235    if ( empty( $bbp->topic_query ) ) {
     3236        return false;
     3237    }
     3238
     3239    // Filter & return
     3240    return apply_filters( 'bbp_get_forum_pagination_links', $bbp->topic_query->pagination_links );
     3241}
     3242
     3243/**
     3244 * Displays topic notices.
    32083245 *
    32093246 * @since 2.0.0 bbPress (r2744)
     
    32533290
    32543291/**
    3255  * Displays topic type select box (normal/sticky/super sticky)
     3292 * Displays topic type select box (normal/sticky/super sticky).
    32563293 *
    32573294 * @since 2.0.0 bbPress (r2784)
     
    32703307
    32713308/**
    3272  * Displays topic type select box (normal/sticky/super sticky)
     3309 * Displays topic type select box (normal/sticky/super sticky).
    32733310 *
    32743311 * @since 2.4.0 bbPress (r5059)
     
    32833320    echo bbp_get_form_topic_type_dropdown( $args );
    32843321}
    3285     /**
    3286      * Returns topic type select box (normal/sticky/super sticky)
    3287      *
    3288      * @since 2.4.0 bbPress (r5059)
    3289      *
    3290      * @param $args This function supports these arguments:
    3291      *  - select_id: Select id. Defaults to bbp_stick_topic
    3292      *  - tab: Deprecated. Tabindex
    3293      *  - topic_id: Topic id
    3294      *  - selected: Override the selected option
    3295      */
    3296     function bbp_get_form_topic_type_dropdown( $args = array() ) {
    3297 
    3298         // Parse arguments against default values
    3299         $r = bbp_parse_args(
    3300             $args,
    3301             array(
    3302                 'select_id'    => 'bbp_stick_topic',
    3303                 'select_class' => 'bbp_dropdown',
    3304                 'tab'          => false,
    3305                 'topic_id'     => 0,
    3306                 'selected'     => false
    3307             ),
    3308             'topic_type_select'
    3309         );
    3310 
    3311         // No specific selected value passed
    3312         if ( empty( $r['selected'] ) ) {
    3313 
    3314             // Post value is passed
    3315             if ( bbp_is_topic_form_post_request() && isset( $_POST[ $r['select_id'] ] ) ) {
    3316                 $r['selected'] = sanitize_key( $_POST[ $r['select_id'] ] );
    3317 
    3318             // Edit topic
    3319             } elseif ( bbp_is_single_topic() || bbp_is_topic_edit() ) {
    3320 
    3321                 // Get current topic id
    3322                 $r['topic_id'] = bbp_get_topic_id( $r['topic_id'] );
    3323 
    3324                 // Topic is super sticky
    3325                 if ( bbp_is_topic_super_sticky( $r['topic_id'] ) ) {
    3326                     $r['selected'] = 'super';
    3327 
    3328                 // Topic is sticky or normal
    3329                 } else {
    3330                     $r['selected'] = bbp_is_topic_sticky( $r['topic_id'], false )
    3331                         ? 'stick'
    3332                         : 'unstick';
    3333                 }
     3322
     3323/**
     3324 * Returns topic type select box (normal/sticky/super sticky).
     3325 *
     3326 * @since 2.4.0 bbPress (r5059)
     3327 *
     3328 * @param $args This function supports these arguments:
     3329 *  - select_id: Select id. Defaults to bbp_stick_topic
     3330 *  - tab: Deprecated. Tabindex
     3331 *  - topic_id: Topic id
     3332 *  - selected: Override the selected option
     3333 */
     3334function bbp_get_form_topic_type_dropdown( $args = array() ) {
     3335
     3336    // Parse arguments against default values
     3337    $r = bbp_parse_args(
     3338        $args,
     3339        array(
     3340            'select_id'    => 'bbp_stick_topic',
     3341            'select_class' => 'bbp_dropdown',
     3342            'tab'          => false,
     3343            'topic_id'     => 0,
     3344            'selected'     => false
     3345        ),
     3346        'topic_type_select'
     3347    );
     3348
     3349    // No specific selected value passed
     3350    if ( empty( $r['selected'] ) ) {
     3351
     3352        // Post value is passed
     3353        if ( bbp_is_topic_form_post_request() && isset( $_POST[ $r['select_id'] ] ) ) {
     3354            $r['selected'] = sanitize_key( $_POST[ $r['select_id'] ] );
     3355
     3356        // Edit topic
     3357        } elseif ( bbp_is_single_topic() || bbp_is_topic_edit() ) {
     3358
     3359            // Get current topic id
     3360            $r['topic_id'] = bbp_get_topic_id( $r['topic_id'] );
     3361
     3362            // Topic is super sticky
     3363            if ( bbp_is_topic_super_sticky( $r['topic_id'] ) ) {
     3364                $r['selected'] = 'super';
     3365
     3366            // Topic is sticky or normal
     3367            } else {
     3368                $r['selected'] = bbp_is_topic_sticky( $r['topic_id'], false )
     3369                    ? 'stick'
     3370                    : 'unstick';
    33343371            }
    33353372        }
    3336 
    3337         // Start an output buffer, we'll finish it after the select loop
    3338         ob_start(); ?>
    3339 
    3340         <select name="<?php echo esc_attr( $r['select_id'] ); ?>" id="<?php echo esc_attr( $r['select_id'] ); ?>_select" class="<?php echo esc_attr( $r['select_class'] ); ?>"<?php bbp_tab_index_attribute( $r['tab'] ); ?>>
    3341 
    3342             <?php foreach ( bbp_get_topic_types( $r['topic_id'] ) as $key => $label ) : ?>
    3343 
    3344                 <option value="<?php echo esc_attr( $key ); ?>"<?php selected( $key, $r['selected'] ); ?>><?php echo esc_html( $label ); ?></option>
    3345 
    3346             <?php endforeach; ?>
    3347 
    3348         </select>
    3349 
    3350         <?php
    3351 
    3352         // Filter & return
    3353         return apply_filters( 'bbp_get_form_topic_type_dropdown', ob_get_clean(), $r, $args );
    3354     }
    3355 
    3356 /**
    3357  * Output value topic status dropdown
     3373    }
     3374
     3375    // Start an output buffer, we'll finish it after the select loop
     3376    ob_start(); ?>
     3377
     3378    <select name="<?php echo esc_attr( $r['select_id'] ); ?>" id="<?php echo esc_attr( $r['select_id'] ); ?>_select" class="<?php echo esc_attr( $r['select_class'] ); ?>"<?php bbp_tab_index_attribute( $r['tab'] ); ?>>
     3379
     3380        <?php foreach ( bbp_get_topic_types( $r['topic_id'] ) as $key => $label ) : ?>
     3381
     3382            <option value="<?php echo esc_attr( $key ); ?>"<?php selected( $key, $r['selected'] ); ?>><?php echo esc_html( $label ); ?></option>
     3383
     3384        <?php endforeach; ?>
     3385
     3386    </select>
     3387
     3388    <?php
     3389
     3390    // Filter & return
     3391    return apply_filters( 'bbp_get_form_topic_type_dropdown', ob_get_clean(), $r, $args );
     3392}
     3393
     3394/**
     3395 * Output value topic status dropdown.
    33583396 *
    33593397 * @since 2.4.0 bbPress (r5059)
     
    33683406    echo bbp_get_form_topic_status_dropdown( $args );
    33693407}
    3370     /**
    3371      * Returns topic status dropdown
    3372      *
    3373      * This dropdown is only intended to be seen by users with the 'moderate'
    3374      * capability. Because of this, no additional capability checks are performed
    3375      * within this function to check available topic statuses.
    3376      *
    3377      * @since 2.4.0 bbPress (r5059)
    3378      *
    3379      * @param $args This function supports these arguments:
    3380      *  - select_id: Select id. Defaults to bbp_topic_status
    3381      *  - tab: Deprecated. Tabindex
    3382      *  - topic_id: Topic id
    3383      *  - selected: Override the selected option
    3384      */
    3385     function bbp_get_form_topic_status_dropdown( $args = array() ) {
    3386 
    3387         // Parse arguments against default values
    3388         $r = bbp_parse_args(
    3389             $args,
    3390             array(
    3391                 'select_id'    => 'bbp_topic_status',
    3392                 'select_class' => 'bbp_dropdown',
    3393                 'tab'          => false,
    3394                 'topic_id'     => 0,
    3395                 'selected'     => false
    3396             ),
    3397             'topic_open_close_select'
    3398         );
    3399 
    3400         // No specific selected value passed
    3401         if ( empty( $r['selected'] ) ) {
    3402 
    3403             // Post value is passed
    3404             if ( bbp_is_topic_form_post_request() && isset( $_POST[ $r['select_id'] ] ) ) {
    3405                 $r['selected'] = sanitize_key( $_POST[ $r['select_id'] ] );
    3406 
    3407             // Edit topic
    3408             } elseif ( bbp_is_topic_edit() ) {
    3409                 $r['topic_id'] = bbp_get_topic_id( $r['topic_id'] );
    3410                 $r['selected'] = bbp_get_topic_status( $r['topic_id'] );
    3411 
    3412             // New topic
    3413             } else {
    3414                 $r['selected'] = bbp_get_public_status_id();
    3415             }
     3408
     3409/**
     3410 * Returns topic status dropdown.
     3411 *
     3412 * This dropdown is only intended to be seen by users with the 'moderate'
     3413 * capability. Because of this, no additional capability checks are performed
     3414 * within this function to check available topic statuses.
     3415 *
     3416 * @since 2.4.0 bbPress (r5059)
     3417 *
     3418 * @param $args This function supports these arguments:
     3419 *  - select_id: Select id. Defaults to bbp_topic_status
     3420 *  - tab: Deprecated. Tabindex
     3421 *  - topic_id: Topic id
     3422 *  - selected: Override the selected option
     3423 */
     3424function bbp_get_form_topic_status_dropdown( $args = array() ) {
     3425
     3426    // Parse arguments against default values
     3427    $r = bbp_parse_args(
     3428        $args,
     3429        array(
     3430            'select_id'    => 'bbp_topic_status',
     3431            'select_class' => 'bbp_dropdown',
     3432            'tab'          => false,
     3433            'topic_id'     => 0,
     3434            'selected'     => false
     3435        ),
     3436        'topic_open_close_select'
     3437    );
     3438
     3439    // No specific selected value passed
     3440    if ( empty( $r['selected'] ) ) {
     3441
     3442        // Post value is passed
     3443        if ( bbp_is_topic_form_post_request() && isset( $_POST[ $r['select_id'] ] ) ) {
     3444            $r['selected'] = sanitize_key( $_POST[ $r['select_id'] ] );
     3445
     3446        // Edit topic
     3447        } elseif ( bbp_is_topic_edit() ) {
     3448            $r['topic_id'] = bbp_get_topic_id( $r['topic_id'] );
     3449            $r['selected'] = bbp_get_topic_status( $r['topic_id'] );
     3450
     3451        // New topic
     3452        } else {
     3453            $r['selected'] = bbp_get_public_status_id();
    34163454        }
    3417 
    3418         // Start an output buffer, we'll finish it after the select loop
    3419         ob_start(); ?>
    3420 
    3421         <select name="<?php echo esc_attr( $r['select_id'] ); ?>" id="<?php echo esc_attr( $r['select_id'] ); ?>_select" class="<?php echo esc_attr( $r['select_class'] ); ?>"<?php bbp_tab_index_attribute( $r['tab'] ); ?>>
    3422 
    3423             <?php foreach ( bbp_get_topic_statuses( $r['topic_id'] ) as $key => $label ) : ?>
    3424 
    3425                 <option value="<?php echo esc_attr( $key ); ?>"<?php selected( $key, $r['selected'] ); ?>><?php echo esc_html( $label ); ?></option>
    3426 
    3427             <?php endforeach; ?>
    3428 
    3429         </select>
    3430 
    3431         <?php
    3432 
    3433         // Filter & return
    3434         return apply_filters( 'bbp_get_form_topic_status_dropdown', ob_get_clean(), $r, $args );
    3435     }
     3455    }
     3456
     3457    // Start an output buffer, we'll finish it after the select loop
     3458    ob_start(); ?>
     3459
     3460    <select name="<?php echo esc_attr( $r['select_id'] ); ?>" id="<?php echo esc_attr( $r['select_id'] ); ?>_select" class="<?php echo esc_attr( $r['select_class'] ); ?>"<?php bbp_tab_index_attribute( $r['tab'] ); ?>>
     3461
     3462        <?php foreach ( bbp_get_topic_statuses( $r['topic_id'] ) as $key => $label ) : ?>
     3463
     3464            <option value="<?php echo esc_attr( $key ); ?>"<?php selected( $key, $r['selected'] ); ?>><?php echo esc_html( $label ); ?></option>
     3465
     3466        <?php endforeach; ?>
     3467
     3468    </select>
     3469
     3470    <?php
     3471
     3472    // Filter & return
     3473    return apply_filters( 'bbp_get_form_topic_status_dropdown', ob_get_clean(), $r, $args );
     3474}
    34363475
    34373476/** Single Topic **************************************************************/
     
    34483487    echo bbp_get_single_topic_description( $args );
    34493488}
    3450     /**
    3451      * Return a fancy description of the current topic, including total topics,
    3452      * total replies, and last activity.
    3453      *
    3454      * @since 2.0.0 bbPress (r2860)
    3455      *
    3456      * @param array $args This function supports these arguments:
    3457      *  - topic_id: Topic id
    3458      *  - before: Before the text
    3459      *  - after: After the text
    3460      *  - size: Size of the avatar
    3461      * @return string Filtered topic description
    3462      */
    3463     function bbp_get_single_topic_description( $args = array() ) {
    3464 
    3465         // Parse arguments against default values
    3466         $r = bbp_parse_args(
    3467             $args,
     3489
     3490/**
     3491 * Return a fancy description of the current topic, including total topics,
     3492 * total replies, and last activity.
     3493 *
     3494 * @since 2.0.0 bbPress (r2860)
     3495 *
     3496 * @param array $args This function supports these arguments:
     3497 *  - topic_id: Topic id
     3498 *  - before: Before the text
     3499 *  - after: After the text
     3500 *  - size: Size of the avatar
     3501 * @return string Filtered topic description.
     3502 */
     3503function bbp_get_single_topic_description( $args = array() ) {
     3504
     3505    // Parse arguments against default values
     3506    $r = bbp_parse_args(
     3507        $args,
     3508        array(
     3509            'topic_id'  => 0,
     3510            'before'    => '<div class="bbp-template-notice info"><ul><li class="bbp-topic-description">',
     3511            'after'     => '</li></ul></div>',
     3512            'size'      => 14
     3513        ),
     3514        'get_single_topic_description'
     3515    );
     3516
     3517    // Validate topic_id
     3518    $topic_id = bbp_get_topic_id( $r['topic_id'] );
     3519
     3520    // Unhook the 'view all' query var adder
     3521    remove_filter( 'bbp_get_topic_permalink', 'bbp_add_view_all' );
     3522
     3523    // Build the topic description
     3524    $vc_int      = bbp_get_topic_voice_count   ( $topic_id, true  );
     3525    $voice_count = bbp_get_topic_voice_count   ( $topic_id, false );
     3526    $reply_count = bbp_get_topic_replies_link  ( $topic_id        );
     3527    $time_since  = bbp_get_topic_freshness_link( $topic_id        );
     3528
     3529    // Singular/Plural
     3530    /* translators: %s: Number of voices/participants */
     3531    $voice_count = sprintf( _n( '%s voice', '%s voices', $vc_int, 'bbpress' ), $voice_count );
     3532
     3533    // Topic has activity (could be from reply or topic author)
     3534    $last_active = bbp_get_topic_last_active_id( $topic_id );
     3535    if ( ! empty( $last_active ) ) {
     3536
     3537        // Last-updated-by should always exist if last-active does
     3538        $last_updated_by = bbp_get_author_link(
    34683539            array(
    3469                 'topic_id'  => 0,
    3470                 'before'    => '<div class="bbp-template-notice info"><ul><li class="bbp-topic-description">',
    3471                 'after'     => '</li></ul></div>',
    3472                 'size'      => 14
    3473             ),
    3474             'get_single_topic_description'
     3540                'post_id' => $last_active,
     3541                'size'    => $r['size']
     3542            )
    34753543        );
    34763544
    3477         // Validate topic_id
    3478         $topic_id = bbp_get_topic_id( $r['topic_id'] );
    3479 
    3480         // Unhook the 'view all' query var adder
    3481         remove_filter( 'bbp_get_topic_permalink', 'bbp_add_view_all' );
    3482 
    3483         // Build the topic description
    3484         $vc_int      = bbp_get_topic_voice_count   ( $topic_id, true  );
    3485         $voice_count = bbp_get_topic_voice_count   ( $topic_id, false );
    3486         $reply_count = bbp_get_topic_replies_link  ( $topic_id        );
    3487         $time_since  = bbp_get_topic_freshness_link( $topic_id        );
    3488 
    3489         // Singular/Plural
    3490         /* translators: %s: Number of voices/participants */
    3491         $voice_count = sprintf( _n( '%s voice', '%s voices', $vc_int, 'bbpress' ), $voice_count );
    3492 
    3493         // Topic has activity (could be from reply or topic author)
    3494         $last_active = bbp_get_topic_last_active_id( $topic_id );
    3495         if ( ! empty( $last_active ) ) {
    3496 
    3497             // Last-updated-by should always exist if last-active does
    3498             $last_updated_by = bbp_get_author_link(
    3499                 array(
    3500                     'post_id' => $last_active,
    3501                     'size'    => $r['size']
    3502                 )
    3503             );
    3504 
    3505             // Voice count is non-zero (registered users engaged)
    3506             if ( ! empty( $vc_int ) ) {
    3507                 /* translators: 1: Reply count, 2: Voice count, 3: Last updated time, 4: Last updated by */
    3508                 $retstr = sprintf( esc_html__( 'This topic has %1$s, %2$s, and was last updated %3$s by %4$s.', 'bbpress' ), $reply_count, $voice_count, $time_since, $last_updated_by );
    3509 
    3510             // Voice count is zero (anonymous users only)
    3511             } else {
    3512                 /* translators: 1: Last updated time, 2: Last updated by */
    3513                 $retstr = sprintf( esc_html__( 'This topic was last updated %1$s by %2$s.', 'bbpress' ), $time_since, $last_updated_by );
    3514             }
    3515 
    3516         // Topic has no replies
    3517         } elseif ( ! empty( $vc_int ) && ! empty( $reply_count ) ) {
    3518             /* translators: 1: Voice count, 2: Reply count */
    3519             $retstr = sprintf( esc_html__( 'This topic has %1$s and %2$s.', 'bbpress' ), $voice_count, $reply_count );
    3520 
    3521         // Topic has no replies and no voices
    3522         } elseif ( empty( $vc_int ) && empty( $reply_count ) ) {
    3523             $retstr = esc_html__( 'This topic has no replies.', 'bbpress' );
    3524 
    3525         // Topic is pending
    3526         } elseif ( bbp_get_topic_status( $topic_id ) === bbp_get_pending_status_id() ) {
    3527             $retstr = esc_html__( 'This topic is pending moderation.', 'bbpress' );
    3528 
    3529         // Fallback
     3545        // Voice count is non-zero (registered users engaged)
     3546        if ( ! empty( $vc_int ) ) {
     3547            /* translators: 1: Reply count, 2: Voice count, 3: Last updated time, 4: Last updated by */
     3548            $retstr = sprintf( esc_html__( 'This topic has %1$s, %2$s, and was last updated %3$s by %4$s.', 'bbpress' ), $reply_count, $voice_count, $time_since, $last_updated_by );
     3549
     3550        // Voice count is zero (anonymous users only)
    35303551        } else {
    3531             $retstr = esc_html__( 'This topic is empty.', 'bbpress' );
     3552            /* translators: 1: Last updated time, 2: Last updated by */
     3553            $retstr = sprintf( esc_html__( 'This topic was last updated %1$s by %2$s.', 'bbpress' ), $time_since, $last_updated_by );
    35323554        }
    35333555
    3534         // Add the 'view all' filter back
    3535         add_filter( 'bbp_get_topic_permalink', 'bbp_add_view_all' );
    3536 
    3537         // Combine the elements together
    3538         $retstr = $r['before'] . $retstr . $r['after'];
    3539 
    3540         // Filter & return
    3541         return apply_filters( 'bbp_get_single_topic_description', $retstr, $r, $args );
    3542     }
     3556    // Topic has no replies
     3557    } elseif ( ! empty( $vc_int ) && ! empty( $reply_count ) ) {
     3558        /* translators: 1: Voice count, 2: Reply count */
     3559        $retstr = sprintf( esc_html__( 'This topic has %1$s and %2$s.', 'bbpress' ), $voice_count, $reply_count );
     3560
     3561    // Topic has no replies and no voices
     3562    } elseif ( empty( $vc_int ) && empty( $reply_count ) ) {
     3563        $retstr = esc_html__( 'This topic has no replies.', 'bbpress' );
     3564
     3565    // Topic is pending
     3566    } elseif ( bbp_get_topic_status( $topic_id ) === bbp_get_pending_status_id() ) {
     3567        $retstr = esc_html__( 'This topic is pending moderation.', 'bbpress' );
     3568
     3569    // Fallback
     3570    } else {
     3571        $retstr = esc_html__( 'This topic is empty.', 'bbpress' );
     3572    }
     3573
     3574    // Add the 'view all' filter back
     3575    add_filter( 'bbp_get_topic_permalink', 'bbp_add_view_all' );
     3576
     3577    // Combine the elements together
     3578    $retstr = $r['before'] . $retstr . $r['after'];
     3579
     3580    // Filter & return
     3581    return apply_filters( 'bbp_get_single_topic_description', $retstr, $r, $args );
     3582}
    35433583
    35443584/** Topic Tags ****************************************************************/
    35453585
    35463586/**
    3547  * Output the unique id of the topic tag taxonomy
     3587 * Output the unique id of the topic tag taxonomy.
    35483588 *
    35493589 * @since 2.0.0 bbPress (r3348)
     
    35523592    echo bbp_get_topic_tag_tax_id();
    35533593}
    3554     /**
    3555      * Return the unique id of the topic tag taxonomy
    3556      *
    3557      * @since 2.0.0 bbPress (r3348)
    3558      *
    3559      * @return string The unique topic tag taxonomy
    3560      */
    3561     function bbp_get_topic_tag_tax_id() {
    3562 
    3563         // Filter & return
    3564         return apply_filters( 'bbp_get_topic_tag_tax_id', bbpress()->topic_tag_tax_id );
    3565     }
    3566 
    3567 /**
    3568  * Return array of labels used by the topic-tag taxonomy
     3594
     3595/**
     3596 * Return the unique id of the topic tag taxonomy.
     3597 *
     3598 * @since 2.0.0 bbPress (r3348)
     3599 *
     3600 * @return string The unique topic tag taxonomy.
     3601 */
     3602function bbp_get_topic_tag_tax_id() {
     3603
     3604    // Filter & return
     3605    return apply_filters( 'bbp_get_topic_tag_tax_id', bbpress()->topic_tag_tax_id );
     3606}
     3607
     3608/**
     3609 * Return array of labels used by the topic-tag taxonomy.
    35693610 *
    35703611 * @since 2.5.0 bbPress (r5129)
     
    36053646
    36063647/**
    3607  * Return an array of topic-tag taxonomy rewrite settings
     3648 * Return an array of topic-tag taxonomy rewrite settings.
    36083649 *
    36093650 * @since 2.5.0 bbPress (r5129)
     
    36243665
    36253666/**
    3626  * Output the id of the current tag
     3667 * Output the id of the current tag.
    36273668 *
    36283669 * @since 2.0.0 bbPress (r3109)
    3629  *
    36303670 */
    36313671function bbp_topic_tag_id( $tag = '' ) {
    36323672    echo bbp_get_topic_tag_id( $tag );
    36333673}
    3634     /**
    3635      * Return the id of the current tag
    3636      *
    3637      * @since 2.0.0 bbPress (r3109)
    3638      *
    3639      * @return string Term Name
    3640      */
    3641     function bbp_get_topic_tag_id( $tag = '' ) {
    3642 
    3643         // Get the term
    3644         if ( ! empty( $tag ) ) {
    3645             $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
    3646         } else {
    3647             $tag  = get_query_var( 'term' );
    3648             $term = get_queried_object();
    3649         }
    3650 
    3651         // Get the term ID
    3652         $retval = ! empty( $term->term_id )
    3653             ? $term->term_id
    3654             : 0;
    3655 
    3656         // Filter & return
    3657         return (int) apply_filters( 'bbp_get_topic_tag_id', (int) $retval, $tag, $term );
    3658     }
    3659 
    3660 /**
    3661  * Output the name of the current tag
     3674
     3675/**
     3676 * Return the id of the current tag.
     3677 *
     3678 * @since 2.0.0 bbPress (r3109)
     3679 *
     3680 * @return string Term Name.
     3681 */
     3682function bbp_get_topic_tag_id( $tag = '' ) {
     3683
     3684    // Get the term
     3685    if ( ! empty( $tag ) ) {
     3686        $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
     3687    } else {
     3688        $tag  = get_query_var( 'term' );
     3689        $term = get_queried_object();
     3690    }
     3691
     3692    // Get the term ID
     3693    $retval = ! empty( $term->term_id )
     3694        ? $term->term_id
     3695        : 0;
     3696
     3697    // Filter & return
     3698    return (int) apply_filters( 'bbp_get_topic_tag_id', (int) $retval, $tag, $term );
     3699}
     3700
     3701/**
     3702 * Output the name of the current tag.
    36623703 *
    36633704 * @since 2.0.0 bbPress (r3109)
     
    36663707    echo bbp_get_topic_tag_name( $tag );
    36673708}
    3668     /**
    3669      * Return the name of the current tag
    3670      *
    3671      * @since 2.0.0 bbPress (r3109)
    3672      *
    3673      * @return string Term Name
    3674      */
    3675     function bbp_get_topic_tag_name( $tag = '' ) {
    3676 
    3677         // Get the term
    3678         if ( ! empty( $tag ) ) {
    3679             $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
    3680         } else {
    3681             $tag  = get_query_var( 'term' );
    3682             $term = get_queried_object();
    3683         }
    3684 
    3685         // Get the term name
    3686         $retval = ! empty( $term->name )
    3687             ? $term->name
    3688             : '';
    3689 
    3690         // Filter & return
    3691         return apply_filters( 'bbp_get_topic_tag_name', $retval, $tag, $term );
    3692     }
    3693 
    3694 /**
    3695  * Output the slug of the current tag
     3709
     3710/**
     3711 * Return the name of the current tag.
     3712 *
     3713 * @since 2.0.0 bbPress (r3109)
     3714 *
     3715 * @return string Term Name.
     3716 */
     3717function bbp_get_topic_tag_name( $tag = '' ) {
     3718
     3719    // Get the term
     3720    if ( ! empty( $tag ) ) {
     3721        $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
     3722    } else {
     3723        $tag  = get_query_var( 'term' );
     3724        $term = get_queried_object();
     3725    }
     3726
     3727    // Get the term name
     3728    $retval = ! empty( $term->name )
     3729        ? $term->name
     3730        : '';
     3731
     3732    // Filter & return
     3733    return apply_filters( 'bbp_get_topic_tag_name', $retval, $tag, $term );
     3734}
     3735
     3736/**
     3737 * Output the slug of the current tag.
    36963738 *
    36973739 * @since 2.0.0 bbPress (r3109)
     
    37003742    echo bbp_get_topic_tag_slug( $tag );
    37013743}
    3702     /**
    3703      * Return the slug of the current tag
    3704      *
    3705      * @since 2.0.0 bbPress (r3109)
    3706      *
    3707      * @return string Term Name
    3708      */
    3709     function bbp_get_topic_tag_slug( $tag = '' ) {
    3710 
    3711         // Get the term
    3712         if ( ! empty( $tag ) ) {
    3713             $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
    3714         } else {
    3715             $tag  = get_query_var( 'term' );
    3716             $term = get_queried_object();
    3717         }
    3718 
    3719         // Get the term slug
    3720         $retval = ! empty( $term->slug )
    3721             ? $term->slug
    3722             : '';
    3723 
    3724         // Filter & return
    3725         return apply_filters( 'bbp_get_topic_tag_slug', $retval, $tag, $term );
    3726     }
    3727 
    3728 /**
    3729  * Output the link of the current tag
     3744
     3745/**
     3746 * Return the slug of the current tag.
     3747 *
     3748 * @since 2.0.0 bbPress (r3109)
     3749 *
     3750 * @return string Term Name.
     3751 */
     3752function bbp_get_topic_tag_slug( $tag = '' ) {
     3753
     3754    // Get the term
     3755    if ( ! empty( $tag ) ) {
     3756        $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
     3757    } else {
     3758        $tag  = get_query_var( 'term' );
     3759        $term = get_queried_object();
     3760    }
     3761
     3762    // Get the term slug
     3763    $retval = ! empty( $term->slug )
     3764        ? $term->slug
     3765        : '';
     3766
     3767    // Filter & return
     3768    return apply_filters( 'bbp_get_topic_tag_slug', $retval, $tag, $term );
     3769}
     3770
     3771/**
     3772 * Output the link of the current tag.
    37303773 *
    37313774 * @since 2.0.0 bbPress (r3348)
     
    37343777    echo esc_url( bbp_get_topic_tag_link( $tag ) );
    37353778}
    3736     /**
    3737      * Return the link of the current tag
    3738      *
    3739      * @since 2.0.0 bbPress (r3348)
    3740      *
    3741      * @return string Term Name
    3742      */
    3743     function bbp_get_topic_tag_link( $tag = '' ) {
    3744 
    3745         // Get the term
    3746         if ( ! empty( $tag ) ) {
    3747             $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
    3748         } else {
    3749             $tag  = get_query_var( 'term' );
    3750             $term = get_queried_object();
    3751         }
    3752 
    3753         // Get the term link
    3754         $retval = ! empty( $term->term_id )
    3755             ? get_term_link( $term, bbp_get_topic_tag_tax_id() )
    3756             : '';
    3757 
    3758         // Filter & return
    3759         return apply_filters( 'bbp_get_topic_tag_link', $retval, $tag, $term );
    3760     }
    3761 
    3762 /**
    3763  * Output the link of the current tag
     3779
     3780/**
     3781 * Return the link of the current tag.
     3782 *
     3783 * @since 2.0.0 bbPress (r3348)
     3784 *
     3785 * @return string Term Name.
     3786 */
     3787function bbp_get_topic_tag_link( $tag = '' ) {
     3788
     3789    // Get the term
     3790    if ( ! empty( $tag ) ) {
     3791        $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
     3792    } else {
     3793        $tag  = get_query_var( 'term' );
     3794        $term = get_queried_object();
     3795    }
     3796
     3797    // Get the term link
     3798    $retval = ! empty( $term->term_id )
     3799        ? get_term_link( $term, bbp_get_topic_tag_tax_id() )
     3800        : '';
     3801
     3802    // Filter & return
     3803    return apply_filters( 'bbp_get_topic_tag_link', $retval, $tag, $term );
     3804}
     3805
     3806/**
     3807 * Output the link of the current tag.
    37643808 *
    37653809 * @since 2.0.0 bbPress (r3348)
     
    37683812    echo esc_url( bbp_get_topic_tag_edit_link( $tag ) );
    37693813}
    3770     /**
    3771      * Return the link of the current tag
    3772      *
    3773      * @since 2.0.0 bbPress (r3348)
    3774      *
    3775      * @return string Term Name
    3776      */
    3777     function bbp_get_topic_tag_edit_link( $tag = '' ) {
    3778 
    3779         // Get the term
    3780         if ( ! empty( $tag ) ) {
    3781             $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
    3782         } else {
    3783             $tag  = get_query_var( 'term' );
    3784             $term = get_queried_object();
    3785         }
    3786 
    3787         // Get the term's edit link
    3788         if ( ! empty( $term->term_id ) ) {
    3789 
    3790             // Pretty or ugly URL
    3791             $retval = bbp_use_pretty_urls()
    3792                 ? user_trailingslashit( trailingslashit( bbp_get_topic_tag_link() ) . bbp_get_edit_slug() )
    3793                 : add_query_arg( array( bbp_get_edit_rewrite_id() => '1' ), bbp_get_topic_tag_link() );
    3794 
    3795         // No link
    3796         } else {
    3797             $retval = '';
    3798         }
    3799 
    3800         // Filter & return
    3801         return apply_filters( 'bbp_get_topic_tag_edit_link', $retval, $tag, $term );
    3802     }
    3803 
    3804 /**
    3805  * Output the description of the current tag
     3814
     3815/**
     3816 * Return the link of the current tag.
     3817 *
     3818 * @since 2.0.0 bbPress (r3348)
     3819 *
     3820 * @return string Term Name.
     3821 */
     3822function bbp_get_topic_tag_edit_link( $tag = '' ) {
     3823
     3824    // Get the term
     3825    if ( ! empty( $tag ) ) {
     3826        $term = get_term_by( 'slug', $tag, bbp_get_topic_tag_tax_id() );
     3827    } else {
     3828        $tag  = get_query_var( 'term' );
     3829        $term = get_queried_object();
     3830    }
     3831
     3832    // Get the term's edit link
     3833    if ( ! empty( $term->term_id ) ) {
     3834
     3835        // Pretty or ugly URL
     3836        $retval = bbp_use_pretty_urls()
     3837            ? user_trailingslashit( trailingslashit( bbp_get_topic_tag_link() ) . bbp_get_edit_slug() )
     3838            : add_query_arg( array( bbp_get_edit_rewrite_id() => '1' ), bbp_get_topic_tag_link() );
     3839
     3840    // No link
     3841    } else {
     3842        $retval = '';
     3843    }
     3844
     3845    // Filter & return
     3846    return apply_filters( 'bbp_get_topic_tag_edit_link', $retval, $tag, $term );
     3847}
     3848
     3849/**
     3850 * Output the description of the current tag.
    38063851 *
    38073852 * @since 2.0.0 bbPress (r3109)
     
    38103855    echo bbp_get_topic_tag_description( $args );
    38113856}
    3812     /**
    3813      * Return the description of the current tag
    3814      *
    3815      * @since 2.0.0 bbPress (r3109)
    3816      *
    3817      * @param array $args before|after|tag
    3818      *
    3819      * @return string Term Name
    3820      */
    3821     function bbp_get_topic_tag_description( $args = array() ) {
    3822 
    3823         // Parse arguments against default values
    3824         $r = bbp_parse_args(
    3825             $args,
    3826             array(
    3827                 'before' => '<div class="bbp-topic-tag-description"><p>',
    3828                 'after'  => '</p></div>',
    3829                 'tag'    => ''
    3830             ),
    3831             'get_topic_tag_description'
    3832         );
    3833 
    3834         // Get the term
    3835         if ( ! empty( $r['tag'] ) ) {
    3836             $term = get_term_by( 'slug', $r['tag'], bbp_get_topic_tag_tax_id() );
    3837         } else {
    3838             $tag  = $r['tag'] = get_query_var( 'term' );
    3839             $term = get_queried_object();
    3840         }
    3841 
    3842         // Add before & after if description exists
    3843         $retval = ! empty( $term->description )
    3844             ? $r['before'] . $term->description . $r['after']
    3845             : '';
    3846 
    3847         // Filter & return
    3848         return apply_filters( 'bbp_get_topic_tag_description', $retval, $r, $args, $tag, $term );
    3849     }
     3857
     3858/**
     3859 * Return the description of the current tag.
     3860 *
     3861 * @since 2.0.0 bbPress (r3109)
     3862 *
     3863 * @param array $args before|after|tag.
     3864 *
     3865 * @return string Term Name.
     3866 */
     3867function bbp_get_topic_tag_description( $args = array() ) {
     3868
     3869    // Parse arguments against default values
     3870    $r = bbp_parse_args(
     3871        $args,
     3872        array(
     3873            'before' => '<div class="bbp-topic-tag-description"><p>',
     3874            'after'  => '</p></div>',
     3875            'tag'    => ''
     3876        ),
     3877        'get_topic_tag_description'
     3878    );
     3879
     3880    // Get the term
     3881    if ( ! empty( $r['tag'] ) ) {
     3882        $term = get_term_by( 'slug', $r['tag'], bbp_get_topic_tag_tax_id() );
     3883    } else {
     3884        $tag  = $r['tag'] = get_query_var( 'term' );
     3885        $term = get_queried_object();
     3886    }
     3887
     3888    // Add before & after if description exists
     3889    $retval = ! empty( $term->description )
     3890        ? $r['before'] . $term->description . $r['after']
     3891        : '';
     3892
     3893    // Filter & return
     3894    return apply_filters( 'bbp_get_topic_tag_description', $retval, $r, $args, $tag, $term );
     3895}
    38503896
    38513897/** Forms *********************************************************************/
    38523898
    38533899/**
    3854  * Output the value of topic title field
     3900 * Output the value of topic title field.
    38553901 *
    38563902 * @since 2.0.0 bbPress (r2976)
     
    38593905    echo bbp_get_form_topic_title();
    38603906}
    3861     /**
    3862      * Return the value of topic title field
    3863      *
    3864      * @since 2.0.0 bbPress (r2976)
    3865      *
    3866      * @return string Value of topic title field
    3867      */
    3868     function bbp_get_form_topic_title() {
    3869 
    3870         // Get _POST data
    3871         if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_title'] ) ) {
    3872             $topic_title = wp_unslash( $_POST['bbp_topic_title'] );
    3873 
    3874         // Get edit data
    3875         } elseif ( bbp_is_topic_edit() ) {
    3876             $topic_title = bbp_get_global_post_field( 'post_title', 'raw' );
    3877 
    3878         // No data
    3879         } else {
    3880             $topic_title = '';
    3881         }
    3882 
    3883         // Filter & return
    3884         return apply_filters( 'bbp_get_form_topic_title', $topic_title );
    3885     }
    3886 
    3887 /**
    3888  * Output the value of topic content field
     3907
     3908/**
     3909 * Return the value of topic title field.
     3910 *
     3911 * @since 2.0.0 bbPress (r2976)
     3912 *
     3913 * @return string Value of topic title field.
     3914 */
     3915function bbp_get_form_topic_title() {
     3916
     3917    // Get _POST data
     3918    if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_title'] ) ) {
     3919        $topic_title = wp_unslash( $_POST['bbp_topic_title'] );
     3920
     3921    // Get edit data
     3922    } elseif ( bbp_is_topic_edit() ) {
     3923        $topic_title = bbp_get_global_post_field( 'post_title', 'raw' );
     3924
     3925    // No data
     3926    } else {
     3927        $topic_title = '';
     3928    }
     3929
     3930    // Filter & return
     3931    return apply_filters( 'bbp_get_form_topic_title', $topic_title );
     3932}
     3933
     3934/**
     3935 * Output the value of topic content field.
    38893936 *
    38903937 * @since 2.0.0 bbPress (r2976)
     
    38933940    echo bbp_get_form_topic_content();
    38943941}
    3895     /**
    3896      * Return the value of topic content field
    3897      *
    3898      * @since 2.0.0 bbPress (r2976)
    3899      *
    3900      * @return string Value of topic content field
    3901      */
    3902     function bbp_get_form_topic_content() {
    3903 
    3904         // Get _POST data
    3905         if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_content'] ) ) {
    3906             $topic_content = wp_unslash( $_POST['bbp_topic_content'] );
    3907 
    3908         // Get edit data
    3909         } elseif ( bbp_is_topic_edit() ) {
    3910             $topic_content = bbp_get_global_post_field( 'post_content', 'raw' );
    3911 
    3912         // No data
    3913         } else {
    3914             $topic_content = '';
    3915         }
    3916 
    3917         // Filter & return
    3918         return apply_filters( 'bbp_get_form_topic_content', $topic_content );
    3919     }
    3920 
    3921 /**
    3922  * Allow topic rows to have administrative actions
     3942
     3943/**
     3944 * Return the value of topic content field.
     3945 *
     3946 * @since 2.0.0 bbPress (r2976)
     3947 *
     3948 * @return string Value of topic content field.
     3949 */
     3950function bbp_get_form_topic_content() {
     3951
     3952    // Get _POST data
     3953    if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_content'] ) ) {
     3954        $topic_content = wp_unslash( $_POST['bbp_topic_content'] );
     3955
     3956    // Get edit data
     3957    } elseif ( bbp_is_topic_edit() ) {
     3958        $topic_content = bbp_get_global_post_field( 'post_content', 'raw' );
     3959
     3960    // No data
     3961    } else {
     3962        $topic_content = '';
     3963    }
     3964
     3965    // Filter & return
     3966    return apply_filters( 'bbp_get_form_topic_content', $topic_content );
     3967}
     3968
     3969/**
     3970 * Allow topic rows to have administrative actions.
    39233971 *
    39243972 * @since 2.1.0 bbPress (r3653)
    39253973 *
    3926  * @todo Links and filter
     3974 * @todo Links and filter.
    39273975 */
    39283976function bbp_topic_row_actions() {
     
    39313979
    39323980/**
    3933  * Output value of topic tags field
     3981 * Output value of topic tags field.
    39343982 *
    39353983 * @since 2.0.0 bbPress (r2976)
     
    39383986    echo bbp_get_form_topic_tags();
    39393987}
    3940     /**
    3941      * Return value of topic tags field
    3942      *
    3943      * @since 2.0.0 bbPress (r2976)
    3944      *
    3945      * @return string Value of topic tags field
    3946      */
    3947     function bbp_get_form_topic_tags() {
    3948 
    3949         // Default return value
    3950         $topic_tags = '';
    3951 
    3952         // Get _POST data
    3953         if ( ( bbp_is_topic_form_post_request() || bbp_is_reply_form_post_request() ) && isset( $_POST['bbp_topic_tags'] ) ) {
    3954             $topic_tags = wp_unslash( $_POST['bbp_topic_tags'] );
    3955 
    3956         // Get edit data
    3957         } elseif ( bbp_is_single_topic() || bbp_is_single_reply() || bbp_is_topic_edit() || bbp_is_reply_edit() ) {
    3958 
    3959             // Determine the topic id based on the post type
    3960             switch ( get_post_type() ) {
    3961 
    3962                 // Post is a topic
    3963                 case bbp_get_topic_post_type() :
    3964                     $topic_id = bbp_get_topic_id( get_the_ID() );
    3965                     break;
    3966 
    3967                 // Post is a reply
    3968                 case bbp_get_reply_post_type() :
    3969                     $topic_id = bbp_get_reply_topic_id( get_the_ID() );
    3970                     break;
    3971             }
    3972 
    3973             // Topic exists
    3974             if ( ! empty( $topic_id ) ) {
    3975 
    3976                 // Topic is spammed so display pre-spam terms
    3977                 if ( bbp_is_topic_spam( $topic_id ) ) {
    3978 
    3979                     // Get pre-spam terms
    3980                     $spam_terms = get_post_meta( $topic_id, '_bbp_spam_topic_tags', true );
    3981                     $topic_tags = ( ! empty( $spam_terms ) ) ? implode( ', ', $spam_terms ) : '';
    3982 
    3983                 // Topic is not spam so get real terms
    3984                 } else {
    3985                     $topic_tags = bbp_get_topic_tag_names( $topic_id );
    3986                 }
     3988
     3989/**
     3990 * Return value of topic tags field.
     3991 *
     3992 * @since 2.0.0 bbPress (r2976)
     3993 *
     3994 * @return string Value of topic tags field.
     3995 */
     3996function bbp_get_form_topic_tags() {
     3997
     3998    // Default return value
     3999    $topic_tags = '';
     4000
     4001    // Get _POST data
     4002    if ( ( bbp_is_topic_form_post_request() || bbp_is_reply_form_post_request() ) && isset( $_POST['bbp_topic_tags'] ) ) {
     4003        $topic_tags = wp_unslash( $_POST['bbp_topic_tags'] );
     4004
     4005    // Get edit data
     4006    } elseif ( bbp_is_single_topic() || bbp_is_single_reply() || bbp_is_topic_edit() || bbp_is_reply_edit() ) {
     4007
     4008        // Determine the topic id based on the post type
     4009        switch ( get_post_type() ) {
     4010
     4011            // Post is a topic
     4012            case bbp_get_topic_post_type() :
     4013                $topic_id = bbp_get_topic_id( get_the_ID() );
     4014                break;
     4015
     4016            // Post is a reply
     4017            case bbp_get_reply_post_type() :
     4018                $topic_id = bbp_get_reply_topic_id( get_the_ID() );
     4019                break;
     4020        }
     4021
     4022        // Topic exists
     4023        if ( ! empty( $topic_id ) ) {
     4024
     4025            // Topic is spammed so display pre-spam terms
     4026            if ( bbp_is_topic_spam( $topic_id ) ) {
     4027
     4028                // Get pre-spam terms
     4029                $spam_terms = get_post_meta( $topic_id, '_bbp_spam_topic_tags', true );
     4030                $topic_tags = ( ! empty( $spam_terms ) ) ? implode( ', ', $spam_terms ) : '';
     4031
     4032            // Topic is not spam so get real terms
     4033            } else {
     4034                $topic_tags = bbp_get_topic_tag_names( $topic_id );
    39874035            }
    39884036        }
    3989 
    3990         // Filter & return
    3991         return apply_filters( 'bbp_get_form_topic_tags', $topic_tags );
    3992     }
    3993 
    3994 /**
    3995  * Output value of topic forum
     4037    }
     4038
     4039    // Filter & return
     4040    return apply_filters( 'bbp_get_form_topic_tags', $topic_tags );
     4041}
     4042
     4043/**
     4044 * Output value of topic forum.
    39964045 *
    39974046 * @since 2.0.0 bbPress (r2976)
     
    40004049    echo bbp_get_form_topic_forum();
    40014050}
    4002     /**
    4003      * Return value of topic forum
    4004      *
    4005      * @since 2.0.0 bbPress (r2976)
    4006      *
    4007      * @return string Value of topic content field
    4008      */
    4009     function bbp_get_form_topic_forum() {
    4010 
    4011         // Get _POST data
    4012         if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_forum_id'] ) ) {
    4013             $topic_forum = (int) $_POST['bbp_forum_id'];
    4014 
    4015         // Get edit data
    4016         } elseif ( bbp_is_topic_edit() ) {
    4017             $topic_forum = bbp_get_topic_forum_id();
    4018 
    4019         // No data
    4020         } else {
    4021             $topic_forum = 0;
    4022         }
    4023 
    4024         // Filter & return
    4025         return apply_filters( 'bbp_get_form_topic_forum', $topic_forum );
    4026     }
    4027 
    4028 /**
    4029  * Output checked value of topic subscription
     4051
     4052/**
     4053 * Return value of topic forum.
     4054 *
     4055 * @since 2.0.0 bbPress (r2976)
     4056 *
     4057 * @return string Value of topic content field.
     4058 */
     4059function bbp_get_form_topic_forum() {
     4060
     4061    // Get _POST data
     4062    if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_forum_id'] ) ) {
     4063        $topic_forum = (int) $_POST['bbp_forum_id'];
     4064
     4065    // Get edit data
     4066    } elseif ( bbp_is_topic_edit() ) {
     4067        $topic_forum = bbp_get_topic_forum_id();
     4068
     4069    // No data
     4070    } else {
     4071        $topic_forum = 0;
     4072    }
     4073
     4074    // Filter & return
     4075    return apply_filters( 'bbp_get_form_topic_forum', $topic_forum );
     4076}
     4077
     4078/**
     4079 * Output checked value of topic subscription.
    40304080 *
    40314081 * @since 2.0.0 bbPress (r2976)
     
    40344084    echo bbp_get_form_topic_subscribed();
    40354085}
    4036     /**
    4037      * Return checked value of topic subscription
    4038      *
    4039      * @since 2.0.0 bbPress (r2976)
    4040      *
    4041      * @return string Checked value of topic subscription
    4042      */
    4043     function bbp_get_form_topic_subscribed() {
    4044 
    4045         // Default value
    4046         $topic_subscribed = false;
    4047 
    4048         // Get _POST data
    4049         if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_subscription'] ) ) {
    4050             $topic_subscribed = (bool) $_POST['bbp_topic_subscription'];
    4051 
    4052         // Get edit data
    4053         } elseif ( bbp_is_topic_edit() || bbp_is_reply_edit() ) {
    4054             $post_author      = (int) bbp_get_global_post_field( 'post_author', 'raw' );
    4055             $topic_subscribed = bbp_is_user_subscribed( $post_author, bbp_get_topic_id() );
    4056 
    4057         // Get current status
    4058         } elseif ( bbp_is_single_topic() ) {
    4059             $topic_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_topic_id() );
    4060         }
    4061 
    4062         // Get checked output
    4063         $checked = checked( $topic_subscribed, true, false );
    4064 
    4065         // Filter & return
    4066         return apply_filters( 'bbp_get_form_topic_subscribed', $checked, $topic_subscribed );
    4067     }
    4068 
    4069 /**
    4070  * Output checked value of topic log edit field
     4086
     4087/**
     4088 * Return checked value of topic subscription.
     4089 *
     4090 * @since 2.0.0 bbPress (r2976)
     4091 *
     4092 * @return string Checked value of topic subscription.
     4093 */
     4094function bbp_get_form_topic_subscribed() {
     4095
     4096    // Default value
     4097    $topic_subscribed = false;
     4098
     4099    // Get _POST data
     4100    if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_subscription'] ) ) {
     4101        $topic_subscribed = (bool) $_POST['bbp_topic_subscription'];
     4102
     4103    // Get edit data
     4104    } elseif ( bbp_is_topic_edit() || bbp_is_reply_edit() ) {
     4105        $post_author      = (int) bbp_get_global_post_field( 'post_author', 'raw' );
     4106        $topic_subscribed = bbp_is_user_subscribed( $post_author, bbp_get_topic_id() );
     4107
     4108    // Get current status
     4109    } elseif ( bbp_is_single_topic() ) {
     4110        $topic_subscribed = bbp_is_user_subscribed( bbp_get_current_user_id(), bbp_get_topic_id() );
     4111    }
     4112
     4113    // Get checked output
     4114    $checked = checked( $topic_subscribed, true, false );
     4115
     4116    // Filter & return
     4117    return apply_filters( 'bbp_get_form_topic_subscribed', $checked, $topic_subscribed );
     4118}
     4119
     4120/**
     4121 * Output checked value of topic log edit field.
    40714122 *
    40724123 * @since 2.0.0 bbPress (r2976)
     
    40754126    echo bbp_get_form_topic_log_edit();
    40764127}
    4077     /**
    4078      * Return checked value of topic log edit field
    4079      *
    4080      * @since 2.0.0 bbPress (r2976)
    4081      *
    4082      * @return string Topic log edit checked value
    4083      */
    4084     function bbp_get_form_topic_log_edit() {
    4085 
    4086         // Get _POST data
    4087         if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_log_topic_edit'] ) ) {
    4088             $topic_revision = (bool) $_POST['bbp_log_topic_edit'];
    4089 
    4090         // No data
    4091         } else {
    4092             $topic_revision = true;
    4093         }
    4094 
    4095         // Get checked output
    4096         $checked = checked( $topic_revision, true, false );
    4097 
    4098         // Filter & return
    4099         return apply_filters( 'bbp_get_form_topic_log_edit', $checked, $topic_revision );
    4100     }
    4101 
    4102 /**
    4103  * Output the value of the topic edit reason
     4128
     4129/**
     4130 * Return checked value of topic log edit field.
     4131 *
     4132 * @since 2.0.0 bbPress (r2976)
     4133 *
     4134 * @return string Topic log edit checked value.
     4135 */
     4136function bbp_get_form_topic_log_edit() {
     4137
     4138    // Get _POST data
     4139    if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_log_topic_edit'] ) ) {
     4140        $topic_revision = (bool) $_POST['bbp_log_topic_edit'];
     4141
     4142    // No data
     4143    } else {
     4144        $topic_revision = true;
     4145    }
     4146
     4147    // Get checked output
     4148    $checked = checked( $topic_revision, true, false );
     4149
     4150    // Filter & return
     4151    return apply_filters( 'bbp_get_form_topic_log_edit', $checked, $topic_revision );
     4152}
     4153
     4154/**
     4155 * Output the value of the topic edit reason.
    41044156 *
    41054157 * @since 2.0.0 bbPress (r2976)
     
    41084160    echo bbp_get_form_topic_edit_reason();
    41094161}
    4110     /**
    4111      * Return the value of the topic edit reason
    4112      *
    4113      * @since 2.0.0 bbPress (r2976)
    4114      *
    4115      * @return string Topic edit reason value
    4116      */
    4117     function bbp_get_form_topic_edit_reason() {
    4118 
    4119         // Get _POST data
    4120         if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_edit_reason'] ) ) {
    4121             $topic_edit_reason = wp_unslash( $_POST['bbp_topic_edit_reason'] );
    4122 
    4123         // No data
    4124         } else {
    4125             $topic_edit_reason = '';
    4126         }
    4127 
    4128         // Filter & return
    4129         return apply_filters( 'bbp_get_form_topic_edit_reason', $topic_edit_reason );
    4130     }
     4162
     4163/**
     4164 * Return the value of the topic edit reason.
     4165 *
     4166 * @since 2.0.0 bbPress (r2976)
     4167 *
     4168 * @return string Topic edit reason value.
     4169 */
     4170function bbp_get_form_topic_edit_reason() {
     4171
     4172    // Get _POST data
     4173    if ( bbp_is_topic_form_post_request() && isset( $_POST['bbp_topic_edit_reason'] ) ) {
     4174        $topic_edit_reason = wp_unslash( $_POST['bbp_topic_edit_reason'] );
     4175
     4176    // No data
     4177    } else {
     4178        $topic_edit_reason = '';
     4179    }
     4180
     4181    // Filter & return
     4182    return apply_filters( 'bbp_get_form_topic_edit_reason', $topic_edit_reason );
     4183}
    41314184
    41324185/**
     
    41404193 * @since 2.6.0 bbPress (r5558)
    41414194 *
    4142  * @return boolean True if is a post request with valid nonce
     4195 * @return boolean True if is a post request with valid nonce.
    41434196 */
    41444197function bbp_is_topic_form_post_request() {
     
    42004253
    42014254/**
    4202  * Output the topic lock description
     4255 * Output the topic lock description.
    42034256 *
    42044257 * @since 2.6.0 bbPress (r6343)
    42054258 *
    4206  * @param int $topic_id Optional. Topic id
     4259 * @param int $topic_id Optional. Topic id.
    42074260 */
    42084261function bbp_topic_lock_description( $topic_id = 0 ) {
    42094262    echo bbp_get_topic_lock_description( $topic_id );
    42104263}
    4211     /**
    4212      * Return the topic lock description
    4213      *
    4214      * @since 2.6.0 bbPress (r6343)
    4215      *
    4216      * @param int $topic_id Optional. Topic id
    4217      */
    4218     function bbp_get_topic_lock_description( $topic_id = 0 ) {
    4219 
    4220         // Check if topic is edit locked
    4221         $topic_id = bbp_get_topic_id( $topic_id );
    4222         $user_id  = bbp_check_post_lock( $topic_id );
    4223         $person   = empty( $user_id )
    4224             ? esc_html__( 'Nobody', 'bbpress' )
    4225             : bbp_get_user_profile_link( $user_id );
    4226 
    4227         // Get the text
    4228         /* translators: %1$s: Person who is editing (user profile link or "Nobody") */
    4229         $text = sprintf( esc_html__( '%1$s is currently editing this topic.', 'bbpress' ), $person );
    4230 
    4231         // Filter & return
    4232         return apply_filters( 'bbp_get_topic_lock_description', $text, $user_id, $topic_id );
    4233     }
     4264
     4265/**
     4266 * Return the topic lock description.
     4267 *
     4268 * @since 2.6.0 bbPress (r6343)
     4269 *
     4270 * @param int $topic_id Optional. Topic id.
     4271 */
     4272function bbp_get_topic_lock_description( $topic_id = 0 ) {
     4273
     4274    // Check if topic is edit locked
     4275    $topic_id = bbp_get_topic_id( $topic_id );
     4276    $user_id  = bbp_check_post_lock( $topic_id );
     4277    $person   = empty( $user_id )
     4278        ? esc_html__( 'Nobody', 'bbpress' )
     4279        : bbp_get_user_profile_link( $user_id );
     4280
     4281    // Get the text
     4282    /* translators: %1$s: Person who is editing (user profile link or "Nobody") */
     4283    $text = sprintf( esc_html__( '%1$s is currently editing this topic.', 'bbpress' ), $person );
     4284
     4285    // Filter & return
     4286    return apply_filters( 'bbp_get_topic_lock_description', $text, $user_id, $topic_id );
     4287}
  • trunk/src/includes/users/capabilities.php

    r7378 r7380  
    22
    33/**
    4  * bbPress User Capabilities
     4 * bbPress User Capabilities.
    55 *
    66 * Used to map user capabilities to WordPress's existing capabilities.
     
    1111
    1212/**
    13  * Maps primary capabilities
     13 * Maps primary capabilities.
    1414 *
    1515 * @since 2.2.0 bbPress (r4242)
     
    2020 * @param array  $args Arguments.
    2121 *
    22  * @return array Actual capabilities for meta capability
     22 * @return array Actual capabilities for meta capability.
    2323 */
    2424function bbp_map_primary_meta_caps( $caps = array(), $cap = '', $user_id = 0, $args = array() ) {
     
    143143
    144144/**
    145  * Set a user's role in the forums
     145 * Set a user's role in the forums.
    146146 *
    147147 * @since 2.1.0 bbPress (r3860)
    148148 *
    149  * @param int $user_id
     149 * @param int $user_id User id.
    150150 *
    151151 * @return mixed False if no change. String of new role if changed.
     
    191191
    192192/**
    193  * Return a user's forums role
     193 * Return a user's forums role.
    194194 *
    195195 * @since 2.1.0 bbPress (r3860)
    196196 *
    197  * @param int $user_id
     197 * @param int $user_id User id.
    198198 *
    199199 * @return string
     
    228228
    229229/**
    230  * Return a user's blog role
     230 * Return a user's blog role.
    231231 *
    232232 * @since 2.3.0 bbPress (r4446)
    233233 *
    234  * @param int $user_id
     234 * @param int $user_id User id.
    235235 *
    236236 * @return string
     
    270270 * @since 2.2.0 bbPress (r4235)
    271271 *
    272  * @param int $user_id
     272 * @param int $user_id User id.
    273273 */
    274274function bbp_profile_update_role( $user_id = 0 ) {
     
    313313
    314314/**
    315  * Check if a role ID is valid
     315 * Check if a role ID is valid.
    316316 *
    317317 * This helper function accepts a role ID as a string, and compares it against
     
    324324 * @since 2.6.5
    325325 *
    326  * @param string $role A well-formed (string) role ID to validate
     326 * @param string $role A well-formed (string) role ID to validate.
    327327 *
    328328 * @return bool True if role is valid. False if role is not valid.
     
    352352
    353353/**
    354  * Add the default role to the current user if needed
     354 * Add the default role to the current user if needed.
    355355 *
    356356 * This function will bail if the forum is not global in a multisite
     
    359359 * @since 2.0.0 bbPress (r3380)
    360360 *
    361  * @return If not multisite, not global, or user is deleted/spammed
     361 * @return If not multisite, not global, or user is deleted/spammed.
    362362 */
    363363function bbp_set_current_user_default_role() {
     
    434434 * @since 2.2.0 bbPress (r4334)
    435435 *
    436  * @return array Filtered array of WordPress roles to bbPress roles
     436 * @return array Filtered array of WordPress roles to bbPress roles.
    437437 */
    438438function bbp_get_user_role_map() {
     
    496496
    497497/**
    498  * Mark a users topics and replies as spam when the user is marked as spam
     498 * Mark a users topics and replies as spam when the user is marked as spam.
    499499 *
    500500 * @since 2.0.0 bbPress (r3405)
     
    581581
    582582/**
    583  * Mark a users topics and replies as spam when the user is marked as spam
     583 * Mark a users topics and replies as spam when the user is marked as spam.
    584584 *
    585585 * @since 2.0.0 bbPress (r3405)
     
    709709
    710710/**
    711  * Checks if user is active
     711 * Checks if user is active.
    712712 *
    713713 * @since 2.0.0 bbPress (r3502)
    714714 *
    715  * @param int $user_id The user ID to check
    716  * @return bool True if public, false if not
     715 * @param int $user_id The user ID to check.
     716 * @return bool True if public, false if not.
    717717 */
    718718function bbp_is_user_active( $user_id = 0 ) {
     
    743743 * @since 2.0.0 bbPress (r3502)
    744744 *
    745  * @param int $user_id The user ID to check. Defaults to current user ID
    746  * @return bool True if inactive, false if active
     745 * @param int $user_id The user ID to check. Defaults to current user ID.
     746 * @return bool True if inactive, false if active.
    747747 */
    748748function bbp_is_user_inactive( $user_id = 0 ) {
     
    751751
    752752/**
    753  * Checks if user is a keymaster
     753 * Checks if user is a keymaster.
    754754 *
    755755 * @since 2.3.0 bbPress (r4783)
    756756 *
    757  * @param int $user_id
    758  * @return bool True if keymaster, false if not
     757 * @param int $user_id The user ID to check. Defaults to current user ID.
     758 * @return bool True if keymaster, false if not.
    759759 */
    760760function bbp_is_user_keymaster( $user_id = 0 ) {
     
    767767
    768768/**
    769  * Does a user have a profile for the current site
     769 * Does a user have a profile for the current site.
    770770 *
    771771 * @since 2.2.0 bbPress (r4362)
    772772 *
    773  * @param int $user_id User ID to check
     773 * @param int $user_id User ID to check.
    774774 *
    775775 * @return bool Whether or not the user has a profile on this blog_id.
     
    802802
    803803/**
    804  * Add a moderator to an object
     804 * Add a moderator to an object.
    805805 *
    806806 * @since 2.6.0 bbPress (r6056)
    807807 *
    808  * @param int    $object_id   Traditionally a post ID
    809  * @param int    $user_id     User ID
    810  * @param string $object_type Type of meta (post,term,user,comment)
     808 * @param int    $object_id   Traditionally a post ID.
     809 * @param int    $user_id     User ID.
     810 * @param string $object_type Type of meta (post,term,user,comment).
    811811 *
    812812 * @return bool
     
    817817
    818818/**
    819  * Remove a moderator user ID from an object
     819 * Remove a moderator user ID from an object.
    820820 *
    821821 * @since 2.6.0 bbPress (r6056)
    822822 *
    823  * @param int    $object_id   Traditionally a post ID
    824  * @param int    $user_id     User ID
    825  * @param string $object_type Type of meta (post,term,user,comment)
     823 * @param int    $object_id   Traditionally a post ID.
     824 * @param int    $user_id     User ID.
     825 * @param string $object_type Type of meta (post,term,user,comment).
    826826 *
    827827 * @return bool
     
    832832
    833833/**
    834  * Get user IDs of moderators for an object
     834 * Get user IDs of moderators for an object.
    835835 *
    836836 * @since 2.6.0 bbPress (r6056)
    837837 *
    838  * @param int    $object_id   Traditionally a post ID
    839  * @param string $object_type Type of meta (post,term,user,comment)
     838 * @param int    $object_id   Traditionally a post ID.
     839 * @param string $object_type Type of meta (post,term,user,comment).
    840840 *
    841841 * @return array
     
    851851 * @since 2.6.0 bbPress (r6056)
    852852 *
    853  * @param int    $object_id   Traditionally a post ID
    854  * @param string $object_type Type of meta (post,term,user,comment)
     853 * @param int    $object_id   Traditionally a post ID.
     854 * @param string $object_type Type of meta (post,term,user,comment).
    855855 *
    856856 * @return array
  • trunk/src/includes/users/engagements.php

    r7378 r7380  
    22
    33/**
    4  * bbPress User Engagement Functions
     4 * bbPress User Engagement Functions.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Add a user id to an object
     16 * Add a user id to an object.
    1717 *
    1818 * @since 2.6.0 bbPress (r6109)
    1919 *
    20  * @param int    $object_id The object id
    21  * @param int    $user_id   The user id
    22  * @param string $rel_key   The relationship key
    23  * @param string $rel_type  The relationship type (usually 'post')
    24  * @param bool   $unique    Whether meta key should be unique to the object
    25  *
    26  * @return bool Returns true on success, false on failure
     20 * @param int    $object_id The object id.
     21 * @param int    $user_id   The user id.
     22 * @param string $rel_key   The relationship key.
     23 * @param string $rel_type  The relationship type (usually 'post').
     24 * @param bool   $unique    Whether meta key should be unique to the object.
     25 *
     26 * @return bool Returns true on success, false on failure.
    2727 */
    2828function bbp_add_user_to_object( $object_id = 0, $user_id = 0, $rel_key = '', $rel_type = 'post', $unique = false ) {
     
    3636
    3737/**
    38  * Remove a user id from an object
     38 * Remove a user id from an object.
    3939 *
    4040 * @since 2.6.0 bbPress (r6109)
    4141 *
    42  * @param int    $object_id The object id
    43  * @param int    $user_id   The user id
    44  * @param string $rel_key   The relationship key
    45  * @param string $rel_type  The relationship type (usually 'post')
    46  *
    47  * @return bool Returns true on success, false on failure
     42 * @param int    $object_id The object id.
     43 * @param int    $user_id   The user id.
     44 * @param string $rel_key   The relationship key.
     45 * @param string $rel_type  The relationship type (usually 'post').
     46 *
     47 * @return bool Returns true on success, false on failure.
    4848 */
    4949function bbp_remove_user_from_object( $object_id = 0, $user_id = 0, $rel_key = '', $rel_type = 'post' ) {
     
    5555
    5656/**
    57  * Remove a user id from all objects
     57 * Remove a user id from all objects.
    5858 *
    5959 * @since 2.6.0 bbPress (r6109)
    6060 *
    61  * @param int    $user_id  The user id
    62  * @param string $rel_key  The relationship key
    63  * @param string $rel_type The relationship type (usually 'post')
    64  *
    65  * @return bool Returns true on success, false on failure
     61 * @param int    $user_id  The user id.
     62 * @param string $rel_key  The relationship key.
     63 * @param string $rel_type The relationship type (usually 'post').
     64 *
     65 * @return bool Returns true on success, false on failure.
    6666 */
    6767function bbp_remove_user_from_all_objects( $user_id = 0, $rel_key = '', $rel_type = 'post' ) {
     
    7474
    7575/**
    76  * Remove an object from all users
     76 * Remove an object from all users.
    7777 *
    7878 * @since 2.6.0 bbPress (r6109)
    7979 *
    80  * @param int    $object_id The object id
    81  * @param int    $user_id   The user id
    82  * @param string $rel_key   The relationship key
    83  * @param string $rel_type  The relationship type (usually 'post')
    84  *
    85  * @return bool Returns true on success, false on failure
     80 * @param int    $object_id The object id.
     81 * @param int    $user_id   The user id.
     82 * @param string $rel_key   The relationship key.
     83 * @param string $rel_type  The relationship type (usually 'post').
     84 *
     85 * @return bool Returns true on success, false on failure.
    8686 */
    8787function bbp_remove_object_from_all_users( $object_id = 0, $rel_key = '', $rel_type = 'post' ) {
     
    9494
    9595/**
    96  * Remove all users from all objects
     96 * Remove all users from all objects.
    9797 *
    9898 * @since 2.6.0 bbPress (r6109)
    9999 *
    100  * @param string $rel_key  The relationship key
    101  * @param string $rel_type The relationship type (usually 'post')
    102  *
    103  * @return bool Returns true on success, false on failure
     100 * @param string $rel_key  The relationship key.
     101 * @param string $rel_type The relationship type (usually 'post').
     102 *
     103 * @return bool Returns true on success, false on failure.
    104104 */
    105105function bbp_remove_all_users_from_all_objects( $rel_key = '', $rel_type = 'post' ) {
     
    111111
    112112/**
    113  * Get users of an object
     113 * Get users of an object.
    114114 *
    115115 * @since 2.6.0 bbPress (r6109)
    116116 *
    117  * @param int    $object_id The object id
    118  * @param string $rel_key   The key used to index this relationship
    119  * @param string $rel_type  The type of meta to look in
     117 * @param int    $object_id The object id.
     118 * @param string $rel_key   The key used to index this relationship.
     119 * @param string $rel_type  The type of meta to look in.
    120120 *
    121121 * @return array Returns ids of users
     
    130130
    131131/**
    132  * Check if an object has a specific user
     132 * Check if an object has a specific user.
    133133 *
    134134 * @since 2.6.0 bbPress (r6109)
    135135 *
    136  * @param int    $object_id The object id
    137  * @param int    $user_id   The user id
    138  * @param string $rel_key   The relationship key
    139  * @param string $rel_type  The relationship type (usually 'post')
    140  *
    141  * @return bool Returns true if object has a user, false if not
     136 * @param int    $object_id The object id.
     137 * @param int    $user_id   The user id.
     138 * @param string $rel_key   The relationship key.
     139 * @param string $rel_type  The relationship type (usually 'post').
     140 *
     141 * @return bool Returns true if object has a user, false if not.
    142142 */
    143143function bbp_is_object_of_user( $object_id = 0, $user_id = 0, $rel_key = '', $rel_type = 'post' ) {
     
    152152
    153153/**
    154  * Get the query part responsible for JOINing objects to user IDs
     154 * Get the query part responsible for JOINing objects to user IDs.
    155155 *
    156156 * @since 2.6.0 bbPress (r6747)
    157157 *
    158  * @param array  $args      Default query arguments
    159  * @param string $context   Additional context
    160  * @param string $rel_key   The relationship key
    161  * @param string $rel_type  The relationship type (usually 'post')
     158 * @param array  $args      Default query arguments.
     159 * @param string $context   Additional context.
     160 * @param string $rel_key   The relationship key.
     161 * @param string $rel_type  The relationship type (usually 'post').
    162162 *
    163163 * @return array
     
    173173
    174174/**
    175  * Get the users who have engaged in a topic
     175 * Get the users who have engaged in a topic.
    176176 *
    177177 * @since 2.6.0 bbPress (r6320)
    178178 *
    179  * @param int $topic_id Optional. Topic id
    180  *
    181  * @return array|bool Results if the topic has any engagements, otherwise false
     179 * @param int $topic_id Optional. Topic id.
     180 *
     181 * @return array|bool Results if the topic has any engagements, otherwise false.
    182182 */
    183183function bbp_get_topic_engagements( $topic_id = 0 ) {
     
    190190
    191191/**
    192  * Return the users who have engaged in a topic, directly with a database query
     192 * Return the users who have engaged in a topic, directly with a database query.
    193193 *
    194194 * See: https://bbpress.trac.wordpress.org/ticket/3083
     
    196196 * @since 2.6.0 bbPress (r6522)
    197197 *
    198  * @param int $topic_id
     198 * @param int $topic_id Optional. Topic id.
    199199 *
    200200 * @return array
     
    231231
    232232/**
    233  * Get a user's topic engagements
     233 * Get a user's topic engagements.
    234234 *
    235235 * @since 2.6.0 bbPress (r6320)
    236236 * @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
    237237 *
    238  * @param array $args Optional. Arguments to pass into bbp_has_replies()
    239  *
    240  * @return bool True if user has engaged, otherwise false
     238 * @param array $args Optional. Arguments to pass into bbp_has_replies().
     239 *
     240 * @return bool True if user has engaged, otherwise false.
    241241 */
    242242function bbp_get_user_engagements( $args = array() ) {
     
    249249
    250250/**
    251  * Check if a user is engaged in a topic or not
     251 * Check if a user is engaged in a topic or not.
    252252 *
    253253 * @since 2.6.0 bbPress (r6320)
    254254 *
    255  * @param int $user_id Optional. User id
    256  * @param int $topic_id Optional. Topic id
    257  *
    258  * @return bool True if the topic is in user's engagements, otherwise false
     255 * @param int $user_id Optional. User id.
     256 * @param int $topic_id Optional. Topic id.
     257 *
     258 * @return bool True if the topic is in user's engagements, otherwise false.
    259259 */
    260260function bbp_is_user_engaged( $user_id = 0, $topic_id = 0 ) {
     
    268268
    269269/**
    270  * Add a topic to user's engagements
     270 * Add a topic to user's engagements.
    271271 *
    272272 * Note that both the User and Topic should be verified to exist before using
     
    277277 * @since 2.6.0 bbPress (r6320)
    278278 *
    279  * @param int $user_id Optional. User id
    280  * @param int $topic_id Optional. Topic id
     279 * @param int $user_id Optional. User id.
     280 * @param int $topic_id Optional. Topic id.
    281281 *
    282282 * @return bool Always true
     
    305305
    306306/**
    307  * Remove a topic from user's engagements
     307 * Remove a topic from user's engagements.
    308308 *
    309309 * @since 2.6.0 bbPress (r6320)
    310310 *
    311  * @param int $user_id Optional. User id
    312  * @param int $topic_id Optional. Topic id
     311 * @param int $user_id Optional. User id.
     312 * @param int $topic_id Optional. Topic id.
    313313 *
    314314 * @return bool True if the topic was removed from user's engagements, otherwise
    315  *               false
     315 *               false.
    316316 */
    317317function bbp_remove_user_engagement( $user_id = 0, $topic_id = 0 ) {
     
    348348 * @since 2.6.0 bbPress (r6522)
    349349 *
    350  * @param int  $topic_id
    351  * @param bool $force
     350 * @param int  $topic_id Topic id.
     351 * @param bool $force    Force remove & add, even if old equals new.
    352352 *
    353353 * @return boolean True if any engagements are added, false otherwise
     
    400400 * @since 2.6.0 bbPress (r6526)
    401401 *
    402  * @param int $topic_id
     402 * @param int $topic_id Topic id.
    403403 */
    404404function bbp_update_topic_engagements( $topic_id = 0 ) {
     
    443443
    444444/**
    445  * Get the users who have made the topic favorite
     445 * Get the users who have made the topic favorite.
    446446 *
    447447 * @since 2.0.0 bbPress (r2658)
    448448 *
    449  * @param int $topic_id Optional. Topic id
    450  *
    451  * @return array|bool Results if the topic has any favoriters, otherwise false
     449 * @param int $topic_id Optional. Topic id.
     450 *
     451 * @return array|bool Results if the topic has any favoriters, otherwise false.
    452452 */
    453453function bbp_get_topic_favoriters( $topic_id = 0 ) {
     
    460460
    461461/**
    462  * Get a user's favorite topics
     462 * Get a user's favorite topics.
    463463 *
    464464 * @since 2.0.0 bbPress (r2652)
    465465 * @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
    466466 *
    467  * @param array $args Optional. Arguments to pass into bbp_has_topics()
    468  *
    469  * @return array Array of topics if user has favorites, otherwise empty array
     467 * @param array $args Optional. Arguments to pass into bbp_has_topics().
     468 *
     469 * @return array Array of topics if user has favorites, otherwise empty array.
    470470 */
    471471function bbp_get_user_favorites( $args = array() ) {
     
    480480
    481481/**
    482  * Check if a topic is in user's favorites or not
     482 * Check if a topic is in user's favorites or not.
    483483 *
    484484 * @since 2.0.0 bbPress (r2652)
    485485 *
    486  * @param int $user_id Optional. User id
    487  * @param int $topic_id Optional. Topic id
    488  *
    489  * @return bool True if the topic is in user's favorites, otherwise false
     486 * @param int $user_id Optional. User id.
     487 * @param int $topic_id Optional. Topic id.
     488 *
     489 * @return bool True if the topic is in user's favorites, otherwise false.
    490490 */
    491491function bbp_is_user_favorite( $user_id = 0, $topic_id = 0 ) {
     
    497497
    498498/**
    499  * Add a topic to user's favorites
     499 * Add a topic to user's favorites.
    500500 *
    501501 * Note that both the User and Topic should be verified to exist before using
     
    506506 * @since 2.0.0 bbPress (r2652)
    507507 *
    508  * @param int $user_id Optional. User id
    509  * @param int $topic_id Optional. Topic id
    510  *
    511  * @return bool True if the topic was added to user's favorites, otherwise false
     508 * @param int $user_id Optional. User id.
     509 * @param int $topic_id Optional. Topic id.
     510 *
     511 * @return bool True if the topic was added to user's favorites, otherwise false.
    512512 */
    513513function bbp_add_user_favorite( $user_id = 0, $topic_id = 0 ) {
     
    536536
    537537/**
    538  * Remove a topic from user's favorites
     538 * Remove a topic from user's favorites.
    539539 *
    540540 * @since 2.0.0 bbPress (r2652)
    541541 *
    542  * @param int $user_id Optional. User id
    543  * @param int $topic_id Optional. Topic id
    544  *
    545  * @return bool True if the topic was removed from user's favorites, otherwise false
     542 * @param int $user_id Optional. User id.
     543 * @param int $topic_id Optional. Topic id.
     544 *
     545 * @return bool True if the topic was removed from user's favorites, otherwise false.
    546546 */
    547547function bbp_remove_user_favorite( $user_id, $topic_id ) {
     
    570570
    571571/**
    572  * Handles the front end adding and removing of favorite topics
    573  *
    574  * @param string $action The requested action to compare this function to
     572 * Handles the front end adding and removing of favorite topics.
     573 *
     574 * @since 2.0.0 bbPress (r2652)
     575 *
     576 * @param string $action The requested action to compare this function to.
    575577 */
    576578function bbp_favorites_handler( $action = '' ) {
     
    666668
    667669/**
    668  * Get the users who have subscribed
     670 * Get the users who have subscribed.
    669671 *
    670672 * @since 2.6.0 bbPress (r5156)
    671673 *
    672  * @param int $object_id Optional. ID of object (forum, topic, or something else)
     674 * @param int $object_id Optional. ID of object (forum, topic, or something else).
    673675 */
    674676function bbp_get_subscribers( $object_id = 0, $type = 'post' ) {
     
    680682
    681683/**
    682  * Get a user's subscribed topics
     684 * Get a user's subscribed topics.
    683685 *
    684686 * @since 2.0.0 bbPress (r2668)
    685687 * @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
    686688 *
    687  * @param array $args Optional. Arguments to pass into bbp_has_topics()
    688  *
    689  * @return array Array of topics if user has topic subscriptions, otherwise empty array
     689 * @param array $args Optional. Arguments to pass into bbp_has_topics().
     690 *
     691 * @return array Array of topics if user has topic subscriptions, otherwise empty array.
    690692 */
    691693function bbp_get_user_topic_subscriptions( $args = array() ) {
     
    700702
    701703/**
    702  * Get a user's subscribed forums
     704 * Get a user's subscribed forums.
    703705 *
    704706 * @since 2.5.0 bbPress (r5156)
    705707 * @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
    706708 *
    707  * @param array $args Optional. Arguments to pass into bbp_has_forums()
    708  *
    709  * @return array Array of forums if user has forum subscriptions, otherwise empty array
     709 * @param array $args Optional. Arguments to pass into bbp_has_forums().
     710 *
     711 * @return array Array of forums if user has forum subscriptions, otherwise empty array.
    710712 */
    711713function bbp_get_user_forum_subscriptions( $args = array() ) {
     
    720722
    721723/**
    722  * Check if an object (forum or topic) is in user's subscription list or not
     724 * Check if an object (forum or topic) is in user's subscription list or not.
    723725 *
    724726 * @since 2.5.0 bbPress (r5156)
    725727 *
    726  * @param int $user_id Optional. User id
    727  * @param int $object_id Optional. Object id
    728  *
    729  * @return bool True if the object (forum or topic) is in user's subscriptions, otherwise false
     728 * @param int $user_id Optional. User id.
     729 * @param int $object_id Optional. Object id.
     730 *
     731 * @return bool True if the object (forum or topic) is in user's subscriptions, otherwise false.
    730732 */
    731733function bbp_is_user_subscribed( $user_id = 0, $object_id = 0, $type = 'post' ) {
     
    737739
    738740/**
    739  * Add a user subscription
     741 * Add a user subscription.
    740742 *
    741743 * @since 2.5.0 bbPress (r5156)
    742744 * @since 2.6.0 bbPress (r6544) Added $type parameter
    743745 *
    744  * @param int    $user_id   Optional. User id
    745  * @param int    $object_id Optional. Object id
    746  * @param string $type      Optional. Type of object being subscribed to
    747  *
    748  * @return bool True if the object was added to user subscriptions, otherwise false
     746 * @param int    $user_id   Optional. User id.
     747 * @param int    $object_id Optional. Object id.
     748 * @param string $type      Optional. Type of object being subscribed to.
     749 *
     750 * @return bool True if the object was added to user subscriptions, otherwise false.
    749751 */
    750752function bbp_add_user_subscription( $user_id = 0, $object_id = 0, $type = 'post' ) {
     
    771773
    772774/**
    773  * Remove a user subscription
     775 * Remove a user subscription.
    774776 *
    775777 * @since 2.5.0 bbPress (r5156)
    776778 * @since 2.6.0 bbPress (r6544) Added $type parameter
    777779 *
    778  * @param int    $user_id   Optional. User id
    779  * @param int    $object_id Optional. Object id
    780  * @param string $type      Optional. Type of object being subscribed to
    781  *
    782  * @return bool True if the object was removed from user subscriptions, otherwise false
     780 * @param int    $user_id   Optional. User id.
     781 * @param int    $object_id Optional. Object id.
     782 * @param string $type      Optional. Type of object being subscribed to.
     783 *
     784 * @return bool True if the object was removed from user subscriptions, otherwise false.
    783785 */
    784786function bbp_remove_user_subscription( $user_id = 0, $object_id = 0, $type = 'post' ) {
     
    805807
    806808/**
    807  * Handles the front end toggling of user subscriptions
     809 * Handles the front end toggling of user subscriptions.
    808810 *
    809811 * @since 2.0.0 bbPress (r2790)
    810812 * @since 2.6.l bbPress (r6543)
    811813 *
    812  * @param string $action The requested action to compare this function to
     814 * @param string $action The requested action to compare this function to.
    813815 */
    814816function bbp_subscriptions_handler( $action = '' ) {
     
    924926 * @since 2.6.0 bbPress (r6606)
    925927 *
    926  * @param int    $user_id   The user id
    927  * @param string $rel_key   The relationship key
    928  * @param string $rel_type  The relationship type (usually 'post')
    929  * @param array  $args      The arguments to override defaults
    930  *
    931  * @return array|bool Results if user has objects, otherwise null
     928 * @param int    $user_id   The user id.
     929 * @param string $rel_key   The relationship key.
     930 * @param string $rel_type  The relationship type (usually 'post').
     931 * @param array  $args      The arguments to override defaults.
     932 *
     933 * @return array|bool Results if user has objects, otherwise null.
    932934 */
    933935function bbp_get_user_object_ids( $args = array() ) {
     
    992994
    993995/**
    994  * Get array of forum IDs that a user can moderate
     996 * Get array of forum IDs that a user can moderate.
    995997 *
    996998 * @since 2.6.0 bbPress (r5834)
     
    9981000 * @param int $user_id User id.
    9991001 *
    1000  * @return array Return array of forum ids, or empty array
     1002 * @return array Return array of forum ids, or empty array.
    10011003 */
    10021004function bbp_get_moderator_forum_ids( $user_id = 0 ) {
     
    10121014
    10131015/**
    1014  * Get a user's engaged topic ids
     1016 * Get a user's engaged topic ids.
    10151017 *
    10161018 * @since 2.6.0 bbPress (r6320)
    10171019 *
    1018  * @param int $user_id Optional. User id
    1019  *
    1020  * @return array Return array of topic ids, or empty array
     1020 * @param int $user_id Optional. User id.
     1021 *
     1022 * @return array Return array of topic ids, or empty array.
    10211023 */
    10221024function bbp_get_user_engaged_topic_ids( $user_id = 0 ) {
     
    10311033
    10321034/**
    1033  * Get a user's favorite topic ids
     1035 * Get a user's favorite topic ids.
    10341036 *
    10351037 * @since 2.0.0 bbPress (r2652)
    10361038 *
    1037  * @param int $user_id Optional. User id
    1038  *
    1039  * @return array Return array of favorite topic ids, or empty array
     1039 * @param int $user_id Optional. User id.
     1040 *
     1041 * @return array Return array of favorite topic ids, or empty array.
    10401042 */
    10411043function bbp_get_user_favorites_topic_ids( $user_id = 0 ) {
     
    10501052
    10511053/**
    1052  * Get a user's subscribed forum ids
     1054 * Get a user's subscribed forum ids.
    10531055 *
    10541056 * @since 2.5.0 bbPress (r5156)
    10551057 *
    1056  * @param int $user_id Optional. User id
    1057  *
    1058  * @return array Return array of subscribed forum ids, or empty array
     1058 * @param int $user_id Optional. User id.
     1059 *
     1060 * @return array Return array of subscribed forum ids, or empty array.
    10591061 */
    10601062function bbp_get_user_subscribed_forum_ids( $user_id = 0 ) {
     
    10701072
    10711073/**
    1072  * Get a user's subscribed topic ids
     1074 * Get a user's subscribed topic ids.
    10731075 *
    10741076 * @since 2.0.0 bbPress (r2668)
    10751077 *
    1076  * @param int $user_id Optional. User id
    1077  *
    1078  * @return array Return array of subscribed topic ids, or empty array
     1078 * @param int $user_id Optional. User id.
     1079 *
     1080 * @return array Return array of subscribed topic ids, or empty array.
    10791081 */
    10801082function bbp_get_user_subscribed_topic_ids( $user_id = 0 ) {
     
    10911093
    10921094/**
    1093  * Get a user's subscribed topics
     1095 * Get a user's subscribed topics.
    10941096 *
    10951097 * @since 2.0.0 bbPress (r2668)
    10961098 * @deprecated 2.5.0 bbPress (r5156)
    10971099 *
    1098  * @param int $user_id Optional. User id
    1099  *
    1100  * @return array|bool Results if user has subscriptions, otherwise false
     1100 * @param int $user_id Optional. User id.
     1101 *
     1102 * @return array|bool Results if user has subscriptions, otherwise false.
    11011103 */
    11021104function bbp_get_user_subscriptions( $user_id = 0 ) {
     
    11091111
    11101112/**
    1111  * Get the users who have subscribed to the forum
     1113 * Get the users who have subscribed to the forum.
    11121114 *
    11131115 * @since 2.5.0 bbPress (r5156)
    11141116 * @deprecated 2.6.0 bbPress (r6543)
    11151117 *
    1116  * @param int $forum_id Optional. forum id
    1117  *
    1118  * @return array|bool Results if the forum has any subscribers, otherwise false
     1118 * @param int $forum_id Optional. forum id.
     1119 *
     1120 * @return array|bool Results if the forum has any subscribers, otherwise false.
    11191121 */
    11201122function bbp_get_forum_subscribers( $forum_id = 0 ) {
     
    11261128
    11271129/**
    1128  * Get the users who have subscribed to the topic
     1130 * Get the users who have subscribed to the topic.
    11291131 *
    11301132 * @since 2.0.0 bbPress (r2668)
    11311133 * @deprecated 2.6.0 bbPress (r6543)
    11321134 *
    1133  * @param int $topic_id Optional. Topic id
    1134  *
    1135  * @return array|bool Results if the topic has any subscribers, otherwise false
     1135 * @param int $topic_id Optional. Topic id.
     1136 *
     1137 * @return array|bool Results if the topic has any subscribers, otherwise false.
    11361138 */
    11371139function bbp_get_topic_subscribers( $topic_id = 0 ) {
     
    11431145
    11441146/**
    1145  * Check if a forum is in user's subscription list or not
     1147 * Check if a forum is in user's subscription list or not.
    11461148 *
    11471149 * @since 2.5.0 bbPress (r5156)
    11481150 * @deprecated 2.6.0 bbPress (r6543)
    11491151 *
    1150  * @param int $user_id  Optional. User id
    1151  * @param int $forum_id Optional. Forum id
    1152  *
    1153  * @return bool True if the forum is in user's subscriptions, otherwise false
     1152 * @param int $user_id  Optional. User id.
     1153 * @param int $forum_id Optional. Forum id.
     1154 *
     1155 * @return bool True if the forum is in user's subscriptions, otherwise false.
    11541156 */
    11551157function bbp_is_user_subscribed_to_forum( $user_id = 0, $forum_id = 0 ) {
     
    11581160
    11591161/**
    1160  * Check if a topic is in user's subscription list or not
     1162 * Check if a topic is in user's subscription list or not.
    11611163 *
    11621164 * @since 2.5.0 bbPress (r5156)
    11631165 * @deprecated 2.6.0 bbPress (r6543) Use bbp_is_user_subscribed()
    11641166 *
    1165  * @param int $user_id Optional. User id
    1166  * @param int $topic_id Optional. Topic id
    1167  * @return bool True if the topic is in user's subscriptions, otherwise false
     1167 * @param int $user_id Optional. User id.
     1168 * @param int $topic_id Optional. Topic id.
     1169 * @return bool True if the topic is in user's subscriptions, otherwise false.
    11681170 */
    11691171function bbp_is_user_subscribed_to_topic( $user_id = 0, $topic_id = 0 ) {
     
    11721174
    11731175/**
    1174  * Remove a forum from user's subscriptions
     1176 * Remove a forum from user's subscriptions.
    11751177 *
    11761178 * @since 2.5.0 bbPress (r5156)
    11771179 * @deprecated 2.6.0 bbPress (r6543)
    11781180 *
    1179  * @param int $user_id Optional. User id
    1180  * @param int $forum_id Optional. forum id
     1181 * @param int $user_id Optional. User id.
     1182 * @param int $forum_id Optional. forum id.
    11811183 * @return bool True if the forum was removed from user's subscriptions,
    1182  *               otherwise false
     1184 *               otherwise false.
    11831185 */
    11841186function bbp_remove_user_forum_subscription( $user_id = 0, $forum_id = 0 ) {
     
    11871189
    11881190/**
    1189  * Remove a topic from user's subscriptions
     1191 * Remove a topic from user's subscriptions.
    11901192 *
    11911193 * @since 2.5.0 bbPress (r5156)
    11921194 * @deprecated 2.6.0 bbPress (r6543)
    11931195 *
    1194  * @param int $user_id Optional. User id
    1195  * @param int $topic_id Optional. Topic id
     1196 * @param int $user_id Optional. User id.
     1197 * @param int $topic_id Optional. Topic id.
    11961198 * @return bool True if the topic was removed from user's subscriptions,
    1197  *               otherwise false
     1199 *               otherwise false.
    11981200 */
    11991201function bbp_remove_user_topic_subscription( $user_id = 0, $topic_id = 0 ) {
     
    12021204
    12031205/**
    1204  * Add a forum to user's subscriptions
     1206 * Add a forum to user's subscriptions.
    12051207 *
    12061208 * @since 2.5.0 bbPress (r5156)
    12071209 * @deprecated 2.6.0 bbPress (r6543)
    12081210 *
    1209  * @param int $user_id Optional. User id
    1210  * @param int $forum_id Optional. forum id
    1211  * @return bool Always true
     1211 * @param int $user_id Optional. User id.
     1212 * @param int $forum_id Optional. forum id.
     1213 * @return bool Always true.
    12121214 */
    12131215function bbp_add_user_forum_subscription( $user_id = 0, $forum_id = 0 ) {
     
    12161218
    12171219/**
    1218  * Add a topic to user's subscriptions
     1220 * Add a topic to user's subscriptions.
    12191221 *
    12201222 * Note that both the User and Topic should be verified to exist before using
     
    12261228 * @deprecated 2.6.0 bbPress (r6543)
    12271229 *
    1228  * @param int $user_id Optional. User id
    1229  * @param int $topic_id Optional. Topic id
    1230  * @return bool Always true
     1230 * @param int $user_id Optional. User id.
     1231 * @param int $topic_id Optional. Topic id.
     1232 * @return bool Always true.
    12311233 */
    12321234function bbp_add_user_topic_subscription( $user_id = 0, $topic_id = 0 ) {
     
    12351237
    12361238/**
    1237  * Handles the front end toggling of forum subscriptions
     1239 * Handles the front end toggling of forum subscriptions.
    12381240 *
    12391241 * @since 2.5.0 bbPress (r5156)
  • trunk/src/includes/users/functions.php

    r7378 r7380  
    22
    33/**
    4  * bbPress User Functions
     4 * bbPress User Functions.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Redirect back to $url when attempting to use the login page
     14 * Redirect back to $url when attempting to use the login page.
    1515 *
    1616 * @since 2.0.0 bbPress (r2815)
    1717 *
    18  * @param string $url The url
    19  * @param string $raw_url Raw url
    20  * @param object $user User object
     18 * @param string $url The url.
     19 * @param string $raw_url Raw url.
     20 * @param object $user User object.
    2121 */
    2222function bbp_redirect_login( $url = '', $raw_url = '', $user = '' ) {
     
    4545 *
    4646 * @return bool True if anonymous is allowed and user is not logged in, false if
    47  *               anonymous is not allowed or user is logged in
     47 *               anonymous is not allowed or user is logged in.
    4848 */
    4949function bbp_is_anonymous() {
     
    5555
    5656/**
    57  * Echoes the values for current poster (uses WP comment cookies)
     57 * Echoes the values for current poster (uses WP comment cookies).
    5858 *
    5959 * @since 2.0.0 bbPress (r2734)
     
    6565}
    6666
    67     /**
    68     * Get the cookies for current poster (uses WP comment cookies).
    69     *
    70     * @since 2.0.0 bbPress (r2734)
    71     *
    72     * @param string $key Optional. Which value to get? If not given, then
    73     *                     an array is returned.
    74      * @return string|array Cookie(s) for current poster
    75     */
    76     function bbp_get_current_anonymous_user_data( $key = '' ) {
    77 
    78         // Array of allowed cookie names
    79         $cookie_names = array(
    80             'name'  => 'comment_author',
    81             'email' => 'comment_author_email',
    82             'url'   => 'comment_author_url',
    83 
    84             // Here just for the sake of them, use the above ones
    85             'comment_author'       => 'comment_author',
    86             'comment_author_email' => 'comment_author_email',
    87             'comment_author_url'   => 'comment_author_url',
    88         );
    89 
    90         // Get the current poster's info from the cookies
    91         $bbp_current_poster = wp_get_current_commenter();
    92 
    93         // Sanitize the cookie key being retrieved
    94         $key = sanitize_key( $key );
    95 
    96         // Maybe return a specific key
    97         if ( ! empty( $key ) && in_array( $key, array_keys( $cookie_names ), true ) ) {
    98             return $bbp_current_poster[ $cookie_names[ $key ] ];
    99         }
    100 
    101         // Return all keys
    102         return $bbp_current_poster;
    103     }
    104 
    105 /**
    106  * Set the cookies for current poster (uses WP comment cookies)
     67/**
     68 * Get the cookies for current poster (uses WP comment cookies).
     69 *
     70 * @since 2.0.0 bbPress (r2734)
     71 *
     72 * @param string $key Optional. Which value to get? If not given, then
     73 *                     an array is returned.
     74 * @return string|array Cookie(s) for current poster.
     75 */
     76function bbp_get_current_anonymous_user_data( $key = '' ) {
     77
     78    // Array of allowed cookie names
     79    $cookie_names = array(
     80        'name'  => 'comment_author',
     81        'email' => 'comment_author_email',
     82        'url'   => 'comment_author_url',
     83
     84        // Here just for the sake of them, use the above ones
     85        'comment_author'       => 'comment_author',
     86        'comment_author_email' => 'comment_author_email',
     87        'comment_author_url'   => 'comment_author_url',
     88    );
     89
     90    // Get the current poster's info from the cookies
     91    $bbp_current_poster = wp_get_current_commenter();
     92
     93    // Sanitize the cookie key being retrieved
     94    $key = sanitize_key( $key );
     95
     96    // Maybe return a specific key
     97    if ( ! empty( $key ) && in_array( $key, array_keys( $cookie_names ), true ) ) {
     98        return $bbp_current_poster[ $cookie_names[ $key ] ];
     99    }
     100
     101    // Return all keys
     102    return $bbp_current_poster;
     103}
     104
     105/**
     106 * Set the cookies for current poster (uses WP comment cookies).
    107107 *
    108108 * @since 2.0.0 bbPress (r2734)
     
    110110 * @param array $anonymous_data Optional - if it's an anonymous post. Do not
    111111 *                              supply if supplying $author_id. Should be
    112  *                              sanitized (see {@link bbp_filter_anonymous_post_data()}
     112 *                              sanitized (see {@link bbp_filter_anonymous_post_data()}.
    113113 */
    114114function bbp_set_current_anonymous_user_data( $anonymous_data = array() ) {
     
    131131
    132132/**
    133  * Get the poster IP address
     133 * Get the poster IP address.
    134134 *
    135135 * @since 2.0.0 bbPress (r3120)
     
    153153
    154154/**
    155  * Get the poster user agent
     155 * Get the poster user agent.
    156156 *
    157157 * @since 2.0.0 bbPress (r3446)
     
    171171
    172172/**
    173  * Handles the front end user editing from POST requests
     173 * Handles the front end user editing from POST requests.
    174174 *
    175175 * @since 2.0.0 bbPress (r2790)
    176176 *
    177  * @param string $action The requested action to compare this function to
     177 * @param string $action The requested action to compare this function to.
    178178 */
    179179function bbp_edit_user_handler( $action = '' ) {
     
    288288
    289289/**
    290  * Handles user email address updating from GET requests
     290 * Handles user email address updating from GET requests.
    291291 *
    292292 * @since 2.6.0 bbPress (r5660)
     
    388388
    389389/**
    390  * Sends an email when an email address change occurs on POST requests
     390 * Sends an email when an email address change occurs on POST requests.
    391391 *
    392392 * @since 2.6.0 bbPress (r5660)
     
    470470/**
    471471 * Conditionally hook the core WordPress output actions to the end of the
    472  * default user's edit profile template
     472 * default user's edit profile template.
    473473 *
    474474 * This allows clever plugin authors to conditionally unhook the WordPress core
     
    487487
    488488/**
    489  * Get the topics that a user created
     489 * Get the topics that a user created.
    490490 *
    491491 * @since 2.0.0 bbPress (r2660)
    492492 * @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
    493493 *
    494  * @param array $args    Optional. Arguments to pass into bbp_has_topics()
    495  *
    496  * @return bool True if user has started topics, otherwise false
     494 * @param array $args    Optional. Arguments to pass into bbp_has_topics().
     495 *
     496 * @return bool True if user has started topics, otherwise false.
    497497 */
    498498function bbp_get_user_topics_started( $args = array() ) {
     
    522522
    523523/**
    524  * Get the replies that a user created
     524 * Get the replies that a user created.
    525525 *
    526526 * @since 2.2.0 bbPress (r4225)
    527527 * @since 2.6.0 bbPress (r6618) Signature changed to accept an array of arguments
    528528 *
    529  * @param array $args Optional. Arguments to pass into bbp_has_replies()
    530  *
    531  * @return bool True if user has created replies, otherwise false
     529 * @param array $args Optional. Arguments to pass into bbp_has_replies().
     530 *
     531 * @return bool True if user has created replies, otherwise false.
    532532 */
    533533function bbp_get_user_replies_created( $args = array() ) {
     
    561561
    562562/**
    563  * Get user IDs from nicenames
    564  *
    565  * This function is primarily used when saving object moderators
     563 * Get user IDs from nicenames.
     564 *
     565 * This function is primarily used when saving object moderators.
    566566 *
    567567 * @since 2.6.0 bbPress
     
    604604
    605605/**
    606  * Get user nicenames from IDs
    607  *
    608  * This function is primarily used when saving object moderators
     606 * Get user nicenames from IDs.
     607 *
     608 * This function is primarily used when saving object moderators.
    609609 *
    610610 * @since 2.6.0 bbPress
    611611 *
    612  * @param mixed $user_ids
     612 * @param mixed $user_ids User ids.
    613613 * @return array
    614614 */
     
    641641
    642642/**
    643  * Return the raw database count of topics by a user
     643 * Return the raw database count of topics by a user.
    644644 *
    645645 * @since 2.1.0 bbPress (r3633)
    646646 *
    647  * @param int $user_id User ID to get count for
    648  *
    649  * @return int Raw DB count of topics
     647 * @param int $user_id User ID to get count for.
     648 *
     649 * @return int Raw DB count of topics.
    650650 */
    651651function bbp_get_user_topic_count_raw( $user_id = 0 ) {
     
    667667
    668668/**
    669  * Return the raw database count of replies by a user
     669 * Return the raw database count of replies by a user.
    670670 *
    671671 * @since 2.1.0 bbPress (r3633)
    672672 *
    673  * @param int $user_id User ID to get count for
    674  *
    675  * @return int Raw DB count of replies
     673 * @param int $user_id User ID to get count for.
     674 *
     675 * @return int Raw DB count of replies.
    676676 */
    677677function bbp_get_user_reply_count_raw( $user_id = 0 ) {
     
    697697 * @since 2.6.0 bbPress (r5309)
    698698 *
    699  * @param int $user_id
    700  * @param int $difference
     699 * @param int $user_id    User id.
     700 * @param int $difference Optional. Default 1. Number to bump.
    701701 */
    702702function bbp_bump_user_topic_count( $user_id = 0, $difference = 1 ) {
     
    733733 * @since 2.6.0 bbPress (r5309)
    734734 *
    735  * @param int $user_id
    736  * @param int $difference
     735 * @param int $user_id    User id.
     736 * @param int $difference Optional. Default 1. Number to bump.
    737737 */
    738738function bbp_bump_user_reply_count( $user_id = 0, $difference = 1 ) {
     
    785785 * a reply is published.
    786786 *
    787  * This is a helper function, hooked to `bbp_new_reply`
     787 * This is a helper function, hooked to `bbp_new_reply`.
    788788 *
    789789 * @since 2.6.0 bbPress (r5309)
     
    828828
    829829/**
    830  * Redirect if unauthorized user is attempting to edit another user
     830 * Redirect if unauthorized user is attempting to edit another user.
    831831 *
    832832 * This is hooked to 'bbp_template_redirect' and controls the conditions under
  • trunk/src/includes/users/options.php

    r7378 r7380  
    22
    33/**
    4  * bbPress User Options
     4 * bbPress User Options.
    55 *
    66 * @package bbPress
     
    1212
    1313/**
    14  * Get the default user options and their values
    15  *
    16  * @since 2.1.0 bbPress (r3910)
    17  *
    18  * @return array Filtered user option names and values
     14 * Get the default user options and their values.
     15 *
     16 * @since 2.1.0 bbPress (r3910)
     17 *
     18 * @return array Filtered user option names and values.
    1919 */
    2020function bbp_get_default_user_options() {
     
    3232
    3333/**
    34  * Add default user options
     34 * Add default user options.
    3535 *
    3636 * This is destructive, so existing bbPress user options will be overridden.
     
    5656
    5757/**
    58  * Delete default user options
     58 * Delete default user options.
    5959 *
    6060 * Hooked to bbp_uninstall, it is only called once when bbPress is uninstalled.
     
    103103 * @since 2.1.0 bbPress (r3910)
    104104 *
    105  * @param bool $value Optional. Default value false
    106  * @return mixed false if not overloaded, mixed if set
     105 * @param bool $value Optional. Default value false.
     106 * @return mixed false if not overloaded, mixed if set.
    107107 */
    108108function bbp_filter_get_user_option( $value = false, $option = '', $user = 0 ) {
     
    121121
    122122/**
    123  * Update the topic count for a user
     123 * Update the topic count for a user.
    124124 *
    125125 * @since 2.6.0 bbPress (r5309)
     
    150150
    151151/**
    152  * Update the reply count for a user
     152 * Update the reply count for a user.
    153153 *
    154154 * @since 2.6.0 bbPress (r5309)
    155155 *
    156  * @param int $user_id
     156 * @param int $user_id User id.
    157157 * @param mixed $count
    158158 * @return boolean
     
    179179
    180180/**
    181  * Output a users topic count
    182  *
    183  * @since 2.1.0 bbPress (r3632)
    184  *
    185  * @param int $user_id
    186  * @param boolean $integer Optional. Whether or not to format the result
     181 * Output a users topic count.
     182 *
     183 * @since 2.1.0 bbPress (r3632)
     184 *
     185 * @param int $user_id User id.
     186 * @param boolean $integer Optional. Whether or not to format the result.
    187187 *
    188188 * @return string
     
    191191    echo esc_html( bbp_get_user_topic_count( $user_id, $integer ) );
    192192}
    193     /**
    194      * Return a users reply count
    195      *
    196      * @since 2.1.0 bbPress (r3632)
    197      *
    198      * @param int $user_id
    199      * @param boolean $integer Optional. Whether or not to format the result
    200      *
    201      * @return string
    202      */
    203     function bbp_get_user_topic_count( $user_id = 0, $integer = false ) {
    204 
    205         // Validate user id
    206         $user_id = bbp_get_user_id( $user_id );
    207         if ( empty( $user_id ) ) {
    208             return false;
    209         }
    210 
    211         $count  = get_user_option( '_bbp_topic_count', $user_id );
    212         $filter = ( true === $integer )
    213             ? 'bbp_get_user_topic_count_int'
    214             : 'bbp_get_user_topic_count';
    215 
    216         // Filter & return
    217         return apply_filters( $filter, $count, $user_id );
    218     }
    219 
    220 /**
    221  * Output a users reply count
    222  *
    223  * @since 2.1.0 bbPress (r3632)
    224  *
    225  * @param int $user_id
    226  * @param boolean $integer Optional. Whether or not to format the result
     193
     194/**
     195 * Return a users reply count.
     196 *
     197 * @since 2.1.0 bbPress (r3632)
     198 *
     199 * @param int $user_id User id.
     200 * @param boolean $integer Optional. Whether or not to format the result.
     201 *
     202 * @return string
     203 */
     204function bbp_get_user_topic_count( $user_id = 0, $integer = false ) {
     205
     206    // Validate user id
     207    $user_id = bbp_get_user_id( $user_id );
     208    if ( empty( $user_id ) ) {
     209        return false;
     210    }
     211
     212    $count  = get_user_option( '_bbp_topic_count', $user_id );
     213    $filter = ( true === $integer )
     214        ? 'bbp_get_user_topic_count_int'
     215        : 'bbp_get_user_topic_count';
     216
     217    // Filter & return
     218    return apply_filters( $filter, $count, $user_id );
     219}
     220
     221/**
     222 * Output a users reply count.
     223 *
     224 * @since 2.1.0 bbPress (r3632)
     225 *
     226 * @param int $user_id User id.
     227 * @param boolean $integer Optional. Whether or not to format the result.
    227228 *
    228229 * @return string
     
    231232    echo esc_html( bbp_get_user_reply_count( $user_id, $integer ) );
    232233}
    233     /**
    234      * Return a users reply count
    235      *
    236      * @since 2.1.0 bbPress (r3632)
    237      *
    238      * @param int $user_id
    239      * @param boolean $integer Optional. Whether or not to format the result
    240      *
    241      * @return string
    242      */
    243     function bbp_get_user_reply_count( $user_id = 0, $integer = false ) {
    244 
    245         // Validate user id
    246         $user_id = bbp_get_user_id( $user_id );
    247         if ( empty( $user_id ) ) {
    248             return false;
    249         }
    250 
    251         $count  = get_user_option( '_bbp_reply_count', $user_id );
    252         $filter = ( true === $integer )
    253             ? 'bbp_get_user_reply_count_int'
    254             : 'bbp_get_user_reply_count';
    255 
    256         return apply_filters( $filter, $count, $user_id );
    257     }
    258 
    259 /**
    260  * Output a users total post count
    261  *
    262  * @since 2.1.0 bbPress (r3632)
    263  *
    264  * @param int $user_id
     234
     235/**
     236 * Return a users reply count.
     237 *
     238 * @since 2.1.0 bbPress (r3632)
     239 *
     240 * @param int $user_id User id.
     241 * @param boolean $integer Optional. Whether or not to format the result.
     242 *
     243 * @return string
     244 */
     245function bbp_get_user_reply_count( $user_id = 0, $integer = false ) {
     246
     247    // Validate user id
     248    $user_id = bbp_get_user_id( $user_id );
     249    if ( empty( $user_id ) ) {
     250        return false;
     251    }
     252
     253    $count  = get_user_option( '_bbp_reply_count', $user_id );
     254    $filter = ( true === $integer )
     255        ? 'bbp_get_user_reply_count_int'
     256        : 'bbp_get_user_reply_count';
     257
     258    return apply_filters( $filter, $count, $user_id );
     259}
     260
     261/**
     262 * Output a users total post count.
     263 *
     264 * @since 2.1.0 bbPress (r3632)
     265 *
     266 * @param int $user_id User id.
    265267 * @param boolean $integer Optional. Whether or not to format the result
    266268 *
     
    270272    echo esc_html( bbp_get_user_post_count( $user_id, $integer ) );
    271273}
    272     /**
    273      * Return a users total post count
    274      *
    275      * @since 2.1.0 bbPress (r3632)
    276      *
    277      * @param int $user_id
    278      * @param boolean $integer Optional. Whether or not to format the result
    279      *
    280      * @return string
    281      */
    282     function bbp_get_user_post_count( $user_id = 0, $integer = false ) {
    283 
    284         // Validate user id
    285         $user_id = bbp_get_user_id( $user_id );
    286         if ( empty( $user_id ) ) {
    287             return false;
    288         }
    289 
    290         $topics  = bbp_get_user_topic_count( $user_id, true );
    291         $replies = bbp_get_user_reply_count( $user_id, true );
    292         $count   = $topics + $replies;
    293         $filter  = ( true === $integer )
    294             ? 'bbp_get_user_post_count_int'
    295             : 'bbp_get_user_post_count';
    296 
    297         return apply_filters( $filter, $count, $user_id );
    298     }
     274
     275/**
     276 * Return a users total post count.
     277 *
     278 * @since 2.1.0 bbPress (r3632)
     279 *
     280 * @param int $user_id User id.
     281 * @param boolean $integer Optional. Whether or not to format the result.
     282 *
     283 * @return string
     284 */
     285function bbp_get_user_post_count( $user_id = 0, $integer = false ) {
     286
     287    // Validate user id
     288    $user_id = bbp_get_user_id( $user_id );
     289    if ( empty( $user_id ) ) {
     290        return false;
     291    }
     292
     293    $topics  = bbp_get_user_topic_count( $user_id, true );
     294    $replies = bbp_get_user_reply_count( $user_id, true );
     295    $count   = $topics + $replies;
     296    $filter  = ( true === $integer )
     297        ? 'bbp_get_user_post_count_int'
     298        : 'bbp_get_user_post_count';
     299
     300    return apply_filters( $filter, $count, $user_id );
     301}
    299302
    300303/** Last Posted ***************************************************************/
    301304
    302305/**
    303  * Update a users last posted time, for use with post throttling
    304  *
    305  * @since 2.1.0 bbPress (r3910)
    306  *
    307  * @param int $user_id User ID to update
    308  * @param int $time Time in time() format
    309  * @return bool False if no user or failure, true if successful
     306 * Update a users last posted time, for use with post throttling.
     307 *
     308 * @since 2.1.0 bbPress (r3910)
     309 *
     310 * @param int $user_id User ID to update.
     311 * @param int $time Time in time() format.
     312 * @return bool False if no user or failure, true if successful.
    310313 */
    311314function bbp_update_user_last_posted( $user_id = 0, $time = 0 ) {
     
    330333 * @since 2.1.0 bbPress (r3910)
    331334 *
    332  * @param int $user_id User ID to retrieve value for
     335 * @param int $user_id User ID to retrieve value for.
    333336 */
    334337function bbp_user_last_posted( $user_id = 0 ) {
     
    336339}
    337340
    338     /**
    339     * Return the raw value of the last posted time.
    340     *
    341     * @since 2.1.0 bbPress (r3910)
    342     *
    343      * @param int $user_id User ID to retrieve value for
    344      * @return mixed False if no user, time() format if exists
    345     */
    346     function bbp_get_user_last_posted( $user_id = 0 ) {
    347 
    348         // Validate user id
    349         $user_id = bbp_get_user_id( $user_id );
    350         if ( empty( $user_id ) ) {
    351             return false;
    352         }
    353 
    354         $time = get_user_option( '_bbp_last_posted', $user_id );
    355 
    356         // Filter & return
    357         return apply_filters( 'bbp_get_user_last_posted', $time, $user_id );
    358     }
     341/**
     342 * Return the raw value of the last posted time.
     343 *
     344 * @since 2.1.0 bbPress (r3910)
     345 *
     346 * @param int $user_id User ID to retrieve value for.
     347 * @return mixed False if no user, time() format if exists.
     348 */
     349function bbp_get_user_last_posted( $user_id = 0 ) {
     350
     351    // Validate user id
     352    $user_id = bbp_get_user_id( $user_id );
     353    if ( empty( $user_id ) ) {
     354        return false;
     355    }
     356
     357    $time = get_user_option( '_bbp_last_posted', $user_id );
     358
     359    // Filter & return
     360    return apply_filters( 'bbp_get_user_last_posted', $time, $user_id );
     361}
  • trunk/src/includes/users/signups.php

    r7361 r7380  
    1515
    1616/**
    17  * Output the forum-role field when adding a new user
     17 * Output the forum-role field when adding a new user.
    1818 *
    1919 * @since 2.6.0 bbPress (r6674)
     
    6161
    6262/**
    63  * Maybe add forum role to signup meta array
    64  *
    65  * @since 2.6.0 bbPress (r6674)
    66  *
    67  * @param array $meta
     63 * Maybe add forum role to signup meta array.
     64 *
     65 * @since 2.6.0 bbPress (r6674)
     66 *
     67 * @param array $meta The signup meta.
    6868 *
    6969 * @return array
     
    9797
    9898/**
    99  * Add forum meta data when inviting a user to a site
     99 * Add forum meta data when inviting a user to a site.
    100100 *
    101101 * @since 2.6.0 bbPress (r6674)
     
    141141
    142142/**
    143  * Single-site handler for adding a new user
    144  *
    145  * @since 2.6.0 bbPress (r6674)
    146  *
    147  * @param int $user_id
     143 * Single-site handler for adding a new user.
     144 *
     145 * @since 2.6.0 bbPress (r6674)
     146 *
     147* @param int $user_id The user ID.
    148148 *
    149149 * @return void
     
    169169
    170170/**
    171  * Multi-site handler for adding a new user
    172  *
    173  * @since 2.6.0 bbPress (r6674)
    174  *
    175  * @param int    $user_id  User ID
    176  * @param string $password User password
    177  * @param array  $meta     Array of metadata
     171 * Multi-site handler for adding a new user.
     172 *
     173 * @since 2.6.0 bbPress (r6674)
     174 *
     175 * @param int    $user_id  User ID.
     176 * @param string $password User password.
     177 * @param array  $meta     Array of metadata.
    178178 *
    179179 * @return void
     
    210210 * @since 2.6.5
    211211 *
    212  * @param string $to_validate A role ID to validate
    213  *
    214  * @return string A valid role ID, or empty string on error
     212 * @param string $to_validate A role ID to validate.
     213 *
     214 * @return string A valid role ID, or empty string on error.
    215215 */
    216216function bbp_validate_signup_role( $to_validate = '' ) {
     
    246246
    247247/**
    248  * Validate the Forum role during the registration process
     248 * Validate the Forum role during the registration process.
    249249 *
    250250 * @since 2.6.5
    251251 *
    252  * @param string $to_validate A role ID to validate
    253  *
    254  * @return string A valid role ID, or empty string on error
     252 * @param string $to_validate A role ID to validate.
     253 *
     254 * @return string A valid role ID, or empty string on error.
    255255 */
    256256function bbp_validate_registration_role( $to_validate = '' ) {
     
    273273
    274274/**
    275  * Validate the Forum role during multisite activation
     275 * Validate the Forum role during multisite activation.
    276276 *
    277277 * This function exists simply for parity with registrations, and to maintain an
     
    283283 * @since 2.6.5
    284284 *
    285  * @param string $to_validate A role ID to validate
    286  *
    287  * @return string A valid role ID, or empty string on error
     285 * @param string $to_validate A role ID to validate.
     286 *
     287 * @return string A valid role ID, or empty string on error.
    288288 */
    289289function bbp_validate_activation_role( $to_validate = '' ) {
  • trunk/src/includes/users/template.php

    r7378 r7380  
    22
    33/**
    4  * bbPress User Template Tags
     4 * bbPress User Template Tags.
    55 *
    66 * @package bbPress
     
    1414
    1515/**
    16  * Extension of WP_User_Query to allow easy looping
     16 * Extension of WP_User_Query to allow easy looping.
    1717 *
    1818 * @since 2.6.0 bbPress (r6330)
     
    169169 * @since 2.6.0 bbPress (r6330)
    170170 *
    171  * @param array $args All the arguments supported by {@link WP_User_Query}
    172  * @return object Multidimensional array of user information
     171 * @param array $args All the arguments supported by {@link WP_User_Query}.
     172 * @return object Multidimensional array of user information.
    173173 */
    174174function bbp_has_users( $args = array() ) {
     
    196196
    197197/**
    198  * Whether there are more users available in the loop
     198 * Whether there are more users available in the loop.
    199199 *
    200200 * @since 2.6.0 bbPress (r2464)
    201201 *
    202  * @return object User information
     202 * @return object User information.
    203203 */
    204204function bbp_users() {
     
    207207
    208208/**
    209  * Loads up the current user in the loop
     209 * Loads up the current user in the loop.
    210210 *
    211211 * @since 2.6.0 bbPress (r2464)
    212212 *
    213  * @return object User information
     213 * @return object User information.
    214214 */
    215215function bbp_the_user() {
     
    220220
    221221/**
    222  * Output a validated user id
     222 * Output a validated user id.
    223223 *
    224224 * @since 2.0.0 bbPress (r2729)
    225225 *
    226  * @param int $user_id Optional. User id
     226 * @param int $user_id Optional. User id.
    227227 * @param bool $displayed_user_fallback Fallback on displayed user?
    228228 * @param bool $current_user_fallback Fallback on current user?
     
    231231    echo bbp_get_user_id( $user_id, $displayed_user_fallback, $current_user_fallback );
    232232}
    233     /**
    234      * Return a validated user id
    235      *
    236      * @since 2.0.0 bbPress (r2729)
    237      *
    238      * @param int $user_id Optional. User id
    239      * @param bool $displayed_user_fallback Fallback on displayed user?
    240      * @param bool $current_user_fallback Fallback on current user?
    241      * @return int Validated user id
    242      */
    243     function bbp_get_user_id( $user_id = 0, $displayed_user_fallback = true, $current_user_fallback = false ) {
    244         $bbp = bbpress();
    245 
    246         // Easy empty checking
    247         if ( ! empty( $user_id ) && is_numeric( $user_id ) ) {
    248             $bbp_user_id = $user_id;
    249 
    250         // Currently inside a user loop
    251         } elseif ( ! empty( $bbp->user_query->in_the_loop ) && isset( $bbp->user_query->user->ID ) ) {
    252             $bbp_user_id = $bbp->user_query->user->ID;
    253 
    254         // Currently viewing or editing a user
    255         } elseif ( ( true === $displayed_user_fallback ) && ! empty( $bbp->displayed_user->ID ) ) {
    256             $bbp_user_id = $bbp->displayed_user->ID;
    257 
    258         // Maybe fallback on the current_user ID
    259         } elseif ( ( true === $current_user_fallback ) && ! empty( $bbp->current_user->ID ) ) {
    260             $bbp_user_id = $bbp->current_user->ID;
    261 
    262         // Failsafe
    263         } else {
    264             $bbp_user_id = 0;
    265         }
    266 
    267         // Filter & return
    268         return (int) apply_filters( 'bbp_get_user_id', (int) $bbp_user_id, $displayed_user_fallback, $current_user_fallback );
    269     }
    270 
    271 /**
    272  * Output ID of current user
     233
     234/**
     235 * Return a validated user id.
     236 *
     237 * @since 2.0.0 bbPress (r2729)
     238 *
     239 * @param int $user_id Optional. User id.
     240 * @param bool $displayed_user_fallback Fallback on displayed user?
     241 * @param bool $current_user_fallback Fallback on current user?
     242 * @return int Validated user id.
     243 */
     244function bbp_get_user_id( $user_id = 0, $displayed_user_fallback = true, $current_user_fallback = false ) {
     245    $bbp = bbpress();
     246
     247    // Easy empty checking
     248    if ( ! empty( $user_id ) && is_numeric( $user_id ) ) {
     249        $bbp_user_id = $user_id;
     250
     251    // Currently inside a user loop
     252    } elseif ( ! empty( $bbp->user_query->in_the_loop ) && isset( $bbp->user_query->user->ID ) ) {
     253        $bbp_user_id = $bbp->user_query->user->ID;
     254
     255    // Currently viewing or editing a user
     256    } elseif ( ( true === $displayed_user_fallback ) && ! empty( $bbp->displayed_user->ID ) ) {
     257        $bbp_user_id = $bbp->displayed_user->ID;
     258
     259    // Maybe fallback on the current_user ID
     260    } elseif ( ( true === $current_user_fallback ) && ! empty( $bbp->current_user->ID ) ) {
     261        $bbp_user_id = $bbp->current_user->ID;
     262
     263    // Failsafe
     264    } else {
     265        $bbp_user_id = 0;
     266    }
     267
     268    // Filter & return
     269    return (int) apply_filters( 'bbp_get_user_id', (int) $bbp_user_id, $displayed_user_fallback, $current_user_fallback );
     270}
     271
     272/**
     273 * Output ID of current user.
    273274 *
    274275 * @since 2.0.0 bbPress (r2574)
     
    277278    echo bbp_get_current_user_id();
    278279}
    279     /**
    280      * Return ID of current user
    281      *
    282      * @since 2.0.0 bbPress (r2574)
    283      *
    284      * @return int Current user id
    285      */
    286     function bbp_get_current_user_id() {
    287 
    288         // Filter & return
    289         return (int) apply_filters( 'bbp_get_current_user_id', bbp_get_user_id( 0, false, true ) );
    290     }
    291 
    292 /**
    293  * Output ID of displayed user
     280
     281/**
     282 * Return ID of current user.
     283 *
     284 * @since 2.0.0 bbPress (r2574)
     285 *
     286 * @return int Current user id.
     287 */
     288function bbp_get_current_user_id() {
     289
     290    // Filter & return
     291    return (int) apply_filters( 'bbp_get_current_user_id', bbp_get_user_id( 0, false, true ) );
     292}
     293
     294/**
     295 * Output ID of displayed user.
    294296 *
    295297 * @since 2.0.0 bbPress (r2688)
     
    298300    echo bbp_get_displayed_user_id();
    299301}
    300     /**
    301      * Return ID of displayed user
    302      *
    303      * @since 2.0.0 bbPress (r2688)
    304      *
    305      * @return int Displayed user id
    306      */
    307     function bbp_get_displayed_user_id() {
    308 
    309         // Filter & return
    310         return apply_filters( 'bbp_get_displayed_user_id', bbp_get_user_id( 0, true, false ) );
    311     }
    312 
    313 /**
    314  * Output a sanitized user field value
     302
     303/**
     304 * Return ID of displayed user.
     305 *
     306 * @since 2.0.0 bbPress (r2688)
     307 *
     308 * @return int Displayed user id.
     309 */
     310function bbp_get_displayed_user_id() {
     311
     312    // Filter & return
     313    return apply_filters( 'bbp_get_displayed_user_id', bbp_get_user_id( 0, true, false ) );
     314}
     315
     316/**
     317 * Output a sanitized user field value.
    315318 *
    316319 * This function relies on the $filter parameter to decide how to sanitize
     
    320323 * @since 2.0.0 bbPress (r2688)
    321324 *
    322  * @param string $field Field to get
    323  * @param string $filter How to filter the field value (null|raw|db|display|edit)
     325 * @param string $field Field to get.
     326 * @param string $filter How to filter the field value (null|raw|db|display|edit).
    324327 */
    325328function bbp_displayed_user_field( $field = '', $filter = 'display' ) {
    326329    echo bbp_get_displayed_user_field( $field, $filter );
    327330}
    328     /**
    329      * Return a sanitized user field value
    330      *
    331      * This function relies on the $filter parameter to decide how to sanitize
    332      * the field value that it finds. Since it uses the WP_User object's magic
    333      * __get() method, it can also be used to get user_meta values.
    334      *
    335      * @since 2.0.0 bbPress (r2688)
    336      *
    337      * @param string $field Field to get
    338      * @param string $filter How to filter the field value (null|raw|db|display|edit)
    339      * @see WP_User::__get() for more on how the value is retrieved
    340      * @see sanitize_user_field() for more on how the value is sanitized
    341      * @return string|bool Value of the field if it exists, else false
    342      */
    343     function bbp_get_displayed_user_field( $field = '', $filter = 'display' ) {
    344 
    345         // Get the displayed user
    346         $user         = bbpress()->displayed_user;
    347 
    348         // Juggle the user filter property because we don't want to muck up how
    349         // other code might interact with this object.
    350         $old_filter   = $user->filter;
    351         $user->filter = $filter;
    352 
    353         // Get the field value from the WP_User object. We don't need to perform
    354         // an isset() because the WP_User::__get() does it for us.
    355         $value        = $user->$field;
    356 
    357         // Put back the user filter property that was previously juggled above.
    358         $user->filter = $old_filter;
    359 
    360         // Filter & return
    361         return apply_filters( 'bbp_get_displayed_user_field', $value, $field, $filter );
    362     }
    363 
    364 /**
    365  * Output name of current user
     331
     332/**
     333 * Return a sanitized user field value.
     334 *
     335 * This function relies on the $filter parameter to decide how to sanitize
     336 * the field value that it finds. Since it uses the WP_User object's magic
     337 * __get() method, it can also be used to get user_meta values.
     338 *
     339 * @since 2.0.0 bbPress (r2688)
     340 *
     341 * @see WP_User::__get() for more on how the value is retrieved.
     342 * @see sanitize_user_field() for more on how the value is sanitized.
     343 *
     344 * @param string $field Field to get.
     345 * @param string $filter How to filter the field value (null|raw|db|display|edit).
     346 * @return string|bool Value of the field if it exists, else false.
     347 */
     348function bbp_get_displayed_user_field( $field = '', $filter = 'display' ) {
     349
     350    // Get the displayed user
     351    $user         = bbpress()->displayed_user;
     352
     353    // Juggle the user filter property because we don't want to muck up how
     354    // other code might interact with this object.
     355    $old_filter   = $user->filter;
     356    $user->filter = $filter;
     357
     358    // Get the field value from the WP_User object. We don't need to perform
     359    // an isset() because the WP_User::__get() does it for us.
     360    $value        = $user->$field;
     361
     362    // Put back the user filter property that was previously juggled above.
     363    $user->filter = $old_filter;
     364
     365    // Filter & return
     366    return apply_filters( 'bbp_get_displayed_user_field', $value, $field, $filter );
     367}
     368
     369/**
     370 * Output name of current user.
    366371 *
    367372 * @since 2.0.0 bbPress (r2574)
     
    370375    echo esc_attr( bbp_get_current_user_name() );
    371376}
    372     /**
    373      * Return name of current user
    374      *
    375      * @since 2.0.0 bbPress (r2574)
    376      *
    377      * @return string
    378      */
    379     function bbp_get_current_user_name() {
    380 
    381         // Default current user name
    382         $default = bbp_get_fallback_display_name();
    383 
    384         // Check the $user_identity global
    385         $current_user_name = is_user_logged_in()
    386             ? bbp_get_global_object( 'user_identity', false, $default )
    387             : $default;
    388 
    389         // Filter & return
    390         return apply_filters( 'bbp_get_current_user_name', $current_user_name );
    391     }
    392 
    393 /**
    394  * Output avatar of current user
     377
     378/**
     379 * Return name of current user.
    395380 *
    396381 * @since 2.0.0 bbPress (r2574)
    397382 *
    398  * @param int $size Size of the avatar. Defaults to 40
     383 * @return string
     384 */
     385function bbp_get_current_user_name() {
     386
     387    // Default current user name
     388    $default = bbp_get_fallback_display_name();
     389
     390    // Check the $user_identity global
     391    $current_user_name = is_user_logged_in()
     392        ? bbp_get_global_object( 'user_identity', false, $default )
     393        : $default;
     394
     395    // Filter & return
     396    return apply_filters( 'bbp_get_current_user_name', $current_user_name );
     397}
     398
     399/**
     400 * Output avatar of current user.
     401 *
     402 * @since 2.0.0 bbPress (r2574)
     403 *
     404 * @param int $size Size of the avatar. Defaults to 40.
    399405 */
    400406function bbp_current_user_avatar( $size = 40 ) {
     
    402408}
    403409
    404     /**
    405      * Return avatar of current user
    406     *
    407     * @since 2.0.0 bbPress (r2574)
    408     *
    409      * @param int $size Size of the avatar. Defaults to 40
    410      * @return string Current user avatar
    411     */
    412     function bbp_get_current_user_avatar( $size = 40 ) {
    413 
    414         $user = bbp_get_current_user_id();
    415         if ( empty( $user ) ) {
    416             $user = bbp_get_current_anonymous_user_data( 'email' );
    417         }
    418 
    419         $avatar = get_avatar( $user, $size );
    420 
    421         // Filter & return
    422         return apply_filters( 'bbp_get_current_user_avatar', $avatar, $size );
    423     }
    424 
    425 /**
    426  * Output link to the profile page of a user
     410/**
     411 * Return avatar of current user.
     412 *
     413 * @since 2.0.0 bbPress (r2574)
     414 *
     415 * @param int $size Size of the avatar. Defaults to 40.
     416 * @return string Current user avatar.
     417 */
     418function bbp_get_current_user_avatar( $size = 40 ) {
     419
     420    $user = bbp_get_current_user_id();
     421    if ( empty( $user ) ) {
     422        $user = bbp_get_current_anonymous_user_data( 'email' );
     423    }
     424
     425    $avatar = get_avatar( $user, $size );
     426
     427    // Filter & return
     428    return apply_filters( 'bbp_get_current_user_avatar', $avatar, $size );
     429}
     430
     431/**
     432 * Output link to the profile page of a user.
    427433 *
    428434 * @since 2.0.0 bbPress (r2688)
    429435 *
    430  * @param int $user_id Optional. User id
     436 * @param int $user_id Optional. User id.
    431437 */
    432438function bbp_user_profile_link( $user_id = 0 ) {
    433439    echo bbp_get_user_profile_link( $user_id );
    434440}
    435     /**
    436      * Return link to the profile page of a user
    437      *
    438      * @since 2.0.0 bbPress (r2688)
    439      *
    440      * @param int $user_id Optional. User id
    441      * @return string User profile link
    442      */
    443     function bbp_get_user_profile_link( $user_id = 0 ) {
    444 
    445         // Validate user id
    446         $user_id = bbp_get_user_id( $user_id );
    447         if ( empty( $user_id ) ) {
    448             return false;
    449         }
    450 
    451         // Get the user
    452         $user = get_userdata( $user_id );
    453         if ( empty( $user ) ) {
    454             return false;
    455         }
    456 
    457         // Display Name
    458         $name = ! empty( $user->display_name )
    459             ? $user->display_name
    460             : bbp_get_fallback_display_name();
    461 
    462         // URL
    463         $url = bbp_get_user_profile_url( $user_id );
    464 
    465         // Link
    466         $link = ! empty( $url )
    467             ? '<a href="' . esc_url( $url ) . '">' . esc_html( $name ) . '</a>'
    468             : esc_html( $name );
    469 
    470         // Filter & return
    471         return (string) apply_filters( 'bbp_get_user_profile_link', $link, $user_id );
    472     }
    473 
    474 /**
    475  * Output a users nicename to the screen
     441
     442/**
     443 * Return link to the profile page of a user.
     444 *
     445 * @since 2.0.0 bbPress (r2688)
     446 *
     447 * @param int $user_id Optional. User id.
     448 * @return string User profile link.
     449 */
     450function bbp_get_user_profile_link( $user_id = 0 ) {
     451
     452    // Validate user id
     453    $user_id = bbp_get_user_id( $user_id );
     454    if ( empty( $user_id ) ) {
     455        return false;
     456    }
     457
     458    // Get the user
     459    $user = get_userdata( $user_id );
     460    if ( empty( $user ) ) {
     461        return false;
     462    }
     463
     464    // Display Name
     465    $name = ! empty( $user->display_name )
     466        ? $user->display_name
     467        : bbp_get_fallback_display_name();
     468
     469    // URL
     470    $url = bbp_get_user_profile_url( $user_id );
     471
     472    // Link
     473    $link = ! empty( $url )
     474        ? '<a href="' . esc_url( $url ) . '">' . esc_html( $name ) . '</a>'
     475        : esc_html( $name );
     476
     477    // Filter & return
     478    return (string) apply_filters( 'bbp_get_user_profile_link', $link, $user_id );
     479}
     480
     481/**
     482 * Output a users nicename to the screen.
    476483 *
    477484 * @since 2.3.0 bbPress (r4671)
    478485 *
    479  * @param int $user_id User ID whose nicename to get
    480  * @param array $args before|after|user_id|force
     486 * @param int $user_id User ID whose nicename to get.
     487 * @param array $args before|after|user_id|force.
    481488 */
    482489function bbp_user_nicename( $user_id = 0, $args = array() ) {
    483490    echo bbp_get_user_nicename( $user_id, $args );
    484491}
    485     /**
    486      * Return a users nicename to the screen
    487      *
    488      * @since 2.3.0 bbPress (r4671)
    489      *
    490      * @param int $user_id User ID whose nicename to get
    491      * @param array $args before|after|user_id|force
    492      * @return string User nicename, maybe wrapped in before/after strings
    493      */
    494     function bbp_get_user_nicename( $user_id = 0, $args = array() ) {
    495 
    496         // Bail if no user ID passed
    497         $user_id = bbp_get_user_id( $user_id );
    498         if ( empty( $user_id ) ) {
    499             return false;
    500         }
    501 
    502         // Parse default arguments
    503         $r = bbp_parse_args(
    504             $args,
    505             array(
    506                 'user_id' => $user_id,
    507                 'before'  => '',
    508                 'after'   => '',
    509                 'force'   => ''
    510             ),
    511             'get_user_nicename'
    512         );
    513 
    514         // Force the nicename (likely from a previous user query)
    515         if ( ! empty( $r['force'] ) ) {
    516             $nicename = (string) $r['force'];
    517 
    518         // Maybe fallback to getting the nicename from user data
    519         } elseif ( ! empty( $r['user_id'] ) ) {
    520             $user     = get_userdata( $r['user_id'] );
    521             $nicename = ! empty( $user )
    522                 ? $user->user_nicename
    523                 : '';
    524 
    525         // Maybe fallback to empty string so filter still applies
    526         } else {
    527             $nicename = '';
    528         }
    529 
    530         // Maybe wrap the nicename
    531         $retval = ! empty( $nicename )
    532             ? $r['before'] . esc_html( $nicename ) . $r['after']
     492
     493/**
     494 * Return a users nicename to the screen.
     495 *
     496 * @since 2.3.0 bbPress (r4671)
     497 *
     498 * @param int $user_id User ID whose nicename to get.
     499 * @param array $args before|after|user_id|force.
     500 * @return string User nicename, maybe wrapped in before/after strings.
     501 */
     502function bbp_get_user_nicename( $user_id = 0, $args = array() ) {
     503
     504    // Bail if no user ID passed
     505    $user_id = bbp_get_user_id( $user_id );
     506    if ( empty( $user_id ) ) {
     507        return false;
     508    }
     509
     510    // Parse default arguments
     511    $r = bbp_parse_args(
     512        $args,
     513        array(
     514            'user_id' => $user_id,
     515            'before'  => '',
     516            'after'   => '',
     517            'force'   => ''
     518        ),
     519        'get_user_nicename'
     520    );
     521
     522    // Force the nicename (likely from a previous user query)
     523    if ( ! empty( $r['force'] ) ) {
     524        $nicename = (string) $r['force'];
     525
     526    // Maybe fallback to getting the nicename from user data
     527    } elseif ( ! empty( $r['user_id'] ) ) {
     528        $user     = get_userdata( $r['user_id'] );
     529        $nicename = ! empty( $user )
     530            ? $user->user_nicename
    533531            : '';
    534532
    535         // Filter & return
    536         return (string) apply_filters( 'bbp_get_user_nicename', $retval, $user_id, $r, $args );
    537     }
    538 
    539 /**
    540  * Output URL to the profile page of a user
     533    // Maybe fallback to empty string so filter still applies
     534    } else {
     535        $nicename = '';
     536    }
     537
     538    // Maybe wrap the nicename
     539    $retval = ! empty( $nicename )
     540        ? $r['before'] . esc_html( $nicename ) . $r['after']
     541        : '';
     542
     543    // Filter & return
     544    return (string) apply_filters( 'bbp_get_user_nicename', $retval, $user_id, $r, $args );
     545}
     546
     547/**
     548 * Output URL to the profile page of a user.
    541549 *
    542550 * @since 2.0.0 bbPress (r2688)
    543551 *
    544  * @param int $user_id Optional. User id
    545  * @param string $user_nicename Optional. User nicename
     552 * @param int $user_id Optional. User id.
     553 * @param string $user_nicename Optional. User nicename.
    546554 */
    547555function bbp_user_profile_url( $user_id = 0, $user_nicename = '' ) {
    548556    echo esc_url( bbp_get_user_profile_url( $user_id, $user_nicename ) );
    549557}
    550     /**
    551      * Return URL to the profile page of a user
    552      *
    553      * @since 2.0.0 bbPress (r2688)
    554      *
    555      * @param int $user_id Optional. User id
    556      * @param string $user_nicename Optional. User nicename
    557      * @return string User profile url
    558      */
    559     function bbp_get_user_profile_url( $user_id = 0, $user_nicename = '' ) {
    560 
    561         // Use displayed user ID if there is one, and one isn't requested
    562         $user_id = bbp_get_user_id( $user_id );
    563         if ( empty( $user_id ) ) {
    564             return false;
     558
     559/**
     560 * Return URL to the profile page of a user.
     561 *
     562 * @since 2.0.0 bbPress (r2688)
     563 *
     564 * @param int $user_id Optional. User id.
     565 * @param string $user_nicename Optional. User nicename.
     566 * @return string User profile url.
     567 */
     568function bbp_get_user_profile_url( $user_id = 0, $user_nicename = '' ) {
     569
     570    // Use displayed user ID if there is one, and one isn't requested
     571    $user_id = bbp_get_user_id( $user_id );
     572    if ( empty( $user_id ) ) {
     573        return false;
     574    }
     575
     576    // Bail if intercepted
     577    $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_profile_url', func_get_args() );
     578    if ( bbp_is_intercepted( $intercept ) ) {
     579        return $intercept;
     580    }
     581
     582    // Pretty permalinks
     583    if ( bbp_use_pretty_urls() ) {
     584
     585        // Get username if not passed
     586        if ( empty( $user_nicename ) ) {
     587            $user_nicename = bbp_get_user_nicename( $user_id );
    565588        }
    566589
    567         // Bail if intercepted
    568         $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_profile_url', func_get_args() );
    569         if ( bbp_is_intercepted( $intercept ) ) {
    570             return $intercept;
    571         }
    572 
    573         // Pretty permalinks
    574         if ( bbp_use_pretty_urls() ) {
    575 
    576             // Get username if not passed
    577             if ( empty( $user_nicename ) ) {
    578                 $user_nicename = bbp_get_user_nicename( $user_id );
    579             }
    580 
    581             // Run through home_url()
    582             $url = trailingslashit( bbp_get_root_url() . bbp_get_user_slug() ) . $user_nicename;
    583             $url = user_trailingslashit( $url );
    584             $url = home_url( $url );
    585 
    586         // Unpretty permalinks
    587         } else {
    588             $url = add_query_arg(
    589                 array(
    590                     bbp_get_user_rewrite_id() => $user_id
    591                 ),
    592                 home_url( '/' )
    593             );
    594         }
    595 
    596         // Filter & return
    597         return apply_filters( 'bbp_get_user_profile_url', $url, $user_id, $user_nicename );
    598     }
    599 
    600 /**
    601  * Output link to the profile edit page of a user
     590        // Run through home_url()
     591        $url = trailingslashit( bbp_get_root_url() . bbp_get_user_slug() ) . $user_nicename;
     592        $url = user_trailingslashit( $url );
     593        $url = home_url( $url );
     594
     595    // Unpretty permalinks
     596    } else {
     597        $url = add_query_arg(
     598            array(
     599                bbp_get_user_rewrite_id() => $user_id
     600            ),
     601            home_url( '/' )
     602        );
     603    }
     604
     605    // Filter & return
     606    return apply_filters( 'bbp_get_user_profile_url', $url, $user_id, $user_nicename );
     607}
     608
     609/**
     610 * Output link to the profile edit page of a user.
    602611 *
    603612 * @since 2.0.0 bbPress (r2688)
    604613 *
    605  * @param int $user_id Optional. User id
     614 * @param int $user_id Optional. User id.
    606615 */
    607616function bbp_user_profile_edit_link( $user_id = 0 ) {
    608617    echo bbp_get_user_profile_edit_link( $user_id );
    609618}
    610     /**
    611      * Return link to the profile edit page of a user
    612      *
    613      * @since 2.0.0 bbPress (r2688)
    614      *
    615      * @param int $user_id Optional. User id
    616      * @return string User profile edit link
    617      */
    618     function bbp_get_user_profile_edit_link( $user_id = 0 ) {
    619 
    620         // Validate user id
    621         $user_id = bbp_get_user_id( $user_id );
    622         if ( empty( $user_id ) ) {
    623             return false;
    624         }
    625 
    626         // Get the user
    627         $user = get_userdata( $user_id );
    628         if ( empty( $user ) ) {
    629             return false;
    630         }
    631 
    632         // Display Name
    633         $name = ! empty( $user->display_name )
    634             ? $user->display_name
    635             : bbp_get_fallback_display_name();
    636 
    637         // URL
    638         $url = bbp_get_user_profile_edit_url( $user_id );
    639 
    640         // Link
    641         $link = ! empty( $url )
    642             ? '<a href="' . esc_url( $url ) . '">' . esc_html( $name ) . '</a>'
    643             : esc_html( $name );
    644 
    645         // Filter & return
    646         return (string) apply_filters( 'bbp_get_user_profile_edit_link', $link, $user_id );
    647     }
    648 
    649 /**
    650  * Output URL to the profile edit page of a user
     619
     620/**
     621 * Return link to the profile edit page of a user.
    651622 *
    652623 * @since 2.0.0 bbPress (r2688)
    653624 *
    654  * @param int $user_id Optional. User id
    655  * @param string $user_nicename Optional. User nicename
     625 * @param int $user_id Optional. User id.
     626 * @return string User profile edit link.
     627 */
     628function bbp_get_user_profile_edit_link( $user_id = 0 ) {
     629
     630    // Validate user id
     631    $user_id = bbp_get_user_id( $user_id );
     632    if ( empty( $user_id ) ) {
     633        return false;
     634    }
     635
     636    // Get the user
     637    $user = get_userdata( $user_id );
     638    if ( empty( $user ) ) {
     639        return false;
     640    }
     641
     642    // Display Name
     643    $name = ! empty( $user->display_name )
     644        ? $user->display_name
     645        : bbp_get_fallback_display_name();
     646
     647    // URL
     648    $url = bbp_get_user_profile_edit_url( $user_id );
     649
     650    // Link
     651    $link = ! empty( $url )
     652        ? '<a href="' . esc_url( $url ) . '">' . esc_html( $name ) . '</a>'
     653        : esc_html( $name );
     654
     655    // Filter & return
     656    return (string) apply_filters( 'bbp_get_user_profile_edit_link', $link, $user_id );
     657}
     658
     659/**
     660 * Output URL to the profile edit page of a user.
     661 *
     662 * @since 2.0.0 bbPress (r2688)
     663 *
     664 * @param int $user_id Optional. User id.
     665 * @param string $user_nicename Optional. User nicename.
    656666 */
    657667function bbp_user_profile_edit_url( $user_id = 0, $user_nicename = '' ) {
    658668    echo esc_url( bbp_get_user_profile_edit_url( $user_id, $user_nicename ) );
    659669}
    660     /**
    661      * Return URL to the profile edit page of a user
    662      *
    663      * @since 2.0.0 bbPress (r2688)
    664      *
    665      * @param int $user_id Optional. User id
    666      * @param string $user_nicename Optional. User nicename
    667      * @return string
    668      */
    669     function bbp_get_user_profile_edit_url( $user_id = 0, $user_nicename = '' ) {
    670 
    671         $user_id = bbp_get_user_id( $user_id );
    672         if ( empty( $user_id ) ) {
    673             return false;
    674         }
    675 
    676         // Bail if intercepted
    677         $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_profile_edit_url', func_get_args() );
    678         if ( bbp_is_intercepted( $intercept ) ) {
    679             return $intercept;
    680         }
    681 
    682         // Get user profile URL
    683         $profile_url = bbp_get_user_profile_url( $user_id, $user_nicename );
    684 
    685         // Pretty permalinks
    686         if ( bbp_use_pretty_urls() ) {
    687             $url = trailingslashit( $profile_url ) . bbp_get_edit_slug();
    688             $url = user_trailingslashit( $url );
    689 
    690         // Unpretty permalinks
    691         } else {
    692             $url = add_query_arg(
    693                 array(
    694                     bbp_get_edit_rewrite_id() => '1'
    695                 ),
    696                 $profile_url
    697             );
    698         }
    699 
    700         // Filter & return
    701         return apply_filters( 'bbp_get_user_edit_profile_url', $url, $user_id, $user_nicename );
    702     }
    703 
    704 /**
    705  * Output a user's main role for display
     670
     671/**
     672 * Return URL to the profile edit page of a user.
     673 *
     674 * @since 2.0.0 bbPress (r2688)
     675 *
     676 * @param int $user_id Optional. User id.
     677 * @param string $user_nicename Optional. User nicename.
     678 * @return string
     679 */
     680function bbp_get_user_profile_edit_url( $user_id = 0, $user_nicename = '' ) {
     681
     682    $user_id = bbp_get_user_id( $user_id );
     683    if ( empty( $user_id ) ) {
     684        return false;
     685    }
     686
     687    // Bail if intercepted
     688    $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_profile_edit_url', func_get_args() );
     689    if ( bbp_is_intercepted( $intercept ) ) {
     690        return $intercept;
     691    }
     692
     693    // Get user profile URL
     694    $profile_url = bbp_get_user_profile_url( $user_id, $user_nicename );
     695
     696    // Pretty permalinks
     697    if ( bbp_use_pretty_urls() ) {
     698        $url = trailingslashit( $profile_url ) . bbp_get_edit_slug();
     699        $url = user_trailingslashit( $url );
     700
     701    // Unpretty permalinks
     702    } else {
     703        $url = add_query_arg(
     704            array(
     705                bbp_get_edit_rewrite_id() => '1'
     706            ),
     707            $profile_url
     708        );
     709    }
     710
     711    // Filter & return
     712    return apply_filters( 'bbp_get_user_edit_profile_url', $url, $user_id, $user_nicename );
     713}
     714
     715/**
     716 * Output a user's main role for display.
    706717 *
    707718 * @since 2.1.0 bbPress (r3860)
    708719 *
    709  * @param int $user_id
     720 * @param int $user_id User id.
    710721 */
    711722function bbp_user_display_role( $user_id = 0 ) {
    712723    echo esc_attr( bbp_get_user_display_role( $user_id ) );
    713724}
    714     /**
    715      * Return a user's main role for display
    716      *
    717      * @since 2.1.0 bbPress (r3860)
    718      *
    719      * @param int $user_id
    720      * @return string
    721      */
    722     function bbp_get_user_display_role( $user_id = 0 ) {
    723 
    724         // Validate user id
    725         $user_id = bbp_get_user_id( $user_id );
    726 
    727         // User is not registered
    728         if ( empty( $user_id ) ) {
    729             $role = esc_html__( 'Guest', 'bbpress' );
    730 
    731         // User is not active
    732         } elseif ( bbp_is_user_inactive( $user_id ) ) {
    733             $role = esc_html__( 'Inactive', 'bbpress' );
    734 
    735         // User have a role
    736         } else {
    737             $role_id = bbp_get_user_role( $user_id );
    738             $role    = bbp_get_dynamic_role_name( $role_id );
    739         }
    740 
    741         // No role found so default to generic "Member"
    742         if ( empty( $role ) ) {
    743             $role = esc_html__( 'Member', 'bbpress' );
    744         }
    745 
    746         // Filter & return
    747         return apply_filters( 'bbp_get_user_display_role', $role, $user_id );
    748     }
    749 
    750 /**
    751  * Output the link to the admin section
     725
     726/**
     727 * Return a user's main role for display.
     728 *
     729 * @since 2.1.0 bbPress (r3860)
     730 *
     731 * @param int $user_id User id.
     732 * @return string
     733 */
     734function bbp_get_user_display_role( $user_id = 0 ) {
     735
     736    // Validate user id
     737    $user_id = bbp_get_user_id( $user_id );
     738
     739    // User is not registered
     740    if ( empty( $user_id ) ) {
     741        $role = esc_html__( 'Guest', 'bbpress' );
     742
     743    // User is not active
     744    } elseif ( bbp_is_user_inactive( $user_id ) ) {
     745        $role = esc_html__( 'Inactive', 'bbpress' );
     746
     747    // User have a role
     748    } else {
     749        $role_id = bbp_get_user_role( $user_id );
     750        $role    = bbp_get_dynamic_role_name( $role_id );
     751    }
     752
     753    // No role found so default to generic "Member"
     754    if ( empty( $role ) ) {
     755        $role = esc_html__( 'Member', 'bbpress' );
     756    }
     757
     758    // Filter & return
     759    return apply_filters( 'bbp_get_user_display_role', $role, $user_id );
     760}
     761
     762/**
     763 * Output the link to the admin section.
    752764 *
    753765 * @since 2.0.0 bbPress (r2827)
    754766 *
    755  * @param array $args Optional. See {@link bbp_get_admin_link()}
     767 * @param array $args Optional. See {@link bbp_get_admin_link()}.
    756768 */
    757769function bbp_admin_link( $args = array() ) {
    758770    echo bbp_get_admin_link( $args );
    759771}
    760     /**
    761      * Return the link to the admin section
    762      *
    763      * @since 2.0.0 bbPress (r2827)
    764      *
    765      * @param array $args Optional. This function supports these arguments:
    766      *  - text: The text
    767      *  - before: Before the lnk
    768      *  - after: After the link
    769      * @return The link
    770      */
    771     function bbp_get_admin_link( $args = array() ) {
    772 
    773         // Bail if user cannot globally moderate
    774         if ( ! current_user_can( 'moderate' ) ) {
    775             return;
    776         }
    777 
    778         if ( ! empty( $args ) && is_string( $args ) && ( false === strpos( $args, '=' ) ) ) {
    779             $args = array( 'text' => $args );
    780         }
    781 
    782         // Parse arguments against default values
    783         $r = bbp_parse_args(
    784             $args,
    785             array(
    786                 'text'   => esc_html__( 'Admin', 'bbpress' ),
    787                 'before' => '',
    788                 'after'  => ''
    789             ),
    790             'get_admin_link'
    791         );
    792 
    793         $retval = $r['before'] . '<a href="' . esc_url( admin_url() ) . '">' . $r['text'] . '</a>' . $r['after'];
    794 
    795         // Filter & return
    796         return apply_filters( 'bbp_get_admin_link', $retval, $r, $args );
    797     }
     772
     773/**
     774 * Return the link to the admin section.
     775 *
     776 * @since 2.0.0 bbPress (r2827)
     777 *
     778 * @param array $args Optional. This function supports these arguments:
     779 *  - text: The text
     780 *  - before: Before the lnk
     781 *  - after: After the link
     782 * @return The link.
     783 */
     784function bbp_get_admin_link( $args = array() ) {
     785
     786    // Bail if user cannot globally moderate
     787    if ( ! current_user_can( 'moderate' ) ) {
     788        return;
     789    }
     790
     791    if ( ! empty( $args ) && is_string( $args ) && ( false === strpos( $args, '=' ) ) ) {
     792        $args = array( 'text' => $args );
     793    }
     794
     795    // Parse arguments against default values
     796    $r = bbp_parse_args(
     797        $args,
     798        array(
     799            'text'   => esc_html__( 'Admin', 'bbpress' ),
     800            'before' => '',
     801            'after'  => ''
     802        ),
     803        'get_admin_link'
     804    );
     805
     806    $retval = $r['before'] . '<a href="' . esc_url( admin_url() ) . '">' . $r['text'] . '</a>' . $r['after'];
     807
     808    // Filter & return
     809    return apply_filters( 'bbp_get_admin_link', $retval, $r, $args );
     810}
    798811
    799812/** User IP *******************************************************************/
    800813
    801814/**
    802  * Output the author IP address of a post
     815 * Output the author IP address of a post.
    803816 *
    804817 * @since 2.0.0 bbPress (r3120)
     
    809822    echo bbp_get_author_ip( $args );
    810823}
    811     /**
    812      * Return the author IP address of a post
    813      *
    814      * @since 2.0.0 bbPress (r3120)
    815      *
    816      * @param array $args Optional. If an integer, it is used as reply id.
    817      * @return string Author link of reply
    818      */
    819     function bbp_get_author_ip( $args = array() ) {
    820 
    821         // Used as post id
    822         $post_id = is_numeric( $args ) ? (int) $args : 0;
    823 
    824         // Parse arguments against default values
    825         $r = bbp_parse_args(
    826             $args,
    827             array(
    828                 'post_id' => $post_id,
    829                 'before'  => '<span class="bbp-author-ip">(',
    830                 'after'   => ')</span>'
    831             ),
    832             'get_author_ip'
    833         );
    834 
    835         // Get the author IP meta value
    836         $author_ip = get_post_meta( $r['post_id'], '_bbp_author_ip', true );
    837         $author_ip = ! empty( $author_ip )
    838             ? $r['before'] . esc_html( $author_ip ) . $r['after']
    839             : '';
    840 
    841         // Filter & return
    842         return apply_filters( 'bbp_get_author_ip', $author_ip, $r, $args );
    843     }
     824
     825/**
     826 * Return the author IP address of a post.
     827 *
     828 * @since 2.0.0 bbPress (r3120)
     829 *
     830 * @param array $args Optional. If an integer, it is used as reply id.
     831 * @return string Author link of reply.
     832 */
     833function bbp_get_author_ip( $args = array() ) {
     834
     835    // Used as post id
     836    $post_id = is_numeric( $args ) ? (int) $args : 0;
     837
     838    // Parse arguments against default values
     839    $r = bbp_parse_args(
     840        $args,
     841        array(
     842            'post_id' => $post_id,
     843            'before'  => '<span class="bbp-author-ip">(',
     844            'after'   => ')</span>'
     845        ),
     846        'get_author_ip'
     847    );
     848
     849    // Get the author IP meta value
     850    $author_ip = get_post_meta( $r['post_id'], '_bbp_author_ip', true );
     851    $author_ip = ! empty( $author_ip )
     852        ? $r['before'] . esc_html( $author_ip ) . $r['after']
     853        : '';
     854
     855    // Filter & return
     856    return apply_filters( 'bbp_get_author_ip', $author_ip, $r, $args );
     857}
    844858
    845859/** Anonymous Fields **********************************************************/
     
    853867 * @since 2.6.0 bbPress (r6561)
    854868 *
    855  * @param int $object_id For additional context only, usually a post ID
     869 * @param int $object_id For additional context only, usually a post ID.
    856870 *
    857871 * @return string
     
    873887 * @since 2.5.0 bbPress (r5119)
    874888 *
    875  * @param int $post_id
     889 * @param int $post_id Post id.
    876890 */
    877891function bbp_author_display_name( $post_id = 0 ) {
     
    879893}
    880894
    881     /**
    882     * Return the author display-name of a topic or reply.
    883     *
    884     * Convenience function to ensure proper template functions are called
    885     * and correct filters are executed. Used primarily to display topic
    886     * and reply author information in the anonymous form template-part.
    887     *
    888     * @since 2.5.0 bbPress (r5119)
    889     *
    890      * @param int $post_id
    891     *
    892      * @return string The name of the author
    893     */
    894     function bbp_get_author_display_name( $post_id = 0 ) {
    895 
    896         // Define local variable(s)
    897         $retval = '';
    898 
    899         // Topic edit
    900         if ( bbp_is_topic_edit() ) {
    901             $retval = bbp_get_topic_author_display_name( $post_id );
    902 
    903         // Reply edit
    904         } elseif ( bbp_is_reply_edit() ) {
    905             $retval = bbp_get_reply_author_display_name( $post_id );
    906 
    907         // Not an edit, so rely on current user cookie data
    908         } else {
    909             $retval = bbp_get_current_anonymous_user_data( 'name' );
    910         }
    911 
    912         // Filter & return
    913         return apply_filters( 'bbp_get_author_display_name', $retval, $post_id );
    914     }
     895/**
     896 * Return the author display-name of a topic or reply.
     897 *
     898 * Convenience function to ensure proper template functions are called
     899 * and correct filters are executed. Used primarily to display topic
     900 * and reply author information in the anonymous form template-part.
     901 *
     902 * @since 2.5.0 bbPress (r5119)
     903 *
     904 * @param int $post_id Post id.
     905 *
     906 * @return string The name of the author.
     907 */
     908function bbp_get_author_display_name( $post_id = 0 ) {
     909
     910    // Define local variable(s)
     911    $retval = '';
     912
     913    // Topic edit
     914    if ( bbp_is_topic_edit() ) {
     915        $retval = bbp_get_topic_author_display_name( $post_id );
     916
     917    // Reply edit
     918    } elseif ( bbp_is_reply_edit() ) {
     919        $retval = bbp_get_reply_author_display_name( $post_id );
     920
     921    // Not an edit, so rely on current user cookie data
     922    } else {
     923        $retval = bbp_get_current_anonymous_user_data( 'name' );
     924    }
     925
     926    // Filter & return
     927    return apply_filters( 'bbp_get_author_display_name', $retval, $post_id );
     928}
    915929
    916930/**
     
    923937 * @since 2.5.0 bbPress (r5119)
    924938 *
    925  * @param int $post_id
     939 * @param int $post_id Post id.
    926940 */
    927941function bbp_author_email( $post_id = 0 ) {
     
    929943}
    930944
    931     /**
    932      * Return the author email of a topic or reply.
    933      *
    934      * Convenience function to ensure proper template functions are called
    935      * and correct filters are executed. Used primarily to display topic
    936      * and reply author information in the anonymous user form template-part.
    937      *
    938      * @since 2.5.0 bbPress (r5119)
    939      *
    940      * @param int $post_id
    941      *
    942      * @return string The email of the author
    943      */
    944     function bbp_get_author_email( $post_id = 0 ) {
    945 
    946         // Define local variable(s)
    947         $retval = '';
    948 
    949         // Topic edit
    950         if ( bbp_is_topic_edit() ) {
    951             $retval = bbp_get_topic_author_email( $post_id );
    952 
    953         // Reply edit
    954         } elseif ( bbp_is_reply_edit() ) {
    955             $retval = bbp_get_reply_author_email( $post_id );
    956 
    957         // Not an edit, so rely on current user cookie data
    958         } else {
    959             $retval = bbp_get_current_anonymous_user_data( 'email' );
    960         }
    961 
    962         // Filter & return
    963         return apply_filters( 'bbp_get_author_email', $retval, $post_id );
    964     }
    965 
    966 /**
    967  * Output the author url of a topic or reply.
     945/**
     946 * Return the author email of a topic or reply.
    968947 *
    969948 * Convenience function to ensure proper template functions are called
     
    973952 * @since 2.5.0 bbPress (r5119)
    974953 *
    975  * @param int $post_id
     954 * @param int $post_id Post id.
     955*
     956 * @return string The email of the author.
     957 */
     958function bbp_get_author_email( $post_id = 0 ) {
     959
     960    // Define local variable(s)
     961    $retval = '';
     962
     963    // Topic edit
     964    if ( bbp_is_topic_edit() ) {
     965        $retval = bbp_get_topic_author_email( $post_id );
     966
     967    // Reply edit
     968    } elseif ( bbp_is_reply_edit() ) {
     969        $retval = bbp_get_reply_author_email( $post_id );
     970
     971    // Not an edit, so rely on current user cookie data
     972    } else {
     973        $retval = bbp_get_current_anonymous_user_data( 'email' );
     974    }
     975
     976    // Filter & return
     977    return apply_filters( 'bbp_get_author_email', $retval, $post_id );
     978}
     979
     980/**
     981 * Output the author url of a topic or reply.
     982 *
     983 * Convenience function to ensure proper template functions are called
     984 * and correct filters are executed. Used primarily to display topic
     985 * and reply author information in the anonymous user form template-part.
     986 *
     987 * @since 2.5.0 bbPress (r5119)
     988 *
     989 * @param int $post_id Post id.
    976990 */
    977991function bbp_author_url( $post_id = 0 ) {
     
    979993}
    980994
    981     /**
    982     * Return the author url of a topic or reply.
    983     *
    984     * Convenience function to ensure proper template functions are called
    985     * and correct filters are executed. Used primarily to display topic
    986     * and reply author information in the anonymous user form template-part.
    987     *
    988     * @since 2.5.0 bbPress (r5119)
    989     *
    990      * @param int $post_id
    991     *
    992      * @return string The url of the author
    993     */
    994     function bbp_get_author_url( $post_id = 0 ) {
    995 
    996         // Define local variable(s)
    997         $retval = '';
    998 
    999         // Topic edit
    1000         if ( bbp_is_topic_edit() ) {
    1001             $retval = bbp_get_topic_author_url( $post_id );
    1002 
    1003         // Reply edit
    1004         } elseif ( bbp_is_reply_edit() ) {
    1005             $retval = bbp_get_reply_author_url( $post_id );
    1006 
    1007         // Not an edit, so rely on current user cookie data
    1008         } else {
    1009             $retval = bbp_get_current_anonymous_user_data( 'url' );
    1010         }
    1011 
    1012         // Filter & return
    1013         return apply_filters( 'bbp_get_author_url', $retval, $post_id );
    1014     }
     995/**
     996 * Return the author url of a topic or reply.
     997 *
     998 * Convenience function to ensure proper template functions are called
     999 * and correct filters are executed. Used primarily to display topic
     1000 * and reply author information in the anonymous user form template-part.
     1001 *
     1002 * @since 2.5.0 bbPress (r5119)
     1003 *
     1004 * @param int $post_id Post id.
     1005 *
     1006 * @return string The url of the author.
     1007 */
     1008function bbp_get_author_url( $post_id = 0 ) {
     1009
     1010    // Define local variable(s)
     1011    $retval = '';
     1012
     1013    // Topic edit
     1014    if ( bbp_is_topic_edit() ) {
     1015        $retval = bbp_get_topic_author_url( $post_id );
     1016
     1017    // Reply edit
     1018    } elseif ( bbp_is_reply_edit() ) {
     1019        $retval = bbp_get_reply_author_url( $post_id );
     1020
     1021    // Not an edit, so rely on current user cookie data
     1022    } else {
     1023        $retval = bbp_get_current_anonymous_user_data( 'url' );
     1024    }
     1025
     1026    // Filter & return
     1027    return apply_filters( 'bbp_get_author_url', $retval, $post_id );
     1028}
    10151029
    10161030/** Favorites *****************************************************************/
    10171031
    10181032/**
    1019  * Output the link to the user's favorites page (profile page)
     1033 * Output the link to the user's favorites page (profile page).
    10201034 *
    10211035 * @since 2.0.0 bbPress (r2652)
    10221036 * @since 2.6.0 bbPress (r6308) Add pagination if in the loop
    10231037 *
    1024  * @param int $user_id Optional. User id
     1038 * @param int $user_id Optional. User id.
    10251039 */
    10261040function bbp_favorites_permalink( $user_id = 0 ) {
    10271041    echo esc_url( bbp_get_favorites_permalink( $user_id ) );
    10281042}
    1029     /**
    1030      * Return the link to the user's favorites page (profile page)
    1031      *
    1032      * @since 2.0.0 bbPress (r2652)
    1033      * @since 2.6.0 bbPress (r6308) Add pagination if in the loop
    1034      *
    1035      * @param int $user_id Optional. User id
    1036      * @return string Permanent link to user profile page
    1037      */
    1038     function bbp_get_favorites_permalink( $user_id = 0 ) {
    1039 
    1040         // Use displayed user ID if there is one, and one isn't requested
    1041         $user_id = bbp_get_user_id( $user_id );
    1042         if ( empty( $user_id ) ) {
    1043             return false;
     1043
     1044/**
     1045 * Return the link to the user's favorites page (profile page).
     1046 *
     1047 * @since 2.0.0 bbPress (r2652)
     1048 * @since 2.6.0 bbPress (r6308) Add pagination if in the loop
     1049 *
     1050 * @param int $user_id Optional. User id.
     1051 * @return string Permanent link to user profile page.
     1052 */
     1053function bbp_get_favorites_permalink( $user_id = 0 ) {
     1054
     1055    // Use displayed user ID if there is one, and one isn't requested
     1056    $user_id = bbp_get_user_id( $user_id );
     1057    if ( empty( $user_id ) ) {
     1058        return false;
     1059    }
     1060
     1061    // Bail if intercepted
     1062    $intercept = bbp_maybe_intercept( 'bbp_pre_get_favorites_permalink', func_get_args() );
     1063    if ( bbp_is_intercepted( $intercept ) ) {
     1064        return $intercept;
     1065    }
     1066
     1067    // Get user profile URL & page
     1068    $profile_url = bbp_get_user_profile_url( $user_id );
     1069    $page        = (int) bbpress()->topic_query->paged;
     1070    $paged       = (bool) bbpress()->topic_query->in_the_loop;
     1071
     1072    // Pretty permalinks
     1073    if ( bbp_use_pretty_urls() ) {
     1074
     1075        // Base URL
     1076        $url = trailingslashit( $profile_url ) . bbp_get_user_favorites_slug();
     1077
     1078        // Add page
     1079        if ( ( true === $paged ) && ( $page > 1 ) ) {
     1080            $url = trailingslashit( $url ) . bbp_get_paged_slug() . '/' . $page;
    10441081        }
    10451082
    1046         // Bail if intercepted
    1047         $intercept = bbp_maybe_intercept( 'bbp_pre_get_favorites_permalink', func_get_args() );
    1048         if ( bbp_is_intercepted( $intercept ) ) {
    1049             return $intercept;
     1083        // Ensure correct trailing slash
     1084        $url = user_trailingslashit( $url );
     1085
     1086    // Unpretty permalinks
     1087    } else {
     1088
     1089        // Base arguments
     1090        $args = array(
     1091            bbp_get_user_favorites_rewrite_id() => bbp_get_user_favorites_slug(),
     1092        );
     1093
     1094        // Add page
     1095        if ( ( true === $paged ) && ( $page > 1 ) ) {
     1096            $args['page'] = $page;
    10501097        }
    10511098
    1052         // Get user profile URL & page
    1053         $profile_url = bbp_get_user_profile_url( $user_id );
    1054         $page        = (int) bbpress()->topic_query->paged;
    1055         $paged       = (bool) bbpress()->topic_query->in_the_loop;
    1056 
    1057         // Pretty permalinks
    1058         if ( bbp_use_pretty_urls() ) {
    1059 
    1060             // Base URL
    1061             $url = trailingslashit( $profile_url ) . bbp_get_user_favorites_slug();
    1062 
    1063             // Add page
    1064             if ( ( true === $paged ) && ( $page > 1 ) ) {
    1065                 $url = trailingslashit( $url ) . bbp_get_paged_slug() . '/' . $page;
    1066             }
    1067 
    1068             // Ensure correct trailing slash
    1069             $url = user_trailingslashit( $url );
    1070 
    1071         // Unpretty permalinks
    1072         } else {
    1073 
    1074             // Base arguments
    1075             $args = array(
    1076                 bbp_get_user_favorites_rewrite_id() => bbp_get_user_favorites_slug(),
    1077             );
    1078 
    1079             // Add page
    1080             if ( ( true === $paged ) && ( $page > 1 ) ) {
    1081                 $args['page'] = $page;
    1082             }
    1083 
    1084             // Add arguments
    1085             $url = add_query_arg( $args, $profile_url );
    1086         }
    1087 
    1088         // Filter & return
    1089         return apply_filters( 'bbp_get_favorites_permalink', $url, $user_id );
    1090     }
    1091 
    1092 /**
    1093  * Output the link to make a topic favorite/remove a topic from favorites
     1099        // Add arguments
     1100        $url = add_query_arg( $args, $profile_url );
     1101    }
     1102
     1103    // Filter & return
     1104    return apply_filters( 'bbp_get_favorites_permalink', $url, $user_id );
     1105}
     1106
     1107/**
     1108 * Output the link to make a topic favorite/remove a topic from favorites.
    10941109 *
    10951110 * @since 2.0.0 bbPress (r2652)
    10961111 * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
    10971112 *
    1098  * @param array $args See {@link bbp_get_user_favorites_link()}
    1099  * @param int $user_id Optional. User id
     1113 * @param array $args See {@link bbp_get_user_favorites_link()}.
     1114 * @param int $user_id Optional. User id.
    11001115 * @param bool $wrap Optional. If you want to wrap the link in <span id="favorite-toggle">.
    11011116 */
     
    11031118    echo bbp_get_user_favorites_link( $args, $user_id, $wrap );
    11041119}
    1105     /**
    1106      * User favorites link
    1107      *
    1108      * Return the link to make a topic favorite/remove a topic from
    1109      * favorites
    1110      *
    1111      * @since 2.0.0 bbPress (r2652)
    1112      * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
    1113      *
    1114      * @param array $args This function supports these arguments:
    1115      *  - subscribe: Favorite text
    1116      *  - unsubscribe: Unfavorite text
    1117      *  - user_id: User id
    1118      *  - topic_id: Topic id
    1119      *  - before: Before the link
    1120      *  - after: After the link
    1121      * @param int $user_id Optional. User id
    1122      * @param int $topic_id Optional. Topic id
    1123      * @param bool $wrap Optional. If you want to wrap the link in <span id="favorite-toggle">. See ajax_favorite()
    1124      * @return string User favorites link
    1125      */
    1126     function bbp_get_user_favorites_link( $args = array(), $user_id = 0, $wrap = true ) {
    1127 
    1128         // Bail if favorites are inactive
    1129         if ( ! bbp_is_favorites_active() ) {
    1130             return false;
    1131         }
    1132 
    1133         // Parse arguments against default values
    1134         $r = bbp_parse_args(
    1135             $args,
    1136             array(
    1137                 'favorite'    => esc_html__( 'Favorite',   'bbpress' ),
    1138                 'favorited'   => esc_html__( 'Unfavorite', 'bbpress' ),
    1139                 'user_id'     => 0,
    1140                 'object_id'   => 0,
    1141                 'object_type' => 'post',
    1142                 'before'      => '',
    1143                 'after'       => '',
    1144                 'redirect_to' => '',
    1145 
    1146                 // Deprecated. Use object_id.
    1147                 'forum_id'    => 0,
    1148                 'topic_id'    => 0
    1149             ),
    1150             'get_user_favorites_link'
     1120
     1121/**
     1122 * User favorites link.
     1123 *
     1124 * Return the link to make a topic favorite/remove a topic from
     1125 * favorites.
     1126 *
     1127 * @since 2.0.0 bbPress (r2652)
     1128 * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
     1129 *
     1130 * @param array $args This function supports these arguments:
     1131 *  - subscribe: Favorite text
     1132 *  - unsubscribe: Unfavorite text
     1133 *  - user_id: User id
     1134 *  - topic_id: Topic id
     1135 *  - before: Before the link
     1136 *  - after: After the link
     1137 * @param int $user_id Optional. User id.
     1138 * @param int $topic_id Optional. Topic id.
     1139 * @param bool $wrap Optional. If you want to wrap the link in <span id="favorite-toggle">. See ajax_favorite().
     1140 * @return string User favorites link.
     1141 */
     1142function bbp_get_user_favorites_link( $args = array(), $user_id = 0, $wrap = true ) {
     1143
     1144    // Bail if favorites are inactive
     1145    if ( ! bbp_is_favorites_active() ) {
     1146        return false;
     1147    }
     1148
     1149    // Parse arguments against default values
     1150    $r = bbp_parse_args(
     1151        $args,
     1152        array(
     1153            'favorite'    => esc_html__( 'Favorite',   'bbpress' ),
     1154            'favorited'   => esc_html__( 'Unfavorite', 'bbpress' ),
     1155            'user_id'     => 0,
     1156            'object_id'   => 0,
     1157            'object_type' => 'post',
     1158            'before'      => '',
     1159            'after'       => '',
     1160            'redirect_to' => '',
     1161
     1162            // Deprecated. Use object_id.
     1163            'forum_id'    => 0,
     1164            'topic_id'    => 0
     1165        ),
     1166        'get_user_favorites_link'
     1167    );
     1168
     1169    // Validate user and object ID's
     1170    $user_id     = bbp_get_user_id( $r['user_id'], true, true );
     1171    $object_type = sanitize_key( $r['object_type'] );
     1172
     1173    // Back-compat for deprecated arguments
     1174    if ( ! empty( $r['topic_id'] ) ) {
     1175        $object_id = absint( $r['topic_id'] );
     1176    } elseif ( ! empty( $r['forum_id'] ) ) {
     1177        $object_id = absint( $r['forum_id'] );
     1178    } else {
     1179        $object_id = absint( $r['object_id'] );
     1180    }
     1181
     1182    // Bail if empty
     1183    if ( empty( $user_id ) || empty( $object_id ) || empty( $object_type ) ) {
     1184        return false;
     1185    }
     1186
     1187    // No link if you can't edit yourself
     1188    if ( ! current_user_can( 'edit_user', $user_id ) ) {
     1189        return false;
     1190    }
     1191
     1192    // Decide which link to show
     1193    $is_fav = bbp_is_user_favorite( $user_id, $object_id );
     1194    if ( ! empty( $is_fav ) ) {
     1195        $text   = $r['favorited'];
     1196        $q_args = array(
     1197            'action'    => 'bbp_favorite_remove',
     1198            'object_id' => $object_id
    11511199        );
    1152 
    1153         // Validate user and object ID's
    1154         $user_id     = bbp_get_user_id( $r['user_id'], true, true );
    1155         $object_type = sanitize_key( $r['object_type'] );
    1156 
    1157         // Back-compat for deprecated arguments
    1158         if ( ! empty( $r['topic_id'] ) ) {
    1159             $object_id = absint( $r['topic_id'] );
    1160         } elseif ( ! empty( $r['forum_id'] ) ) {
    1161             $object_id = absint( $r['forum_id'] );
    1162         } else {
    1163             $object_id = absint( $r['object_id'] );
    1164         }
    1165 
    1166         // Bail if empty
    1167         if ( empty( $user_id ) || empty( $object_id ) || empty( $object_type ) ) {
    1168             return false;
    1169         }
    1170 
    1171         // No link if you can't edit yourself
    1172         if ( ! current_user_can( 'edit_user', $user_id ) ) {
    1173             return false;
    1174         }
    1175 
    1176         // Decide which link to show
    1177         $is_fav = bbp_is_user_favorite( $user_id, $object_id );
    1178         if ( ! empty( $is_fav ) ) {
    1179             $text   = $r['favorited'];
    1180             $q_args = array(
    1181                 'action'    => 'bbp_favorite_remove',
    1182                 'object_id' => $object_id
    1183             );
    1184         } else {
    1185             $text   = $r['favorite'];
    1186             $q_args = array(
    1187                 'action'    => 'bbp_favorite_add',
    1188                 'object_id' => $object_id
    1189             );
    1190         }
    1191 
    1192         // Custom redirect
    1193         if ( ! empty( $r['redirect_to'] ) ) {
    1194             $q_args['redirect_to'] = urlencode( $r['redirect_to'] );
    1195         }
    1196 
    1197         // URL
    1198         $url  = esc_url( wp_nonce_url( add_query_arg( $q_args ), 'toggle-favorite_' . $object_id ) );
    1199         $sub  = $is_fav ? ' class="is-favorite"' : '';
    1200         $html = sprintf( '%s<span id="favorite-%d"  %s><a href="%s" class="favorite-toggle" data-bbp-object-id="%d" data-bbp-object-type="%s" data-bbp-nonce="%s">%s</a></span>%s', $r['before'], $object_id, $sub, $url, $object_id, $object_type, wp_create_nonce( 'toggle-favorite_' . $object_id ), $text, $r['after'] );
    1201 
    1202         // Initial output is wrapped in a span, ajax output is hooked to this
    1203         if ( ! empty( $wrap ) ) {
    1204             $html = '<span id="favorite-toggle">' . $html . '</span>';
    1205         }
    1206 
    1207         // Filter & return
    1208         return apply_filters( 'bbp_get_user_favorites_link', $html, $r, $user_id, $object_id );
    1209     }
     1200    } else {
     1201        $text   = $r['favorite'];
     1202        $q_args = array(
     1203            'action'    => 'bbp_favorite_add',
     1204            'object_id' => $object_id
     1205        );
     1206    }
     1207
     1208    // Custom redirect
     1209    if ( ! empty( $r['redirect_to'] ) ) {
     1210        $q_args['redirect_to'] = urlencode( $r['redirect_to'] );
     1211    }
     1212
     1213    // URL
     1214    $url  = esc_url( wp_nonce_url( add_query_arg( $q_args ), 'toggle-favorite_' . $object_id ) );
     1215    $sub  = $is_fav ? ' class="is-favorite"' : '';
     1216    $html = sprintf( '%s<span id="favorite-%d"  %s><a href="%s" class="favorite-toggle" data-bbp-object-id="%d" data-bbp-object-type="%s" data-bbp-nonce="%s">%s</a></span>%s', $r['before'], $object_id, $sub, $url, $object_id, $object_type, wp_create_nonce( 'toggle-favorite_' . $object_id ), $text, $r['after'] );
     1217
     1218    // Initial output is wrapped in a span, ajax output is hooked to this
     1219    if ( ! empty( $wrap ) ) {
     1220        $html = '<span id="favorite-toggle">' . $html . '</span>';
     1221    }
     1222
     1223    // Filter & return
     1224    return apply_filters( 'bbp_get_user_favorites_link', $html, $r, $user_id, $object_id );
     1225}
    12101226
    12111227/** Subscriptions *************************************************************/
    12121228
    12131229/**
    1214  * Output the link to the user's subscriptions page (profile page)
     1230 * Output the link to the user's subscriptions page (profile page).
    12151231 *
    12161232 * @since 2.0.0 bbPress (r2688)
    12171233 * @since 2.6.0 bbPress (r6308) Add pagination if in the loop
    12181234 *
    1219  * @param int $user_id Optional. User id
     1235 * @param int $user_id Optional. User id.
    12201236 */
    12211237function bbp_subscriptions_permalink( $user_id = 0 ) {
    12221238    echo esc_url( bbp_get_subscriptions_permalink( $user_id ) );
    12231239}
    1224     /**
    1225      * Return the link to the user's subscriptions page (profile page)
    1226      *
    1227      * @since 2.0.0 bbPress (r2688)
    1228      * @since 2.6.0 bbPress (r6308) Add pagination if in the loop
    1229      *
    1230      * @param int $user_id Optional. User id
    1231      * @return string Permanent link to user subscriptions page
    1232      */
    1233     function bbp_get_subscriptions_permalink( $user_id = 0 ) {
    1234 
    1235         // Use displayed user ID if there is one, and one isn't requested
    1236         $user_id = bbp_get_user_id( $user_id );
    1237         if ( empty( $user_id ) ) {
    1238             return false;
     1240
     1241/**
     1242 * Return the link to the user's subscriptions page (profile page).
     1243 *
     1244 * @since 2.0.0 bbPress (r2688)
     1245 * @since 2.6.0 bbPress (r6308) Add pagination if in the loop
     1246 *
     1247 * @param int $user_id Optional. User id.
     1248 * @return string Permanent link to user subscriptions page.
     1249 */
     1250function bbp_get_subscriptions_permalink( $user_id = 0 ) {
     1251
     1252    // Use displayed user ID if there is one, and one isn't requested
     1253    $user_id = bbp_get_user_id( $user_id );
     1254    if ( empty( $user_id ) ) {
     1255        return false;
     1256    }
     1257
     1258    // Bail if intercepted
     1259    $intercept = bbp_maybe_intercept( 'bbp_pre_get_subscriptions_permalink', func_get_args() );
     1260    if ( bbp_is_intercepted( $intercept ) ) {
     1261        return $intercept;
     1262    }
     1263
     1264    // Get user profile URL
     1265    $profile_url = bbp_get_user_profile_url( $user_id );
     1266    $page        = 0;
     1267    $paged       = false;
     1268
     1269    // Get pagination data
     1270    if ( bbpress()->topic_query->in_the_loop ) {
     1271        $page  = (int) bbpress()->topic_query->paged;
     1272        $paged = (bool) bbpress()->topic_query->in_the_loop;
     1273
     1274    } elseif ( bbpress()->forum_query->in_the_loop ) {
     1275        $page  = (int) bbpress()->forum_query->paged;
     1276        $paged = (bool) bbpress()->forum_query->in_the_loop;
     1277    }
     1278
     1279    // Pretty permalinks
     1280    if ( bbp_use_pretty_urls() ) {
     1281
     1282        // Base URL
     1283        $url = trailingslashit( $profile_url ) . bbp_get_user_subscriptions_slug();
     1284
     1285        // Add page
     1286        if ( ( true === $paged ) && ( $page > 1 ) ) {
     1287            $url = trailingslashit( $url ) . bbp_get_paged_slug() . '/' . $page;
    12391288        }
    12401289
    1241         // Bail if intercepted
    1242         $intercept = bbp_maybe_intercept( 'bbp_pre_get_subscriptions_permalink', func_get_args() );
    1243         if ( bbp_is_intercepted( $intercept ) ) {
    1244             return $intercept;
     1290        // Ensure correct trailing slash
     1291        $url = user_trailingslashit( $url );
     1292
     1293    // Unpretty permalinks
     1294    } else {
     1295
     1296        // Base arguments
     1297        $args = array(
     1298            bbp_get_user_subscriptions_rewrite_id() => bbp_get_user_subscriptions_slug(),
     1299        );
     1300
     1301        // Add page
     1302        if ( ( true === $paged ) && ( $page > 1 ) ) {
     1303            $args['page'] = $page;
    12451304        }
    12461305
    1247         // Get user profile URL
    1248         $profile_url = bbp_get_user_profile_url( $user_id );
    1249         $page        = 0;
    1250         $paged       = false;
    1251 
    1252         // Get pagination data
    1253         if ( bbpress()->topic_query->in_the_loop ) {
    1254             $page  = (int) bbpress()->topic_query->paged;
    1255             $paged = (bool) bbpress()->topic_query->in_the_loop;
    1256 
    1257         } elseif ( bbpress()->forum_query->in_the_loop ) {
    1258             $page  = (int) bbpress()->forum_query->paged;
    1259             $paged = (bool) bbpress()->forum_query->in_the_loop;
    1260         }
    1261 
    1262         // Pretty permalinks
    1263         if ( bbp_use_pretty_urls() ) {
    1264 
    1265             // Base URL
    1266             $url = trailingslashit( $profile_url ) . bbp_get_user_subscriptions_slug();
    1267 
    1268             // Add page
    1269             if ( ( true === $paged ) && ( $page > 1 ) ) {
    1270                 $url = trailingslashit( $url ) . bbp_get_paged_slug() . '/' . $page;
    1271             }
    1272 
    1273             // Ensure correct trailing slash
    1274             $url = user_trailingslashit( $url );
    1275 
    1276         // Unpretty permalinks
    1277         } else {
    1278 
    1279             // Base arguments
    1280             $args = array(
    1281                 bbp_get_user_subscriptions_rewrite_id() => bbp_get_user_subscriptions_slug(),
    1282             );
    1283 
    1284             // Add page
    1285             if ( ( true === $paged ) && ( $page > 1 ) ) {
    1286                 $args['page'] = $page;
    1287             }
    1288 
    1289             // Add arguments
    1290             $url = add_query_arg( $args, $profile_url );
    1291         }
    1292 
    1293         // Filter & return
    1294         return apply_filters( 'bbp_get_subscriptions_permalink', $url, $user_id );
    1295     }
    1296 
    1297 /**
    1298  * Output the link to subscribe/unsubscribe from a topic
     1306        // Add arguments
     1307        $url = add_query_arg( $args, $profile_url );
     1308    }
     1309
     1310    // Filter & return
     1311    return apply_filters( 'bbp_get_subscriptions_permalink', $url, $user_id );
     1312}
     1313
     1314/**
     1315 * Output the link to subscribe/unsubscribe from a topic.
    12991316 *
    13001317 * @since 2.0.0 bbPress (r2668)
    13011318 * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
    13021319 *
    1303  * @param array $args See {@link bbp_get_user_subscribe_link()}
    1304  * @param int $user_id Optional. User id
     1320 * @param array $args See {@link bbp_get_user_subscribe_link()}.
     1321 * @param int $user_id Optional. User id.
    13051322 * @param bool $wrap Optional. If you want to wrap the link in <span id="subscription-toggle">.
    13061323 */
     
    13081325    echo bbp_get_user_subscribe_link( $args, $user_id, $wrap );
    13091326}
    1310     /**
    1311      * Return the link to subscribe/unsubscribe from a forum or topic
    1312      *
    1313      * @since 2.0.0 bbPress (r2668)
    1314      * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
    1315      *
    1316      * @param array $args This function supports these arguments:
    1317      *  - subscribe: Subscribe text
    1318      *  - unsubscribe: Unsubscribe text
    1319      *  - user_id: User id
    1320      *  - topic_id: Topic id
    1321      *  - forum_id: Forum id
    1322      *  - before: Before the link
    1323      *  - after: After the link
    1324      * @param int $user_id Optional. User id
    1325      * @param bool $wrap Optional. If you want to wrap the link in <span id="subscription-toggle">.
    1326      * @return string Permanent link to topic
    1327      */
    1328     function bbp_get_user_subscribe_link( $args = array(), $user_id = 0, $wrap = true ) {
    1329 
    1330         // Bail if subscriptions are inactive
    1331         if ( ! bbp_is_subscriptions_active() ) {
    1332             return;
    1333         }
    1334 
    1335         // Parse arguments against default values
    1336         $r = bbp_parse_args(
    1337             $args,
    1338             array(
    1339                 'subscribe'   => esc_html__( 'Subscribe',   'bbpress' ),
    1340                 'unsubscribe' => esc_html__( 'Unsubscribe', 'bbpress' ),
    1341                 'user_id'     => 0,
    1342                 'object_id'   => 0,
    1343                 'object_type' => 'post',
    1344                 'before'      => '',
    1345                 'after'       => '',
    1346                 'redirect_to' => '',
    1347 
    1348                 // Deprecated. Use object_id.
    1349                 'forum_id'    => 0,
    1350                 'topic_id'    => 0
    1351             ),
    1352             'get_user_subscribe_link'
     1327
     1328/**
     1329 * Return the link to subscribe/unsubscribe from a forum or topic.
     1330 *
     1331 * @since 2.0.0 bbPress (r2668)
     1332 * @since 2.6.0 bbPress (r6308) Add 'redirect_to' support
     1333 *
     1334 * @param array $args This function supports these arguments:
     1335 *  - subscribe: Subscribe text
     1336 *  - unsubscribe: Unsubscribe text
     1337 *  - user_id: User id
     1338 *  - topic_id: Topic id
     1339 *  - forum_id: Forum id
     1340 *  - before: Before the link
     1341 *  - after: After the link
     1342 * @param int $user_id Optional. User id.
     1343 * @param bool $wrap Optional. If you want to wrap the link in <span id="subscription-toggle">.
     1344 * @return string Permanent link to topic.
     1345 */
     1346function bbp_get_user_subscribe_link( $args = array(), $user_id = 0, $wrap = true ) {
     1347
     1348    // Bail if subscriptions are inactive
     1349    if ( ! bbp_is_subscriptions_active() ) {
     1350        return;
     1351    }
     1352
     1353    // Parse arguments against default values
     1354    $r = bbp_parse_args(
     1355        $args,
     1356        array(
     1357            'subscribe'   => esc_html__( 'Subscribe',   'bbpress' ),
     1358            'unsubscribe' => esc_html__( 'Unsubscribe', 'bbpress' ),
     1359            'user_id'     => 0,
     1360            'object_id'   => 0,
     1361            'object_type' => 'post',
     1362            'before'      => '',
     1363            'after'       => '',
     1364            'redirect_to' => '',
     1365
     1366            // Deprecated. Use object_id.
     1367            'forum_id'    => 0,
     1368            'topic_id'    => 0
     1369        ),
     1370        'get_user_subscribe_link'
     1371    );
     1372
     1373    // Validate user
     1374    $user_id     = bbp_get_user_id( $r['user_id'], true, true );
     1375    $object_type = sanitize_key( $r['object_type'] );
     1376
     1377    // Back-compat for deprecated arguments
     1378    if ( ! empty( $r['topic_id'] ) ) {
     1379        $object_id = absint( $r['topic_id'] );
     1380    } elseif ( ! empty( $r['forum_id'] ) ) {
     1381        $object_id = absint( $r['forum_id'] );
     1382    } else {
     1383        $object_id = absint( $r['object_id'] );
     1384    }
     1385
     1386    // Bail if anything is missing
     1387    if ( empty( $user_id ) || empty( $object_id ) || empty( $object_type ) ) {
     1388        return false;
     1389    }
     1390
     1391    // No link if you can't edit yourself
     1392    if ( ! current_user_can( 'edit_user', $user_id ) ) {
     1393        return false;
     1394    }
     1395
     1396    // Decide which link to show
     1397    $is_subscribed = bbp_is_user_subscribed( $user_id, $object_id );
     1398    if ( ! empty( $is_subscribed ) ) {
     1399        $text   = $r['unsubscribe'];
     1400        $q_args = array(
     1401            'action'      => 'bbp_unsubscribe',
     1402            'object_id'   => $object_id,
     1403            'object_type' => $object_type
    13531404        );
    1354 
    1355         // Validate user
    1356         $user_id     = bbp_get_user_id( $r['user_id'], true, true );
    1357         $object_type = sanitize_key( $r['object_type'] );
    1358 
    1359         // Back-compat for deprecated arguments
    1360         if ( ! empty( $r['topic_id'] ) ) {
    1361             $object_id = absint( $r['topic_id'] );
    1362         } elseif ( ! empty( $r['forum_id'] ) ) {
    1363             $object_id = absint( $r['forum_id'] );
    1364         } else {
    1365             $object_id = absint( $r['object_id'] );
    1366         }
    1367 
    1368         // Bail if anything is missing
    1369         if ( empty( $user_id ) || empty( $object_id ) || empty( $object_type ) ) {
    1370             return false;
    1371         }
    1372 
    1373         // No link if you can't edit yourself
    1374         if ( ! current_user_can( 'edit_user', $user_id ) ) {
    1375             return false;
    1376         }
    1377 
    1378         // Decide which link to show
    1379         $is_subscribed = bbp_is_user_subscribed( $user_id, $object_id );
    1380         if ( ! empty( $is_subscribed ) ) {
    1381             $text   = $r['unsubscribe'];
    1382             $q_args = array(
    1383                 'action'      => 'bbp_unsubscribe',
    1384                 'object_id'   => $object_id,
    1385                 'object_type' => $object_type
    1386             );
    1387         } else {
    1388             $text   = $r['subscribe'];
    1389             $q_args = array(
    1390                 'action'      => 'bbp_subscribe',
    1391                 'object_id'   => $object_id,
    1392                 'object_type' => $object_type
    1393             );
    1394         }
    1395 
    1396         // Custom redirect
    1397         if ( ! empty( $r['redirect_to'] ) ) {
    1398             $q_args['redirect_to'] = urlencode( $r['redirect_to'] );
    1399         }
    1400 
    1401         // URL
    1402         $url  = esc_url( wp_nonce_url( add_query_arg( $q_args ), 'toggle-subscription_' . $object_id ) );
    1403         $sub  = $is_subscribed ? ' class="is-subscribed"' : '';
    1404         $html = sprintf( '%s<span id="subscribe-%d"  %s><a href="%s" class="subscription-toggle" data-bbp-object-id="%d" data-bbp-object-type="%d" data-bbp-nonce="%s">%s</a></span>%s', $r['before'], $object_id, $sub, $url, $object_id, $object_type, wp_create_nonce( 'toggle-subscription_' . $object_id ), $text, $r['after'] );
    1405 
    1406         // Initial output is wrapped in a span, ajax output is hooked to this
    1407         if ( ! empty( $wrap ) ) {
    1408             $html = '<span id="subscription-toggle">' . $html . '</span>';
    1409         }
    1410 
    1411         // Filter & return
    1412         return apply_filters( 'bbp_get_user_subscribe_link', $html, $r, $user_id, $object_id );
    1413     }
    1414 
     1405    } else {
     1406        $text   = $r['subscribe'];
     1407        $q_args = array(
     1408            'action'      => 'bbp_subscribe',
     1409            'object_id'   => $object_id,
     1410            'object_type' => $object_type
     1411        );
     1412    }
     1413
     1414    // Custom redirect
     1415    if ( ! empty( $r['redirect_to'] ) ) {
     1416        $q_args['redirect_to'] = urlencode( $r['redirect_to'] );
     1417    }
     1418
     1419    // URL
     1420    $url  = esc_url( wp_nonce_url( add_query_arg( $q_args ), 'toggle-subscription_' . $object_id ) );
     1421    $sub  = $is_subscribed ? ' class="is-subscribed"' : '';
     1422    $html = sprintf( '%s<span id="subscribe-%d"  %s><a href="%s" class="subscription-toggle" data-bbp-object-id="%d" data-bbp-object-type="%d" data-bbp-nonce="%s">%s</a></span>%s', $r['before'], $object_id, $sub, $url, $object_id, $object_type, wp_create_nonce( 'toggle-subscription_' . $object_id ), $text, $r['after'] );
     1423
     1424    // Initial output is wrapped in a span, ajax output is hooked to this
     1425    if ( ! empty( $wrap ) ) {
     1426        $html = '<span id="subscription-toggle">' . $html . '</span>';
     1427    }
     1428
     1429    // Filter & return
     1430    return apply_filters( 'bbp_get_user_subscribe_link', $html, $r, $user_id, $object_id );
     1431}
    14151432
    14161433/** Edit User *****************************************************************/
    14171434
    14181435/**
    1419  * Display profile edit success notice on user edit page
     1436 * Display profile edit success notice on user edit page.
    14201437 *
    14211438 * @since 2.0.0 bbPress (r2688)
     
    14431460
    14441461/**
    1445  * Display pending email change notice on user edit page
     1462 * Display pending email change notice on user edit page.
    14461463 *
    14471464 * @since 2.6.0 bbPress (r5660)
     
    14951512
    14961513/**
    1497  * Super admin privileges notice
     1514 * Super admin privileges notice.
    14981515 *
    14991516 * @since 2.0.0 bbPress (r2688)
     
    15121529
    15131530/**
    1514  * Drop down for selecting the user's display name
     1531 * Drop down for selecting the user's display name.
    15151532 *
    15161533 * @since 2.0.0 bbPress (r2688)
     
    15601577
    15611578/**
    1562  * Output blog role selector (for user edit)
     1579 * Output blog role selector (for user edit).
    15631580 *
    15641581 * @since 2.0.0 bbPress (r2688)
     
    15921609
    15931610/**
    1594  * Output forum role selector (for user edit)
     1611 * Output forum role selector (for user edit).
    15951612 *
    15961613 * @since 2.2.0 bbPress (r4284)
     
    16291646
    16301647/**
    1631  * Return user contact methods select box
     1648 * Return user contact methods select box.
    16321649 *
    16331650 * @since 2.0.0 bbPress (r2688)
    1634  * @return string User contact methods
     1651 *
     1652 * @return string User contact methods.
    16351653 */
    16361654function bbp_edit_user_contact_methods() {
     
    16441662
    16451663/**
    1646  * Output the language chooser (for user edit)
     1664 * Output the language chooser (for user edit).
    16471665 *
    16481666 * @since 2.6.0 bbPress (r6488)
    16491667 *
    1650  * @param array $args See wp_dropdown_languages()
     1668 * @param array $args See wp_dropdown_languages().
    16511669 * @return string
    16521670 */
     
    16651683
    16661684/**
    1667  * Output the link to the user's topics
     1685 * Output the link to the user's topics.
    16681686 *
    16691687 * @since 2.2.0 bbPress (r4225)
    16701688 *
    1671  * @param int $user_id Optional. User id
     1689 * @param int $user_id Optional. User id.
    16721690 */
    16731691function bbp_user_topics_created_url( $user_id = 0 ) {
    16741692    echo esc_url( bbp_get_user_topics_created_url( $user_id ) );
    16751693}
    1676     /**
    1677      * Return the link to the user's topics
    1678      *
    1679      * @since 2.2.0 bbPress (r4225)
    1680      *
    1681      * @param int $user_id Optional. User id
    1682      * @return string Permanent link to user profile page
    1683      */
    1684     function bbp_get_user_topics_created_url( $user_id = 0 ) {
    1685 
    1686         // Use displayed user ID if there is one, and one isn't requested
    1687         $user_id = bbp_get_user_id( $user_id );
    1688         if ( empty( $user_id ) ) {
    1689             return false;
    1690         }
    1691 
    1692         // Bail if intercepted
    1693         $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_topics_created_url', func_get_args() );
    1694         if ( bbp_is_intercepted( $intercept ) ) {
    1695             return $intercept;
    1696         }
    1697 
    1698         // Get user profile URL
    1699         $profile_url = bbp_get_user_profile_url( $user_id );
    1700 
    1701         // Pretty permalinks
    1702         if ( bbp_use_pretty_urls() ) {
    1703             $url = trailingslashit( $profile_url ) . bbp_get_topic_archive_slug();
    1704             $url = user_trailingslashit( $url );
    1705 
    1706         // Unpretty permalinks
    1707         } else {
    1708             $url = add_query_arg(
    1709                 array(
    1710                     bbp_get_user_topics_rewrite_id() => '1',
    1711                 ),
    1712                 $profile_url
    1713             );
    1714         }
    1715 
    1716         // Filter & return
    1717         return apply_filters( 'bbp_get_user_topics_created_url', $url, $user_id );
    1718     }
     1694
     1695/**
     1696 * Return the link to the user's topics.
     1697 *
     1698 * @since 2.2.0 bbPress (r4225)
     1699 *
     1700 * @param int $user_id Optional. User id.
     1701 * @return string Permanent link to user profile page.
     1702 */
     1703function bbp_get_user_topics_created_url( $user_id = 0 ) {
     1704
     1705    // Use displayed user ID if there is one, and one isn't requested
     1706    $user_id = bbp_get_user_id( $user_id );
     1707    if ( empty( $user_id ) ) {
     1708        return false;
     1709    }
     1710
     1711    // Bail if intercepted
     1712    $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_topics_created_url', func_get_args() );
     1713    if ( bbp_is_intercepted( $intercept ) ) {
     1714        return $intercept;
     1715    }
     1716
     1717    // Get user profile URL
     1718    $profile_url = bbp_get_user_profile_url( $user_id );
     1719
     1720    // Pretty permalinks
     1721    if ( bbp_use_pretty_urls() ) {
     1722        $url = trailingslashit( $profile_url ) . bbp_get_topic_archive_slug();
     1723        $url = user_trailingslashit( $url );
     1724
     1725    // Unpretty permalinks
     1726    } else {
     1727        $url = add_query_arg(
     1728            array(
     1729                bbp_get_user_topics_rewrite_id() => '1',
     1730            ),
     1731            $profile_url
     1732        );
     1733    }
     1734
     1735    // Filter & return
     1736    return apply_filters( 'bbp_get_user_topics_created_url', $url, $user_id );
     1737}
    17191738
    17201739/** Replies Created ************************************************************/
    17211740
    17221741/**
    1723  * Output the link to the user's replies
     1742 * Output the link to the user's replies.
    17241743 *
    17251744 * @since 2.2.0 bbPress (r4225)
    17261745 *
    1727  * @param int $user_id Optional. User id
     1746 * @param int $user_id Optional. User id.
    17281747 */
    17291748function bbp_user_replies_created_url( $user_id = 0 ) {
    17301749    echo esc_url( bbp_get_user_replies_created_url( $user_id ) );
    17311750}
    1732     /**
    1733      * Return the link to the user's replies
    1734      *
    1735      * @since 2.2.0 bbPress (r4225)
    1736      *
    1737      * @param int $user_id Optional. User id
    1738      * @return string Permanent link to user profile page
    1739      */
    1740     function bbp_get_user_replies_created_url( $user_id = 0 ) {
    1741 
    1742         // Use displayed user ID if there is one, and one isn't requested
    1743         $user_id = bbp_get_user_id( $user_id );
    1744         if ( empty( $user_id ) ) {
    1745             return false;
    1746         }
    1747 
    1748         // Bail if intercepted
    1749         $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_replies_created_url', func_get_args() );
    1750         if ( bbp_is_intercepted( $intercept ) ) {
    1751             return $intercept;
    1752         }
    1753 
    1754         // Get user profile URL
    1755         $profile_url = bbp_get_user_profile_url( $user_id );
    1756 
    1757         // Pretty permalinks
    1758         if ( bbp_use_pretty_urls() ) {
    1759             $url = trailingslashit( $profile_url ) . bbp_get_reply_archive_slug();
    1760             $url = user_trailingslashit( $url );
    1761 
    1762         // Unpretty permalinks
    1763         } else {
    1764             $url = add_query_arg(
    1765                 array(
    1766                     bbp_get_user_replies_rewrite_id() => '1',
    1767                 ),
    1768                 $profile_url
    1769             );
    1770         }
    1771 
    1772         // Filter & return
    1773         return apply_filters( 'bbp_get_user_replies_created_url', $url, $user_id );
    1774     }
     1751
     1752/**
     1753 * Return the link to the user's replies.
     1754 *
     1755 * @since 2.2.0 bbPress (r4225)
     1756 *
     1757 * @param int $user_id Optional. User id.
     1758 * @return string Permanent link to user profile page.
     1759 */
     1760function bbp_get_user_replies_created_url( $user_id = 0 ) {
     1761
     1762    // Use displayed user ID if there is one, and one isn't requested
     1763    $user_id = bbp_get_user_id( $user_id );
     1764    if ( empty( $user_id ) ) {
     1765        return false;
     1766    }
     1767
     1768    // Bail if intercepted
     1769    $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_replies_created_url', func_get_args() );
     1770    if ( bbp_is_intercepted( $intercept ) ) {
     1771        return $intercept;
     1772    }
     1773
     1774    // Get user profile URL
     1775    $profile_url = bbp_get_user_profile_url( $user_id );
     1776
     1777    // Pretty permalinks
     1778    if ( bbp_use_pretty_urls() ) {
     1779        $url = trailingslashit( $profile_url ) . bbp_get_reply_archive_slug();
     1780        $url = user_trailingslashit( $url );
     1781
     1782    // Unpretty permalinks
     1783    } else {
     1784        $url = add_query_arg(
     1785            array(
     1786                bbp_get_user_replies_rewrite_id() => '1',
     1787            ),
     1788            $profile_url
     1789        );
     1790    }
     1791
     1792    // Filter & return
     1793    return apply_filters( 'bbp_get_user_replies_created_url', $url, $user_id );
     1794}
    17751795
    17761796/** Engagements ***************************************************************/
    17771797
    17781798/**
    1779  * Output the link to the user's engagements
     1799 * Output the link to the user's engagements.
    17801800 *
    17811801 * @since 2.6.0 bbPress (r6320)
    17821802 *
    1783  * @param int $user_id Optional. User id
     1803 * @param int $user_id Optional. User id.
    17841804 */
    17851805function bbp_user_engagements_url( $user_id = 0 ) {
    17861806    echo esc_url( bbp_get_user_engagements_url( $user_id ) );
    17871807}
    1788     /**
    1789      * Return the link to the user's engagements
    1790      *
    1791      * @since 2.6.0 bbPress (r6320)
    1792      *
    1793      * @param int $user_id Optional. User id
    1794      * @return string Permanent link to user profile page
    1795      */
    1796     function bbp_get_user_engagements_url( $user_id = 0 ) {
    1797 
    1798         // Use displayed user ID if there is one, and one isn't requested
    1799         $user_id = bbp_get_user_id( $user_id );
    1800         if ( empty( $user_id ) ) {
    1801             return false;
    1802         }
    1803 
    1804         // Bail if intercepted
    1805         $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_engagements_url', func_get_args() );
    1806         if ( bbp_is_intercepted( $intercept ) ) {
    1807             return $intercept;
    1808         }
    1809 
    1810         // Get user profile URL
    1811         $profile_url = bbp_get_user_profile_url( $user_id );
    1812 
    1813         // Pretty permalinks
    1814         if ( bbp_use_pretty_urls() ) {
    1815             $url = trailingslashit( $profile_url ) . bbp_get_user_engagements_slug();
    1816             $url = user_trailingslashit( $url );
    1817 
    1818         // Unpretty permalinks
    1819         } else {
    1820             $url = add_query_arg(
    1821                 array(
    1822                     bbp_get_user_engagements_rewrite_id() => '1',
    1823                 ),
    1824                 $profile_url
    1825             );
    1826         }
    1827 
    1828         // Filter & return
    1829         return apply_filters( 'bbp_get_user_engagements_url', $url, $user_id );
    1830     }
     1808
     1809/**
     1810 * Return the link to the user's engagements.
     1811 *
     1812 * @since 2.6.0 bbPress (r6320)
     1813 *
     1814 * @param int $user_id Optional. User id.
     1815 * @return string Permanent link to user profile page.
     1816 */
     1817function bbp_get_user_engagements_url( $user_id = 0 ) {
     1818
     1819    // Use displayed user ID if there is one, and one isn't requested
     1820    $user_id = bbp_get_user_id( $user_id );
     1821    if ( empty( $user_id ) ) {
     1822        return false;
     1823    }
     1824
     1825    // Bail if intercepted
     1826    $intercept = bbp_maybe_intercept( 'bbp_pre_get_user_engagements_url', func_get_args() );
     1827    if ( bbp_is_intercepted( $intercept ) ) {
     1828        return $intercept;
     1829    }
     1830
     1831    // Get user profile URL
     1832    $profile_url = bbp_get_user_profile_url( $user_id );
     1833
     1834    // Pretty permalinks
     1835    if ( bbp_use_pretty_urls() ) {
     1836        $url = trailingslashit( $profile_url ) . bbp_get_user_engagements_slug();
     1837        $url = user_trailingslashit( $url );
     1838
     1839    // Unpretty permalinks
     1840    } else {
     1841        $url = add_query_arg(
     1842            array(
     1843                bbp_get_user_engagements_rewrite_id() => '1',
     1844            ),
     1845            $profile_url
     1846        );
     1847    }
     1848
     1849    // Filter & return
     1850    return apply_filters( 'bbp_get_user_engagements_url', $url, $user_id );
     1851}
    18311852
    18321853/** Language ******************************************************************/
    18331854
    18341855/**
    1835  * Output the select element used to save a user's language
     1856 * Output the select element used to save a user's language.
    18361857 *
    18371858 * @since 2.6.0 bbPress (r6488)
    18381859 *
    1839  * @param array $args See wp_dropdown_languages()
     1860 * @param array $args See wp_dropdown_languages().
    18401861 */
    18411862function bbp_user_languages_dropdown( $args = array() ) {
     
    18431864}
    18441865
    1845     /**
    1846     * Return the select element used to save a user's language.
    1847     *
    1848     * @since 2.6.0 bbPress (r6488)
    1849     *
    1850      * @param array $args See wp_dropdown_languages()
    1851     * @return string
    1852     */
    1853     function bbp_get_user_languages_dropdown( $args = array() ) {
    1854 
    1855         // Get user language
    1856         $user_id = ! empty( $args['user_id'] )
    1857             ? bbp_get_user_id( $args['user_id'], false, false )
    1858             : bbp_get_displayed_user_id();
    1859 
    1860         // Get user locale
    1861         $user_locale = ! empty( $user_id )
    1862             ? get_userdata( $user_id )->locale
    1863             : 'site-default';
    1864 
    1865         // Get all languages
    1866         $languages = get_available_languages();
    1867 
    1868         // No locale for English
    1869         if ( 'en_US' === $user_locale ) {
    1870             $user_locale = '';
    1871 
    1872         // Fallback to site-default if there is a mismatch
    1873         } elseif ( '' === $user_locale || ! in_array( $user_locale, $languages, true ) ) {
    1874             $user_locale = 'site-default';
    1875         }
    1876 
    1877         // Don't pass user ID in
    1878         unset( $args['user_id'] );
    1879 
    1880         // Parse arguments
    1881         $r = bbp_parse_args(
    1882             $args,
    1883             array(
    1884                 'name'                        => 'locale',
    1885                 'id'                          => 'locale',
    1886                 'selected'                    => $user_locale,
    1887                 'languages'                   => $languages,
    1888                 'echo'                        => false,
    1889                 'show_available_translations' => false,
    1890                 'show_option_site_default'    => true
    1891             ),
    1892             'user_languages_dropdown'
    1893         );
    1894 
    1895         // Get the markup for the languages drop-down
    1896         $retval = wp_dropdown_languages( $r );
    1897 
    1898         // Filter & return
    1899         return apply_filters( 'bbp_get_user_languages_dropdown', $retval, $r, $args );
    1900     }
     1866/**
     1867 * Return the select element used to save a user's language.
     1868 *
     1869 * @since 2.6.0 bbPress (r6488)
     1870 *
     1871 * @param array $args See wp_dropdown_languages().
     1872 * @return string
     1873 */
     1874function bbp_get_user_languages_dropdown( $args = array() ) {
     1875
     1876    // Get user language
     1877    $user_id = ! empty( $args['user_id'] )
     1878        ? bbp_get_user_id( $args['user_id'], false, false )
     1879        : bbp_get_displayed_user_id();
     1880
     1881    // Get user locale
     1882    $user_locale = ! empty( $user_id )
     1883        ? get_userdata( $user_id )->locale
     1884        : 'site-default';
     1885
     1886    // Get all languages
     1887    $languages = get_available_languages();
     1888
     1889    // No locale for English
     1890    if ( 'en_US' === $user_locale ) {
     1891        $user_locale = '';
     1892
     1893    // Fallback to site-default if there is a mismatch
     1894    } elseif ( '' === $user_locale || ! in_array( $user_locale, $languages, true ) ) {
     1895        $user_locale = 'site-default';
     1896    }
     1897
     1898    // Don't pass user ID in
     1899    unset( $args['user_id'] );
     1900
     1901    // Parse arguments
     1902    $r = bbp_parse_args(
     1903        $args,
     1904        array(
     1905            'name'                        => 'locale',
     1906            'id'                          => 'locale',
     1907            'selected'                    => $user_locale,
     1908            'languages'                   => $languages,
     1909            'echo'                        => false,
     1910            'show_available_translations' => false,
     1911            'show_option_site_default'    => true
     1912        ),
     1913        'user_languages_dropdown'
     1914    );
     1915
     1916    // Get the markup for the languages drop-down
     1917    $retval = wp_dropdown_languages( $r );
     1918
     1919    // Filter & return
     1920    return apply_filters( 'bbp_get_user_languages_dropdown', $retval, $r, $args );
     1921}
    19011922
    19021923/** Login *********************************************************************/
    19031924
    19041925/**
    1905  * Handle the login and registration template notices
     1926 * Handle the login and registration template notices.
    19061927 *
    19071928 * @since 2.0.0 bbPress (r2970)
     
    19481969 * @since 2.0.0 bbPress (r2815)
    19491970 *
    1950  * @param string $url The URL to redirect to
     1971 * @param string $url The URL to redirect to.
    19511972 */
    19521973function bbp_logged_in_redirect( $url = '' ) {
     
    19651986
    19661987/**
    1967  * Output the required hidden fields when logging in
     1988 * Output the required hidden fields when logging in.
    19681989 *
    19691990 * @since 2.0.0 bbPress (r2815)
     
    19872008
    19882009/**
    1989  * Output the required hidden fields when registering
     2010 * Output the required hidden fields when registering.
    19902011 *
    19912012 * @since 2.0.0 bbPress (r2815)
     
    20102031
    20112032/**
    2012  * Output the required hidden fields when user lost password
     2033 * Output the required hidden fields when user lost password.
    20132034 *
    20142035 * @since 2.0.0 bbPress (r2815)
     
    20322053
    20332054/**
    2034  * Output the author link of a post
     2055 * Output the author link of a post.
    20352056 *
    20362057 * @since 2.0.0 bbPress (r2875)
     
    20412062    echo bbp_get_author_link( $args );
    20422063}
    2043     /**
    2044      * Return the author link of the post
    2045      *
    2046      * @since 2.0.0 bbPress (r2875)
    2047      *
    2048      * @param array $args Optional. If an integer, it is used as reply id.
    2049      * @return string Author link of reply
    2050      */
    2051     function bbp_get_author_link( $args = array() ) {
    2052 
    2053         $post_id = is_numeric( $args ) ? (int) $args : 0;
    2054 
    2055         // Parse arguments against default values
    2056         $r = bbp_parse_args(
    2057             $args,
    2058             array(
    2059                 'post_id'    => $post_id,
    2060                 'link_title' => '',
    2061                 'type'       => 'both',
    2062                 'size'       => 80,
    2063                 'sep'        => ''
    2064             ),
    2065             'get_author_link'
    2066         );
    2067 
    2068         // Confirmed topic
    2069         if ( bbp_is_topic( $r['post_id'] ) ) {
    2070             return bbp_get_topic_author_link( $r );
    2071 
    2072         // Confirmed reply
    2073         } elseif ( bbp_is_reply( $r['post_id'] ) ) {
    2074             return bbp_get_reply_author_link( $r );
     2064
     2065/**
     2066 * Return the author link of the post.
     2067 *
     2068 * @since 2.0.0 bbPress (r2875)
     2069 *
     2070 * @param array $args Optional. If an integer, it is used as reply id.
     2071 * @return string Author link of reply.
     2072 */
     2073function bbp_get_author_link( $args = array() ) {
     2074
     2075    $post_id = is_numeric( $args ) ? (int) $args : 0;
     2076
     2077    // Parse arguments against default values
     2078    $r = bbp_parse_args(
     2079        $args,
     2080        array(
     2081            'post_id'    => $post_id,
     2082            'link_title' => '',
     2083            'type'       => 'both',
     2084            'size'       => 80,
     2085            'sep'        => ''
     2086        ),
     2087        'get_author_link'
     2088    );
     2089
     2090    // Confirmed topic
     2091    if ( bbp_is_topic( $r['post_id'] ) ) {
     2092        return bbp_get_topic_author_link( $r );
     2093
     2094    // Confirmed reply
     2095    } elseif ( bbp_is_reply( $r['post_id'] ) ) {
     2096        return bbp_get_reply_author_link( $r );
     2097    }
     2098
     2099    // Default return value
     2100    $author_link = '';
     2101
     2102    // Neither a reply nor a topic, so could be a revision
     2103    if ( ! empty( $r['post_id'] ) ) {
     2104
     2105        // Get some useful reply information
     2106        $user_id    = get_post_field( 'post_author', $r['post_id'] );
     2107        $author_url = bbp_get_user_profile_url( $user_id );
     2108        $anonymous  = bbp_is_reply_anonymous( $r['post_id'] );
     2109
     2110        // Generate title with the display name of the author
     2111        if ( empty( $r['link_title'] ) ) {
     2112            $author = get_the_author_meta( 'display_name', $user_id );
     2113            $title  = empty( $anonymous )
     2114                /* translators: %s: Author's display name */
     2115                ? esc_attr__( "View %s's profile",  'bbpress' )
     2116                /* translators: %s: Author's display name */
     2117                : esc_attr__( "Visit %s's website", 'bbpress' );
     2118
     2119            $r['link_title'] = sprintf( $title, $author );
    20752120        }
    20762121
    2077         // Default return value
    2078         $author_link = '';
    2079 
    2080         // Neither a reply nor a topic, so could be a revision
    2081         if ( ! empty( $r['post_id'] ) ) {
    2082 
    2083             // Get some useful reply information
    2084             $user_id    = get_post_field( 'post_author', $r['post_id'] );
    2085             $author_url = bbp_get_user_profile_url( $user_id );
    2086             $anonymous  = bbp_is_reply_anonymous( $r['post_id'] );
    2087 
    2088             // Generate title with the display name of the author
    2089             if ( empty( $r['link_title'] ) ) {
    2090                 $author = get_the_author_meta( 'display_name', $user_id );
    2091                 $title  = empty( $anonymous )
    2092                     /* translators: %s: Author's display name */
    2093                     ? esc_attr__( "View %s's profile",  'bbpress' )
    2094                     /* translators: %s: Author's display name */
    2095                     : esc_attr__( "Visit %s's website", 'bbpress' );
    2096 
    2097                 $r['link_title'] = sprintf( $title, $author );
    2098             }
    2099 
    2100             // Setup title and author_links array
    2101             $author_links = array();
    2102             $link_title   = ! empty( $r['link_title'] )
    2103                 ? ' title="' . esc_attr( $r['link_title'] ) . '"'
    2104                 : '';
    2105 
    2106             // Get avatar (unescaped, because HTML)
    2107             if ( ( 'avatar' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
    2108                 $author_links['avatar'] = get_avatar( $user_id, $r['size'] );
    2109             }
    2110 
    2111             // Get display name (escaped, because never HTML)
    2112             if ( ( 'name' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
    2113                 $author_links['name'] = esc_html( get_the_author_meta( 'display_name', $user_id ) );
    2114             }
    2115 
    2116             // Empty array
    2117             $links  = array();
    2118             $sprint = '<span%1$s>%2$s</span>';
    2119 
    2120             // Wrap each link
    2121             foreach ( $author_links as $link => $link_text ) {
    2122                 $link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
    2123                 $links[]    = sprintf( $sprint, $link_class, $link_text );
    2124             }
    2125 
    2126             // Juggle
    2127             $author_links = $links;
    2128             unset( $links );
    2129 
    2130             // Filter sections
    2131             $sections    = apply_filters( 'bbp_get_author_links', $author_links, $r, $args );
    2132 
    2133             // Assemble sections into author link
    2134             $author_link = implode( $r['sep'], $sections );
    2135 
    2136             // Only wrap in link if profile exists
    2137             if ( empty( $anonymous ) && bbp_user_has_profile( $user_id ) ) {
    2138                 $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
    2139             }
     2122        // Setup title and author_links array
     2123        $author_links = array();
     2124        $link_title   = ! empty( $r['link_title'] )
     2125            ? ' title="' . esc_attr( $r['link_title'] ) . '"'
     2126            : '';
     2127
     2128        // Get avatar (unescaped, because HTML)
     2129        if ( ( 'avatar' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
     2130            $author_links['avatar'] = get_avatar( $user_id, $r['size'] );
    21402131        }
    21412132
    2142         // Filter & return
    2143         return apply_filters( 'bbp_get_author_link', $author_link, $r, $args );
    2144     }
     2133        // Get display name (escaped, because never HTML)
     2134        if ( ( 'name' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
     2135            $author_links['name'] = esc_html( get_the_author_meta( 'display_name', $user_id ) );
     2136        }
     2137
     2138        // Empty array
     2139        $links  = array();
     2140        $sprint = '<span%1$s>%2$s</span>';
     2141
     2142        // Wrap each link
     2143        foreach ( $author_links as $link => $link_text ) {
     2144            $link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
     2145            $links[]    = sprintf( $sprint, $link_class, $link_text );
     2146        }
     2147
     2148        // Juggle
     2149        $author_links = $links;
     2150        unset( $links );
     2151
     2152        // Filter sections
     2153        $sections    = apply_filters( 'bbp_get_author_links', $author_links, $r, $args );
     2154
     2155        // Assemble sections into author link
     2156        $author_link = implode( $r['sep'], $sections );
     2157
     2158        // Only wrap in link if profile exists
     2159        if ( empty( $anonymous ) && bbp_user_has_profile( $user_id ) ) {
     2160            $author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
     2161        }
     2162    }
     2163
     2164    // Filter & return
     2165    return apply_filters( 'bbp_get_author_link', $author_link, $r, $args );
     2166}
    21452167
    21462168/** Capabilities **************************************************************/
    21472169
    21482170/**
    2149  * Check if the user can access a specific forum
     2171 * Check if the user can access a specific forum.
    21502172 *
    21512173 * @since 2.0.0 bbPress (r3127)
     
    21932215
    21942216/**
    2195  * Check if the current user can publish topics
     2217 * Check if the current user can publish topics.
    21962218 *
    21972219 * @since 2.0.0 bbPress (r3127)
     
    22222244
    22232245/**
    2224  * Check if the current user can publish forums
     2246 * Check if the current user can publish forums.
    22252247 *
    22262248 * @since 2.1.0 bbPress (r3549)
     
    22472269
    22482270/**
    2249  * Check if the current user can publish replies
     2271 * Check if the current user can publish replies.
    22502272 *
    22512273 * @since 2.0.0 bbPress (r3127)
     
    22842306
    22852307/**
    2286  * Get the forums the current user has the ability to see and post to
     2308 * Get the forums the current user has the ability to see and post to.
    22872309 *
    22882310 * @since 2.0.0 bbPress (r3127)
     
    24422464
    24432465/**
    2444  * Output the moderators of a forum
     2466 * Output the moderators of a forum.
    24452467 *
    24462468 * @since 2.6.0 bbPress
    24472469 *
    2448  * @param int   $forum_id Optional. Topic id
    2449  * @param array $args     See {@link bbp_get_moderator_list()}
     2470 * @param int   $forum_id Optional. Topic id.
     2471 * @param array $args     See {@link bbp_get_moderator_list()}.
    24502472 */
    24512473function bbp_moderator_list( $forum_id = 0, $args = array() ) {
     
    24532475}
    24542476
    2455     /**
    2456      * Return the moderators for an object
    2457      *
    2458      * @since 2.6.0 bbPress
    2459      *
    2460      * @param int   $object_id Optional. Object id
    2461      * @param array $args     This function supports these arguments:
    2462      *  - before: Before the tag list
    2463      *  - sep: Tag separator
    2464      *  - after: After the tag list
    2465      *
    2466      * @return string Moderator list of the object
    2467      */
    2468     function bbp_get_moderator_list( $object_id = 0, $args = array() ) {
    2469 
    2470         // Parse arguments against default values
    2471         $r = bbp_parse_args(
    2472             $args,
    2473             array(
    2474                 'before' => '<div class="bbp-moderators"><p>' . esc_html__( 'Moderators:', 'bbpress' ) . '&nbsp;',
    2475                 'sep'    => ', ',
    2476                 'after'  => '</p></div>',
    2477                 'none'   => ''
    2478             ),
    2479             'get_moderator_list'
    2480         );
    2481 
    2482         // Get forum moderators
    2483         $user_ids = bbp_get_moderator_ids( $object_id );
    2484         if ( ! empty( $user_ids ) ) {
    2485 
    2486             // In admin, use nicenames
    2487             if ( is_admin() ) {
    2488                 $users = bbp_get_user_nicenames_from_ids( $user_ids );
    2489 
    2490             // In theme, use display names & profile links
    2491             } else {
    2492                 foreach ( $user_ids as $user_id ) {
    2493                     $users[] = bbp_get_user_profile_link( $user_id );
    2494                 }
     2477/**
     2478 * Return the moderators for an object.
     2479 *
     2480 * @since 2.6.0 bbPress
     2481 *
     2482 * @param int   $object_id Optional. Object id.
     2483 * @param array $args     This function supports these arguments:
     2484 *  - before: Before the tag list
     2485 *  - sep: Tag separator
     2486 *  - after: After the tag list
     2487 *
     2488 * @return string Moderator list of the object.
     2489 */
     2490function bbp_get_moderator_list( $object_id = 0, $args = array() ) {
     2491
     2492    // Parse arguments against default values
     2493    $r = bbp_parse_args(
     2494        $args,
     2495        array(
     2496            'before' => '<div class="bbp-moderators"><p>' . esc_html__( 'Moderators:', 'bbpress' ) . '&nbsp;',
     2497            'sep'    => ', ',
     2498            'after'  => '</p></div>',
     2499            'none'   => ''
     2500        ),
     2501        'get_moderator_list'
     2502    );
     2503
     2504    // Get forum moderators
     2505    $user_ids = bbp_get_moderator_ids( $object_id );
     2506    if ( ! empty( $user_ids ) ) {
     2507
     2508        // In admin, use nicenames
     2509        if ( is_admin() ) {
     2510            $users = bbp_get_user_nicenames_from_ids( $user_ids );
     2511
     2512        // In theme, use display names & profile links
     2513        } else {
     2514            foreach ( $user_ids as $user_id ) {
     2515                $users[] = bbp_get_user_profile_link( $user_id );
    24952516            }
    2496 
    2497             $retval = $r['before'] . implode( $r['sep'], $users ) . $r['after'];
    2498 
    2499         // No forum moderators
    2500         } else {
    2501             $retval = $r['none'];
    25022517        }
    25032518
    2504         // Filter & return
    2505         return apply_filters( 'bbp_get_moderator_list', $retval );
    2506     }
     2519        $retval = $r['before'] . implode( $r['sep'], $users ) . $r['after'];
     2520
     2521    // No forum moderators
     2522    } else {
     2523        $retval = $r['none'];
     2524    }
     2525
     2526    // Filter & return
     2527    return apply_filters( 'bbp_get_moderator_list', $retval );
     2528}
Note: See TracChangeset for help on using the changeset viewer.