Skip to:
Content

BuddyPress.org

Changeset 12187


Ignore:
Timestamp:
07/10/2018 05:18:56 PM (8 years ago)
Author:
r-a-y
Message:

Attachments: Ensure older bp-default themes can still use the Backbone interface.

Since v3.0.0, bp-nouveau is the default template pack. However, for
themes still using a version of the bp-default theme, attempting to
upload results in a fatal error due to a Nouveau function not being
available.

To address this, for bp-default themes, we revert to using the more,
portable bp-legacy attachment template parts.

Props imath, r-a-y.

Fixes #7905 (3.x branch).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.0/src/bp-core/bp-core-attachments.php

    r11904 r12187  
    975975 */
    976976function bp_attachments_get_template_part( $slug ) {
    977         $attachment_template_part = 'assets/_attachments/' . $slug;
    978 
    979         // Load the attachment template in WP Administration screens.
    980         if ( is_admin() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
    981                 $attachment_admin_template_part = buddypress()->themes_dir . '/bp-legacy/buddypress/' . $attachment_template_part . '.php';
    982 
    983                 // Check whether the template part exists.
    984                 if ( ! file_exists( $attachment_admin_template_part ) ) {
    985                         return false;
    986                 }
    987 
    988                 // Load the template part.
    989                 require( $attachment_admin_template_part );
    990 
    991         // Load the attachment template in WP_USE_THEMES env.
    992         } else {
    993                 bp_get_template_part( $attachment_template_part );
     977        $switched = false;
     978
     979        /*
     980         * Use bp-legacy attachment template part for older bp-default themes or if in
     981         * admin area.
     982         */
     983        if ( ! bp_use_theme_compat_with_current_theme() || ( is_admin() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) ) {
     984                $current = bp_get_theme_compat_id();
     985                if ( 'legacy' !== $current ) {
     986                        $switched = true;
     987                        bp_setup_theme_compat( 'legacy' );
     988                }
     989        }
     990
     991        // Load the template part.
     992        bp_get_template_part( 'assets/_attachments/' . $slug );
     993
     994        if ( $switched ) {
     995                bp_setup_theme_compat( $current );
    994996        }
    995997}
Note: See TracChangeset for help on using the changeset viewer.