Skip to:
Content

bbPress.org

Changeset 5183


Ignore:
Timestamp:
11/25/2013 02:20:06 AM (7 years ago)
Author:
johnjamesjacoby
Message:

Update default theme compatibility bbpress-functions.php to use new bbp_enqueue_style() and bbp_enqueue_script() functions. Enhances style and script loading behavior to be compatible with bbPress's template stack. Fixes #2478.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/templates/default/bbpress-functions.php

    r5172 r5183  
    4545     * @uses BBP_Default::setup_actions()
    4646     */
    47     public function __construct() {
    48         $this->setup_globals();
     47    public function __construct( $properties = array() ) {
     48
     49        parent::__construct( bbp_parse_args( $properties, array(
     50            'id'      => 'default',
     51            'name'    => __( 'bbPress Default', 'bbpress' ),
     52            'version' => bbp_get_version(),
     53            'dir'     => trailingslashit( bbpress()->themes_dir . 'default' ),
     54            'url'     => trailingslashit( bbpress()->themes_url . 'default' ),
     55        ), 'default_theme' ) );
     56
    4957        $this->setup_actions();
    50     }
    51 
    52     /**
    53      * Component global variables
    54      *
    55      * Note that this function is currently commented out in the constructor.
    56      * It will only be used if you copy this file into your current theme and
    57      * uncomment the line above.
    58      *
    59      * You'll want to customize the values in here, so they match whatever your
    60      * needs are.
    61      *
    62      * @since bbPress (r3732)
    63      * @access private
    64      */
    65     private function setup_globals() {
    66         $bbp           = bbpress();
    67         $this->id      = 'default';
    68         $this->name    = __( 'bbPress Default', 'bbpress' );
    69         $this->version = bbp_get_version();
    70         $this->dir     = trailingslashit( $bbp->themes_dir . 'default' );
    71         $this->url     = trailingslashit( $bbp->themes_url . 'default' );
    7258    }
    7359
     
    141127    public function enqueue_styles() {
    142128
    143         $styles = array( 'bbp-default' => 'css/bbpress.css' );
    144 
    145         if ( is_rtl() )
    146             $styles['bbp-default-rtl'] = 'css/bbpress-rtl.css';
    147 
    148         foreach ( $styles as $handle => $file ) {
    149 
    150             // Check child theme
    151             if ( file_exists( trailingslashit( get_stylesheet_directory() ) . $file ) ) {
    152                 $location = trailingslashit( get_stylesheet_directory_uri() );
    153 
    154             // Check parent theme
    155             } elseif ( file_exists( trailingslashit( get_template_directory() ) . $file ) ) {
    156                 $location = trailingslashit( get_template_directory_uri() );
    157 
    158             // bbPress Theme Compatibility
    159             } else {
    160                 $location = trailingslashit( $this->url );
    161             }
    162 
    163             // Enqueue the bbPress styling
    164             wp_enqueue_style( $handle, $location . $file, array(), $this->version, 'screen' );
     129        // Setup styles array
     130        $styles = array();
     131
     132        // LTR
     133        $styles['bbp-default'] = array(
     134            'file'         => 'css/bbpress.css',
     135            'dependencies' => array()
     136        );
     137
     138        // RTL helpers
     139        if ( is_rtl() ) {
     140            $styles['bbp-default-rtl'] = array(
     141                'file'         => 'css/bbpress-rtl.css',
     142                'dependencies' => array( 'bbp-default' )
     143            );
     144        }
     145
     146        // Filter the scripts
     147        $styles = apply_filters( 'bbp_default_styles', $styles );
     148
     149        // Enqueue the styles
     150        foreach ( $styles as $handle => $attributes ) {
     151            bbp_enqueue_style( $handle, $attributes['file'], $attributes['dependencies'], $this->version, 'screen' );
    165152        }
    166153    }
     
    179166    public function enqueue_scripts() {
    180167
     168        // Setup scripts array
     169        $scripts = array();
     170
    181171        // Always pull in jQuery for TinyMCE shortcode usage
    182172        if ( bbp_use_wp_editor() ) {
    183             wp_enqueue_script( 'jquery' );
    184             wp_enqueue_script( 'bbpress-editor', $this->url . 'js/editor.js', array( 'jquery' ), $this->version );
     173            $scripts['bbpress-editor'] = array(
     174                'file'         => 'js/editor.js',
     175                'dependencies' => array( 'jquery' )
     176            );
    185177        }
    186178
    187179        // Forum-specific scripts
    188180        if ( bbp_is_single_forum() ) {
    189 
    190             // Forum subscribe/unsubscribe
    191             wp_enqueue_script( 'bbpress-forum', $this->url . 'js/forum.js', array( 'jquery' ), $this->version );
     181            $scripts['bbpress-forum'] = array(
     182                'file'         => 'js/forum.js',
     183                'dependencies' => array( 'jquery' )
     184            );
    192185        }
    193186
     
    196189
    197190            // Topic favorite/unsubscribe
    198             wp_enqueue_script( 'bbpress-topic', $this->url . 'js/topic.js', array( 'jquery' ), $this->version );
     191            $scripts['bbpress-topic'] = array(
     192                'file'         => 'js/topic.js',
     193                'dependencies' => array( 'jquery' )
     194            );
    199195
    200196            // Hierarchical replies
    201197            if ( bbp_thread_replies() ) {
    202                 wp_enqueue_script( 'bbpress-reply', $this->url . 'js/reply.js', array(), $this->version );
     198                $scripts['bbpress-reply'] = array(
     199                    'file'         => 'js/reply.js',
     200                    'dependencies' => array( 'jquery' )
     201                );
    203202            }
    204203        }
     
    206205        // User Profile edit
    207206        if ( bbp_is_single_user_edit() ) {
    208             wp_enqueue_script( 'user-profile' );
    209             wp_enqueue_script( 'bbpress-user', $this->url . 'js/user.js', array(), $this->version );
     207            $scripts['bbpress-user'] = array(
     208                'file'         => 'js/user.js',
     209                'dependencies' => array( 'user-query' )
     210            );
     211        }
     212
     213        // Filter the scripts
     214        $scripts = apply_filters( 'bbp_default_scripts', $scripts );
     215
     216        // Enqueue the scripts
     217        foreach ( $scripts as $handle => $attributes ) {
     218            bbp_enqueue_script( $handle, $attributes['file'], $attributes['dependencies'], $this->version, 'screen' );
    210219        }
    211220    }
     
    241250                'subs_nonce'         => wp_create_nonce( 'toggle-subscription_' . get_the_ID() )
    242251            ) );
    243            
     252
    244253        // Single topic
    245254        } elseif ( bbp_is_single_topic() ) {
Note: See TracChangeset for help on using the changeset viewer.