PluginProbe
Gutenberg / 17.5.3
Gutenberg v17.5.3
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 17.5.3, at lib/experiments-page.php

190 lines 5.3 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-zoomed-out-view',
60 __( 'Zoomed out view ', 'gutenberg' ),
61 'gutenberg_display_experiment_field',
62 'gutenberg-experiments',
63 'gutenberg_experiments_section',
64 array(
65 'label' => __( 'Test a new zoomed out view on the site editor (Warning: The new feature is not ready. You may experience UX issues that are being addressed)', 'gutenberg' ),
66 'id' => 'gutenberg-zoomed-out-view',
67 )
68 );
69
70 add_settings_field(
71 'gutenberg-dataviews',
72 __( 'New admin views', 'gutenberg' ),
73 'gutenberg_display_experiment_field',
74 'gutenberg-experiments',
75 'gutenberg_experiments_section',
76 array(
77 'label' => __( 'Test the new views for different entities like pages.', 'gutenberg' ),
78 'id' => 'gutenberg-dataviews',
79 )
80 );
81
82 add_settings_field(
83 'gutenberg-color-randomizer',
84 __( 'Color randomizer ', 'gutenberg' ),
85 'gutenberg_display_experiment_field',
86 'gutenberg-experiments',
87 'gutenberg_experiments_section',
88 array(
89 'label' => __( 'Test the Global Styles color randomizer; a utility that lets you mix the current color palette pseudo-randomly.', 'gutenberg' ),
90 'id' => 'gutenberg-color-randomizer',
91 )
92 );
93 add_settings_field(
94 'gutenberg-form-blocks',
95 __( 'Form and input blocks ', 'gutenberg' ),
96 'gutenberg_display_experiment_field',
97 'gutenberg-experiments',
98 'gutenberg_experiments_section',
99 array(
100 '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' ),
101 'id' => 'gutenberg-form-blocks',
102 )
103 );
104
105 add_settings_field(
106 'gutenberg-group-grid-variation',
107 __( 'Grid variation for Group block ', 'gutenberg' ),
108 'gutenberg_display_experiment_field',
109 'gutenberg-experiments',
110 'gutenberg_experiments_section',
111 array(
112 'label' => __( 'Test the Grid layout type as a new variation of Group block.', 'gutenberg' ),
113 'id' => 'gutenberg-group-grid-variation',
114 )
115 );
116
117 add_settings_field(
118 'gutenberg-no-tinymce',
119 __( 'Disable TinyMCE and Classic block', 'gutenberg' ),
120 'gutenberg_display_experiment_field',
121 'gutenberg-experiments',
122 'gutenberg_experiments_section',
123 array(
124 'label' => __( 'Disable TinyMCE and Classic block', 'gutenberg' ),
125 'id' => 'gutenberg-no-tinymce',
126 )
127 );
128
129 add_settings_field(
130 'gutenberg-custom-fields',
131 __( 'Connections', 'gutenberg' ),
132 'gutenberg_display_experiment_field',
133 'gutenberg-experiments',
134 'gutenberg_experiments_section',
135 array(
136 'label' => __( 'Test connecting block attribute values to a custom field value', 'gutenberg' ),
137 'id' => 'gutenberg-connections',
138 )
139 );
140
141 add_settings_field(
142 'gutenberg-pattern-partial-syncing',
143 __( 'Pattern overrides', 'gutenberg' ),
144 'gutenberg_display_experiment_field',
145 'gutenberg-experiments',
146 'gutenberg_experiments_section',
147 array(
148 'label' => __( 'Test overrides in synced patterns', 'gutenberg' ),
149 'id' => 'gutenberg-pattern-partial-syncing',
150 )
151 );
152
153 register_setting(
154 'gutenberg-experiments',
155 'gutenberg-experiments'
156 );
157 }
158
159 add_action( 'admin_init', 'gutenberg_initialize_experiments_settings' );
160
161 /**
162 * Display a checkbox field for a Gutenberg experiment.
163 *
164 * @since 6.3.0
165 *
166 * @param array $args ( $label, $id ).
167 */
168 function gutenberg_display_experiment_field( $args ) {
169 $options = get_option( 'gutenberg-experiments' );
170 $value = isset( $options[ $args['id'] ] ) ? 1 : 0;
171 ?>
172 <label for="<?php echo $args['id']; ?>">
173 <input type="checkbox" name="<?php echo 'gutenberg-experiments[' . $args['id'] . ']'; ?>" id="<?php echo $args['id']; ?>" value="1" <?php checked( 1, $value ); ?> />
174 <?php echo $args['label']; ?>
175 </label>
176 <?php
177 }
178
179 /**
180 * Display the experiments section.
181 *
182 * @since 6.3.0
183 */
184 function gutenberg_display_experiment_section() {
185 ?>
186 <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>
187
188 <?php
189 }
190