# content-control/2.6.4/classes/Controllers/Compatibility/QueryMonitor.php

Content Control – The Ultimate Content Restriction Plugin! Restrict Content, Create Conditional Blocks &amp; More, version 2.6.4. 70 lines.

- Page: https://pluginprobe.com/plugins/content-control/2.6.4/code/classes/Controllers/Compatibility/QueryMonitor.php
- Raw: https://pluginprobe.com/plugins/content-control/2.6.4/raw/classes/Controllers/Compatibility/QueryMonitor.php
- Modified: 2024-06-21T09:00:36+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/content-control/2.6.4/code/classes/Controllers/Compatibility/QueryMonitor.php#L10-L20`.

```php
<?php
/**
 * QueryMonitor
 *
 * @package ContentControl
 */

namespace ContentControl\Controllers\Compatibility;

use ContentControl\Base\Controller;
use ContentControl\QueryMonitor\Output;
use ContentControl\QueryMonitor\Collector;
use QM_Collectors;

use function ContentControl\is_frontend;

/**
 * QueryMonitor
 */
class QueryMonitor extends Controller {

	/**
	 * Initialize the class
	 *
	 * @return void
	 */
	public function init() {
		$this->register_collector();
		add_filter( 'qm/outputter/html', [ $this, 'register_output_html' ], 10 );
	}

	/**
	 * Check if controller is enabled.
	 *
	 * @return bool
	 */
	public function controller_enabled() {
		return class_exists( 'QueryMonitor' );
	}

	/**
	 * Register collector.
	 *
	 * @return void
	 */
	public function register_collector() {
		QM_Collectors::add( new Collector() );
	}

	/**
	 * Add Query Monitor outputter.
	 *
	 * @param array<string,\QM_Output_Html> $output Outputters.
	 * @return array<string,\QM_Output_Html> Outputters.
	 */
	public function register_output_html( $output ) {
		if ( ! is_frontend() ) {
			return $output;
		}

		$collector = QM_Collectors::get( 'content-control' );

		if ( $collector ) {
			$output['content-control'] = new Output( $collector );
		}

		return $output;
	}
}

```
