مدیاویکی:Common.js
پرش به ناوبری
پرش به جستجو
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
$(function () {
var pageTitle = mw.config.get("wgPageName");
var baseTitle = pageTitle.split('/')[0];
// فراخوانی API برای دریافت زیرصفحهها
function getSubpages(title) {
return $.get(mw.util.wikiScript('api'), {
action: 'query',
format: 'json',
list: 'allpages',
apprefix: title + '/',
aplimit: 20
}).then(function (data) {
return data.query.allpages;
});
}
getSubpages(baseTitle).then(function(subpages) {
if (subpages.length > 0) {
// ساخت منوی سایدبار به صورت داینامیک
var box = $('<div>', {id: 'p-avistak-links', class: 'portlet', role: 'navigation'}).append(
$('<h3>').text('بخشهای مرتبط'),
$('<div>', {class: 'pBody'}).append($('<ul>'))
);
var list = box.find('ul');
// لینک به صفحه اصلی (فقط اگه خودمون داخلش نیستیم)
if (pageTitle !== baseTitle) {
list.append($('<li>').append(
$('<a>').attr('href', mw.util.getUrl(baseTitle)).text('← ' + baseTitle)
));
}
// افزودن زیرصفحهها (بهجز صفحهای که داخلش هستیم)
subpages.forEach(function(page) {
if (page.title !== pageTitle) {
var label = page.title.split('/')[1]; // اسم زیرصفحه
list.append($('<li>').append(
$('<a>').attr('href', mw.util.getUrl(page.title)).text('← ' + label)
));
}
});
// اضافه کردن منوی ساختهشده به سایدبار
$('#mw-panel').append(box);
}
});
});