晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/rainic/www/oldTZh/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/ |
Upload File : |
<?php
namespace WP_Rocket\ThirdParty\Plugins;
use Smush\Core\Settings;
use WP_Rocket\Admin\Options;
use WP_Rocket\Admin\Options_Data;
use WP_Rocket\Event_Management\Subscriber_Interface;
/**
* Subscriber for compatibility with Smush
*
* @since 3.4.2
* @author Soponar Cristina
*/
class Smush implements Subscriber_Interface {
/**
* WP Options API instance
*
* @var Options
*/
private $options_api;
/**
* Options instance
*
* @var Options_Data
*/
private $options;
/**
* Subscribed events for Smush.
*
* @since 3.4.2
* @author Soponar Cristina
* @inheritDoc
*/
public static function get_subscribed_events() {
if ( ! rocket_has_constant( 'WP_SMUSH_VERSION' ) ) {
return [
'activate_wp-smushit/wp-smush.php' => [ 'maybe_deactivate_rocket_lazyload', 10 ],
];
}
return [
'update_option_wp-smush-settings' => [ 'maybe_deactivate_rocket_lazyload', 11 ],
'update_site_option_wp-smush-settings' => [ 'maybe_deactivate_rocket_lazyload', 11 ],
'update_option_wp-smush-lazy_load' => [ 'maybe_deactivate_rocket_lazyload', 11 ],
'update_site_option_wp-smush-lazy_load' => [ 'maybe_deactivate_rocket_lazyload', 11 ],
'rocket_maybe_disable_lazyload_helper' => 'is_smush_lazyload_active',
'rocket_maybe_disable_iframes_lazyload_helper' => 'is_smush_iframes_lazyload_active',
];
}
/**
* Constructor.
*
* @since 3.5.5
*
* @param Options $options_api WP Options API instance.
* @param Options_Data $options WP Rocket Options instance.
*/
public function __construct( Options $options_api, Options_Data $options ) {
$this->options_api = $options_api;
$this->options = $options;
}
/**
* Disable WP Rocket lazyload when activating WP Smush and values are already in the database.
*
* @since 3.4.2
* @author Soponar Cristina
*/
public function maybe_deactivate_rocket_lazyload() {
$enabled = $this->is_smush_lazyload_enabled();
$updated = false;
if ( $enabled['images'] && $this->options->get( 'lazyload' ) ) {
$this->options->set( 'lazyload', 0 );
$updated = true;
}
if ( $enabled['iframes'] && $this->options->get( 'lazyload_iframes' ) ) {
$this->options->set( 'lazyload_iframes', 0 );
$updated = true;
}
if ( ! $updated ) {
return;
}
$this->options_api->set( 'settings', $this->options->get_options() );
}
/**
* Add "Smush" to the provided array if WP Smush lazyload is enabled for images.
*
* @since 3.4.2
* @author Soponar Cristina
*
* @param array $disable_images_lazyload Array with plugins which disable lazyload functionality.
* @return array A list of plugin names.
*/
public function is_smush_lazyload_active( array $disable_images_lazyload ) {
$enabled = $this->is_smush_lazyload_enabled();
if ( $enabled['images'] ) {
$disable_images_lazyload[] = __( 'Smush', 'rocket' );
}
return $disable_images_lazyload;
}
/**
* Add "Smush" to the provided array if WP Smush lazyload is enabled for iframes.
*
* @since 3.5.5
*
* @param array $disable_iframes_lazyload Array with plugins which disable lazyload functionality.
* @return array A list of plugin names.
*/
public function is_smush_iframes_lazyload_active( $disable_iframes_lazyload ) {
$enabled = $this->is_smush_lazyload_enabled();
if ( $enabled['iframes'] ) {
$disable_iframes_lazyload[] = __( 'Smush', 'rocket' );
}
return $disable_iframes_lazyload;
}
/**
* Tell if Smush’s lazyload is enabled for each type of content.
*
* @since 3.5.5
*
* @return array {
* @var bool $images True when lazyload is enabled for images. False otherwise.
* @var bool $iframes True when lazyload is enabled for iframes. False otherwise.
* }
*/
private function is_smush_lazyload_enabled() {
$enabled = [
'images' => false,
'iframes' => false,
];
if ( ! class_exists( '\Smush\Core\Settings' ) ) {
return $enabled;
}
if ( ! method_exists( '\Smush\Core\Settings', 'get_instance' ) ) {
return $enabled;
}
$smush_settings = Settings::get_instance();
if ( ! method_exists( $smush_settings, 'get' ) || ! method_exists( $smush_settings, 'get_setting' ) ) {
return $enabled;
}
if ( ! $smush_settings->get( 'lazy_load' ) ) {
return $enabled;
}
$formats = $smush_settings->get_setting( 'wp-smush-lazy_load' );
$formats = ! empty( $formats['format'] ) && is_array( $formats['format'] ) ? array_filter( $formats['format'] ) : [];
$image_formats = array_intersect_key(
$formats,
// Allowlist image formats.
[
'jpeg' => false,
'png' => false,
'gif' => false,
'svg' => false,
]
);
if ( ! empty( $image_formats ) ) {
// One or several image formats are enabled in Smush.
$enabled['images'] = true;
}
if ( ! empty( $formats['iframe'] ) ) {
// Iframe is enabled in Smush.
$enabled['iframes'] = true;
}
return $enabled;
}
}