مدیاویکی:Common.js: تفاوت میان نسخهها
Esfandiari (بحث | مشارکتها) بدون خلاصۀ ویرایش |
Esfandiari (بحث | مشارکتها) بدون خلاصۀ ویرایش |
||
| خط ۷۲۸: | خط ۷۲۸: | ||
=================================================== | =================================================== | ||
/* سیستم جستجوی شهرها */ | /* سیستم جستجوی شهرها - فقط کد 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)); | input.addEventListener('input', (e) => render(e.target.value)); | ||
render(); | render(); | ||
} | } | ||
}); | }); | ||
====================================================== | |||
============================================================== | ============================================================== | ||