Skip to:
Content

BuddyPress.org

Ticket #4949: 4949.patch

File 4949.patch, 4.6 KB (added by boonebgorges, 11 years ago)
  • bp-core/bp-core-template-loader.php

    diff --git bp-core/bp-core-template-loader.php bp-core/bp-core-template-loader.php
    index 7887169..05ab2df 100644
    function bp_locate_template( $template_names, $load = false, $require_once = tru 
    108108 *
    109109 * @param string $location Callback function that returns the stack location
    110110 * @param int $priority
     111 * @param string $path_type 'dir' for filesystem paths, 'uri' for URI paths
    111112 */
    112 function bp_register_template_stack( $location_callback = '', $priority = 10 ) {
     113function bp_register_template_stack( $location_callback = '', $priority = 10, $path_type = 'dir' ) {
    113114
    114115        // Bail if no location, or function does not exist
    115         if ( empty( $location_callback ) || ! function_exists( $location_callback ) )
     116        if ( empty( $location_callback ) || ! is_callable( $location_callback ) )
    116117                return false;
    117118
     119        $tag = 'uri' === $path_type ? 'bp_template_stack_uri' : 'bp_template_stack';
     120
    118121        // Add location callback to template stack
    119         return add_filter( 'bp_template_stack', $location_callback, (int) $priority );
     122        return add_filter( $tag, $location_callback, (int) $priority );
    120123}
    121124
    122125/**
    function bp_register_template_stack( $location_callback = '', $priority = 10 ) { 
    128131 * @param int $priority
    129132 * @see bp_register_template_stack()
    130133 */
    131 function bp_deregister_template_stack( $location_callback = '', $priority = 10 ) {
     134function bp_deregister_template_stack( $location_callback = '', $priority = 10, $path_type = 'dir' ) {
    132135
    133136        // Bail if no location, or function does not exist
    134         if ( empty( $location_callback ) || ! function_exists( $location_callback ) )
     137        if ( empty( $location_callback ) || ! is_callable( $location_callback ) )
    135138                return false;
    136139
     140        $tag = 'uri' === $path_type ? 'bp_template_stack_uri' : 'bp_template_stack';
     141
    137142        // Add location callback to template stack
    138         return remove_filter( 'bp_template_stack', $location_callback, (int) $priority );
     143        return remove_filter( $tag, $location_callback, (int) $priority );
    139144}
    140145
    141146/**
    function bp_deregister_template_stack( $location_callback = '', $priority = 10 ) 
    152157 *
    153158 * @return array The filtered value after all hooked functions are applied to it.
    154159 */
    155 function bp_get_template_stack() {
     160function bp_get_template_stack( $path_type = 'dir' ) {
    156161        global $wp_filter, $merged_filters, $wp_current_filter;
    157162
    158163        // Setup some default variables
    159         $tag  = 'bp_template_stack';
     164        $tag  = 'uri' === $path_type ? 'bp_template_stack_uri' : 'bp_template_stack';
    160165        $args = $stack = array();
    161166
    162167        // Add 'bp_template_stack' to the current filter array
    function bp_get_template_stack() { 
    187192        // Remove empties and duplicates
    188193        $stack = array_unique( array_filter( $stack ) );
    189194
    190         return (array) apply_filters( 'bp_get_template_stack', $stack ) ;
     195        return (array) apply_filters( 'bp_get_template_stack', $stack, $path_type ) ;
    191196}
    192197
    193198/**
  • bp-loader.php

    diff --git bp-loader.php bp-loader.php
    index 6c138ef..8393a6d 100644
    class BuddyPress { 
    256256
    257257                                        // get network-activated plugins
    258258                                        $plugins = get_site_option( 'active_sitewide_plugins');
    259                                        
     259
    260260                                        // basename
    261261                                        $basename = plugin_basename( constant( 'BP_PLUGIN_DIR' ) . 'bp-loader.php' );
    262262
    class BuddyPress { 
    553553                bp_register_template_stack( 'get_stylesheet_directory', 10 );
    554554                bp_register_template_stack( 'get_template_directory',   12 );
    555555                bp_register_template_stack( 'bp_get_theme_compat_dir',  14 );
     556                bp_register_template_stack( 'get_stylesheet_directory_uri', 10, 'uri' );
     557                bp_register_template_stack( 'get_template_directory_uri',   12, 'uri' );
     558                bp_register_template_stack( 'bp_get_theme_compat_url',  14, 'uri' );
    556559        }
    557560
    558561        /**
  • bp-templates/bp-legacy/buddypress-functions.php

    diff --git bp-templates/bp-legacy/buddypress-functions.php bp-templates/bp-legacy/buddypress-functions.php
    index af2a5cd..564c422 100644
    class BP_Legacy extends BP_Theme_Compat { 
    197197                // LTR or RTL
    198198                $file = is_rtl() ? 'css/buddypress-rtl.css' : 'css/buddypress.css';
    199199
     200                $located            = false;
     201                $template_locations = bp_get_template_stack( 'uri' );
     202                var_dump( $template_locations );
     203
     204                foreach ( (array) $template_locations as $template_location ) {
     205                        if ( empty( $template_location ) ) {
     206                                continue;
     207                        }
     208
     209                        if ( file_exists( trailingslashit( $template_location ) . $file ) ) {
     210                                $located = trailingslashit( $template_location ) . $file;
     211                                break;
     212                        }
     213                }
    200214                // Check child theme
    201215                if ( file_exists( trailingslashit( get_stylesheet_directory() ) . $file ) ) {
    202216                        $location = trailingslashit( get_stylesheet_directory_uri() );