晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/elementor-pro/modules/forms/fields/ |
Upload File : |
<?php
namespace ElementorPro\Modules\Forms\Fields;
use ElementorPro\Modules\Forms\Classes;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
abstract class Field_Base {
/**
* @deprecated 3.28.0 Use `get_script_depends()` instead.
*/
public $depended_scripts = [];
/**
* @deprecated 3.28.0 Use `get_style_depends()` instead.
*/
public $depended_styles = [];
abstract public function get_type();
abstract public function get_name();
/**
* Get the field ID.
*
* TODO: Make it an abstract function that will replace `get_type()`.
*
* @since 3.5.0
*
* @return string
*/
public function get_id() {
return $this->get_type();
}
abstract public function render( $item, $item_index, $form );
public function validation( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {}
public function process_field( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {}
public function add_assets_depends( $form ) {
foreach ( $this->get_script_depends() as $script ) {
wp_enqueue_script( $script );
}
foreach ( $this->get_style_depends() as $style ) {
wp_enqueue_style( $style );
}
}
public function get_script_depends(): array {
return (array) $this->depended_scripts;
}
public function get_style_depends(): array {
return (array) $this->depended_styles;
}
public function add_preview_depends() {
foreach ( $this->get_script_depends() as $script ) {
wp_enqueue_script( $script );
}
foreach ( $this->get_style_depends() as $style ) {
wp_enqueue_style( $style );
}
}
public function add_field_type( $field_types ) {
if ( ! in_array( $this->get_type(), $field_types ) ) {
$field_types[ $this->get_type() ] = $this->get_name();
}
return $field_types;
}
public function field_render( $item, $item_index, $form ) {
$this->add_assets_depends( $form );
$this->render( $item, $item_index, $form );
}
public function sanitize_field( $value, $field ) {
return sanitize_text_field( $value );
}
public function inject_field_controls( $array, $controls_to_inject ) {
$keys = array_keys( $array );
$key_index = array_search( 'required', $keys ) + 1;
return array_merge( array_slice( $array, 0, $key_index, true ),
$controls_to_inject,
array_slice( $array, $key_index, null, true )
);
}
public function __construct() {
$field_type = $this->get_type();
add_action( "elementor_pro/forms/render_field/{$field_type}", [ $this, 'field_render' ], 10, 3 );
add_action( "elementor_pro/forms/validation/{$field_type}", [ $this, 'validation' ], 10, 3 );
add_action( "elementor_pro/forms/process/{$field_type}", [ $this, 'process_field' ], 10, 3 );
add_filter( 'elementor_pro/forms/field_types', [ $this, 'add_field_type' ] );
add_filter( "elementor_pro/forms/sanitize/{$field_type}", [ $this, 'sanitize_field' ], 10, 2 );
add_action( 'elementor/preview/enqueue_scripts', [ $this, 'add_preview_depends' ] );
if ( method_exists( $this, 'update_controls' ) ) {
add_action( 'elementor/element/form/section_form_fields/before_section_end', [ $this, 'update_controls' ] );
}
}
}