PluginProbe
WP Console – WordPress PHP Console powered by PsySH / trunk
WP Console – WordPress PHP Console powered by PsySH vtrunk
trunk 2.4.0 2.4.1 2.5.0 2.5.1 2.6.0
wp-console / includes / Scripts.php

Scripts.php in WP Console – WordPress PHP Console powered by PsySH trunk, at includes/Scripts.php

86 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPConsole;
4
5 class Scripts {
6
7 /**
8 * Class constructor
9 *
10 * @since 1.0.0
11 *
12 * @return void
13 */
14 public function __construct() {
15 if ( ! current_user_can( 'manage_options' ) ) {
16 return;
17 }
18
19 add_action( 'init', [ $this, 'register_scripts' ] );
20 add_action( 'init', [ $this, 'load_translation' ] );
21 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
22 add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
23 }
24
25 /**
26 * Register scripts
27 *
28 * @since 1.0.0
29 * @since 1.2.0 Add codemirror closebrackets, matchbrackets addon scripts
30 * @since 2.0.0 Remove codemirror and add AceEditor.
31 *
32 * @return void
33 */
34 public function register_scripts() {
35 $assets = require_once WP_CONSOLE_ABSPATH . '/assets/js/wp-console.asset.php';
36 $dependencies = array_merge( $assets['dependencies'], [
37 'wp-console-ace-editor-lang',
38 ] );
39
40 wp_register_style( 'wp-console', WP_CONSOLE_ASSETS . '/css/wp-console.css', [ 'wp-components' ], $assets['version'] );
41 wp_register_script( 'wp-console-ace-editor', WP_CONSOLE_ASSETS . '/vendor/ace-builds/src-min-noconflict/ace.js', [], '1.23.4', true );
42 wp_register_script( 'wp-console-ace-editor-lang', WP_CONSOLE_ASSETS . '/vendor/ace-builds/src-min-noconflict/ext-language_tools.js', [ 'wp-console-ace-editor' ], '1.23.4', true );
43 wp_register_script( 'wp-console', WP_CONSOLE_ASSETS . '/js/wp-console.js', $dependencies, $assets['version'], true );
44 }
45
46 /**
47 * Load translations for JavaScript
48 *
49 * @since 1.0.0
50 *
51 * @return void
52 */
53 public function load_translation() {
54 wp_set_script_translations( 'wp-console', 'wp-console', plugin_dir_path( WP_CONSOLE_FILE ) . 'languages' );
55 }
56
57 /**
58 * Enqueue console scripts
59 *
60 * @since 1.0.0
61 * @since 2.0.0 remove `rest`, add `url` and `user_settings` data
62 *
63 * @return void
64 */
65 public function enqueue_scripts() {
66 wp_enqueue_style( 'wp-console' );
67 wp_enqueue_script( 'wp-console' );
68
69 $user_settings = wp_console()->user_settings->get( get_current_user_id() );
70
71 $data = [
72 'url' => [
73 'assests' => WP_CONSOLE_ASSETS,
74 ],
75 'user_settings' => $user_settings,
76 'php_version' => PHP_VERSION,
77 'wp_version' => [
78 'gte_5_8' => version_compare( get_bloginfo( 'version' ), '5.8', '>=' ),
79 'gte_6_4' => version_compare( get_bloginfo( 'version' ), '6.4', '>=' ),
80 ],
81 ];
82
83 wp_localize_script( 'wp-console', 'wpConsole', $data );
84 }
85 }
86