Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
08/01/2013 12:06:38 AM (13 years ago)
Author:
boonebgorges
Message:

Define BP_Group_Extension screen callbacks non-statically

These callbacks should not be defined statically, because then the $this
keyword is not available in the callbacks. This causes backward compatibility
issues, especially with PHP 5.2.x, where it results in fatal errors.

Fixes #5126

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.8/tests/testcases/groups/class-bp-group-extension.php

    r6997 r7333  
    6262
    6363        $fallback = array(
    64             'screen_callback' => array( $class_name, 'settings_screen' ),
    65             'screen_save_callback' => array( $class_name, 'settings_screen_save' ),
     64            'screen_callback' => array( $e, 'settings_screen' ),
     65            'screen_save_callback' => array( $e, 'settings_screen_save' ),
    6666        );
    6767        $fallbacks = array(
     
    9191
    9292        $fallback = array(
    93             'screen_callback' => array( $class_name, 'settings_screen' ),
    94             'screen_save_callback' => array( $class_name, 'settings_screen_save' ),
     93            'screen_callback' => array( $e, 'settings_screen' ),
     94            'screen_save_callback' => array( $e, 'settings_screen_save' ),
    9595        );
    9696        $expected = array(
    9797            'create' => $fallback,
    9898            'edit' => array(
    99                 'screen_callback' => array( $class_name, 'edit_screen' ),
    100                 'screen_save_callback' => array( $class_name, 'edit_screen_save' ),
     99                'screen_callback' => array( $e, 'edit_screen' ),
     100                'screen_save_callback' => array( $e, 'edit_screen_save' ),
    101101            ),
    102102            'admin' => $fallback,
     
    203203        $e->_register();
    204204
    205         $this->assertEquals( array( $class_name, 'settings_screen' ), $e->screens['create']['screen_callback'] );
    206         $this->assertEquals( array( $class_name, 'settings_screen_save' ), $e->screens['create']['screen_save_callback'] );
    207         $this->assertEquals( array( $class_name, 'settings_screen' ), $e->screens['admin']['screen_callback'] );
    208         $this->assertEquals( array( $class_name, 'settings_screen_save' ), $e->screens['admin']['screen_save_callback'] );
    209         $this->assertEquals( array( $class_name, 'edit_screen' ), $e->screens['edit']['screen_callback'] );
    210         $this->assertEquals( array( $class_name, 'edit_screen_save' ), $e->screens['edit']['screen_save_callback'] );
     205        $this->assertEquals( array( $e, 'settings_screen' ), $e->screens['create']['screen_callback'] );
     206        $this->assertEquals( array( $e, 'settings_screen_save' ), $e->screens['create']['screen_save_callback'] );
     207        $this->assertEquals( array( $e, 'settings_screen' ), $e->screens['admin']['screen_callback'] );
     208        $this->assertEquals( array( $e, 'settings_screen_save' ), $e->screens['admin']['screen_save_callback'] );
     209        $this->assertEquals( array( $e, 'edit_screen' ), $e->screens['edit']['screen_callback'] );
     210        $this->assertEquals( array( $e, 'edit_screen_save' ), $e->screens['edit']['screen_save_callback'] );
    211211    }
    212212
Note: See TracChangeset for help on using the changeset viewer.