PluginProbe
Gutenberg / 24.1.0
Gutenberg v24.1.0
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | lib/compat/wordpress-7.1/view-config-api.php +34 -13 23.7.0 → 24.1.0 View file →
@@ -3,14 +3,33 @@
3 3 * Entity view configuration API.
4 4 *
5 5 * Builds the default view configuration for an entity and exposes it through
6 6 * the dynamic `get_entity_view_config_{$kind}_{$name}` filter so core and third
7 - * parties can provide the configuration for a specific entity.
7 + * parties can provide the configuration for a specific entity. The dynamic
8 + * portions of the hook name are lowercased, e.g.
9 + * `get_entity_view_config_posttype_page` for the `page` post type.
8 10 *
9 11 * @package gutenberg
10 12 */
11 13
12 14 /**
15 + * Builds the name of the dynamic filter that provides the view configuration
16 + * for an entity.
17 + *
18 + * The entity kind and name are embedded in the hook name lowercased, so the
19 + * hook follows the WordPress convention of lowercase hook names regardless of
20 + * how the entity identifiers are spelled: the `postType`/`page` entity maps to
21 + * the `get_entity_view_config_posttype_page` hook.
22 + *
23 + * @param string $kind The entity kind (e.g. `postType`).
24 + * @param string $name The entity name (e.g. `page`).
25 + * @return string The filter name.
26 + */
27 +function gutenberg_get_entity_view_config_hook_name( $kind, $name ) {
28 + return strtolower( "get_entity_view_config_{$kind}_{$name}" );
29 +}
30 +
31 +/**
13 32 * Builds the default `form` configuration for post types that don't provide their own.
14 33 *
15 34 * It is a sensible default for `post`, `page`, and custom post types alike rather
16 35 * than being tailored per type. Post types that need a different shape can replace
@@ -23,9 +42,9 @@
23 42 * returns `false`.
24 43 *
25 44 * @return array The default form configuration.
26 45 */
27 -function _gutenberg_get_default_post_type_form() {
46 +function _gutenberg_get_default_posttype_form() {
28 47 return array(
29 48 'layout' => array( 'type' => 'panel' ),
30 49 'fields' => array(
31 50 array(
@@ -93,10 +112,12 @@
93 112 /**
94 113 * Returns the view configuration for the given entity.
95 114 *
96 115 * Builds the default configuration shared by all entities and then exposes it
97 - * through the dynamic `get_entity_view_config_{$kind}_{$name}` filter so that core
98 - * and third parties can provide the configuration for a specific entity.
116 + * through the dynamic `get_entity_view_config_{$kind}_{$name}` filter — with the
117 + * dynamic portions lowercased, see gutenberg_get_entity_view_config_hook_name()
118 + * — so that core and third parties can provide the configuration for a
119 + * specific entity.
99 120 *
100 121 * @param string $kind The entity kind (e.g. `postType`).
101 122 * @param string $name The entity name (e.g. `page`).
102 123 * @return array {
@@ -142,9 +163,9 @@
142 163 $config = array(
143 164 'default_view' => $default_view,
144 165 'default_layouts' => $default_layouts,
145 166 'view_list' => $view_list,
146 - 'form' => 'postType' === $kind ? _gutenberg_get_default_post_type_form() : array(),
167 + 'form' => 'postType' === $kind ? _gutenberg_get_default_posttype_form() : array(),
147 168 );
148 169
149 170 $data = new Gutenberg_View_Config_Data( $config );
150 171
@@ -156,9 +177,9 @@
156 177 *
157 178 * @param Gutenberg_View_Config_Data $data The view configuration container for the entity.
158 179 * @return Gutenberg_View_Config_Data The updated view configuration container.
159 180 */
160 -function _gutenberg_get_entity_view_config_post_type_page( $data ) {
181 +function _gutenberg_get_entity_view_config_posttype_page( $data ) {
161 182 $default_layouts = array(
162 183 'table' => array(
163 184 'layout' => array(
164 185 'styles' => array(
@@ -294,9 +315,9 @@
294 315 *
295 316 * @param Gutenberg_View_Config_Data $data The view configuration container for the entity.
296 317 * @return Gutenberg_View_Config_Data The updated view configuration container.
297 318 */
298 -function _gutenberg_get_entity_view_config_post_type_wp_block( $data ) {
319 +function _gutenberg_get_entity_view_config_posttype_wp_block( $data ) {
299 320 $default_layouts = array(
300 321 'table' => array(
301 322 'layout' => array(
302 323 'styles' => array(
@@ -410,9 +431,9 @@
410 431 *
411 432 * @param Gutenberg_View_Config_Data $data The view configuration container for the entity.
412 433 * @return Gutenberg_View_Config_Data The updated view configuration container.
413 434 */
414 -function _gutenberg_get_entity_view_config_post_type_wp_template_part( $data ) {
435 +function _gutenberg_get_entity_view_config_posttype_wp_template_part( $data ) {
415 436 $default_layouts = array(
416 437 'table' => array(
417 438 'layout' => array(
418 439 'styles' => array(
@@ -510,9 +531,9 @@
510 531 *
511 532 * @param Gutenberg_View_Config_Data $data The view configuration container for the entity.
512 533 * @return Gutenberg_View_Config_Data The updated view configuration container.
513 534 */
514 -function _gutenberg_get_entity_view_config_post_type_wp_template( $data ) {
535 +function _gutenberg_get_entity_view_config_posttype_wp_template( $data ) {
515 536 $default_view = array(
516 537 'type' => 'grid',
517 538 'perPage' => 20,
518 539 'sort' => array(
@@ -722,9 +743,9 @@
722 743 /**
723 744 * Registers the Gutenberg entity view configuration filters, overriding any
724 745 * defaults that WordPress core may have already registered.
725 746 *
726 - * Core registers its own `_wp_get_entity_view_config_post_type_*` callbacks on
747 + * Core registers its own `_wp_get_entity_view_config_posttype_*` callbacks on
727 748 * the shared `get_entity_view_config_{$kind}_{$name}` hooks. The Gutenberg
728 749 * plugin always ships the newest configuration, so it removes the core defaults
729 750 * and installs its own `_gutenberg_*` callbacks instead.
730 751 *
@@ -739,11 +760,11 @@
739 760 function gutenberg_register_entity_view_config_filters() {
740 761 $post_types = array( 'page', 'post', 'wp_block', 'wp_template_part', 'wp_template' );
741 762
742 763 foreach ( $post_types as $post_type ) {
743 - $hook = "get_entity_view_config_postType_{$post_type}";
744 - $wp_callback = "_wp_get_entity_view_config_post_type_{$post_type}";
745 - $gb_callback = "_gutenberg_get_entity_view_config_post_type_{$post_type}";
764 + $hook = gutenberg_get_entity_view_config_hook_name( 'postType', $post_type );
765 + $wp_callback = "_wp_get_entity_view_config_posttype_{$post_type}";
766 + $gb_callback = "_gutenberg_get_entity_view_config_posttype_{$post_type}";
746 767
747 768 // has_filter() returns the priority the callback was registered at.
748 769 $wp_priority = has_filter( $hook, $wp_callback );
749 770 if ( false !== $wp_priority ) {