Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33.7
Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system
Directory :  /nas/content/live/attorneyexperi/wp-content/plugins/diva/src/DevTools/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /nas/content/live/attorneyexperi/wp-content/plugins/diva/src/DevTools/BlockSources.php
<?php
/**
 * Class BlockSources
 *
 * Captures the themes and plugins responsible for dynamically registered editor blocks.
 *
 * @since 2.1
 *
 * @package AmpProject\AmpWP
 */

namespace AmpProject\AmpWP\DevTools;

use AmpProject\AmpWP\Infrastructure\Conditional;
use AmpProject\AmpWP\Infrastructure\Registerable;
use AmpProject\AmpWP\Infrastructure\Service;
use AmpProject\AmpWP\PluginRegistry;

/**
 * BlockSources class.
 *
 * @since 2.1
 * @internal
 */
final class BlockSources implements Conditional, Service, Registerable {

	/**
	 * Key of the cached block source data.
	 *
	 * @var string
	 */
	const CACHE_KEY = 'amp_block_sources';

	/**
	 * The amount of time to store the block source data in cache.
	 *
	 * @var int
	 */
	const CACHE_TIMEOUT = DAY_IN_SECONDS;

	/**
	 * Block source data.
	 *
	 * @var array|null
	 */
	private $block_sources;

	/**
	 * Plugin registry instance.
	 *
	 * @var PluginRegistry
	 */
	private $plugin_registry;

	/**
	 * Likely culprit detector instance.
	 *
	 * @var LikelyCulpritDetector
	 */
	private $likely_culprit_detector;

	/**
	 * Check whether the conditional object is currently needed.
	 *
	 * @return bool Whether the conditional object is needed.
	 */
	public static function is_needed() {
		// The register_block_type_args filter, which this feature depends on, was introduced in WP 5.5.
		if ( version_compare( get_bloginfo( 'version' ), '5.5', '<' ) ) {
			return false;
		}

		return is_admin() || wp_doing_ajax() || wp_doing_cron() || ( defined( 'REST_REQUEST' ) && REST_REQUEST );
	}

	/**
	 * Class constructor.
	 *
	 * @param PluginRegistry        $plugin_registry Plugin registry instance.
	 * @param LikelyCulpritDetector $likely_culprit_detector Likely culprit detector instance.
	 */
	public function __construct( PluginRegistry $plugin_registry, LikelyCulpritDetector $likely_culprit_detector ) {
		$this->plugin_registry         = $plugin_registry;
		$this->likely_culprit_detector = $likely_culprit_detector;
	}

	/**
	 * Runs on instantiation.
	 */
	public function register() {
		if ( empty( $this->get_block_sources() ) ) {
			add_filter( 'register_block_type_args', [ $this, 'capture_block_type_source' ] );

			// All blocks should be registered well before admin_enqueue_scripts.
			add_action( 'admin_enqueue_scripts', [ $this, 'cache_block_sources' ], PHP_INT_MAX );
		}

		add_action( 'activated_plugin', [ $this, 'clear_block_sources_cache' ] );
		add_action( 'after_switch_theme', [ $this, 'clear_block_sources_cache' ] );
		add_action( 'upgrader_process_complete', [ $this, 'clear_block_sources_cache' ] );
	}

	/**
	 * Registers the google font style.
	 *
	 * @param array $args Array of arguments for registering a block type.
	 * @return array Filtered block type args.
	 */
	public function capture_block_type_source( $args ) {
		if ( isset( $this->get_block_sources()[ $args['name'] ] ) ) {
			return $args;
		}

		$likely_culprit = $this->likely_culprit_detector->analyze_backtrace();

		if ( in_array( $likely_culprit[ FileReflection::SOURCE_TYPE ], [ FileReflection::TYPE_PLUGIN, FileReflection::TYPE_MU_PLUGIN ], true ) ) {
			$plugin = $this->plugin_registry->get_plugin_from_slug(
				$likely_culprit[ FileReflection::SOURCE_NAME ],
				FileReflection::TYPE_MU_PLUGIN === $likely_culprit[ FileReflection::SOURCE_TYPE ]
			);

			$likely_culprit['title'] = isset( $plugin['data']['Title'] ) ? $plugin['data']['Title'] : $likely_culprit[ FileReflection::SOURCE_NAME ];
		} elseif ( FileReflection::TYPE_THEME === $likely_culprit[ FileReflection::SOURCE_TYPE ] ) {
			$theme                   = wp_get_theme( $likely_culprit['name'] );
			$likely_culprit['title'] = $theme->get( 'Name' ) ?: $likely_culprit[ FileReflection::SOURCE_NAME ];
		} else {
			$likely_culprit['title'] = __( 'WordPress core', 'amp' );
		}

		$this->block_sources[ $args['name'] ] = $likely_culprit;

		return $args;
	}

	/**
	 * Saves the block source data to cache.
	 */
	public function cache_block_sources() {
		set_transient( __CLASS__ . self::CACHE_KEY, $this->block_sources, self::CACHE_TIMEOUT );
	}

	/**
	 * Clears the cached block source data.
	 */
	public function clear_block_sources_cache() {
		delete_transient( __CLASS__ . self::CACHE_KEY );
	}

	/**
	 * Retrieves block source data from cache.
	 */
	private function set_block_sources_from_cache() {
		$from_cache = get_transient( __CLASS__ . self::CACHE_KEY );

		$this->block_sources = is_array( $from_cache ) ? $from_cache : [];
	}

	/**
	 * Retrieves block source data.
	 *
	 * @return array
	 */
	public function get_block_sources() {
		if ( is_null( $this->block_sources ) ) {
			$this->set_block_sources_from_cache();
		}

		return $this->block_sources;
	}
}

Spamworldpro Mini