PluginProbe
Gutenberg / 21.8.2
Gutenberg v21.8.2
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 7.4.0 All 402 releases
gutenberg / lib / experiments-page.php

experiments-page.php in Gutenberg 21.8.2, at lib/experiments-page.php

251 lines 7.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Bootstrapping the Gutenberg experiments page.
4 *
5 * @package gutenberg
6 */
7
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 <?php submit_button(); ?>
26 </form>
27 </div>
28 <?php
29 }
30 }
31
32 /**
33 * Set up the experiments settings.
34 *
35 * @since 6.3.0
36 */
37 function gutenberg_initialize_experiments_settings() {
38 add_settings_section(
39 'gutenberg_experiments_section',
40 // The empty string ensures the render function won't output a h2.
41 '',
42 'gutenberg_display_experiment_section',
43 'gutenberg-experiments'
44 );
45
46 add_settings_field(
47 'gutenberg-block-experiments',
48 __( 'Blocks: add experimental blocks', 'gutenberg' ),
49 'gutenberg_display_experiment_field',
50 'gutenberg-experiments',
51 'gutenberg_experiments_section',
52 array(
53 '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' ),
54 'id' => 'gutenberg-block-experiments',
55 )
56 );
57
58 add_settings_field(
59 'gutenberg-form-blocks',
60 __( 'Blocks: add Form and input blocks', 'gutenberg' ),
61 'gutenberg_display_experiment_field',
62 'gutenberg-experiments',
63 'gutenberg_experiments_section',
64 array(
65 'label' => __( 'Enables new blocks to allow building forms. You are likely to experience UX issues that are being addressed.', 'gutenberg' ),
66 'id' => 'gutenberg-form-blocks',
67 )
68 );
69
70 add_settings_field(
71 'gutenberg-grid-interactivity',
72 __( 'Blocks: add Grid interactivity', 'gutenberg' ),
73 'gutenberg_display_experiment_field',
74 'gutenberg-experiments',
75 'gutenberg_experiments_section',
76 array(
77 'label' => __( 'Enables enhancements to the Grid block that let you move and resize items in the editor canvas.', 'gutenberg' ),
78 'id' => 'gutenberg-grid-interactivity',
79 )
80 );
81
82 add_settings_field(
83 'gutenberg-no-tinymce',
84 __( 'Blocks: disable TinyMCE and Classic block', 'gutenberg' ),
85 'gutenberg_display_experiment_field',
86 'gutenberg-experiments',
87 'gutenberg_experiments_section',
88 array(
89 'label' => __( 'Disables the TinyMCE and Classic block.', 'gutenberg' ),
90 'id' => 'gutenberg-no-tinymce',
91 )
92 );
93
94 add_settings_field(
95 'gutenberg-media-processing',
96 __( 'Client-side media processing', 'gutenberg' ),
97 'gutenberg_display_experiment_field',
98 'gutenberg-experiments',
99 'gutenberg_experiments_section',
100 array(
101 'label' => __( 'Enables client-side media processing to leverage the browser\'s capabilities to handle tasks like image resizing and compression.', 'gutenberg' ),
102 'id' => 'gutenberg-media-processing',
103 )
104 );
105
106 add_settings_field(
107 'gutenberg-block-comment',
108 __( 'Collaboration: add block level comments', 'gutenberg' ),
109 'gutenberg_display_experiment_field',
110 'gutenberg-experiments',
111 'gutenberg_experiments_section',
112 array(
113 'label' => __( 'Enables multi-user block level commenting.', 'gutenberg' ),
114 'id' => 'gutenberg-block-comment',
115 )
116 );
117
118 add_settings_field(
119 'gutenberg-sync-collaboration',
120 __( 'Collaboration: add real time editing', 'gutenberg' ),
121 'gutenberg_display_experiment_field',
122 'gutenberg-experiments',
123 'gutenberg_experiments_section',
124 array(
125 'label' => __( 'Enables live collaboration and offline persistence between peers.', 'gutenberg' ),
126 'id' => 'gutenberg-sync-collaboration',
127 )
128 );
129
130 add_settings_field(
131 'gutenberg-color-randomizer',
132 __( 'Color randomizer', 'gutenberg' ),
133 'gutenberg_display_experiment_field',
134 'gutenberg-experiments',
135 'gutenberg_experiments_section',
136 array(
137 'label' => __( 'Enables the Global Styles color randomizer in the Site Editor; a utility that lets you mix the current color palette pseudo-randomly.', 'gutenberg' ),
138 'id' => 'gutenberg-color-randomizer',
139 )
140 );
141
142 add_settings_field(
143 'gutenberg-custom-dataviews',
144 __( 'Data Views: add Custom Views', 'gutenberg' ),
145 'gutenberg_display_experiment_field',
146 'gutenberg-experiments',
147 'gutenberg_experiments_section',
148 array(
149 'label' => __( 'Enables the ability to add, edit, and save custom views when in the Site Editor.', 'gutenberg' ),
150 'id' => 'gutenberg-custom-dataviews',
151 )
152 );
153
154 add_settings_field(
155 'gutenberg-new-posts-dashboard',
156 __( 'Data Views: enable for Posts', 'gutenberg' ),
157 'gutenberg_display_experiment_field',
158 'gutenberg-experiments',
159 'gutenberg_experiments_section',
160 array(
161 'label' => __( 'Enables a redesigned posts dashboard accessible through a submenu item in the Gutenberg plugin.', 'gutenberg' ),
162 'id' => 'gutenberg-new-posts-dashboard',
163 )
164 );
165
166 add_settings_field(
167 'gutenberg-quick-edit-dataviews',
168 __( 'Data Views: add Quick Edit', 'gutenberg' ),
169 'gutenberg_display_experiment_field',
170 'gutenberg-experiments',
171 'gutenberg_experiments_section',
172 array(
173 'label' => __( 'Enables access to a Quick Edit panel in the Site Editor Pages experience.', 'gutenberg' ),
174 'id' => 'gutenberg-quick-edit-dataviews',
175 )
176 );
177
178 add_settings_field(
179 'gutenberg-editor-write-mode',
180 __( 'Simplified site editing', 'gutenberg' ),
181 'gutenberg_display_experiment_field',
182 'gutenberg-experiments',
183 'gutenberg_experiments_section',
184 array(
185 'label' => __( 'Enables Write mode in the Site Editor for a simplified editing experience.', 'gutenberg' ),
186 'id' => 'gutenberg-editor-write-mode',
187 )
188 );
189
190 add_settings_field(
191 'gutenberg-full-page-client-side-navigation',
192 __( 'Interactivity API: Full-page client-side navigation', 'gutenberg' ),
193 'gutenberg_display_experiment_field',
194 'gutenberg-experiments',
195 'gutenberg_experiments_section',
196 array(
197 'label' => __( 'Enables full-page client-side navigation, powered by the Interactivity API.', 'gutenberg' ),
198 'id' => 'gutenberg-full-page-client-side-navigation',
199 )
200 );
201
202 add_settings_field(
203 'gutenberg-content-only-pattern-insertion',
204 __( 'contentOnly: Make patterns contentOnly by default upon insertion', 'gutenberg' ),
205 'gutenberg_display_experiment_field',
206 'gutenberg-experiments',
207 'gutenberg_experiments_section',
208 array(
209 'label' => __( 'When patterns are inserted, default to a simplified content only mode for editing pattern content.', 'gutenberg' ),
210 'id' => 'gutenberg-content-only-pattern-insertion',
211 )
212 );
213
214 register_setting(
215 'gutenberg-experiments',
216 'gutenberg-experiments'
217 );
218 }
219
220 add_action( 'admin_init', 'gutenberg_initialize_experiments_settings' );
221
222 /**
223 * Display a checkbox field for a Gutenberg experiment.
224 *
225 * @since 6.3.0
226 *
227 * @param array $args ( $label, $id ).
228 */
229 function gutenberg_display_experiment_field( $args ) {
230 $options = get_option( 'gutenberg-experiments' );
231 $value = isset( $options[ $args['id'] ] ) ? 1 : 0;
232 ?>
233 <label for="<?php echo $args['id']; ?>">
234 <input type="checkbox" name="<?php echo 'gutenberg-experiments[' . $args['id'] . ']'; ?>" id="<?php echo $args['id']; ?>" value="1" <?php checked( 1, $value ); ?> />
235 <?php echo $args['label']; ?>
236 </label>
237 <?php
238 }
239
240 /**
241 * Display the experiments section.
242 *
243 * @since 6.3.0
244 */
245 function gutenberg_display_experiment_section() {
246 ?>
247 <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>
248
249 <?php
250 }
251