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

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

227 lines 6.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-sync-collaboration',
48 __( 'Live Collaboration and offline persistence ', 'gutenberg' ),
49 'gutenberg_display_experiment_field',
50 'gutenberg-experiments',
51 'gutenberg_experiments_section',
52 array(
53 'label' => __( 'Enable the live collaboration and offline persistence between peers', 'gutenberg' ),
54 'id' => 'gutenberg-sync-collaboration',
55 )
56 );
57
58 add_settings_field(
59 'gutenberg-custom-dataviews',
60 __( 'Custom dataviews', 'gutenberg' ),
61 'gutenberg_display_experiment_field',
62 'gutenberg-experiments',
63 'gutenberg_experiments_section',
64 array(
65 'label' => __( 'Test the custom dataviews in the pages page.', 'gutenberg' ),
66 'id' => 'gutenberg-custom-dataviews',
67 )
68 );
69
70 add_settings_field(
71 'gutenberg-color-randomizer',
72 __( 'Color randomizer ', 'gutenberg' ),
73 'gutenberg_display_experiment_field',
74 'gutenberg-experiments',
75 'gutenberg_experiments_section',
76 array(
77 'label' => __( 'Test the Global Styles color randomizer; a utility that lets you mix the current color palette pseudo-randomly.', 'gutenberg' ),
78 'id' => 'gutenberg-color-randomizer',
79 )
80 );
81
82 add_settings_field(
83 'gutenberg-block-experiments',
84 __( 'Experimental blocks', 'gutenberg' ),
85 'gutenberg_display_experiment_field',
86 'gutenberg-experiments',
87 'gutenberg_experiments_section',
88 array(
89 'label' => __( 'Enable experimental blocks.<p class="description">(Warning: these blocks may have significant changes during development that cause validation errors and display issues.)</p>', 'gutenberg' ),
90 'id' => 'gutenberg-block-experiments',
91 )
92 );
93
94 add_settings_field(
95 'gutenberg-form-blocks',
96 __( 'Form and input blocks ', 'gutenberg' ),
97 'gutenberg_display_experiment_field',
98 'gutenberg-experiments',
99 'gutenberg_experiments_section',
100 array(
101 'label' => __( 'Test new blocks to allow building forms (Warning: The new feature is not ready. You may experience UX issues that are being addressed)', 'gutenberg' ),
102 'id' => 'gutenberg-form-blocks',
103 )
104 );
105
106 add_settings_field(
107 'gutenberg-grid-interactivity',
108 __( 'Grid interactivity ', 'gutenberg' ),
109 'gutenberg_display_experiment_field',
110 'gutenberg-experiments',
111 'gutenberg_experiments_section',
112 array(
113 'label' => __( 'Test enhancements to the Grid block that let you move and resize items in the editor canvas.', 'gutenberg' ),
114 'id' => 'gutenberg-grid-interactivity',
115 )
116 );
117
118 add_settings_field(
119 'gutenberg-no-tinymce',
120 __( 'Disable TinyMCE and Classic block', 'gutenberg' ),
121 'gutenberg_display_experiment_field',
122 'gutenberg-experiments',
123 'gutenberg_experiments_section',
124 array(
125 'label' => __( 'Disable TinyMCE and Classic block', 'gutenberg' ),
126 'id' => 'gutenberg-no-tinymce',
127 )
128 );
129
130 add_settings_field(
131 'gutenberg-full-page-client-side-navigation',
132 __( 'Enable full page client-side navigation', 'gutenberg' ),
133 'gutenberg_display_experiment_field',
134 'gutenberg-experiments',
135 'gutenberg_experiments_section',
136 array(
137 'label' => __( 'Enable full page client-side navigation using the Interactivity API', 'gutenberg' ),
138 'id' => 'gutenberg-full-page-client-side-navigation',
139 )
140 );
141
142 add_settings_field(
143 'gutenberg-zoomed-out-patterns-tab',
144 __( 'Enable zoomed out view when patterns are browsed in the inserter', 'gutenberg' ),
145 'gutenberg_display_experiment_field',
146 'gutenberg-experiments',
147 'gutenberg_experiments_section',
148 array(
149 'label' => __( 'Enable zoomed out view when selecting a pattern category in the main inserter.', 'gutenberg' ),
150 'id' => 'gutenberg-zoomed-out-patterns-tab',
151 )
152 );
153
154 add_settings_field(
155 'gutenberg-new-posts-dashboard',
156 __( 'Redesigned posts dashboard', 'gutenberg' ),
157 'gutenberg_display_experiment_field',
158 'gutenberg-experiments',
159 'gutenberg_experiments_section',
160 array(
161 'label' => __( 'Enable a redesigned posts dashboard.', 'gutenberg' ),
162 'id' => 'gutenberg-new-posts-dashboard',
163 )
164 );
165
166 add_settings_field(
167 'gutenberg-quick-edit-dataviews',
168 __( 'Quick Edit in DataViews', 'gutenberg' ),
169 'gutenberg_display_experiment_field',
170 'gutenberg-experiments',
171 'gutenberg_experiments_section',
172 array(
173 'label' => __( 'Allow access to a quick edit panel in the pages data views.', 'gutenberg' ),
174 'id' => 'gutenberg-quick-edit-dataviews',
175 )
176 );
177
178 add_settings_field(
179 'gutenberg-block-bindings-ui',
180 __( 'UI to create block bindings', 'gutenberg' ),
181 'gutenberg_display_experiment_field',
182 'gutenberg-experiments',
183 'gutenberg_experiments_section',
184 array(
185 'label' => __( 'Add UI to create and update block bindings in block inspector controls.', 'gutenberg' ),
186 'id' => 'gutenberg-block-bindings-ui',
187 )
188 );
189
190 register_setting(
191 'gutenberg-experiments',
192 'gutenberg-experiments'
193 );
194 }
195
196 add_action( 'admin_init', 'gutenberg_initialize_experiments_settings' );
197
198 /**
199 * Display a checkbox field for a Gutenberg experiment.
200 *
201 * @since 6.3.0
202 *
203 * @param array $args ( $label, $id ).
204 */
205 function gutenberg_display_experiment_field( $args ) {
206 $options = get_option( 'gutenberg-experiments' );
207 $value = isset( $options[ $args['id'] ] ) ? 1 : 0;
208 ?>
209 <label for="<?php echo $args['id']; ?>">
210 <input type="checkbox" name="<?php echo 'gutenberg-experiments[' . $args['id'] . ']'; ?>" id="<?php echo $args['id']; ?>" value="1" <?php checked( 1, $value ); ?> />
211 <?php echo $args['label']; ?>
212 </label>
213 <?php
214 }
215
216 /**
217 * Display the experiments section.
218 *
219 * @since 6.3.0
220 */
221 function gutenberg_display_experiment_section() {
222 ?>
223 <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>
224
225 <?php
226 }
227