79 lines
1.6 KiB
PHP
79 lines
1.6 KiB
PHP
<?php declare(strict_types = 1);
|
|
/**
|
|
* Mock 'Debug Bar' plugin class.
|
|
*
|
|
* @package query-monitor
|
|
*/
|
|
|
|
class Debug_Bar {
|
|
/**
|
|
* @var array<int, Debug_Bar_Panel>
|
|
*/
|
|
public $panels = array();
|
|
|
|
public function __construct() {
|
|
add_action( 'wp_head', array( $this, 'ensure_ajaxurl' ), 1 );
|
|
|
|
$this->enqueue();
|
|
$this->init_panels();
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
public function enqueue() {
|
|
// phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
|
|
wp_register_style( 'debug-bar', false, array(
|
|
'query-monitor',
|
|
) );
|
|
// phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
|
|
wp_register_script( 'debug-bar', false, array(
|
|
'query-monitor',
|
|
) );
|
|
|
|
/**
|
|
* Fires after scripts have been enqueued. This mimics the same action fired in the Debug Bar plugin.
|
|
*
|
|
* @since 2.7.0
|
|
*/
|
|
do_action( 'debug_bar_enqueue_scripts' );
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
public function init_panels() {
|
|
/**
|
|
* Filters the debug bar panel list. This mimics the same filter called in the Debug Bar plugin.
|
|
*
|
|
* @since 2.7.0
|
|
*
|
|
* @param array<int, Debug_Bar_Panel> $panels Array of Debug Bar panel instances.
|
|
*/
|
|
$this->panels = apply_filters( 'debug_bar_panels', array() );
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
public function ensure_ajaxurl() {
|
|
$dispatcher = QM_Dispatchers::get( 'html' );
|
|
|
|
if ( $this->panels && $dispatcher && $dispatcher::user_can_view() ) {
|
|
?>
|
|
<script type="text/javascript">
|
|
var ajaxurl = '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>';
|
|
</script>
|
|
<?php
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
public function Debug_Bar() {
|
|
self::__construct();
|
|
}
|
|
|
|
}
|