Skip to:
Content

BuddyPress.org

Ticket #4639: 4639-refresh.03.patch

File 4639-refresh.03.patch, 16.9 KB (added by egyptimhotep, 4 years ago)

Added member type, not tested

  • bp-activity/bp-activity-screens.php

    add_action( 'bp_notification_settings', 'bp_activity_screen_notification_setting 
    309309 * The main theme compat class for BuddyPress Activity
    310310 *
    311311 * This class sets up the necessary theme compatability actions to safely output
    312  * group template parts to the_title and the_content areas of a theme.
     312 * activity template parts to the_title and the_content areas of a theme.
    313313 *
    314314 * @since BuddyPress (1.7)
    315315 */
    class BP_Activity_Theme_Compat { 
    341341
    342342                        do_action( 'bp_activity_screen_index' );
    343343
     344                        add_filter( 'bp_get_buddypress_template',                array( $this, 'directory_template_hierarchy' ) );
    344345                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'directory_dummy_post' ) );
    345346                        add_filter( 'bp_replace_the_content',                    array( $this, 'directory_content'    ) );
    346347
    347348                // Single activity
    348349                } elseif ( bp_is_single_activity() ) {
     350                        add_filter( 'bp_get_buddypress_template',                array( $this, 'single_template_hierarchy' ) );
    349351                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'single_dummy_post' ) );
    350352                        add_filter( 'bp_replace_the_content',                    array( $this, 'single_dummy_content'    ) );
    351353                }
    class BP_Activity_Theme_Compat { 
    354356        /** Directory *************************************************************/
    355357
    356358        /**
     359         * Add template hierarchy to theme compat for the activity directory page.
     360         *
     361         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     362         *
     363         * @since BuddyPress (1.8)
     364         *
     365         * @param string $templates The templates from bp_get_theme_compat_templates()
     366         * @return array $templates Array of custom templates to look for.
     367         */
     368        public function directory_template_hierarchy( $templates ) {
     369                // Setup our templates based on priority
     370                $new_templates = apply_filters( 'bp_template_hierarchy_activity_directory', array(
     371                        'activity/index-directory.php'
     372                ) );
     373
     374                // Merge new templates with existing stack
     375                // @see bp_get_theme_compat_templates()
     376                $templates = array_merge( (array) $new_templates, $templates );
     377
     378                return $templates;
     379        }
     380
     381        /**
    357382         * Update the global $post with directory data
    358383         *
    359384         * @since BuddyPress (1.7)
    class BP_Activity_Theme_Compat { 
    384409        /** Single ****************************************************************/
    385410
    386411        /**
     412         * Add custom template hierarchy to theme compat for activity permalink pages.
     413         *
     414         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     415         *
     416         * @since BuddyPress (1.8)
     417         *
     418         * @param string $templates The templates from bp_get_theme_compat_templates()
     419         * @return array $templates Array of custom templates to look for.
     420         */
     421        public function single_template_hierarchy( $templates ) {
     422                // Setup our templates based on priority
     423                $new_templates = apply_filters( 'bp_template_hierarchy_activity_single_item', array(
     424                        'activity/single/index.php'
     425                ) );
     426
     427                // Merge new templates with existing stack
     428                // @see bp_get_theme_compat_templates()
     429                $templates = array_merge( (array) $new_templates, $templates );
     430
     431                return $templates;
     432        }
     433
     434        /**
    387435         * Update the global $post with the displayed user's data
    388436         *
    389437         * @since BuddyPress (1.7)
  • bp-blogs/bp-blogs-screens.php

    class BP_Blogs_Theme_Compat { 
    8686
    8787                        do_action( 'bp_blogs_screen_index' );
    8888
     89                        add_filter( 'bp_get_buddypress_template',                array( $this, 'directory_template_hierarchy' ) );
    8990                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'directory_dummy_post' ) );
    9091                        add_filter( 'bp_replace_the_content',                    array( $this, 'directory_content'    ) );
    9192
    9293                // Create blog
    9394                } elseif ( is_user_logged_in() && bp_blog_signup_enabled() ) {
     95                        add_filter( 'bp_get_buddypress_template',                array( $this, 'create_template_hierarchy' ) );
    9496                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'create_dummy_post' ) );
    9597                        add_filter( 'bp_replace_the_content',                    array( $this, 'create_content'    ) );                 
    9698                }
    class BP_Blogs_Theme_Compat { 
    99101        /** Directory *************************************************************/
    100102
    101103        /**
     104         * Add template hierarchy to theme compat for the blog directory page.
     105         *
     106         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     107         *
     108         * @since BuddyPress (1.8)
     109         *
     110         * @param string $templates The templates from bp_get_theme_compat_templates()
     111         * @return array $templates Array of custom templates to look for.
     112         */
     113        public function directory_template_hierarchy( $templates ) {
     114                // Setup our templates based on priority
     115                $new_templates = apply_filters( 'bp_template_hierarchy_blogs_create', array(
     116                        'blogs/index-directory.php'
     117                ) );
     118
     119                // Merge new templates with existing stack
     120                // @see bp_get_theme_compat_templates()
     121                $templates = array_merge( (array) $new_templates, $templates );
     122
     123                return $templates;
     124        }
     125
     126        /**
    102127         * Update the global $post with directory data
    103128         *
    104129         * @since BuddyPress (1.7)
    class BP_Blogs_Theme_Compat { 
    137162        /** Create ****************************************************************/
    138163
    139164        /**
     165         * Add custom template hierarchy to theme compat for the blog create page.
     166         *
     167         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     168         *
     169         * @since BuddyPress (1.8)
     170         *
     171         * @param string $templates The templates from bp_get_theme_compat_templates()
     172         * @return array $templates Array of custom templates to look for.
     173         */
     174        public function create_template_hierarchy( $templates ) {
     175                // Setup our templates based on priority
     176                $new_templates = apply_filters( 'bp_template_hierarchy_blogs_create', array(
     177                        'blogs/index-create.php'
     178                ) );
     179
     180                // Merge new templates with existing stack
     181                // @see bp_get_theme_compat_templates()
     182                $templates = array_merge( (array) $new_templates, $templates );
     183
     184                return $templates;
     185        }
     186
     187        /**
    140188         * Update the global $post with create screen data
    141189         *
    142190         * @since BuddyPress (1.7)
  • bp-groups/bp-groups-screens.php

    class BP_Groups_Theme_Compat { 
    971971
    972972                        do_action( 'groups_directory_groups_setup' );
    973973
     974                        add_filter( 'bp_get_buddypress_template',                array( $this, 'directory_template_hierarchy' ) );
    974975                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'directory_dummy_post' ) );
    975976                        add_filter( 'bp_replace_the_content',                    array( $this, 'directory_content'    ) );
    976977
    977978                // Creating a group
    978979                } elseif ( bp_is_groups_component() && bp_is_current_action( 'create' ) ) {
     980                        add_filter( 'bp_get_buddypress_template',                array( $this, 'create_template_hierarchy' ) );
    979981                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'create_dummy_post' ) );
    980982                        add_filter( 'bp_replace_the_content',                    array( $this, 'create_content'    ) );
    981983
    982                 // Group admin
     984                // Group page
    983985                } elseif ( bp_is_single_item() ) {
     986                        add_filter( 'bp_get_buddypress_template',                array( $this, 'single_template_hierarchy' ) );
    984987                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'single_dummy_post' ) );
    985988                        add_filter( 'bp_replace_the_content',                    array( $this, 'single_content'    ) );
    986989
    class BP_Groups_Theme_Compat { 
    990993        /** Directory *************************************************************/
    991994
    992995        /**
     996         * Add template hierarchy to theme compat for the group directory page.
     997         *
     998         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     999         *
     1000         * @since BuddyPress (1.8)
     1001         *
     1002         * @param string $templates The templates from bp_get_theme_compat_templates()
     1003         * @return array $templates Array of custom templates to look for.
     1004         */
     1005        public function directory_template_hierarchy( $templates ) {
     1006                // Setup our templates based on priority
     1007                $new_templates = apply_filters( 'bp_template_hierarchy_groups_directory', array(
     1008                        'groups/index-directory.php'
     1009                ) );
     1010
     1011                // Merge new templates with existing stack
     1012                // @see bp_get_theme_compat_templates()
     1013                $templates = array_merge( (array) $new_templates, $templates );
     1014
     1015                return $templates;
     1016        }
     1017
     1018        /**
    9931019         * Update the global $post with directory data
    9941020         *
    9951021         * @since BuddyPress (1.7)
    class BP_Groups_Theme_Compat { 
    10281054        /** Create ****************************************************************/
    10291055
    10301056        /**
     1057         * Add custom template hierarchy to theme compat for the group create page.
     1058         *
     1059         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     1060         *
     1061         * @since BuddyPress (1.8)
     1062         *
     1063         * @param string $templates The templates from bp_get_theme_compat_templates()
     1064         * @return array $templates Array of custom templates to look for.
     1065         */
     1066        public function create_template_hierarchy( $templates ) {
     1067                // Setup our templates based on priority
     1068                $new_templates = apply_filters( 'bp_template_hierarchy_groups_create', array(
     1069                        'groups/index-create.php'
     1070                ) );
     1071
     1072                // Merge new templates with existing stack
     1073                // @see bp_get_theme_compat_templates()
     1074                $templates = array_merge( $new_templates, $templates );
     1075
     1076                return $templates;
     1077        }
     1078
     1079        /**
    10311080         * Update the global $post with create screen data
    10321081         *
    10331082         * @since BuddyPress (1.7)
    class BP_Groups_Theme_Compat { 
    10661115        /** Single ****************************************************************/
    10671116
    10681117        /**
     1118         * Add custom template hierarchy to theme compat for group pages.
     1119         *
     1120         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     1121         *
     1122         * @since BuddyPress (1.8)
     1123         *
     1124         * @param string $templates The templates from bp_get_theme_compat_templates()
     1125         * @return array $templates Array of custom templates to look for.
     1126         */
     1127        public function single_template_hierarchy( $templates ) {
     1128                // Setup some variables we're going to reference in our custom templates
     1129                $group = groups_get_current_group();
     1130
     1131                // Setup our templates based on priority
     1132                $new_templates = apply_filters( 'bp_template_hierarchy_groups_single_item', array(
     1133                        'groups/single/index-id-'     . sanitize_file_name( bp_get_current_group_id() )   . '.php',
     1134                        'groups/single/index-slug-'   . sanitize_file_name( bp_get_current_group_slug() ) . '.php',
     1135                        'groups/single/index-action-' . sanitize_file_name( bp_current_action() )         . '.php',
     1136                        'groups/single/index-status-' . sanitize_file_name( $group->status )              . '.php',
     1137                        'groups/single/index.php'
     1138                ) );
     1139
     1140                // Merge new templates with existing stack
     1141                // @see bp_get_theme_compat_templates()
     1142                $templates = array_merge( (array) $new_templates, $templates );
     1143
     1144                return $templates;
     1145        }
     1146
     1147        /**
    10691148         * Update the global $post with single group data
    10701149         *
    10711150         * @since BuddyPress (1.7)
  • bp-members/bp-members-screens.php

    add_action( 'bp_screens', 'bp_core_screen_activation' ); 
    266266 * The main theme compat class for BuddyPress Members.
    267267 *
    268268 * This class sets up the necessary theme compatability actions to safely output
    269  * group template parts to the_title and the_content areas of a theme.
     269 * member template parts to the_title and the_content areas of a theme.
    270270 *
    271271 * @since BuddyPress (1.7)
    272272 */
    class BP_Members_Theme_Compat { 
    298298
    299299                        do_action( 'bp_members_screen_index' );
    300300
     301                        add_filter( 'bp_get_buddypress_template',                array( $this, 'directory_template_hierarchy' ) );
    301302                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'directory_dummy_post' ) );
    302303                        add_filter( 'bp_replace_the_content',                    array( $this, 'directory_content'    ) );
    303304
    class BP_Members_Theme_Compat { 
    310311
    311312                        do_action( 'bp_members_screen_display_profile' );
    312313
     314                        add_filter( 'bp_get_buddypress_template',                array( $this, 'single_template_hierarchy' ) );
    313315                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'single_dummy_post'    ) );
    314316                        add_filter( 'bp_replace_the_content',                    array( $this, 'single_dummy_content' ) );
    315317
    class BP_Members_Theme_Compat { 
    319321        /** Directory *************************************************************/
    320322
    321323        /**
     324         * Add template hierarchy to theme compat for the members directory page.
     325         *
     326         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     327         *
     328         * @since BuddyPress (1.8)
     329         *
     330         * @param string $templates The templates from bp_get_theme_compat_templates()
     331         * @return array $templates Array of custom templates to look for.
     332         */
     333        public function directory_template_hierarchy( $templates ) {
     334                // Setup our templates based on priority
     335                $new_templates = apply_filters( 'bp_template_hierarchy_members_directory', array(
     336                        'members/single/index-directory.php'
     337                ) );
     338
     339                // Merge new templates with existing stack
     340                // @see bp_get_theme_compat_templates()
     341                $templates = array_merge( (array) $new_templates, $templates );
     342
     343                return $templates;
     344        }
     345
     346        /**
    322347         * Update the global $post with directory data
    323348         *
    324349         * @since BuddyPress (1.7)
    class BP_Members_Theme_Compat { 
    349374        /** Single ****************************************************************/
    350375
    351376        /**
     377         * Add custom template hierarchy to theme compat for member pages.
     378         *
     379         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     380         *
     381         * @since BuddyPress (1.8)
     382         *
     383         * @param string $templates The templates from bp_get_theme_compat_templates()
     384         * @return array $templates Array of custom templates to look for.
     385         */
     386        public function single_template_hierarchy( $templates ) {
     387                // Setup some variables we're going to reference in our custom templates
     388                $user_nicename = buddypress()->displayed_user->userdata->user_nicename;
     389
     390                // Setup our templates based on priority
     391                $new_templates = apply_filters( 'bp_template_hierarchy_members_single_item', array(
     392                        'members/single/index-id-'        . sanitize_file_name( bp_displayed_user_id() ) . '.php',
     393                        'members/single/index-nicename-'  . sanitize_file_name( $user_nicename )         . '.php',
     394                        'members/single/index-membertype-'  . sanitize_file_name( bp_get_member_type(bp_displayed_user_id())). '.php',
     395                        'members/single/index-action-'    . sanitize_file_name( bp_current_action() )    . '.php',
     396                        'members/single/index-component-' . sanitize_file_name( bp_current_component() ) . '.php',
     397                        'members/single/index.php'
     398                ) );
     399
     400                // Merge new templates with existing stack
     401                // @see bp_get_theme_compat_templates()
     402                $templates = array_merge( (array) $new_templates, $templates );
     403
     404                return $templates;
     405        }
     406
     407        /**
    352408         * Update the global $post with the displayed user's data
    353409         *
    354410         * @since BuddyPress (1.7)
    class BP_Registration_Theme_Compat { 
    413468                bp_update_is_directory( false, 'register' );
    414469
    415470                // Setup actions
     471                add_filter( 'bp_get_buddypress_template',                array( $this, 'template_hierarchy' ) );
    416472                add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'dummy_post'    ) );
    417473                add_filter( 'bp_replace_the_content',                    array( $this, 'dummy_content' ) );
    418474        }
    class BP_Registration_Theme_Compat { 
    420476        /** Template ***********************************************************/
    421477
    422478        /**
     479         * Add template hierarchy to theme compat for registration / activation pages.
     480         *
     481         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     482         *
     483         * @since BuddyPress (1.8)
     484         *
     485         * @param string $templates The templates from bp_get_theme_compat_templates()
     486         * @return array $templates Array of custom templates to look for.
     487         */
     488        public function template_hierarchy( $templates ) {
     489                $component = sanitize_file_name( bp_current_component() );
     490
     491                // Setup our templates based on priority
     492                $new_templates = apply_filters( "bp_template_hierarchy_{$component}", array(
     493                        "members/index-{$component}.php"
     494                ) );
     495
     496                // Merge new templates with existing stack
     497                // @see bp_get_theme_compat_templates()
     498                $templates = array_merge( (array) $new_templates, $templates );
     499
     500                return $templates;
     501        }
     502
     503        /**
    423504         * Update the global $post with dummy data
    424505         *
    425506         * @since BuddyPress (1.7)