晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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 : |
<?php
namespace W3TC;
class Cdnfsd_StackPath2_Popup {
static public function w3tc_ajax() {
$o = new Cdnfsd_StackPath2_Popup();
add_action( 'w3tc_ajax_cdn_stackpath2_fsd_intro',
array( $o, 'w3tc_ajax_cdn_stackpath2_fsd_intro' ) );
add_action( 'w3tc_ajax_cdn_stackpath2_fsd_list_stacks',
array( $o, 'w3tc_ajax_cdn_stackpath2_fsd_list_stacks' ) );
add_action( 'w3tc_ajax_cdn_stackpath2_fsd_list_sites',
array( $o, 'w3tc_ajax_cdn_stackpath2_fsd_list_sites' ) );
add_action( 'w3tc_ajax_cdn_stackpath2_fsd_configure_site',
array( $o, 'w3tc_ajax_cdn_stackpath2_fsd_configure_site' ) );
}
public function w3tc_ajax_cdn_stackpath2_fsd_intro() {
$config = Dispatcher::config();
$this->render_intro( array(
'client_id' => $config->get_string( 'cdnfsd.stackpath2.client_id' ),
'client_secret' => $config->get_string( 'cdnfsd.stackpath2.client_secret' ),
'stack_id' => $config->get_string( 'cdnfsd.stackpath2.stack_id' )
) );
}
private function render_intro( $details ) {
$config = Dispatcher::config();
$url_obtain_key = W3TC_STACKPATH2_AUTHORIZE_URL;
include W3TC_DIR . '/Cdnfsd_StackPath2_Popup_View_Intro.php';
exit();
}
public function w3tc_ajax_cdn_stackpath2_fsd_list_stacks() {
$api_config = array(
'client_id' => $_REQUEST['client_id'],
'client_secret' => $_REQUEST['client_secret']
);
$api = new Cdn_StackPath2_Api( $api_config );
try {
$r = $r = $api->stacks_list();
$stacks = $r['results'];
} catch ( \Exception $ex ) {
$error_message = 'Can\'t authenticate: ' . $ex->getMessage();
$this->render_intro( array(
'client_id' => $api_config['client_id'],
'client_secret' => $api_config['client_secret'],
'error_message' => $error_message
) );
exit();
}
$count = 0;
$stack_id = '';
foreach ( $stacks as $i ) {
if ( $i['status'] == 'ACTIVE' ) {
$count++;
$stack_id = $i['id'];
}
}
if ( $count == 1 ) {
$api_config['stack_id'] = $stack_id;
$this->_w3tc_ajax_cdn_stackpath2_fsd_list_sites( $api_config );
exit();
}
$details = array(
'api_config' => $this->api_config_encode( $api_config ),
'stacks' => $stacks
);
include W3TC_DIR . '/Cdnfsd_StackPath2_Popup_View_Stacks.php';
exit();
}
public function w3tc_ajax_cdn_stackpath2_fsd_list_sites() {
$api_config = $this->api_config_decode( $_REQUEST['api_config'] );
$api_config['stack_id'] = $_REQUEST['stack_id'];
$this->_w3tc_ajax_cdn_stackpath2_fsd_list_sites( $api_config );
}
public function _w3tc_ajax_cdn_stackpath2_fsd_list_sites( $api_config ) {
$api = new Cdn_StackPath2_Api( $api_config );
try {
$r = $api->site_list();
$sites = $r['results'];
} catch ( \Exception $ex ) {
$error_message = 'Can\'t authenticate: ' . $ex->getMessage();
$this->render_intro( array(
'client_id' => $api_config['client_id'],
'client_secret' => $api_config['client_secret'],
'stack_id' => $api_config['stack_id'],
'error_message' => $error_message
) );
exit();
}
$details = array(
'api_config' => $this->api_config_encode( $api_config ),
'sites' => $sites,
'new_hostname' => parse_url( home_url(), PHP_URL_HOST )
);
include W3TC_DIR . '/Cdnfsd_StackPath2_Popup_View_Sites.php';
exit();
}
public function w3tc_ajax_cdn_stackpath2_fsd_configure_site() {
$api_config = $this->api_config_decode( $_REQUEST['api_config'] );
$site_id = Util_Request::get( 'site_id', '' );
$api = new Cdn_StackPath2_Api( $api_config );
try {
if ( empty( $site_id ) ) {
// create new zone mode
$hostname = parse_url( home_url(), PHP_URL_HOST );
$hostname = 'an6.w3-edge.com';
$r = $api->site_create( array(
'domain' => $hostname,
'origin' => array(
'path' => '/',
'hostname' => $hostname,
'port' => 80,
'securePort' => 443
),
'features' => array( 'CDN' )
) );
$site_id = $r['site']['id'];
}
$r = $api->site_dns_targets_get( $site_id );
$domains = $r['addresses'];
} catch ( \Exception $ex ) {
$this->render_intro( array(
'client_id' => $api_config['client_id'],
'client_secret' => $api_config['client_secret'],
'stack_id' => $api_config['stack_id'],
'error_message' => 'Can\'t obtain site: ' . $ex->getMessage()
) );
exit();
}
$c = Dispatcher::config();
$c->set( 'cdnfsd.stackpath2.client_id', $api_config['client_id'] );
$c->set( 'cdnfsd.stackpath2.client_secret', $api_config['client_secret'] );
$c->set( 'cdnfsd.stackpath2.stack_id', $api_config['stack_id'] );
$c->set( 'cdnfsd.stackpath2.site_id', $site_id );
$c->set( 'cdnfsd.stackpath2.site_root_domain', $domains[0] );
$c->set( 'cdnfsd.stackpath2.domain', $domains );
$c->save();
include W3TC_DIR . '/Cdnfsd_StackPath2_Popup_View_Success.php';
exit();
}
private function api_config_encode( $c ) {
return implode( ';', array(
$c['client_id'], $c['client_secret'],
isset( $c['stack_id'] ) ? $c['stack_id'] : ''
) );
}
private function api_config_decode( $s ) {
$a = explode( ';', $s );
return array(
'client_id' => $a[0],
'client_secret' => $a[1],
'stack_id' => $a[2]
);
}
}