Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/25/2023 10:17:33 PM (3 years ago)
Author:
imath
Message:

Update all BP Blocks & Modern JS PHP registration code

  • Use the metadata argument of the bp_register_block() function to load all BP Blocks JSON files.
  • Get BP Blocks dependencies using the @wordpress/scripts index.asset.php generated files.
  • Although the BP Blocks category has been replaced by the BP Blocks collection, leave the no more used bp_block_category() function in place in case some third party plugins are using it for their custom blocks.
  • PHPUnit tests: make sure to unregister all BP Blocks when using the BP_UnitTestCase->go_to() method.

See #8842
Fixes #8457
Closes https://github.com/buddypress/buddypress/pull/92

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-members/classes/class-bp-members-component.php

    r13461 r13464  
    982982     *
    983983     * @since 6.0.0
     984     * @since 12.0.0 Use the WP Blocks API v2.
    984985     *
    985986     * @param array $blocks Optional. See BP_Component::blocks_init() for
     
    990991            array(
    991992                'bp/member' => array(
    992                     'name'               => 'bp/member',
    993                     'editor_script'      => 'bp-member-block',
    994                     'editor_script_url'  => plugins_url( 'js/blocks/member.js', dirname( __FILE__ ) ),
    995                     'editor_script_deps' => array(
    996                         'wp-blocks',
    997                         'wp-element',
    998                         'wp-components',
    999                         'wp-i18n',
    1000                         'wp-block-editor',
    1001                         'wp-server-side-render',
    1002                         'bp-block-components',
    1003                         'bp-block-data',
    1004                     ),
    1005                     'style'              => 'bp-member-block',
    1006                     'style_url'          => plugins_url( 'css/blocks/member.css', dirname( __FILE__ ) ),
    1007                     'render_callback'    => 'bp_members_render_member_block',
    1008                     'attributes'         => array(
    1009                         'itemID'              => array(
    1010                             'type'    => 'integer',
    1011                             'default' => 0,
    1012                         ),
    1013                         'avatarSize'          => array(
    1014                             'type'    => 'string',
    1015                             'default' => 'full',
    1016                         ),
    1017                         'displayMentionSlug'  => array(
    1018                             'type'    => 'boolean',
    1019                             'default' => true,
    1020                         ),
    1021                         'displayActionButton' => array(
    1022                             'type'    => 'boolean',
    1023                             'default' => true,
    1024                         ),
    1025                         'displayCoverImage'   => array(
    1026                             'type'    => 'boolean',
    1027                             'default' => true,
    1028                         ),
    1029                     ),
     993                    'metadata'        => trailingslashit( buddypress()->plugin_dir ) . 'bp-members/blocks/member',
     994                    'render_callback' => 'bp_members_render_member_block',
    1030995                ),
    1031996                'bp/members' => array(
    1032                     'name'               => 'bp/members',
    1033                     'editor_script'      => 'bp-members-block',
    1034                     'editor_script_url'  => plugins_url( 'js/blocks/members.js', dirname( __FILE__ ) ),
    1035                     'editor_script_deps' => array(
    1036                         'wp-blocks',
    1037                         'wp-element',
    1038                         'wp-components',
    1039                         'wp-i18n',
    1040                         'wp-api-fetch',
    1041                         'wp-url',
    1042                         'wp-block-editor',
    1043                         'bp-block-components',
    1044                         'bp-block-data',
    1045                         'lodash',
    1046                     ),
    1047                     'style'              => 'bp-members-block',
    1048                     'style_url'          => plugins_url( 'css/blocks/members.css', dirname( __FILE__ ) ),
    1049                     'attributes'         => array(
    1050                         'itemIDs'            => array(
    1051                             'type'  => 'array',
    1052                             'items' => array(
    1053                                 'type' => 'integer',
    1054                             ),
    1055                         ),
    1056                         'avatarSize'         => array(
    1057                             'type'    => 'string',
    1058                             'default' => 'full',
    1059                         ),
    1060                         'displayMentionSlug' => array(
    1061                             'type'    => 'boolean',
    1062                             'default' => true,
    1063                         ),
    1064                         'displayUserName'    => array(
    1065                             'type'    => 'boolean',
    1066                             'default' => true,
    1067                         ),
    1068                         'extraData'          => array(
    1069                             'type'    => 'string',
    1070                             'default' => 'none',
    1071                             'enum'    => array( 'last_activity', 'latest_update', 'none' ),
    1072                         ),
    1073                         'layoutPreference'   => array(
    1074                             'type'    => 'string',
    1075                             'default' => 'list',
    1076                             'enum'    => array( 'list', 'grid' ),
    1077                         ),
    1078                         'columns'            => array(
    1079                             'type'    => 'number',
    1080                             'default' => 2,
    1081                         ),
    1082                     ),
    1083                     'render_callback'    => 'bp_members_render_members_block',
     997                    'metadata'        => trailingslashit( buddypress()->plugin_dir ) . 'bp-members/blocks/members',
     998                    'render_callback' => 'bp_members_render_members_block',
    1084999                ),
    10851000                'bp/dynamic-members' => array(
    1086                     'name'               => 'bp/dynamic-members',
    1087                     'editor_script'      => 'bp-dynamic-members-block',
    1088                     'editor_script_url'  => plugins_url( 'js/blocks/dynamic-members.js', dirname( __FILE__ ) ),
    1089                     'editor_script_deps' => array(
    1090                         'wp-blocks',
    1091                         'wp-element',
    1092                         'wp-components',
    1093                         'wp-i18n',
    1094                         'wp-block-editor',
    1095                         'wp-server-side-render',
    1096                         'bp-block-data',
    1097                     ),
    1098                     'style'              => 'bp-dynamic-members-block',
    1099                     'style_url'          => plugins_url( 'css/blocks/dynamic-members.css', dirname( __FILE__ ) ),
    1100                     'attributes'         => array(
    1101                         'title'         => array(
    1102                             'type'    => 'string',
    1103                             'default' => __( 'Members', 'buddypress' ),
    1104                         ),
    1105                         'maxMembers'    => array(
    1106                             'type'    => 'number',
    1107                             'default' => 5,
    1108                         ),
    1109                         'memberDefault' => array(
    1110                             'type'    => 'string',
    1111                             'default' => 'active',
    1112                         ),
    1113                         'linkTitle'     => array(
    1114                             'type'    => 'boolean',
    1115                             'default' => false,
    1116                         ),
    1117                     ),
    1118                     'render_callback'    => 'bp_members_render_dynamic_members_block',
     1001                    'metadata'        => trailingslashit( buddypress()->plugin_dir ) . 'bp-members/blocks/dynamic-members',
     1002                    'render_callback' => 'bp_members_render_dynamic_members_block',
    11191003                ),
    11201004                'bp/online-members'  => array(
    1121                     'name'               => 'bp/online-members',
    1122                     'editor_script'      => 'bp-online-members-block',
    1123                     'editor_script_url'  => plugins_url( 'js/blocks/online-members.js', dirname( __FILE__ ) ),
    1124                     'editor_script_deps' => array(
    1125                         'wp-blocks',
    1126                         'wp-element',
    1127                         'wp-components',
    1128                         'wp-i18n',
    1129                         'wp-block-editor',
    1130                         'wp-server-side-render',
    1131                     ),
    1132                     'editor_style'       => 'bp-member-avatar-blocks',
    1133                     'editor_style_url'   => plugins_url( 'css/blocks/member-avatar-blocks.css', dirname( __FILE__ ) ),
    1134                     'attributes'         => array(
    1135                         'title'      => array(
    1136                             'type'    => 'string',
    1137                             'default' => __( 'Who\'s Online', 'buddypress' ),
    1138                         ),
    1139                         'maxMembers' => array(
    1140                             'type'    => 'number',
    1141                             'default' => 15,
    1142                         ),
    1143                     ),
    1144                     'render_callback'    => 'bp_members_render_online_members_block',
     1005                    'metadata'        => trailingslashit( buddypress()->plugin_dir ) . 'bp-members/blocks/online-members',
     1006                    'render_callback' => 'bp_members_render_online_members_block',
    11451007                ),
    11461008                'bp/active-members'  => array(
    1147                     'name'               => 'bp/active-members',
    1148                     'editor_script'      => 'bp-active-members-block',
    1149                     'editor_script_url'  => plugins_url( 'js/blocks/active-members.js', dirname( __FILE__ ) ),
    1150                     'editor_script_deps' => array(
    1151                         'wp-blocks',
    1152                         'wp-element',
    1153                         'wp-components',
    1154                         'wp-i18n',
    1155                         'wp-block-editor',
    1156                         'wp-server-side-render',
    1157                     ),
    1158                     'editor_style'       => 'bp-member-avatar-blocks',
    1159                     'editor_style_url'   => plugins_url( 'css/blocks/member-avatar-blocks.css', dirname( __FILE__ ) ),
    1160                     'attributes'         => array(
    1161                         'title'      => array(
    1162                             'type'    => 'string',
    1163                             'default' => __( 'Recently Active Members', 'buddypress' ),
    1164                         ),
    1165                         'maxMembers' => array(
    1166                             'type'    => 'number',
    1167                             'default' => 15,
    1168                         ),
    1169                     ),
    1170                     'render_callback'    => 'bp_members_render_active_members_block',
     1009                    'metadata'        => trailingslashit( buddypress()->plugin_dir ) . 'bp-members/blocks/active-members',
     1010                    'render_callback' => 'bp_members_render_active_members_block',
    11711011                ),
    11721012            )
Note: See TracChangeset for help on using the changeset viewer.