Przejdź do zawartości

MediaWiki:Common.js

Z Youtuberopedia

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'));
            }
        }
    }
});