| 1 |
<?php |
| 2 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly |
| 3 |
|
| 4 |
/** |
| 5 |
* Code editor component like theme editor for the settings page |
| 6 |
*/ |
| 7 |
|
| 8 |
$quickwebp_key_option = sanitize_key( $data['name'] ); |
| 9 |
|
| 10 |
//phpcs:ignore WordPress.Security.NonceVerification.Missing |
| 11 |
if( isset( $quickwebp_key_option, $_POST[ $quickwebp_key_option ] ) ) { |
| 12 |
//phpcs:ignore WordPress.Security.NonceVerification.Missing |
| 13 |
$quickwebp_value_to_save = wp_kses_post( wp_unslash( $_POST[ $quickwebp_key_option ] ) ); |
| 14 |
update_option( $quickwebp_key_option, $quickwebp_value_to_save ); |
| 15 |
} |
| 16 |
?> |
| 17 |
<textarea |
| 18 |
name="<?php echo esc_attr( $quickwebp_key_option ?? '' ); ?>" |
| 19 |
id="<?php echo esc_attr( $quickwebp_key_option ?? '' ); ?>" |
| 20 |
><?php echo esc_textarea( stripslashes( get_option( $quickwebp_key_option ?? '' ) ) ); ?></textarea> |
| 21 |
|
| 22 |
<style> |
| 23 |
<?php echo '.' . esc_attr( $quickwebp_key_option ) . '-container'; ?> > .CodeMirror { |
| 24 |
height: <?php echo esc_attr( $data['height'] ?? "auto" ); ?>; |
| 25 |
} |
| 26 |
</style> |
| 27 |
|
| 28 |
<?php |
| 29 |
$quickwebp_settings = wp_enqueue_code_editor( array( 'type' => $data['mime_type'] ?? 'text/html' ) ); |
| 30 |
|
| 31 |
if ( $quickwebp_settings ) { |
| 32 |
wp_add_inline_script( |
| 33 |
'code-editor', |
| 34 |
sprintf( |
| 35 |
'jQuery( function() { wp.codeEditor.initialize( %1$s, %2$s ); } );', |
| 36 |
wp_json_encode( (string) $quickwebp_key_option ), |
| 37 |
wp_json_encode( $quickwebp_settings ) |
| 38 |
) |
| 39 |
); |
| 40 |
} |
| 41 |
|