晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/persian-gravity-forms/includes/ |
Upload File : |
<?php if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class GFPersian_Adress extends GFPersian_Core {
public function __construct() {
if ( $this->option( 'address', '1' ) != '1' ) {
return;
}
add_action( 'gform_editor_js', array( $this, 'iran_cities_editor_js' ) );
add_action( 'gform_field_standard_settings', array( $this, 'iran_cities_option' ), 10, 2 );
add_filter( 'gform_address_types', array( $this, 'iran_address_type' ) );
add_filter( 'gform_predefined_choices', array( $this, 'iran_provinces_choices' ), 1 );
add_filter( 'gform_field_content', array( $this, 'iran_cities_field_type' ), 10, 5 );
add_action( 'gform_register_init_scripts', array( $this, 'init_script' ), 10, 1 );
add_action( 'gform_enqueue_scripts', array( $this, 'external_js' ), 10, 2 );
}
public function iran_provinces() {
return array(
'آذربایجان شرقی',
'آذربایجان غربی',
'اردبیل',
'اصفهان',
'البرز',
'ایلام',
'بوشهر',
'تهران',
'چهارمحال و بختیاری',
'خراسان جنوبی',
'خراسان رضوی',
'خراسان شمالی',
'خوزستان',
'زنجان',
'سمنان',
'سیستان و بلوچستان',
'فارس',
'قزوین',
'قم',
'کردستان',
'کرمان',
'کرمانشاه',
'کهگیلویه و بویراحمد',
'گلستان',
'گیلان',
'لرستان',
'مازندران',
'مرکزی',
'هرمزگان',
'همدان',
'یزد'
);
}
public function iran_address_type( $address_types ) {
$address_types['iran'] = array(
'label' => 'ایران',
'country' => 'ایران',
'zip_label' => 'کدپستی',
'state_label' => 'استان',
'states' => array_merge( array( '' ), $this->iran_provinces() )
);
return $address_types;
}
public function iran_provinces_choices( $choices ) {
$states['استان های ایران'] = $this->iran_provinces();
return $choices = array_merge( $states, $choices );
}
public function iran_cities_option( $position, $form_id ) {
if ( $position == 25 ) { ?>
<li class="iran_cities field_setting">
<input type="checkbox" id="iran_cities"
onclick="SetFieldProperty('iran_cities', jQuery(this).is(':checked') ? 1 : 0);"/>
<label class="inline gfield_value_label" for="iran_cities">فعالسازی شهرهای ایران</label>
</li>
<?php
}
}
public function iran_cities_editor_js() { ?>
<script type='text/javascript'>
jQuery(document).ready(function ($) {
fieldSettings["address"] += ", .iran_cities";
$(document).bind("gform_load_field_settings", function (event, field, form) {
$("#iran_cities").attr("checked", field["iran_cities"] == true);
var $address_type = $('#field_address_type');
if (!$('#iran_cities_div').length) {
var $iran_cities = $(".iran_cities");
var $iran_cities_input = $iran_cities.html();
$iran_cities.remove();
$address_type.after('<div id="iran_cities_div"><br>' + $iran_cities_input + '</div>');
}
if ($address_type.val() === 'iran')
$('#iran_cities_div').show();
else
$('#iran_cities_div').hide();
$address_type.change(function () {
if ($(this).val() === 'iran')
$("#iran_cities_div").slideDown();
else
$("#iran_cities_div").slideUp();
});
});
});
</script>
<?php
}
public function iran_cities_field_type( $content, $field, $value, $entry_id, $form_id ) {
if ( $this->is_iran_cities( $field ) ) {
$id = absint( $field['id'] );
preg_match( '/<input.*?(name=["\']input_' . $id . '.3["\'].*?)\/??>/i', $content, $match );
if ( ! empty( $match[0] ) && ! empty( $match[1] ) ) {
$city_input = trim( $match[1] );
$city_input = str_ireplace( 'value=', 'data-selected=', $city_input );
$content = str_replace( $match[0], "<select {$city_input}><option value='' selected='selected'> </option></select>", $content );
}
}
return $content;
}
public function external_js( $form, $ajax ) {
$fields = GFCommon::get_fields_by_type( $form, array( 'address' ) );
foreach ( (array) $fields as $field ) {
if ( $this->is_iran_cities( $field ) ) {
wp_dequeue_script( 'gform_iran_citeis' );
wp_deregister_script( 'gform_iran_citeis' );
wp_register_script( 'gform_iran_citeis', GF_PERSIAN_URL . 'assets/js/iran-cities-full.min.js', array(), GF_PERSIAN_VERSION, false );
wp_enqueue_script( 'gform_iran_citeis' );
add_action( 'gform_enqueue_scripts', array( $this, 'frontend_rtl' ), 999, 1 );
break;
}
}
}
public function frontend_rtl( $form ) {
if ( ! apply_filters( 'gform_iran_cities_fronend_rtl', is_rtl() && ! is_admin() ) ) {
return;
}
?>
<style type="text/css">
<?php
foreach ( $form['fields'] as &$field ) {
if ( $this->is_iran_cities( $field ) ) {
$id = $form['id'] . '_' . $field['id'];
echo '
html[dir="rtl"] #input_' . $id . '_4_container{
float: right !important;
padding-right: 0 !important;
padding-left: 16px !important;
}
html[dir="rtl"] #input_' . $id . '_3_container{
float: left !important;
padding-right: 0 !important;
padding-left: 0 !important;
}';
}
}
?>
</style>
<?php
}
public function init_script( $form ) {
foreach ( $form['fields'] as &$field ) {
if ( $this->is_iran_cities( $field ) ) {
$id = $form['id'] . '_' . $field['id'];
$script = 'jQuery().ready(function($){' .
'$(".has_city #input_' . $id . '_3").html(gform_iranCities(""+$(".has_city #input_' . $id . '_4").val()));' .
'if ($(".has_city #input_' . $id . '_3").attr("data-selected")) {' .
'$(".has_city #input_' . $id . '_3").val($(".has_city #input_' . $id . '_3").attr("data-selected"));' .
'}' .
'$(document.body).on("change", ".has_city #input_' . $id . '_4" ,function(){' .
'$(".has_city #input_' . $id . '_3").html(gform_iranCities(""+$(".has_city #input_' . $id . '_4").val()));' .
'}).on("change", ".has_city #input_' . $id . '_3" ,function(){' .
'$(this).attr("data-selected", $(this).val());' .
'})' .
'})';
GFFormDisplay::add_init_script( $form['id'], 'iran_address_city_' . $id, GFFormDisplay::ON_PAGE_RENDER, $script );
}
}
}
private function is_iran_cities( $field ) {
return $field['type'] == 'address' && $field['addressType'] == 'iran' && rgar( $field, 'iran_cities' ) && ! is_admin();
}
}
new GFPersian_Adress();