Skip to:
Content

bbPress.org

Changeset 5826


Ignore:
Timestamp:
07/13/2015 10:28:50 PM (9 years ago)
Author:
johnjamesjacoby
Message:

Introduce bbp_get_global_object() to help with verifying & retrieving global variables before interacting with them. See #2786.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/core/abstraction.php

    r5823 r5826  
    1818
    1919/**
     20 * Lookup and return a global variable
     21 *
     22 * @since bbPress (r5814)
     23 *
     24 * @param  string  $name     Name of global variable
     25 * @param  string  $type     Type of variable to check with `is_a()`
     26 * @param  mixed   $default  Default value to return if no global found
     27 *
     28 * @return mixed   Verified object if valid, Default or null if invalid
     29 */
     30function bbp_get_global_object( $name = '', $type = '', $default = null ) {
     31
     32    // Bail if no name passed
     33    if ( empty( $name ) ) {
     34        $retval = $default;
     35
     36    // Bail if no global exists
     37    } elseif ( ! isset( $GLOBALS[ $name ] ) ) {
     38        $retval = $default;
     39
     40    // Bail if not the correct type of global
     41    } elseif ( ! empty( $type ) && ! is_a( $GLOBALS[ $name ], $type ) ) {
     42        $retval = $default;
     43
     44    // Global variable exists
     45    } else {
     46        $retval = $GLOBALS[ $name ];
     47    }
     48
     49    // Filter & return
     50    return apply_filters( 'bbp_get_global_object', $retval, $name, $type, $default );
     51}
     52
     53/**
    2054 * Return the database class being used to interface with the environment.
    2155 *
     
    2862 * @return object
    2963 */
    30 function bbp_get_db() {
    31 
    32     // WordPress's `$wpdb` global
    33     if ( isset( $GLOBALS['wpdb'] ) && is_a( $GLOBALS['wpdb'], 'WPDB' ) ) {
    34         $retval = $GLOBALS['wpdb'];
    35     }
    36 
    37     // Filter & return
    38     return apply_filters( 'bbp_get_db', $retval );
     64function bbp_db() {
     65    return bbp_get_global_object( 'wpdb', 'WPDB' );
    3966}
    4067
     
    5077 * @return object
    5178 */
    52 function bbp_get_rewrite() {
    53 
    54     // WordPress `$wp_rewrite` global
    55     if ( isset( $GLOBALS['wp_rewrite'] ) && is_a( $GLOBALS['wp_rewrite'], 'WP_Rewrite' ) ) {
    56         $retval = $GLOBALS['wp_rewrite'];
    57 
    58     // Mock the expected object
    59     } else {
    60         $retval = (object) array(
    61             'root'            => '',
    62             'pagination_base' => '',
    63         );
    64     }
    65 
    66     // Filter & return
    67     return apply_filters( 'bbp_get_rewrite', $retval );
     79function bbp_rewrite() {
     80    return bbp_get_global_object( 'wp_rewrite', 'WP_Rewrite', (object) array(
     81        'root'            => '',
     82        'pagination_base' => '',
     83    ) );
    6884}
    6985
    7086/**
    71  * Get the URL root
     87 * Get the root URL
    7288 *
    7389 * @since bbPress (r5814)
     
    7692 */
    7793function bbp_get_root_url() {
    78     return apply_filters( 'bbp_get_root_url', bbp_get_rewrite()->root );
     94    return apply_filters( 'bbp_get_root_url', bbp_rewrite()->root );
    7995}
    8096
     
    87103 */
    88104function bbp_get_paged_slug() {
    89     return apply_filters( 'bbp_get_paged_slug', bbp_get_rewrite()->pagination_base );
     105    return apply_filters( 'bbp_get_paged_slug', bbp_rewrite()->pagination_base );
    90106}
    91107
     
    99115 * @return bool
    100116 */
    101 function bbp_pretty_urls() {
     117function bbp_use_pretty_urls() {
    102118
    103119    // Default
    104120    $retval  = false;
    105     $rewrite = bbp_get_rewrite();
     121    $rewrite = bbp_rewrite();
    106122
    107123    // Use $wp_rewrite->using_permalinks() if available
Note: See TracChangeset for help on using the changeset viewer.