晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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_JalaliDate extends GFPersian_Core {
public function __construct() {
if ( $this->option( 'jalali', '1' ) != '1' ) {
return;
}
require_once( 'lib/jalali.php' );
add_filter( 'gform_tooltips', array( $this, 'tooltips' ) );
add_action( 'gform_editor_js', array( $this, 'jalali_settings' ) );
add_action( 'gform_field_standard_settings', array( $this, 'jalali_checkbox' ), 10, 2 );
add_action( 'gform_enqueue_scripts', array( $this, 'jalali_datepicker' ), 11, 1 );
add_filter( 'gform_date_min_year', array( $this, 'jalali_date_min' ), 10, 3 );
add_filter( 'gform_date_max_year', array( $this, 'jalali_date_max' ), 10, 3 );
add_filter( 'gform_field_validation', array( $this, 'jalali_validator' ), 999999, 4 );
add_filter( 'gform_predefined_choices', array( $this, 'jalali_predefined_choices' ), 1 );
}
public function tooltips( $tooltips ) {
$tooltips['gform_activate_jalali'] = '<h6>فعالسازی تاریخ شمسی</h6>در صورتی که از چند فیلد تاریخ استفاده میکنید، فعالسازی تاریخ شمسی یکی از فیلدها کفایت میکند.<br/>تذکر : با توجه به آزمایشی بودن این قسمت ممکن است تداخل توابع سبب ناسازگاری با برخی قالب ها شود.';
return $tooltips;
}
public function jalali_settings() { ?>
<script type='text/javascript'>
fieldSettings['date'] += ', .jalali_setting';
jQuery(document).bind('gform_load_field_settings', function (event, field, form) {
jQuery('#check_jalali').attr('checked', field['check_jalali'] == true);
});
</script>
<?php
}
public function jalali_checkbox( $position, $form_id ) {
if ( $position == 25 ) { ?>
<li class="jalali_setting field_setting">
<input type="checkbox" id="check_jalali"
onclick="SetFieldProperty('check_jalali', jQuery(this).is(':checked') ? 1 : 0);"/>
<label class="inline gfield_value_label" for="check_jalali" class="inline">
فعالسازی تاریخ شمسی
<?php gform_tooltip( "gform_activate_jalali" ) ?>
</label>
</li>
<?php
}
}
public function jalali_datepicker( $form ) {
if ( ! is_admin() && ( wp_script_is( 'gform_datepicker_init' ) || wp_script_is( 'gform_datepicker_init', 'registered' ) ) ) {
foreach ( $form['fields'] as $field ) {
if ( $field['type'] == 'date' && rgar( $field, 'check_jalali' ) ) {
wp_dequeue_script( 'jquery-ui-datepicker' );
wp_deregister_script( 'jquery-ui-datepicker' );
wp_register_script( 'jquery-ui-datepicker', GF_PERSIAN_URL . 'assets/js/jalali-datepicker.js', array(
'jquery',
'jquery-migrate',
'jquery-ui-core',
'gform_gravityforms'
), GF_PERSIAN_VERSION, true );
wp_enqueue_script( 'jquery-ui-datepicker' );
break;
}
}
}
}
public function jalali_date_min( $min_year, $form, $field ) {
if ( rgar( $field, 'type' ) == 'date' && rgar( $field, 'check_jalali' ) ) {
$min_year = GF_gregorian_to_jalali( $min_year, 03, 21 );
$min_year = $min_year[0] + 1;
}
return apply_filters( 'gform_jalali_date_min_year', $min_year, $form, $field );
}
public function jalali_date_max( $max_year, $form, $field ) {
if ( rgar( $field, 'type' ) == 'date' && rgar( $field, 'check_jalali' ) ) {
$max_year = GF_gregorian_to_jalali( $max_year, 03, 21 );
$max_year = $max_year[0] + 20;
}
return apply_filters( 'gform_jalali_date_max_year', $max_year, $form, $field );
}
public function jalali_validator( $result, $value, $form, $field ) {
if ( rgar( $field, 'type' ) == 'date' && rgar( $field, 'check_jalali' ) ) {
$format = rgar( $field, 'dateFormat', 'mdy' );
$formats = array(
'mdy' => 'mm/dd/yyyy',
'dmy' => 'dd/mm/yyyy',
'dmy_dash' => 'dd-mm-yyyy',
'dmy_dot' => 'dd.mm.yyyy',
'ymd_slash' => 'yyyy/mm/dd',
'ymd_dash' => 'yyyy-mm-dd',
'ymd_dot' => 'yyyy.mm.dd'
);
$format_name = ! empty( $formats[ $format ] ) ? $formats[ $format ] : '';
$message = $format_name && rgar( $field, 'dateType' ) == 'datepicker' ? sprintf( esc_html__( 'Please enter a valid date in the format (%s).', 'gravityforms' ), $format_name ) : esc_html__( 'Please enter a valid date.', 'gravityforms' );
/*این شرط مشخص میکنه فقط اگر خطایی وجود نداشت و یا اگر خطا مربوط به ولیدیت تاریخ بود وارد بررسی شود*/
if ( ! empty( $result['message'] ) && $message != $result['message'] ) {
return $result;
}
if ( is_array( $value ) && rgempty( 0, $value ) && rgempty( 1, $value ) && rgempty( 2, $value ) ) {
$value = null;
}
if ( ! empty( $value ) ) {
$date = GFCommon::parse_date( $value, $format );
$day = intval( rgar( $date, 'day' ) );
$month = intval( rgar( $date, 'month' ) );
$year = intval( rgar( $date, 'year' ) );
$result['is_valid'] = GF_jcheckdate( $month, $day, $year );
if ( ! $result['is_valid'] && empty( $result['message'] ) ) {
$result['message'] = $message;
}
}
}
return $result;
}
public function jalali_predefined_choices( $choices ) {
$month['ماه های ایران'] = array(
'فروردین',
'اردیبهشت',
'خرداد',
'تیر',
'مرداد',
'شهریور',
'مهر',
'آبان',
'آذر',
'دی',
'بهمن',
'اسفند'
);
return array_merge( $month, $choices );
}
}
new GFPersian_JalaliDate();