MediaWiki:Common.js
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
- Opera: натисніть Ctrl-F5
/* Per-page sidebar portlets via official mw.util.addPortlet API */
mw.loader.using(['mediawiki.util'], function () {
$(function () {
var pageName = mw.config.get('wgPageName') || '';
console.log('[nomadica] common.js v5, wgPageName =', pageName);
console.log('[nomadica] mw.util.addPortlet available:', typeof mw.util.addPortlet === 'function');
if (pageName === '🇷🇴_Румунія') {
console.log('[nomadica] matched Romania, creating cities portlet');
var cities = [
{ title: 'Бухарест', page: 'Румунія/Бухарест' },
{ title: 'Клуж-Напока', page: 'Румунія/Клуж-Напока' },
{ title: 'Тімішоара', page: 'Румунія/Тімішоара' },
{ title: 'Брашов', page: 'Румунія/Брашов' },
{ title: 'Ясси', page: 'Румунія/Ясси' },
{ title: 'Сібіу', page: 'Румунія/Сібіу' }
];
if (typeof mw.util.addPortlet === 'function') {
var portlet = mw.util.addPortlet('p-cities', 'Міста');
console.log('[nomadica] portlet created:', portlet);
cities.forEach(function (city) {
var link = mw.util.addPortletLink('p-cities', mw.util.getUrl(city.page), city.title);
console.log('[nomadica] added link:', city.title, link);
});
} else {
console.warn('[nomadica] mw.util.addPortlet NOT available — fallback to manual DOM');
// Fallback: clone navigation portlet structure
var $nav = $('#p-navigation');
if (!$nav.length) {
console.warn('[nomadica] #p-navigation also not found');
return;
}
var $portlet = $('<div>')
.attr('id', 'p-cities')
.addClass('vector-menu mw-portlet mw-portlet-cities');
var $heading = $('<div>').addClass('vector-menu-heading').text('Міста');
var $content = $('<div>').addClass('vector-menu-content');
var $ul = $('<ul>').addClass('vector-menu-content-list');
cities.forEach(function (city) {
var $li = $('<li>').addClass('mw-list-item');
var $a = $('<a>').attr('href', mw.util.getUrl(city.page)).append($('<span>').text(city.title));
$li.append($a);
$ul.append($li);
});
$content.append($ul);
$portlet.append($heading).append($content);
$nav.after($portlet);
console.log('[nomadica] fallback portlet inserted after #p-navigation');
}
}
});
});