Changeset 9844
- Timestamp:
- 05/06/2015 11:01:27 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/bp-core-component.php
r9819 r9844 132 132 * 133 133 * @since BuddyPress (1.5.0) 134 * 135 * @uses BP_Component::setup_actions() Set up the hooks and actions. 136 * 137 * @param string $id Unique ID (for internal identification). Letters, 138 * numbers, and underscores only. 139 * @param string $name Unique name. This should be a translatable name, 140 * eg __( 'Groups', 'buddypress' ). 141 * @param string $path The file path for the component's files. Used by 142 * {@link BP_Component::includes()}. 143 * @param array $params Additional parameters used by the component. 144 * The config array supports the following values: 145 * - 'adminbar_myaccount_order' Sets the position for our 146 * component menu under the WP Toolbar's "My Account" menu. 134 * @since BuddyPress (1.9.0) Added $params as a parameter. 135 * @since BuddyPress (2.3.0) Added $params['features'] as a configurable value. 136 * 137 * @param string $id Unique ID. Letters, numbers, and underscores only. 138 * @param string $name Unique name. This should be a translatable name, eg. 139 * __( 'Groups', 'buddypress' ). 140 * @param string $path The file path for the component's files. Used by {@link BP_Component::includes()}. 141 * @param array $params { 142 * Additional parameters used by the component. 143 * @type int $adminbar_myaccount_order Set the position for our menu under the WP Toolbar's "My Account menu" 144 * @type array $features An array of feature names. This is used to load additional files from your 145 * component directory and for feature active checks. eg. array( 'awesome' ) 146 * would look for a file called "bp-{$this->id}-awesome.php" and you could use 147 * bp_is_active( $this->id, 'awesome' ) to determine if the feature is active. 148 * } 147 149 */ 148 150 public function start( $id = '', $name = '', $path = '', $params = array() ) { … … 162 164 if ( ! empty( $params['adminbar_myaccount_order'] ) ) { 163 165 $this->adminbar_myaccount_order = (int) $params['adminbar_myaccount_order']; 166 } 167 168 // Register features 169 if ( ! empty( $params['features'] ) ) { 170 $this->features = array_map( 'sanitize_title', (array) $params['features'] ); 164 171 } 165 172 -
trunk/src/bp-core/bp-core-template.php
r9819 r9844 1846 1846 1847 1847 /** 1848 * Check whether a given component has been activated by the admin. 1848 * Check whether a given component (or feature of a component) is active. 1849 * 1850 * @since BuddyPress (1.2.0) See r2539. 1851 * @since BuddyPress (2.3.0) Added $feature as a parameter. 1849 1852 * 1850 1853 * @param string $component The component name. 1851 * @return bool True if the component is active, otherwise false. 1852 */ 1853 function bp_is_active( $component = '' ) { 1854 * @param string $feature The feature name. 1855 * @return bool 1856 */ 1857 function bp_is_active( $component = '', $feature = '' ) { 1854 1858 $retval = false; 1855 1859 … … 1862 1866 if ( isset( buddypress()->active_components[ $component ] ) || isset( buddypress()->required_components[ $component ] ) ) { 1863 1867 $retval = true; 1868 1869 // Is feature active? 1870 if ( ! empty( $feature ) ) { 1871 if ( empty( buddypress()->$component->features ) || false === in_array( $feature, buddypress()->$component->features, true ) ) { 1872 $retval = false; 1873 } 1874 1875 /** 1876 * Filters whether or not a given feature for a component is active. 1877 * 1878 * @since BuddyPress (2.3.0) 1879 * 1880 * @param bool $retval 1881 */ 1882 $retval = apply_filters( "bp_is_{$component}_{$feature}_active", $retval ); 1883 } 1864 1884 } 1865 1885 -
trunk/tests/phpunit/testcases/core/functions.php
r9831 r9844 621 621 $this->assertSame( $expected_upload_dir, $tested_upload_dir ); 622 622 } 623 624 /** 625 * @group bp_is_active 626 */ 627 public function test_bp_is_active_component() { 628 $bp = buddypress(); 629 $reset_active_components = $bp->active_components; 630 631 $this->assertTrue( bp_is_active( 'members' ) ); 632 633 $this->assertFalse( bp_is_active( 'foo' ) ); 634 635 // Create and activate the foo component 636 $bp->foo = new BP_Component; 637 $bp->foo->id = 'foo'; 638 $bp->foo->slug = 'foo'; 639 $bp->foo->name = 'Foo'; 640 $bp->active_components[ $bp->foo->id ] = 1; 641 642 $this->assertTrue( bp_is_active( 'foo' ) ); 643 644 add_filter( 'bp_is_active', '__return_false' ); 645 646 $this->assertFalse( bp_is_active( 'foo' ) ); 647 648 remove_filter( 'bp_is_active', '__return_false' ); 649 650 // Reset buddypress() vars 651 $bp->active_components = $reset_active_components; 652 } 653 654 /** 655 * @group bp_is_active 656 */ 657 public function test_bp_is_active_feature() { 658 $bp = buddypress(); 659 $reset_active_components = $bp->active_components; 660 661 // Create and activate the foo component 662 $bp->foo = new BP_Component; 663 $bp->foo->id = 'foo'; 664 $bp->foo->slug = 'foo'; 665 $bp->foo->name = 'Foo'; 666 $bp->active_components[ $bp->foo->id ] = 1; 667 668 // foo did not register 'bar' as a feature 669 $this->assertFalse( bp_is_active( 'foo', 'bar' ) ); 670 671 // fake registering the 'bar' feature 672 $bp->foo->features = array( 'bar' ); 673 $this->assertTrue( bp_is_active( 'foo', 'bar' ) ); 674 675 // test the feature filter 676 add_filter( 'bp_is_foo_bar_active', '__return_false' ); 677 $this->assertFalse( bp_is_active( 'foo', 'bar' ) ); 678 remove_filter( 'bp_is_foo_bar_active', '__return_false' ); 679 680 // test the main component filter 681 add_filter( 'bp_is_active', '__return_false' ); 682 $this->assertFalse( bp_is_active( 'foo', 'bar' ) ); 683 remove_filter( 'bp_is_active', '__return_false' ); 684 685 // Reset buddypress() vars 686 $bp->active_components = $reset_active_components; 687 } 623 688 }
Note: See TracChangeset
for help on using the changeset viewer.