MediaWiki:Common.js
Wygląd
Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
- Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
- Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
- Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
- Opera: Naciśnij klawisze Ctrl+F5.
/* Automatyczne wyświetlanie złotej kłódek na zabezpieczonych stronach (Wersja z plikiem gold) */
$(document).ready(function() {
// Pobierz informacje o zabezpieczeniach edycji tej strony
var editPerms = mw.config.get('wgRestrictionEdit');
// Jeśli strona ma jakiekolwiek blokady
if (editPerms && editPerms.length > 0) {
var padlockFile = '';
var tooltip = 'Ta strona jest zabezpieczona przed edycją.';
// Sprawdzanie poziomu zabezpieczeń
if (editPerms.includes('sysop')) {
// Dla administratorów (sysop) - PL Wiki uses green, but user gave gold. Use gold.
padlockFile = 'Padlock-gold.png';
tooltip = 'Strona zabezpieczona: edytować mogą tylko administratorzy.';
} else if (editPerms.includes('autoconfirmed')) {
// Dla zarejestrowanych (autoconfirmed) - PL Wiki uses yellow. User gave gold. Use gold.
padlockFile = 'Padlock-gold.png';
tooltip = 'Strona zabezpieczona: edytować mogą tylko zarejestrowani użytkownicy.';
}
// Jeśli dopasowano ikonę, dodaj ją do obszaru wskaźników
if (padlockFile !== '') {
// Fetch the image URL via API to get the correct path
new mw.Api().get({
action: 'query',
titles: 'Plik:' + padlockFile,
prop: 'imageinfo',
iiprop: 'url'
}).done(function(data) {
var page = Object.values(data.query.pages)[0];
if (page && page.imageinfo && page.imageinfo[0]) {
var imageUrl = page.imageinfo[0].url;
var indicatorHtml = '<div class="mw-indicator" style="cursor: help;" title="' + tooltip + '">' +
'<img src="' + imageUrl + '" alt="' + tooltip + '" width="20" height="20"></div>';
// Znajdź miejsce na wskaźniki (prawy górny róg) i wklej kłódkę
var $indicators = $('.mw-indicators');
if ($indicators.length) {
$indicators.append(indicatorHtml);
} else {
// Backup for skins without standard mw-indicators: inject before page content
$('#mw-content-text').prepend('<div class="simulated-indicator" style="float:right; cursor: help; margin: 0 0 10px 10px;" title="' + tooltip + '">' +
'<img src="' + imageUrl + '" alt="' + tooltip + '" width="20" height="20"></div>');
}
}
});
}
}
});
/* Blokada edycji cudzych stron użytkownika */
$(document).ready(function() {
// Przestrzeń nazw "2" to przestrzeń "Użytkownik:"
if (mw.config.get('wgNamespaceNumber') === 2) {
var currentUser = mw.config.get('wgUserName'); // Twój nick
var pageOwner = mw.config.get('wgTitle').split('/')[0]; // Właściciel odwiedzanej strony
var userGroups = mw.config.get('wgUserGroups') || [];
var isAdmin = userGroups.includes('sysop'); // Czy masz uprawnienia admina
// Jeśli przeglądasz NIE swoją stronę i NIE jesteś administratorem:
if (currentUser !== pageOwner && !isAdmin) {
// 1. Zmień wizualnie zakładki na górze
$('#ca-edit a').text('Tekst źródłowy');
$('#ca-ve-edit').hide(); // Ukryj Edytor Wizualny
// 2. Jeśli ktoś spróbuje wejść w tryb edycji (np. przez link URL)
if (mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit') {
alert('Odmowa dostępu: Możesz edytować tylko własną stronę użytkownika.');
// Przekieruj siłą z powrotem na tryb czytania
window.location.href = mw.util.getUrl(mw.config.get('wgPageName'));
}
}
}
});