- Timestamp:
- 11/03/2024 10:01:19 PM (20 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-groups/classes/class-bp-group-extension.php
r13878 r14076 11 11 defined( 'ABSPATH' ) || exit; 12 12 13 if ( ! class_exists( 'BP_Group_Extension', false ) ) : 13 if ( class_exists( 'BP_Group_Extension', false ) ) { 14 return; 15 } 16 14 17 /** 15 18 * API for creating group extensions without having to hardcode the content into … … 767 770 768 771 foreach ( $screens as $context => &$screen ) { 769 $screen['enabled'] = true;770 $screen['name'] = $this->name;771 $screen['slug'] = $this->slug;772 773 $screen['screen_callback'] = $this->get_screen_callback( $context, 'screen' );772 $screen['enabled'] = true; 773 $screen['name'] = $this->name; 774 $screen['slug'] = $this->slug; 775 776 $screen['screen_callback'] = $this->get_screen_callback( $context, 'screen' ); 774 777 $screen['screen_save_callback'] = $this->get_screen_callback( $context, 'screen_save' ); 775 778 } … … 887 890 $this->params['show_tab'] = 'anyone'; 888 891 } 889 890 892 } else { 891 893 /* … … 927 929 928 930 switch ( $access_condition ) { 929 case 'admin' :931 case 'admin': 930 932 $meets_condition = groups_is_user_admin( bp_loggedin_user_id(), $this->group_id ); 931 933 break; 932 934 933 case 'mod' :935 case 'mod': 934 936 $meets_condition = groups_is_user_mod( bp_loggedin_user_id(), $this->group_id ); 935 937 break; 936 938 937 case 'member' :939 case 'member': 938 940 $meets_condition = groups_is_user_member( bp_loggedin_user_id(), $this->group_id ); 939 941 break; 940 942 941 case 'loggedin' :943 case 'loggedin': 942 944 $meets_condition = is_user_logged_in(); 943 945 break; 944 946 945 case 'noone' :947 case 'noone': 946 948 $meets_condition = false; 947 949 break; 948 950 949 case 'anyone' :950 default :951 case 'anyone': 952 default: 951 953 $meets_condition = true; 952 954 break; … … 1035 1037 // When we are viewing the extension display page, set the title and options title. 1036 1038 if ( bp_is_current_action( $this->slug ) ) { 1037 add_filter( 'bp_group_user_has_access', array( $this, 'group_access_protection' ), 10, 2 );1039 add_filter( 'bp_group_user_has_access', array( $this, 'group_access_protection' ), 10, 2 ); 1038 1040 1039 1041 $extension_name = $this->name; 1040 1042 add_action( 1041 1043 'bp_template_content_header', 1042 function () use ( $extension_name ) {1044 function () use ( $extension_name ) { 1043 1045 echo esc_attr( $extension_name ); 1044 1046 } … … 1046 1048 add_action( 1047 1049 'bp_template_title', 1048 function () use ( $extension_name ) {1050 function () use ( $extension_name ) { 1049 1051 echo esc_attr( $extension_name ); 1050 1052 } … … 1292 1294 $this->edit_screen_template = '/groups/single/home'; 1293 1295 } else { 1294 add_action( 'bp_template_content_header', function () { 1295 echo '<ul class="content-header-nav">'; 1296 bp_group_admin_tabs(); 1297 echo '</ul>'; 1298 } ); 1296 add_action( 1297 'bp_template_content_header', 1298 function () { 1299 echo '<ul class="content-header-nav">'; 1300 bp_group_admin_tabs(); 1301 echo '</ul>'; 1302 } 1303 ); 1299 1304 add_action( 'bp_template_content', array( &$this, 'call_edit_screen' ) ); 1300 1305 $this->edit_screen_template = '/groups/single/plugins'; … … 1380 1385 * @param string $value URL to redirect to. 1381 1386 */ 1382 $redirect_to = apply_filters( 'bp_group_extension_edit_screen_save_redirect', bp_get_requested_url( ) );1387 $redirect_to = apply_filters( 'bp_group_extension_edit_screen_save_redirect', bp_get_requested_url() ); 1383 1388 1384 1389 bp_core_redirect( $redirect_to ); … … 1390 1395 * Load the template that houses the Edit screen. 1391 1396 * 1392 * Separated out into a callback so that it can run after all other 1397 * Separated out into a callback so that it can run after all others 1393 1398 * Group Extensions have had a chance to register their navigation, to 1394 1399 * avoid missing tabs. … … 1401 1406 */ 1402 1407 public function call_edit_screen_template_loader() { 1403 bp_core_load_template( $this->edit_screen_template );1408 bp_core_load_template( (array) $this->edit_screen_template ); 1404 1409 } 1405 1410 … … 1773 1778 1774 1779 switch ( $key ) { 1775 case 'enable_create_step' :1780 case 'enable_create_step': 1776 1781 $this->screens['create']['enabled'] = $value; 1777 1782 break; 1778 1783 1779 case 'enable_edit_item' :1784 case 'enable_edit_item': 1780 1785 $this->screens['edit']['enabled'] = $value; 1781 1786 break; 1782 1787 1783 case 'enable_admin_item' :1788 case 'enable_admin_item': 1784 1789 $this->screens['admin']['enabled'] = $value; 1785 1790 break; 1786 1791 1787 case 'create_step_position' :1792 case 'create_step_position': 1788 1793 $this->screens['create']['position'] = $value; 1789 1794 break; 1790 1795 1791 1796 // Note: 'admin' becomes 'edit' to distinguish from Dashboard 'admin'. 1792 case 'admin_name' :1797 case 'admin_name': 1793 1798 $this->screens['edit']['name'] = $value; 1794 1799 break; 1795 1800 1796 case 'admin_slug' :1801 case 'admin_slug': 1797 1802 $this->screens['edit']['slug'] = $value; 1798 1803 break; 1799 1804 1800 case 'create_name' :1805 case 'create_name': 1801 1806 $this->screens['create']['name'] = $value; 1802 1807 break; 1803 1808 1804 case 'create_slug' :1809 case 'create_slug': 1805 1810 $this->screens['create']['slug'] = $value; 1806 1811 break; 1807 1812 1808 case 'admin_metabox_context' :1813 case 'admin_metabox_context': 1809 1814 $this->screens['admin']['metabox_context'] = $value; 1810 1815 break; 1811 1816 1812 case 'admin_metabox_priority' :1817 case 'admin_metabox_priority': 1813 1818 $this->screens['admin']['metabox_priority'] = $value; 1814 1819 break; 1815 1820 1816 default :1821 default: 1817 1822 $this->data[ $key ] = $value; 1818 1823 break; … … 1887 1892 1888 1893 switch ( $property ) { 1889 case 'enable_create_step' :1894 case 'enable_create_step': 1890 1895 $lpc['screens']['create']['enabled'] = (bool) $value; 1891 1896 break; 1892 1897 1893 case 'enable_edit_item' :1898 case 'enable_edit_item': 1894 1899 $lpc['screens']['edit']['enabled'] = (bool) $value; 1895 1900 break; 1896 1901 1897 case 'enable_admin_item' :1902 case 'enable_admin_item': 1898 1903 $lpc['screens']['admin']['enabled'] = (bool) $value; 1899 1904 break; 1900 1905 1901 case 'create_step_position' :1906 case 'create_step_position': 1902 1907 $lpc['screens']['create']['position'] = $value; 1903 1908 break; 1904 1909 1905 1910 // Note: 'admin' becomes 'edit' to distinguish from Dashboard 'admin'. 1906 case 'admin_name' :1911 case 'admin_name': 1907 1912 $lpc['screens']['edit']['name'] = $value; 1908 1913 break; 1909 1914 1910 case 'admin_slug' :1915 case 'admin_slug': 1911 1916 $lpc['screens']['edit']['slug'] = $value; 1912 1917 break; 1913 1918 1914 case 'create_name' :1919 case 'create_name': 1915 1920 $lpc['screens']['create']['name'] = $value; 1916 1921 break; 1917 1922 1918 case 'create_slug' :1923 case 'create_slug': 1919 1924 $lpc['screens']['create']['slug'] = $value; 1920 1925 break; 1921 1926 1922 case 'admin_metabox_context' :1927 case 'admin_metabox_context': 1923 1928 $lpc['screens']['admin']['metabox_context'] = $value; 1924 1929 break; 1925 1930 1926 case 'admin_metabox_priority' :1931 case 'admin_metabox_priority': 1927 1932 $lpc['screens']['admin']['metabox_priority'] = $value; 1928 1933 break; 1929 1934 1930 default :1935 default: 1931 1936 $lpc[ $property ] = $value; 1932 1937 break; … … 1960 1965 foreach ( $properties as $property ) { 1961 1966 switch ( $property ) { 1962 case 'enable_create_step' :1967 case 'enable_create_step': 1963 1968 $lp['enable_create_step'] = $params['screens']['create']['enabled']; 1964 1969 break; 1965 1970 1966 case 'enable_edit_item' :1971 case 'enable_edit_item': 1967 1972 $lp['enable_edit_item'] = $params['screens']['edit']['enabled']; 1968 1973 break; 1969 1974 1970 case 'enable_admin_item' :1975 case 'enable_admin_item': 1971 1976 $lp['enable_admin_item'] = $params['screens']['admin']['enabled']; 1972 1977 break; 1973 1978 1974 case 'create_step_position' :1979 case 'create_step_position': 1975 1980 $lp['create_step_position'] = $params['screens']['create']['position']; 1976 1981 break; 1977 1982 1978 1983 // Note: 'admin' becomes 'edit' to distinguish from Dashboard 'admin'. 1979 case 'admin_name' :1984 case 'admin_name': 1980 1985 $lp['admin_name'] = $params['screens']['edit']['name']; 1981 1986 break; 1982 1987 1983 case 'admin_slug' :1988 case 'admin_slug': 1984 1989 $lp['admin_slug'] = $params['screens']['edit']['slug']; 1985 1990 break; 1986 1991 1987 case 'create_name' :1992 case 'create_name': 1988 1993 $lp['create_name'] = $params['screens']['create']['name']; 1989 1994 break; 1990 1995 1991 case 'create_slug' :1996 case 'create_slug': 1992 1997 $lp['create_slug'] = $params['screens']['create']['slug']; 1993 1998 break; 1994 1999 1995 case 'admin_metabox_context' :2000 case 'admin_metabox_context': 1996 2001 $lp['admin_metabox_context'] = $params['screens']['admin']['metabox_context']; 1997 2002 break; 1998 2003 1999 case 'admin_metabox_priority' :2004 case 'admin_metabox_priority': 2000 2005 $lp['admin_metabox_priority'] = $params['screens']['admin']['metabox_priority']; 2001 2006 break; 2002 2007 2003 default :2008 default: 2004 2009 // All other items get moved over. 2005 2010 $lp[ $property ] = $params[ $property ]; … … 2007 2012 // Also reapply to the object, for backpat. 2008 2013 $this->{$property} = $params[ $property ]; 2009 2010 2014 break; 2011 2015 } … … 2013 2017 } 2014 2018 } 2015 endif; // End class_exists check.
Note: See TracChangeset
for help on using the changeset viewer.