| 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-off-canvas-navigation-editor', |
| 58 |
__( 'Off canvas navigation editor ', 'gutenberg' ), |
| 59 |
'gutenberg_display_experiment_field', |
| 60 |
'gutenberg-experiments', |
| 61 |
'gutenberg_experiments_section', |
| 62 |
array( |
| 63 |
'label' => __( 'Test a new "off canvas" editor for navigation block using the block inspector and a tree view of the current menu', 'gutenberg' ), |
| 64 |
'id' => 'gutenberg-off-canvas-navigation-editor', |
| 65 |
) |
| 66 |
); |
| 67 |
|
| 68 |
add_settings_field( |
| 69 |
'gutenberg-color-randomizer', |
| 70 |
__( 'Color randomizer ', 'gutenberg' ), |
| 71 |
'gutenberg_display_experiment_field', |
| 72 |
'gutenberg-experiments', |
| 73 |
'gutenberg_experiments_section', |
| 74 |
array( |
| 75 |
'label' => __( 'Test the Global Styles color randomizer; a utility that lets you mix the current color palette pseudo-randomly.', 'gutenberg' ), |
| 76 |
'id' => 'gutenberg-color-randomizer', |
| 77 |
) |
| 78 |
); |
| 79 |
|
| 80 |
add_settings_field( |
| 81 |
'gutenberg-global-styles-custom-css', |
| 82 |
__( 'Global styles custom css ', 'gutenberg' ), |
| 83 |
'gutenberg_display_experiment_field', |
| 84 |
'gutenberg-experiments', |
| 85 |
'gutenberg_experiments_section', |
| 86 |
array( |
| 87 |
'label' => sprintf( |
| 88 |
/* translators: %s: WordPress documentation for roles and capabilities. */ |
| 89 |
__( 'Test the Global Styles custom CSS field in the site editor. This requires a user to have <a href="%s">unfiltered html capabilities</a>.', 'gutenberg' ), |
| 90 |
'https://wordpress.org/support/article/roles-and-capabilities/#unfiltered_html' |
| 91 |
), |
| 92 |
'id' => 'gutenberg-global-styles-custom-css', |
| 93 |
) |
| 94 |
); |
| 95 |
|
| 96 |
register_setting( |
| 97 |
'gutenberg-experiments', |
| 98 |
'gutenberg-experiments' |
| 99 |
); |
| 100 |
} |
| 101 |
|
| 102 |
add_action( 'admin_init', 'gutenberg_initialize_experiments_settings' ); |
| 103 |
|
| 104 |
/** |
| 105 |
* Display a checkbox field for a Gutenberg experiment. |
| 106 |
* |
| 107 |
* @since 6.3.0 |
| 108 |
* |
| 109 |
* @param array $args ( $label, $id ). |
| 110 |
*/ |
| 111 |
function gutenberg_display_experiment_field( $args ) { |
| 112 |
$options = get_option( 'gutenberg-experiments' ); |
| 113 |
$value = isset( $options[ $args['id'] ] ) ? 1 : 0; |
| 114 |
?> |
| 115 |
<label for="<?php echo $args['id']; ?>"> |
| 116 |
<input type="checkbox" name="<?php echo 'gutenberg-experiments[' . $args['id'] . ']'; ?>" id="<?php echo $args['id']; ?>" value="1" <?php checked( 1, $value ); ?> /> |
| 117 |
<?php echo $args['label']; ?> |
| 118 |
</label> |
| 119 |
<?php |
| 120 |
} |
| 121 |
|
| 122 |
/** |
| 123 |
* Display the experiments section. |
| 124 |
* |
| 125 |
* @since 6.3.0 |
| 126 |
*/ |
| 127 |
function gutenberg_display_experiment_section() { |
| 128 |
?> |
| 129 |
<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> |
| 130 |
|
| 131 |
<?php |
| 132 |
} |
| 133 |
|