HEX
Server: nginx/1.27.1
System: Linux in-4 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User: ilikadirect (1186)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /storage/v6964/srce/public_html/wp-content/plugins/siteorigin-panels/compat/pagelayer.php
<?php
/**
 * Compatibility with Pagelayer Templates.
 *
 * Templates are output using the_content filter.
 * To prevent content duplication, we need to selectively
 * deactivate the panels filter based on template usage.
 *
 */
class SiteOrigin_Panels_Compat_Pagelayer {
	public $panelsDisabled = false;

	public function __construct() {
		add_action( 'get_header', array( $this, 'template_detection' ), 1 );
		add_action( 'get_footer', array( $this, 'template_detection' ), 1 );
		add_filter( 'loop_start', array( $this, 'enable_panels_in_content' ) );
	}

	public static function single() {
		static $single;

		return empty( $single ) ? $single = new self() : $single;
	}

	function enable_panels_in_content( $query ) {
		if ( $this->panelsDisabled && $query->is_main_query() ) {
			remove_filter( 'siteorigin_panels_filter_content_enabled', '__return_false' );
			$this->panelsDisabled = false;
		}
	}

	public function template_detection() {
		global $pagelayer;
		$context = current_filter() === 'get_header' ? 'header' : 'footer';
		if (
			! $this->panelsDisabled &&
			! empty( $pagelayer->{ "template_$context" } )
		) {
			add_filter( 'siteorigin_panels_filter_content_enabled', '__return_false' );
			$this->panelsDisabled = true;
		}
	}
}