PluginProbe
Gutenberg / 22.7.0
Gutenberg v22.7.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 12.6.0 All 403 releases
← All changes | lib/experiments-page.php +202 -42 12.6.022.7.0 View file →
@@ -4,28 +4,52 @@
4 4 *
5 5 * @package gutenberg
6 6 */
7 7
8 -/**
9 - * The main entry point for the Gutenberg experiments page.
10 - *
11 - * @since 6.3.0
12 - */
13 -function the_gutenberg_experiments() {
14 - ?>
15 - <div
16 - id="experiments-editor"
17 - class="wrap"
18 - >
19 - <h1><?php echo __( 'Experimental settings', 'gutenberg' ); ?></h1>
20 - <?php settings_errors(); ?>
21 - <form method="post" action="options.php">
22 - <?php settings_fields( 'gutenberg-experiments' ); ?>
23 - <?php do_settings_sections( 'gutenberg-experiments' ); ?>
24 - <?php submit_button(); ?>
25 - </form>
26 - </div>
27 - <?php
8 +if ( ! function_exists( 'the_gutenberg_experiments' ) ) {
9 + /**
10 + * The main entry point for the Gutenberg experiments page.
11 + *
12 + * @since 6.3.0
13 + */
14 + function the_gutenberg_experiments() {
15 + ?>
16 + <div
17 + id="experiments-editor"
18 + class="wrap"
19 + >
20 + <h1><?php echo __( 'Experimental settings', 'gutenberg' ); ?></h1>
21 + <?php settings_errors(); ?>
22 + <form method="post" action="options.php">
23 + <?php settings_fields( 'gutenberg-experiments' ); ?>
24 + <?php do_settings_sections( 'gutenberg-experiments' ); ?>
25 + <!-- We use a separate table for the template activation experiment because the option is managed separately. -->
26 + <table class="form-table">
27 + <tr>
28 + <th scope="row">
29 + <label for="active_templates"><?php echo __( 'Template Activation', 'gutenberg' ); ?></label>
30 + <br><a href="https://github.com/WordPress/gutenberg/issues/66950" target="_blank"><?php echo __( 'Learn more', 'gutenberg' ); ?></a>
31 + </th>
32 + <td>
33 + <label for="active_templates">
34 + <input
35 + type="checkbox"
36 + name="active_templates"
37 + id="active_templates"
38 + value="1"
39 + <?php checked( 1, gutenberg_is_experiment_enabled( 'active_templates' ) ); ?>
40 + />
41 + <?php echo __( 'Allows multiple templates of the same type to be created, of which one can be active at a time.', 'gutenberg' ); ?>
42 + <p class="description"><?php echo __( 'Warning: when you deactivate this experiment, it is best to delete all created templates except for the active ones.', 'gutenberg' ); ?></p>
43 + </label>
44 + </td>
45 + </tr>
46 + </table>
47 + <?php submit_button(); ?>
48 + </form>
49 + </div>
50 + <?php
51 + }
28 52 }
29 53
30 54 /**
31 55 * Set up the experiments settings.
@@ -39,19 +63,153 @@
39 63 '',
40 64 'gutenberg_display_experiment_section',
41 65 'gutenberg-experiments'
42 66 );
67 +
43 68 add_settings_field(
44 - 'gutenberg-navigation',
45 - __( 'Navigation', 'gutenberg' ),
69 + 'gutenberg-block-experiments',
70 + __( 'Blocks: add experimental blocks', 'gutenberg' ),
46 71 'gutenberg_display_experiment_field',
47 72 'gutenberg-experiments',
48 73 'gutenberg_experiments_section',
49 74 array(
50 - 'label' => __( 'Enable Navigation screen', 'gutenberg' ),
51 - 'id' => 'gutenberg-navigation',
75 + 'label' => __( 'Enables experimental blocks on a rolling basis as they are developed.<p class="description">(Warning: these blocks may have significant changes during development that cause validation errors and display issues.)</p>', 'gutenberg' ),
76 + 'id' => 'gutenberg-block-experiments',
52 77 )
53 78 );
79 +
80 + add_settings_field(
81 + 'gutenberg-form-blocks',
82 + __( 'Blocks: add Form and input blocks', 'gutenberg' ),
83 + 'gutenberg_display_experiment_field',
84 + 'gutenberg-experiments',
85 + 'gutenberg_experiments_section',
86 + array(
87 + 'label' => __( 'Enables new blocks to allow building forms. You are likely to experience UX issues that are being addressed.', 'gutenberg' ),
88 + 'id' => 'gutenberg-form-blocks',
89 + )
90 + );
91 +
92 + add_settings_field(
93 + 'gutenberg-grid-interactivity',
94 + __( 'Blocks: add Grid interactivity', 'gutenberg' ),
95 + 'gutenberg_display_experiment_field',
96 + 'gutenberg-experiments',
97 + 'gutenberg_experiments_section',
98 + array(
99 + 'label' => __( 'Enables enhancements to the Grid block that let you move and resize items in the editor canvas.', 'gutenberg' ),
100 + 'id' => 'gutenberg-grid-interactivity',
101 + )
102 + );
103 +
104 + add_settings_field(
105 + 'gutenberg-no-tinymce',
106 + __( 'Blocks: disable TinyMCE and Classic block', 'gutenberg' ),
107 + 'gutenberg_display_experiment_field',
108 + 'gutenberg-experiments',
109 + 'gutenberg_experiments_section',
110 + array(
111 + 'label' => __( 'Disables the TinyMCE and Classic block.', 'gutenberg' ),
112 + 'id' => 'gutenberg-no-tinymce',
113 + )
114 + );
115 +
116 + add_settings_field(
117 + 'gutenberg-color-randomizer',
118 + __( 'Color randomizer', 'gutenberg' ),
119 + 'gutenberg_display_experiment_field',
120 + 'gutenberg-experiments',
121 + 'gutenberg_experiments_section',
122 + array(
123 + 'label' => __( 'Enables the Global Styles color randomizer in the Site Editor; a utility that lets you mix the current color palette pseudo-randomly.', 'gutenberg' ),
124 + 'id' => 'gutenberg-color-randomizer',
125 + )
126 + );
127 +
128 + add_settings_field(
129 + 'gutenberg-dataviews-media-modal',
130 + __( 'Data Views: new media modal', 'gutenberg' ),
131 + 'gutenberg_display_experiment_field',
132 + 'gutenberg-experiments',
133 + 'gutenberg_experiments_section',
134 + array(
135 + 'label' => __( 'Enables a new media modal experience powered by Data Views for improved media library management.', 'gutenberg' ),
136 + 'id' => 'gutenberg-dataviews-media-modal',
137 + )
138 + );
139 +
140 + add_settings_field(
141 + 'gutenberg-full-page-client-side-navigation',
142 + __( 'Interactivity API: Full-page client-side navigation', 'gutenberg' ),
143 + 'gutenberg_display_experiment_field',
144 + 'gutenberg-experiments',
145 + 'gutenberg_experiments_section',
146 + array(
147 + 'label' => __( 'Enables full-page client-side navigation, powered by the Interactivity API.', 'gutenberg' ),
148 + 'id' => 'gutenberg-full-page-client-side-navigation',
149 + )
150 + );
151 +
152 + add_settings_field(
153 + 'gutenberg-content-only-inspector-fields',
154 + __( 'Block fields: Show dataform driven inspector fields on blocks that support them', 'gutenberg' ),
155 + 'gutenberg_display_experiment_field',
156 + 'gutenberg-experiments',
157 + 'gutenberg_experiments_section',
158 + array(
159 + 'label' => __( 'Enables editable block inspector fields that are generated using a dataform.', 'gutenberg' ),
160 + 'id' => 'gutenberg-content-only-inspector-fields',
161 + )
162 + );
163 +
164 + add_settings_field(
165 + 'gutenberg-workflow-palette',
166 + __( 'Workflow Palette', 'gutenberg' ),
167 + 'gutenberg_display_experiment_field',
168 + 'gutenberg-experiments',
169 + 'gutenberg_experiments_section',
170 + array(
171 + 'label' => __( 'Enables the Workflow Palette for running workflows composed of abilities, from a unified interface.', 'gutenberg' ),
172 + 'id' => 'gutenberg-workflow-palette',
173 + )
174 + );
175 +
176 + add_settings_field(
177 + 'gutenberg-extensible-site-editor',
178 + __( 'Extensible Site Editor', 'gutenberg' ),
179 + 'gutenberg_display_experiment_field',
180 + 'gutenberg-experiments',
181 + 'gutenberg_experiments_section',
182 + array(
183 + 'label' => __( 'Redirects the default site editor (Appearance > Design) to use the extensible site editor page.', 'gutenberg' ),
184 + 'id' => 'gutenberg-extensible-site-editor',
185 + )
186 + );
187 +
188 + add_settings_field(
189 + 'gutenberg-media-editor',
190 + __( 'Media Editor', 'gutenberg' ),
191 + 'gutenberg_display_experiment_field',
192 + 'gutenberg-experiments',
193 + 'gutenberg_experiments_section',
194 + array(
195 + 'label' => __( 'Enables editing media items (attachments) directly in the block editor with a dedicated media preview and metadata panel.', 'gutenberg' ),
196 + 'id' => 'gutenberg-media-editor',
197 + )
198 + );
199 +
200 + add_settings_field(
201 + 'gutenberg-content-guidelines',
202 + __( 'Guidelines', 'gutenberg' ),
203 + 'gutenberg_display_experiment_field',
204 + 'gutenberg-experiments',
205 + 'gutenberg_experiments_section',
206 + array(
207 + 'label' => __( 'Enables guidelines feature for managing editorial voice and tone guidelines under Settings.', 'gutenberg' ),
208 + 'id' => 'gutenberg-content-guidelines',
209 + )
210 + );
211 +
54 212 register_setting(
55 213 'gutenberg-experiments',
56 214 'gutenberg-experiments'
57 215 );
@@ -83,27 +241,29 @@
83 241 * @since 6.3.0
84 242 */
85 243 function gutenberg_display_experiment_section() {
86 244 ?>
87 - <p><?php echo __( "The block editor includes experimental features that are useable while they're in development. Select the ones you'd like to enable. These features are likely to change, so avoid using them in production.", 'gutenberg' ); ?></p>
245 + <p><?php echo __( "The block editor includes experimental features that are usable while they're in development. Select the ones you'd like to enable. These features are likely to change, so avoid using them in production.", 'gutenberg' ); ?></p>
88 246
89 247 <?php
90 248 }
91 249
92 -/**
93 - * Extends default editor settings with experiments settings.
94 - *
95 - * @param array $settings Default editor settings.
96 - *
97 - * @return array Filtered editor settings.
98 - */
99 -function gutenberg_experiments_editor_settings( $settings ) {
100 - // The refactored gallery currently can't be run on sites with use_balanceTags option set.
101 - // This bypass needs to remain in place until this is resolved and a patch released.
102 - // https://core.trac.wordpress.org/ticket/54130.
103 - $experiments_settings = array(
104 - '__unstableGalleryWithImageBlocks' => (int) get_option( 'use_balanceTags' ) !== 1 || is_wp_version_compatible( '5.9' ),
105 - );
106 - return array_merge( $settings, $experiments_settings );
250 +add_action( 'admin_init', 'gutenberg_handle_template_activate_setting_submission' );
251 +function gutenberg_handle_template_activate_setting_submission() {
252 + if ( ! isset( $_POST['option_page'] ) || 'gutenberg-experiments' !== $_POST['option_page'] ) {
253 + return;
254 + }
255 +
256 + if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'gutenberg-experiments-options' ) ) {
257 + return;
258 + }
259 +
260 + if ( ! current_user_can( 'manage_options' ) ) {
261 + return;
262 + }
263 +
264 + if ( isset( $_POST['active_templates'] ) && '1' === $_POST['active_templates'] ) {
265 + update_option( 'active_templates', gutenberg_get_migrated_active_templates() );
266 + } else {
267 + delete_option( 'active_templates' );
268 + }
107 269 }
108 -
109 -add_filter( 'block_editor_settings_all', 'gutenberg_experiments_editor_settings' );