HEX
Server: Apache/2.4.65 (Debian)
System: Linux web6 5.10.0-36-amd64 #1 SMP Debian 5.10.244-1 (2025-09-29) x86_64
User: innocamp (1028)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/plan4ev/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;
		}
	}
}