PluginProbe
Gutenberg / 16.0.0
Gutenberg v16.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 16.0.0, at lib/experiments-page.php

153 lines 4.2 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 /**
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
28 }
29
30 /**
31 * Set up the experiments settings.
32 *
33 * @since 6.3.0
34 */
35 function gutenberg_initialize_experiments_settings() {
36 add_settings_section(
37 'gutenberg_experiments_section',
38 // The empty string ensures the render function won't output a h2.
39 '',
40 'gutenberg_display_experiment_section',
41 'gutenberg-experiments'
42 );
43
44 add_settings_field(
45 'gutenberg-zoomed-out-view',
46 __( 'Zoomed out view ', 'gutenberg' ),
47 'gutenberg_display_experiment_field',
48 'gutenberg-experiments',
49 'gutenberg_experiments_section',
50 array(
51 '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' ),
52 'id' => 'gutenberg-zoomed-out-view',
53 )
54 );
55
56 add_settings_field(
57 'gutenberg-color-randomizer',
58 __( 'Color randomizer ', 'gutenberg' ),
59 'gutenberg_display_experiment_field',
60 'gutenberg-experiments',
61 'gutenberg_experiments_section',
62 array(
63 'label' => __( 'Test the Global Styles color randomizer; a utility that lets you mix the current color palette pseudo-randomly.', 'gutenberg' ),
64 'id' => 'gutenberg-color-randomizer',
65 )
66 );
67
68 add_settings_field(
69 'gutenberg-group-grid-variation',
70 __( 'Grid variation for Group block ', 'gutenberg' ),
71 'gutenberg_display_experiment_field',
72 'gutenberg-experiments',
73 'gutenberg_experiments_section',
74 array(
75 'label' => __( 'Test the Grid layout type as a new variation of Group block.', 'gutenberg' ),
76 'id' => 'gutenberg-group-grid-variation',
77 )
78 );
79
80 add_settings_field(
81 'gutenberg-theme-previews',
82 __( 'Block Theme Previews', 'gutenberg' ),
83 'gutenberg_display_experiment_field',
84 'gutenberg-experiments',
85 'gutenberg_experiments_section',
86 array(
87 'label' => __( 'Enable Block Theme Previews', 'gutenberg' ),
88 'id' => 'gutenberg-theme-previews',
89 )
90 );
91
92 add_settings_field(
93 'gutenberg-interactivity-api-core-blocks',
94 __( 'Interactivity API and Behaviors UI', 'gutenberg' ),
95 'gutenberg_display_experiment_field',
96 'gutenberg-experiments',
97 'gutenberg_experiments_section',
98 array(
99 'label' => __( 'Use the Interactivity API to enable the <a href="https://github.com/WordPress/gutenberg/issues/50029">Behaviors UI</a> in the Image block.', 'gutenberg' ),
100 'id' => 'gutenberg-interactivity-api-core-blocks',
101 )
102 );
103
104 add_settings_field(
105 'gutenberg-pattern-enhancements',
106 __( 'Pattern enhancements', 'gutenberg' ),
107 'gutenberg_display_experiment_field',
108 'gutenberg-experiments',
109 'gutenberg_experiments_section',
110 array(
111 'label' => __( 'Test the Pattern block enhancements', 'gutenberg' ),
112 'id' => 'gutenberg-pattern-enhancements',
113 )
114 );
115
116 register_setting(
117 'gutenberg-experiments',
118 'gutenberg-experiments'
119 );
120 }
121
122 add_action( 'admin_init', 'gutenberg_initialize_experiments_settings' );
123
124 /**
125 * Display a checkbox field for a Gutenberg experiment.
126 *
127 * @since 6.3.0
128 *
129 * @param array $args ( $label, $id ).
130 */
131 function gutenberg_display_experiment_field( $args ) {
132 $options = get_option( 'gutenberg-experiments' );
133 $value = isset( $options[ $args['id'] ] ) ? 1 : 0;
134 ?>
135 <label for="<?php echo $args['id']; ?>">
136 <input type="checkbox" name="<?php echo 'gutenberg-experiments[' . $args['id'] . ']'; ?>" id="<?php echo $args['id']; ?>" value="1" <?php checked( 1, $value ); ?> />
137 <?php echo $args['label']; ?>
138 </label>
139 <?php
140 }
141
142 /**
143 * Display the experiments section.
144 *
145 * @since 6.3.0
146 */
147 function gutenberg_display_experiment_section() {
148 ?>
149 <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>
150
151 <?php
152 }
153