WordPress.org

Making WordPress.org

Changeset 5369


Ignore:
Timestamp:
04/19/2017 06:31:54 PM (5 years ago)
Author:
ocean90
Message:

Support Forums, User Badges: Ensure that caches aren't polluted with empty arrays.

On some pages $this->plugin was empty and caused Trying to get property of non-object PHP notices.

Props SergeyBiryukov.
Fixes #2710.

Location:
sites/trunk/wordpress.org/public_html/wp-content/plugins
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-directory-compat.php

    r5327 r5369  
    838838
    839839            if ( $this->compat() == 'theme' ) {
    840                 $theme = $this->theme;
    841                 $author = get_user_by( 'id', $this->theme->post_author );
     840                $theme = $this->get_object( $slug );
     841                $author = get_user_by( 'id', $theme->post_author );
    842842                $authors = array( $author->user_nicename );
    843843            } else {
     844                $plugin = $this->get_object( $slug );
    844845                $prefix = $wpdb->base_prefix . WPORG_PLUGIN_DIRECTORY_BLOGID . '_';
    845846                // Note: Intentionally not considering posts of 'plugin' post_type with
     
    853854                     LEFT JOIN {$prefix}term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
    854855                     WHERE tt.taxonomy = 'plugin_committers' AND tr.object_id = %d",
    855                      $this->plugin->ID
     856                     $plugin->ID
    856857                ) );
    857858            }
     
    880881        $contributors = wp_cache_get( $cache_key, $cache_group );
    881882        if ( ! $contributors ) {
     883            $plugin = $this->get_object( $slug );
    882884            $prefix = $wpdb->base_prefix . WPORG_PLUGIN_DIRECTORY_BLOGID . '_';
    883885            $contributors = $wpdb->get_col( $wpdb->prepare(
     
    887889                 LEFT JOIN {$prefix}term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
    888890                 WHERE tt.taxonomy = 'plugin_contributors' AND tr.object_id = %d",
    889                  $this->plugin->ID
     891                 $plugin->ID
    890892            ) );
    891893
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-bbp-user-badges/inc/class-plugin.php

    r5304 r5369  
    348348     */
    349349    public function is_user_author( $user_nicename, $type, $slug ) {
    350         if ( 'plugin' === $type ) {
    351             $compat = class_exists( '\WordPressdotorg\Forums\Plugin' ) ? \WordPressdotorg\Forums\Plugin::get_instance()->plugins : '';
     350        if ( class_exists( '\WordPressdotorg\Forums\Plugin' ) ) {
     351            if ( 'plugin' === $type ) {
     352                $compat = \WordPressdotorg\Forums\Plugin::get_instance()->plugins;
     353            } else {
     354                $compat = \WordPressdotorg\Forums\Plugin::get_instance()->themes;
     355            }
    352356        } else {
    353             $compat = class_exists( '\WordPressdotorg\Forums\Theme' ) ? \WordPressdotorg\Forums\Theme::get_instance()->themes : '';
    354         }
     357            $compat = null;
     358        }
     359
    355360        $authors = $compat ? $compat->get_authors( $slug ) : array();
    356361
     
    370375     */
    371376    public function is_user_contributor( $user_nicename, $type, $slug ) {
    372         if ( 'plugin' === $type ) {
    373             $compat = class_exists( '\WordPressdotorg\Forums\Plugin' ) ? \WordPressdotorg\Forums\Plugin::get_instance()->plugins : '';
     377        if ( class_exists( '\WordPressdotorg\Forums\Plugin' ) ) {
     378            if ( 'plugin' === $type ) {
     379                $compat = \WordPressdotorg\Forums\Plugin::get_instance()->plugins;
     380            } else {
     381                $compat = \WordPressdotorg\Forums\Plugin::get_instance()->themes;
     382            }
    374383        } else {
    375             $compat = class_exists( '\WordPressdotorg\Forums\Theme' ) ? \WordPressdotorg\Forums\Theme::get_instance()->themes : '';
    376         }
     384            $compat = null;
     385        }
     386
    377387        $contributors = $compat ? $compat->get_contributors( $slug ) : array();
    378388
Note: See TracChangeset for help on using the changeset viewer.