PluginProbe
Gutenberg / 18.9.0
Gutenberg v18.9.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 18.9.0, at lib/experiments-page.php

203 lines 5.8 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-form-blocks',
84 __( 'Form and input blocks ', 'gutenberg' ),
85 'gutenberg_display_experiment_field',
86 'gutenberg-experiments',
87 'gutenberg_experiments_section',
88 array(
89 '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' ),
90 'id' => 'gutenberg-form-blocks',
91 )
92 );
93
94 add_settings_field(
95 'gutenberg-grid-interactivity',
96 __( 'Grid interactivity ', 'gutenberg' ),
97 'gutenberg_display_experiment_field',
98 'gutenberg-experiments',
99 'gutenberg_experiments_section',
100 array(
101 'label' => __( 'Test enhancements to the Grid block that let you move and resize items in the editor canvas.', 'gutenberg' ),
102 'id' => 'gutenberg-grid-interactivity',
103 )
104 );
105
106 add_settings_field(
107 'gutenberg-no-tinymce',
108 __( 'Disable TinyMCE and Classic block', 'gutenberg' ),
109 'gutenberg_display_experiment_field',
110 'gutenberg-experiments',
111 'gutenberg_experiments_section',
112 array(
113 'label' => __( 'Disable TinyMCE and Classic block', 'gutenberg' ),
114 'id' => 'gutenberg-no-tinymce',
115 )
116 );
117
118 add_settings_field(
119 'gutenberg-full-page-client-side-navigation',
120 __( 'Enable full page client-side navigation', 'gutenberg' ),
121 'gutenberg_display_experiment_field',
122 'gutenberg-experiments',
123 'gutenberg_experiments_section',
124 array(
125 'label' => __( 'Enable full page client-side navigation using the Interactivity API', 'gutenberg' ),
126 'id' => 'gutenberg-full-page-client-side-navigation',
127 )
128 );
129
130 add_settings_field(
131 'gutenberg-zoomed-out-patterns-tab',
132 __( 'Enable zoomed out view when patterns are browsed in the inserter', 'gutenberg' ),
133 'gutenberg_display_experiment_field',
134 'gutenberg-experiments',
135 'gutenberg_experiments_section',
136 array(
137 'label' => __( 'Enable zoomed out view when selecting a pattern category in the main inserter.', 'gutenberg' ),
138 'id' => 'gutenberg-zoomed-out-patterns-tab',
139 )
140 );
141
142 add_settings_field(
143 'gutenberg-new-posts-dashboard',
144 __( 'Redesigned posts dashboard', 'gutenberg' ),
145 'gutenberg_display_experiment_field',
146 'gutenberg-experiments',
147 'gutenberg_experiments_section',
148 array(
149 'label' => __( 'Enable a redesigned posts dashboard.', 'gutenberg' ),
150 'id' => 'gutenberg-new-posts-dashboard',
151 )
152 );
153
154 add_settings_field(
155 'gutenberg-quick-edit-dataviews',
156 __( 'Quick Edit in DataViews', 'gutenberg' ),
157 'gutenberg_display_experiment_field',
158 'gutenberg-experiments',
159 'gutenberg_experiments_section',
160 array(
161 'label' => __( 'Allow access to a quick edit panel in the pages data views.', 'gutenberg' ),
162 'id' => 'gutenberg-quick-edit-dataviews',
163 )
164 );
165
166 register_setting(
167 'gutenberg-experiments',
168 'gutenberg-experiments'
169 );
170 }
171
172 add_action( 'admin_init', 'gutenberg_initialize_experiments_settings' );
173
174 /**
175 * Display a checkbox field for a Gutenberg experiment.
176 *
177 * @since 6.3.0
178 *
179 * @param array $args ( $label, $id ).
180 */
181 function gutenberg_display_experiment_field( $args ) {
182 $options = get_option( 'gutenberg-experiments' );
183 $value = isset( $options[ $args['id'] ] ) ? 1 : 0;
184 ?>
185 <label for="<?php echo $args['id']; ?>">
186 <input type="checkbox" name="<?php echo 'gutenberg-experiments[' . $args['id'] . ']'; ?>" id="<?php echo $args['id']; ?>" value="1" <?php checked( 1, $value ); ?> />
187 <?php echo $args['label']; ?>
188 </label>
189 <?php
190 }
191
192 /**
193 * Display the experiments section.
194 *
195 * @since 6.3.0
196 */
197 function gutenberg_display_experiment_section() {
198 ?>
199 <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>
200
201 <?php
202 }
203