Skip to:
Content

BuddyPress.org

Ticket #4639: 4639-refresh.01.patch

File 4639-refresh.01.patch, 16.3 KB (added by r-a-y, 7 years ago)

Updated patch to use sanitize_file_name() where appropriate

  • 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  = buddypress()->groups->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-action-' . sanitize_file_name( bp_current_action() ) . '.php',
     1134                        'groups/single/index-slug-'   . sanitize_file_name( $group->slug )        . '.php',
     1135                        'groups/single/index-status-' . sanitize_file_name( $group->status )      . '.php',
     1136                        'groups/single/index.php'
     1137                ) );
     1138
     1139                // Merge new templates with existing stack
     1140                // @see bp_get_theme_compat_templates()
     1141                $templates = array_merge( (array) $new_templates, $templates );
     1142
     1143                return $templates;
     1144        }
     1145
     1146        /**
    10691147         * Update the global $post with single group data
    10701148         *
    10711149         * @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 { 
    308309                        if ( bp_is_active( 'activity' ) && bp_is_single_activity() )
    309310                                return;
    310311
     312                        add_filter( 'bp_get_buddypress_template',                array( $this, 'single_template_hierarchy' ) );
    311313                        add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'single_dummy_post'    ) );
    312314                        add_filter( 'bp_replace_the_content',                    array( $this, 'single_dummy_content' ) );
    313315
    class BP_Members_Theme_Compat { 
    317319        /** Directory *************************************************************/
    318320
    319321        /**
     322         * Add template hierarchy to theme compat for the members directory page.
     323         *
     324         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     325         *
     326         * @since BuddyPress (1.8)
     327         *
     328         * @param string $templates The templates from bp_get_theme_compat_templates()
     329         * @return array $templates Array of custom templates to look for.
     330         */
     331        public function directory_template_hierarchy( $templates ) {
     332                // Setup our templates based on priority
     333                $new_templates = apply_filters( 'bp_template_hierarchy_members_directory', array(
     334                        'members/single/index-directory.php'
     335                ) );
     336
     337                // Merge new templates with existing stack
     338                // @see bp_get_theme_compat_templates()
     339                $templates = array_merge( (array) $new_templates, $templates );
     340
     341                return $templates;
     342        }
     343
     344        /**
    320345         * Update the global $post with directory data
    321346         *
    322347         * @since BuddyPress (1.7)
    class BP_Members_Theme_Compat { 
    347372        /** Single ****************************************************************/
    348373
    349374        /**
     375         * Add custom template hierarchy to theme compat for member pages.
     376         *
     377         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     378         *
     379         * @since BuddyPress (1.8)
     380         *
     381         * @param string $templates The templates from bp_get_theme_compat_templates()
     382         * @return array $templates Array of custom templates to look for.
     383         */
     384        public function single_template_hierarchy( $templates ) {
     385                // Setup our templates based on priority
     386                $new_templates = apply_filters( 'bp_template_hierarchy_members_single_item', array(
     387                        'members/single/index-action-'    . sanitize_file_name( bp_current_action() )    . '.php',
     388                        'members/single/index-component-' . sanitize_file_name( bp_current_component() ) . '.php',
     389                        'members/single/index.php'
     390                ) );
     391
     392                // Merge new templates with existing stack
     393                // @see bp_get_theme_compat_templates()
     394                $templates = array_merge( (array) $new_templates, $templates );
     395
     396                return $templates;
     397        }
     398
     399        /**
    350400         * Update the global $post with the displayed user's data
    351401         *
    352402         * @since BuddyPress (1.7)
    class BP_Registration_Theme_Compat { 
    411461                bp_update_is_directory( false, 'register' );
    412462
    413463                // Setup actions
     464                add_filter( 'bp_get_buddypress_template',                array( $this, 'template_hierarchy' ) );
    414465                add_action( 'bp_template_include_reset_dummy_post_data', array( $this, 'dummy_post'    ) );
    415466                add_filter( 'bp_replace_the_content',                    array( $this, 'dummy_content' ) );
    416467        }
    class BP_Registration_Theme_Compat { 
    418469        /** Template ***********************************************************/
    419470
    420471        /**
     472         * Add template hierarchy to theme compat for registration / activation pages.
     473         *
     474         * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}.
     475         *
     476         * @since BuddyPress (1.8)
     477         *
     478         * @param string $templates The templates from bp_get_theme_compat_templates()
     479         * @return array $templates Array of custom templates to look for.
     480         */
     481        public function template_hierarchy( $templates ) {
     482                $component = sanitize_file_name( bp_current_component() );
     483
     484                // Setup our templates based on priority
     485                $new_templates = apply_filters( "bp_template_hierarchy_{$component}", array(
     486                        "members/index-{$component}.php"
     487                ) );
     488
     489                // Merge new templates with existing stack
     490                // @see bp_get_theme_compat_templates()
     491                $templates = array_merge( (array) $new_templates, $templates );
     492
     493                return $templates;
     494        }
     495
     496        /**
    421497         * Update the global $post with dummy data
    422498         *
    423499         * @since BuddyPress (1.7)