晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/js_composer/include/params/param_group/ |
Upload File : |
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
require_once vc_path_dir( 'EDITORS_DIR', 'class-vc-edit-form-fields.php' );
/**
* Class Vc_ParamGroup_Edit_Form_Fields
* @since 4.4
*/
class Vc_ParamGroup_Edit_Form_Fields extends Vc_Edit_Form_Fields {
/** @noinspection PhpMissingParentConstructorInspection */
/**
* @param $settings
* @since 4.4
*
*/
public function __construct( $settings ) {
$this->setSettings( $settings );
}
/**
* Get shortcode attribute value wrapper for params group.
*
* This function checks if value isn't set then it uses std or value fields in param settings.
* @param $params_settings
* @param null $value
*
* @return mixed;
* @since 5.2.1
*
*/
public function getParamGroupAttributeValue( $params_settings, $value = null ) {
return $this->parseShortcodeAttributeValue( $params_settings, $value );
}
}
/**
* Class Vc_ParamGroup
* @since 4.4
*/
class Vc_ParamGroup {
/**
* @since 4.4
* @var
*/
protected $settings;
/**
* @since 4.4
* @var array|mixed
*/
protected $value;
/**
* @since 4.4
* @var
*/
protected $map;
/**
* @since 4.4
* @var
*/
protected $atts;
public $unparsed_value;
/**
* @param $settings
* @param $value
* @param $tag
*
* @since 4.4
*/
public function __construct( $settings, $value, $tag ) {
$this->settings = $settings;
$this->settings['base'] = $tag;
$this->value = vc_param_group_parse_atts( $value );
$this->unparsed_value = $value;
}
/**
* @param $param_name
* @param $arr
*
* @return array
* @since 4.4
*/
public function params_to_arr( $param_name, $arr ) {
$data = array();
foreach ( $arr as $param ) {
$data[ $param_name . '_' . $param['param_name'] ] = $param['type'];
}
return $data;
}
/**
* @return mixed|string
* @since 4.4
*/
public function render() {
$output = '';
$edit_form = new Vc_ParamGroup_Edit_Form_Fields( $this->settings );
$settings = $this->settings;
$output .= '<ul class="vc_param_group-list vc_settings" data-settings="' . htmlentities( wp_json_encode( $settings ), ENT_QUOTES, 'utf-8' ) . '">';
$template = vc_include_template( 'params/param_group/content.tpl.php' );
// Parsing values
if ( ! empty( $this->value ) ) {
foreach ( $this->value as $values ) {
$output .= $template;
$value_block = "<div class='vc_param_group-wrapper vc_clearfix'>";
$data = $values;
foreach ( $this->settings['params'] as $param ) {
$param_value = isset( $data[ $param['param_name'] ] ) ? $data[ $param['param_name'] ] : ( isset( $param['value'] ) ? $param['value'] : null );
$param['param_name'] = $this->settings['param_name'] . '_' . $param['param_name'];
$value = $edit_form->getParamGroupAttributeValue( $param, $param_value );
$value_block .= $edit_form->renderField( $param, $value );
}
$value_block .= '</div>';
$output = str_replace( '%content%', $value_block, $output );
}
} else {
$output .= $template;
}
// Empty fields wrapper and Add new fields wrapper
$content = "<div class='vc_param_group-wrapper vc_clearfix'>";
foreach ( $this->settings['params'] as $param ) {
$param['param_name'] = $this->settings['param_name'] . '_' . $param['param_name'];
$value = $edit_form->getParamGroupAttributeValue( $param );
$content .= $edit_form->renderField( $param, $value );
}
$content .= '</div>';
$output = str_replace( '%content%', $content, $output );
// And button on bottom
$output .= '<li class="wpb_column_container vc_container_for_children vc_param_group-add_content vc_empty-container"></li></ul>';
$add_template = vc_include_template( 'params/param_group/add.tpl.php' );
$add_template = str_replace( '%content%', $content, $add_template );
$custom_tag = 'script';
$output .= '<' . $custom_tag . ' type="text/html" class="vc_param_group-template">' . wp_json_encode( $add_template ) . '</' . $custom_tag . '>';
$output .= '<input name="' . $this->settings['param_name'] . '" class="wpb_vc_param_value ' . $this->settings['param_name'] . ' ' . $this->settings['type'] . '_field" type="hidden" value="' . $this->unparsed_value . '" />';
return $output;
}
}
/**
* Function for rendering param in edit form (add element)
* Parse settings from vc_map and entered values.
*
* @param $param_settings
* @param $param_value
* @param $tag
*
* @return mixed rendered template for params in edit form
* @since 4.4
*
* vc_filter: vc_param_group_render_filter
*
*/
function vc_param_group_form_field( $param_settings, $param_value, $tag ) {
$param_group = new Vc_ParamGroup( $param_settings, $param_value, $tag );
return apply_filters( 'vc_param_group_render_filter', $param_group->render() );
}
add_action( 'wp_ajax_vc_param_group_clone', 'vc_param_group_clone' );
/**
* @since 4.4
*/
function vc_param_group_clone() {
vc_user_access()->checkAdminNonce()->validateDie()->wpAny( 'edit_posts', 'edit_pages' )->validateDie();
$param = vc_post_param( 'param' );
$value = vc_post_param( 'value' );
$tag = vc_post_param( 'shortcode' );
wp_send_json_success( vc_param_group_clone_by_data( $tag, json_decode( rawurldecode( $param ), true ), json_decode( rawurldecode( $value ), true ) ) );
}
/**
* @param $tag
* @param $params
* @param $data
*
* @return mixed|string
* @since 4.4
*/
function vc_param_group_clone_by_data( $tag, $params, $data ) {
$output = '';
$params['base'] = $tag;
$edit_form = new Vc_ParamGroup_Edit_Form_Fields( $params );
$edit_form->loadDefaultParams();
$template = vc_include_template( 'params/param_group/content.tpl.php' );
$output .= $template;
$value_block = "<div class='vc_param_group-wrapper vc_clearfix'>";
$data = $data[0];
if ( isset( $params['params'] ) && is_array( $params['params'] ) ) {
foreach ( $params['params'] as $param ) {
$param_data = isset( $data[ $param['param_name'] ] ) ? $data[ $param['param_name'] ] : ( isset( $param['value'] ) ? $param['value'] : '' );
$param['param_name'] = $params['param_name'] . '_' . $param['param_name'];
$value_block .= $edit_form->renderField( $param, $param_data );
}
}
$value_block .= '</div>';
$output = str_replace( '%content%', $value_block, $output );
return $output;
}
/**
* @param $atts_string
*
* @return array|mixed
* @since 4.4
*/
function vc_param_group_parse_atts( $atts_string ) {
$array = json_decode( urldecode( $atts_string ), true );
return $array;
}
add_filter( 'vc_map_get_param_defaults', 'vc_param_group_param_defaults', 10, 2 );
/**
* @param $value
* @param $param
* @return string
*/
function vc_param_group_param_defaults( $value, $param ) {
if ( 'param_group' === $param['type'] && isset( $param['params'] ) && empty( $value ) ) {
$defaults = vc_map_get_params_defaults( $param['params'] );
$value = rawurlencode( wp_json_encode( array( $defaults ) ) );
}
return $value;
}