مدیاویکی:Common.js: تفاوت میان نسخه‌ها

بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۲۹۶: خط ۲۹۶:


/* adds show/hide-button to navigation bars */
/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton() {
function createNavigationBarToggleButtonLegacy() {
   var indexNavigationBar = 0;
   var indexNavigationBar = 0;
   var NavFrame;
   var NavFrame;
خط ۳۵۰: خط ۳۵۰:
   }
   }
}
}
// $(createNavigationBarToggleButton);


/** Main Page layout fixes *********************************************************
/** Main Page layout fixes *********************************************************
خط ۴۵۷: خط ۴۵۵:
});
});


/* پاسخ تاشو */
/* پاسخ تاشو */
/* پاسخ تاشو */
mw.hook('wikipage.content').add(function($content) {
mw.hook('wikipage.content').add(function($content) {
خط ۶۸۸: خط ۶۸۵:
});
});


====================================================
تغییرات جدید
===================================================
/* انیمیشن تایپ‌رایتر هوشمند */
/* انیمیشن تایپ‌رایتر هوشمند */
mw.hook('wikipage.content').add(function($content) {
mw.hook('wikipage.content').add(function($content) {
خط ۷۲۳: خط ۷۱۷:
         type();
         type();
     });
     });
});
===================================================
/* سیستم جستجوی شهرها - فقط کد JS */
mw.hook('wikipage.content').add(function($content) {
    var $wrapper = $content.find('#city-search-wrapper');
    if ($wrapper.length === 0) return;
    const data = [
        { "province": "آذربایجان شرقی", "cities": ["تبریز", "مراغه", "مرند", "بناب"] },
        { "province": "تهران", "cities": ["تهران", "اسلامشهر", "شهریار", "قدس", "پردیس", "قرچک"] },
        { "province": "اصفهان", "cities": ["اصفهان", "کاشان", "خمینی‌شهر", "نجف آباد"] },
        { "province": "البرز", "cities": ["کرج", "فردیس", "نظر آباد"] },
        { "province": "خراسان رضوی", "cities": ["مشهد", "نیشابور", "سبزوار"] }
    ];
    const input = document.getElementById('search-input');
    const container = document.getElementById('results-container');
    function render(filter = "") {
        if (!container) return;
        container.innerHTML = "";
        const filtered = data.filter(item =>
            item.province.includes(filter) || item.cities.some(c => c.includes(filter))
        );
        filtered.forEach(item => {
            const section = document.createElement('div');
            section.className = 'province-section';
            section.innerHTML = `
                <div class="province-title">${item.province}</div>
                <ul class="city-list">
                    ${item.cities.filter(c => c.includes(filter)).map(c => `<li>${c}</li>`).join('')}
                </ul>
            `;
            container.appendChild(section);
        });
    }
    if (input) {
        input.addEventListener('input', (e) => render(e.target.value));
        render();
    }
});
});


/* ==================== سیستم جستجوی شهرها ==================== */
/* سیستم جستجوی شهرها و استان‌ها */
mw.hook('wikipage.content').add(function ($content) {
mw.hook('wikipage.content').add(function ($content) {
     var $wrapper = $content.find('#city-search-wrapper');
     var $wrapper = $content.find('#city-search-wrapper');


     // فقط در صفحاتی اجرا شود که قالب CitySearch در آن‌ها قرار دارد
     // فقط در صفحاتی اجرا شود که قالب در آن‌ها قرار دارد
     if (!$wrapper.length) {
     if (!$wrapper.length) {
         return;
         return;
     }
     }


     // جلوگیری از اجرای دوباره در صورت بارگذاری پویا
     // جلوگیری از اجرای دو بار کد در صفحات داینامیک
     if ($wrapper.data('citySearchReady')) {
     if ($wrapper.data('citySearchReady')) {
         return;
         return;
خط ۸۹۰: خط ۸۴۲:
     });
     });


    // لود اولیه
     render('');
     render('');
});
});