Alan Wake Wiki
Eksploruj
Strona główna
Dyskutuj
Wszystkie artykuły
Społeczność
Interaktywne mapy
Ostatnie blogi
Alan Wake
Postacie
Alice Wake
Barry Wheeler
Carl Stucky
Doktor Nelson
Emerson
Pat Maine
Robert Nightingale
Thomas Zane
Bronie
Rakietnica
Rewolwer
Granat dymny
Strzelba
Karabin myśliwski
Strzelba powtarzalna
Odcinki
Koszmar
Opętany
Okup
Prawda
Pstrykacz
Odjazd
Sygnał
Pisarz
Przedmioty
Baterie
Latarka
Telefon komórkowy
Reflektor
Pstrykacz
Lokacje
Bright Falls
Cauldron Lake
Wyspa Nurka
Oh Deer Diner
Strony maszynopisu
Cień atakuje Wake'a
Ptaki atakują Wake'a
Wake znajduje strony
Randolph wzywa policję
Rusty umiera
Duch Mroku śpi
Barry w klinice
Misja Hartmana
Nightingale czyta maszynopis
Duch Mroku chce powstrzymać Wake'a
Książki
Alan Wake
Alan Wake: Illuminated
Akta Alana Wake'a
Alan Wake's American Nightmare
Postacie
Odin Anderson
Tor Anderson
Barry Wheeler
Rachel Meadows
Michael Farabee
Mr. Scratch
Narrator z serialu Night Springs
Eddie Rodman
Emma Sloan
Bronie
Karabin maszynowy
9mm Pistolet
Pistolet sygnałowy
Granat błyskowy
Latarka
Magnum
Akty
Akt 1
Akt 2
Akt 3
Lokacje
Night Springs
Kino samochodowe w Night Springs
Motel Desert Shore
Obserwatorium Mount Redtooth
Oil Field
Strony maszynopisu
Alan Wake, pisarz
Polowanie na Pana Zgrzyta
Tworzenie nowej rzeczywistości
Podzielony
Zbyt dużo nóg
Strony i instynkty
Sukces
Presja
Mrok/
Sobowtór
Społeczność
O nas
Alan Wake Wiki
Administratorzy
Zasady
FAQ
Poradnik edytora
Wikietykieta
Pomoc
Podstawy
Edycja
Edytowanie
Wikitekst
Zaawansowane narzędzia
Wszystkie tematy pomocy…
Rejestry
Blokady
Przesłane
Przeniesione
Uprawnienia
Usunięte
Raporty konserwacyjne
Nieskategoryzowane strony
Nieskategoryzowane kategorie
Nieużywane pliki
Potrzebne strony
Potrzebne kategorie
Strony specjalne
Ostatnie zmiany
Nowe strony
Prześlij plik
Najkrótsze strony
Lista użytkowników
FANDOM
Gry
Filmy
TV
Wiki
Odkrywaj wiki
Centrum Społeczności
Utwórz wiki
Nie masz konta?
Zarejestruj się
Zaloguj się
Zaloguj się
Zarejestruj się
Polska encyklopedia Alan Wake
88
stron
Eksploruj
Strona główna
Dyskutuj
Wszystkie artykuły
Społeczność
Interaktywne mapy
Ostatnie blogi
Alan Wake
Postacie
Alice Wake
Barry Wheeler
Carl Stucky
Doktor Nelson
Emerson
Pat Maine
Robert Nightingale
Thomas Zane
Bronie
Rakietnica
Rewolwer
Granat dymny
Strzelba
Karabin myśliwski
Strzelba powtarzalna
Odcinki
Koszmar
Opętany
Okup
Prawda
Pstrykacz
Odjazd
Sygnał
Pisarz
Przedmioty
Baterie
Latarka
Telefon komórkowy
Reflektor
Pstrykacz
Lokacje
Bright Falls
Cauldron Lake
Wyspa Nurka
Oh Deer Diner
Strony maszynopisu
Cień atakuje Wake'a
Ptaki atakują Wake'a
Wake znajduje strony
Randolph wzywa policję
Rusty umiera
Duch Mroku śpi
Barry w klinice
Misja Hartmana
Nightingale czyta maszynopis
Duch Mroku chce powstrzymać Wake'a
Książki
Alan Wake
Alan Wake: Illuminated
Akta Alana Wake'a
Alan Wake's American Nightmare
Postacie
Odin Anderson
Tor Anderson
Barry Wheeler
Rachel Meadows
Michael Farabee
Mr. Scratch
Narrator z serialu Night Springs
Eddie Rodman
Emma Sloan
Bronie
Karabin maszynowy
9mm Pistolet
Pistolet sygnałowy
Granat błyskowy
Latarka
Magnum
Akty
Akt 1
Akt 2
Akt 3
Lokacje
Night Springs
Kino samochodowe w Night Springs
Motel Desert Shore
Obserwatorium Mount Redtooth
Oil Field
Strony maszynopisu
Alan Wake, pisarz
Polowanie na Pana Zgrzyta
Tworzenie nowej rzeczywistości
Podzielony
Zbyt dużo nóg
Strony i instynkty
Sukces
Presja
Mrok/
Sobowtór
Społeczność
O nas
Alan Wake Wiki
Administratorzy
Zasady
FAQ
Poradnik edytora
Wikietykieta
Pomoc
Podstawy
Edycja
Edytowanie
Wikitekst
Zaawansowane narzędzia
Wszystkie tematy pomocy…
Rejestry
Blokady
Przesłane
Przeniesione
Uprawnienia
Usunięte
Raporty konserwacyjne
Nieskategoryzowane strony
Nieskategoryzowane kategorie
Nieużywane pliki
Potrzebne strony
Potrzebne kategorie
Strony specjalne
Ostatnie zmiany
Nowe strony
Prześlij plik
Najkrótsze strony
Lista użytkowników
Edytujesz
Moduł:Navbox
Powrót do strony
Edytuj kod źródłowy
Wyświetl historię
Dyskusja (0)
Edycja strony
Moduł:Navbox
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
-- Autor: Nanaki -- Licencja: CC-BY-SA 3.0 -- -- PL: Moduł luźno bazowany na https://en.wikipedia.org/wiki/Module:Navbox, lecz zbudowany od zera. Do użycia w szablonie Navbox. -- EN: Module is loosely based on https://en.wikipedia.org/wiki/Module:Navbox, but built from ground up. For use in Navbox template. local Navbox = {} -- Główny obiekt modułu local p = {} -- Obiekt do zwrócenia -- Zmienne Navbox.args = {} -- Parametry Navbox.rows = 0 -- Ilość list Navbox.columns = 2 -- Ilość kolumn Navbox.rowspan = {} -- Lista elementów, do których należy zastosować atrybut "rowspan" Navbox.colspan = {} -- Lista elementów, do których należy zastosować atrybut "colspan" -- Główna funkcja wywołująca moduł -- {{#invoke:navbox|navbox}} function p.navbox(frame) Navbox.args = Navbox.mergeFrames(frame, frame:getParent()) -- Pobiera parametry podane przez #invoke oraz nadpisuje je podanymi do szablonu, który go wywołał if mw.ustring.lower(Navbox.args['Zagnieżdżony'] or '') == 'tak' then Navbox.nested = true end -- Gdy parametr "Zagnieżdżony" ma wartość "tak" ustawia flagę if mw.ustring.lower(Navbox.args['Paski'] or 'tak') == 'tak' then Navbox.zebra = true end -- Gdy parametr "Paski" ma wartość "tak" ustawia flagę local state = mw.ustring.lower(Navbox.args['Stan'] or '') -- Zmienia zawartość parametru "Stan" na małe litery if state == 'rozwinięty' or state == 'zwinięty' then -- Włącza zwijanie gdy podany stan to "zwijany" lub "rozwinięty" Navbox.collapsible = true elseif state == 'czysty' then -- Wyłącza poprawkę wyśrodkowania tytułu jeśli podany stan to "czysty" Navbox.nofix = true end local tab = Navbox.tab() -- Tworzy główną tabelę szablonu local header = Navbox.header() -- Tworzy nagłówek (parametr "Tytuł") local above = Navbox.above() -- Tworzy wiersz z komórką "Góra" local groups = Navbox.groups() -- Tworzy wiersze z grupami oraz obrazy local below = Navbox.below() -- Tworzy wiersz z komórką "Dół" tab:wikitext('\n') -- Dodaje załamanie linii if header then tab:node(header):allDone():wikitext('\n') end -- Dodaje nagłówek do tabeli oraz załamanie linii if above then if header then Navbox.separator(tab, true) end -- Jeśli nagłówek istnieje, dodaje separator na całą szerokość tab:node(above):allDone():wikitext('\n') -- Dodaje komórkę "Góra" do tabeli oraz załamanie linii end if groups then if header or above then Navbox.separator(tab, true) end -- Jeśli nagłówek lub "Góra" istnieją, dodaje separator na całą szerokość tab:node(groups):allDone() -- Dodaje wiersze list end if below then if header or above or groups then Navbox.separator(tab, true) end -- Jeśli nagłówek, "Góra" lub listy istnieją, dodaje separator na całą szerokość tab:node(below):allDone():wikitext('\n') -- Dodaje komórkę "Góra" do tabeli oraz załamanie linii end if header and Navbox.collapsible then -- Jeśli nagłówek istnieje oraz navbox ma być zwijany tab:addClass('mw-collapsible') -- Dodaje klasę wywołującą zwijanie if state == 'zwinięty' then tab:addClass('mw-collapsed') end -- Jeśli podany stan to "zwinięty", dodaje klasę odpowiedzialną za ustawienie domyślnie zwiniętego szablonu if (Navbox.args['Rozwiń'] or '') ~= '' then tab:attr('data-expandtext', mw.text.encode(Navbox.args['Rozwiń'])) end -- Dodaje atrybut zmieniający tekst "Zwiń" jeśli został podany parametr if (Navbox.args['Zwiń'] or '') ~= '' then tab:attr('data-collapsetext', mw.text.encode(Navbox.args['Zwiń'])) end -- Dodaje atrybut zmieniający tekst "Rozwiń" jeśli został podany parametr end Navbox.spans() -- Dynamiczne atrybuty "rowspan" i "colspan" if Navbox.nested then -- Jeżli zagnieżdżony zwraca tabelę return tostring(tab) end -- W preciwnym wypadku zwraca w nadrzędnym boksie local box = mw.html.create('div'):addClass('navbox') -- Tworzy boks box:node(tab) -- Umieszcza tabelę w nadrzędnym boksie Navbox.css(box, 'Box') -- Aplikuje parametry "Box style" i "Box class" return tostring(box) end -- Funkcja dodająca atrybuty "rowspan" i "colspan" do odpowiednich elementów function Navbox.spans() for _, v in ipairs(Navbox.colspan) do -- Dla każdego elementu na liście "colspan" if v then v:attr('colspan', Navbox.columns) end -- Dodaj atrybut "colspan" z wartością zmiennej "Navbox.columns" end if Navbox.rows > 1 then -- Jeśli ilość list jest większa niż 1 for _, v in ipairs(Navbox.rowspan) do -- Dla każdego elementu na liście "rowspan" if v then v:attr('rowspan', Navbox.rows*2-1) end -- Dodaj atrybut "rowspan" z wartością: liczba wierszy * 2 - 1 end end end -- Funkcja zwracająca numery niepustych list function Navbox.lists() local list = {} -- Pusta lista for k, v in pairs(Navbox.args) do -- Dla każdego podanego argumentu if type(k) == 'string' then local match,_,no = mw.ustring.find(k or '', "^Lista ([0-9]+)$") -- Sprawdza czy nazwa argumentu to "Lista #" if match and v ~= '' then table.insert(list, tonumber(no)) end -- Jeśli tak oraz argument jest niepusty, dodaje numer do listy end end table.sort(list) -- Sortuje listę return list -- Zwraca listę end -- Funkcja tworząca tabelę szablonu function Navbox.tab() local tab = mw.html.create('table'):addClass('navbox-table') -- Tworzy tabelę szablonu Navbox.css(tab, 'Tabela') -- Aplikuje parametry "Tabela style" i "Tabela class" return tab:allDone() end -- Funkcja tworząca nagłówek (parametr "Tytuł") function Navbox.header() if (Navbox.args['Tytuł'] or '') ~= '' then -- Sprawdza czy parametr "Tytuł" jest niepusty local header = mw.html.create('tr'):tag('th'):addClass('navbox-header'):attr('scope', 'col') -- Tworzy wiersz oraz komórkę nagłówka local links = Navbox.template(header) -- Tworzy element z linkami do szablonu podanego w parametrze "Szablon" if links then header:node(links) end if (links or Navbox.collapsible) and not Navbox.nofix then header:addClass('center-fix') end -- Pomija klasę poprawiającą wyśrodkowanie jeśli został podany stan "czysty" lub w nagłówku nie ma elementów pływających (brak linków do szablonu i zwijania pozwala na wykorzystanie całej szerokości szablonu Navbox.css(header, 'Tytuł') -- Aplikuje parametry "Tytuł style" i "Tytuł class" header:wikitext('\n' .. Navbox.args['Tytuł'] or '') -- Dodaje wartość parametru "Tytuł" na początku nowej linii table.insert(Navbox.colspan, header) -- Dodaje nagłówek do elementów z dynamicznym atrybutem "colspan" return header:allDone() end end -- Dodaje linki do szablonu podanego w parametrze "Szablon" function Navbox.template() if (Navbox.args['Szablon'] or '') ~= '' then -- Sprawdza czy parametr "Szablon" jest niepusty local links = mw.html.create('div'):addClass('navbox-template-links plainlinks hlist'):tag('ul') -- Tworzy poziomą listę links:tag('li'):wikitext('[' .. tostring(mw.uri.fullUrl( 'Template:' .. Navbox.args['Szablon'] )) .. ' <span title="Zobacz szablon">Z</span>]'):done():tag(''):wikitext(' ') -- Dodaje link "Zobacz" oraz odstęp po elemencie links:tag('li'):wikitext('[' .. tostring(mw.uri.fullUrl( 'Template talk:' .. Navbox.args['Szablon'] )) .. ' <span title="Dyskusja szablonu">D</span>]'):done():tag(''):wikitext(' ') -- Dodaje link "Dyskusja" oraz odstęp po elemencie links:tag('li'):wikitext('[[Special:WhatLinksHere/Szablon:' .. Navbox.args['Szablon'] .. '|<span title="Linkujące">L</span>]]') -- Dodaje link "Linkujące" -- Tworzenie linków zewnętrznych do szablonu i dyskusji ma na celu uniknięcie redlinków w przypadku gdy nie istnieją return links:allDone() end end -- Funkcja tworząca wiersz z komórką "Góra" function Navbox.above() if (Navbox.args['Góra'] or '') ~= '' then -- Sprawdza czy parametr "Góra" jest niepusty local above = mw.html.create('tr'):tag('td'):addClass('navbox-above') -- Tworzy wiersz oraz komórkę Navbox.css(above, 'Baza') -- Aplikuje parametry "Baza style" i "Baza class" Navbox.css(above, 'Góra', 'hlist') -- Aplikuje parametry "Góra style" i "Góra class", gdzie domyślna klasa to "hlist" above:wikitext('\n' .. Navbox.args['Góra'] or '') -- Dodaje wartość parametru "Góra" na początku nowej linii table.insert(Navbox.colspan, above) -- Dodaje komórkę do elementów z dynamicznym atrybutem "colspan" return above:allDone() end end -- Funkcja tworząca wiersz z komórką "Dół" function Navbox.below(tab) -- tab: tabela, do której ma zostać dodany wiersz if (Navbox.args['Dół'] or '') ~= '' then -- Sprawdza czy parametr "Dół" jest niepusty local below = mw.html.create('tr'):tag('td'):addClass('navbox-below') -- Tworzy wiersz oraz komórkę Navbox.css(below, 'Baza') -- Aplikuje parametry "Baza style" i "Baza class" Navbox.css(below, 'Dół', 'hlist') -- Aplikuje parametry "Dół style" i "Dół class", gdzie domyślna klasa to "hlist" below:wikitext('\n' .. Navbox.args['Dół'] or '') -- Dodaje wartość parametru "Dół" na początku nowej linii table.insert(Navbox.colspan, below) -- Dodaje komórkę do elementów z dynamicznym atrybutem "colspan" return below:allDone() end end -- Funkcja tworząca wszystkie wiersze list oraz komórki z obrazami function Navbox.groups() local lists = Navbox.lists() -- Funkcja zwracająca numery niepustych list if #lists > 0 then -- Jeśli ilosć list jest większa niż 0 local groups = mw.html.create('') -- Tworzy pusty element zawierający listy for _, v in ipairs(lists) do -- Dla każdej niepustej listy if Navbox.rows > 0 then Navbox.separator(groups) end -- Dodaje separator za wyjątkiem pierwszego wywołania local group = Navbox.group(v) -- Tworzenie wiersza listy groups:node(group):allDone():wikitext('\n') end return groups:allDone() end end -- Funkcja tworząca wiersz z listą function Navbox.group(no) -- no: numer grupy parametrów local row = mw.html.create('tr'):attr('data-row', no) -- Tworzy wiersz if Navbox.rows == 0 then Navbox.img(row, 'Obraz lewy') end -- Dodaje komórkę lewego obrazu jeśli jest to pierwsza lista (jednorazowo na szablon) local list = mw.html.create('td'):addClass('navbox-list') -- Tworzy komórkę listy, ale jeszcze jej nie dodaje to wiersza if Navbox.zebra then -- Jeśli paski są włączone if Navbox.rows - math.floor(Navbox.rows/2)*2 == 0 then list:addClass('navbox-odd') else list:addClass('navbox-even') end -- Dodaje klasy wierszy parzystych i nieparzystych end if (Navbox.args['Grupa ' .. no] or '') ~= '' then -- Sprawdza czy parametr "Grupa #" jest niepusty local group = row:tag('th'):attr('scope', 'row'):addClass('navbox-group'):wikitext('\n' .. Navbox.args['Grupa ' .. no]) -- Tworzy komórkę z nazwą grupy if (Navbox.args['Szerokość grupy'] or '') ~= '' then -- Jeśli został podany parametr "Szerokość grupy" if not Navbox.widthadded then -- Tylko dla pierwszej grupy group:css('width', Navbox.args['Szerokość grupy']) -- Dodaje styl "width" do komórki z grupą Navbox.widthadded = true -- Flaga kontrolująca pojedyncze wywołanie end group:addClass('wrap') -- Dodaje klasę umożliwiającą łamanie linii we wszystkich grupach end Navbox.css(group, 'Baza') -- Aplikuje parametry "Baza style" i "Baza class" Navbox.css(group, 'Grupa') -- Aplikuje parametry "Grupa style" i "Grupa class" Navbox.css(group, 'Grupa ' .. no) -- Aplikuje parametry "Grupa # style" i "Grupa # class" else -- Gdy parametr "Grupa #" jest pusty list:addClass('no-group'):attr('colspan', 2) -- Rozszerzenie komórki listy na dwie kolumny end if mw.ustring.sub(Navbox.args['Lista ' .. no], 1, 26) == '<table class="navbox-table' then -- Jeśli znajdzie początek navboksa z parametrem "Zagnieżdżony = tak" list:addClass('navbox-nested'):wikitext('\n' .. Navbox.args['Lista ' .. no]) Navbox.css(list, 'Lista') -- Aplikuje parametry "Lista style" i "Lista class" else list = list:tag('div'):wikitext('\n' .. Navbox.args['Lista ' .. no]) Navbox.css(list, 'Lista', 'hlist') -- Aplikuje parametry "Lista style" i "Lista class", gdzie domyślna klasa to "hlist" end Navbox.css(list, 'Lista ' .. no) -- Aplikuje parametry "Lista # style" i "Lista # class" row:node(list:done()) -- Dodaje komórkę listy do wiersza if Navbox.rows == 0 then Navbox.img(row, 'Obraz prawy') end -- Dodaje komórkę prawego obrazu jeśli jest to pierwsza lista (jednorazowo na szablon) Navbox.rows = Navbox.rows + 1 -- Zwiększa licznik list o 1 return row:allDone() end -- Funkcja tworząca komórkę z obrazem function Navbox.img(row, param) -- row: wiersz, do którego ma zostać dodana komórka; param: parametr z obrazem if (Navbox.args[param] or '') ~= '' then -- Sprawdza czy podany parametr jest niepusty local l = row:tag('td'):addClass('navbox-image') -- Tworzy komórkę Navbox.css(l, param) -- Aplikuje parametry "... style" i "... class" dla danej komórki l:wikitext('\n' .. Navbox.args[param] or '') -- Dodaje wartość podanego parametru na początku nowej linii Navbox.columns = Navbox.columns + 1 -- Zwiększa licznik kolumn o 1 table.insert(Navbox.rowspan, l) -- Dodaje komórkę do elementów z dynamicznym atrybutem "rowspan" end end -- Funkcja tworząca wiersz separatora function Navbox.separator(tab, fullwidth) -- tab: tabela, do której dodać wiersz z separatorem; fullwidth: czy wiersz ma być na całą szerokość szablonu local separator = tab:tag('tr'):addClass('navbox-separator'):tag('td') -- Tworzy wiersz i komórkę separatora tab:wikitext('\n') if fullwidth then table.insert(Navbox.colspan, separator) -- Dodaje separator do elementów z dynamicznym atrybutem "colspan" else separator:attr('colspan', 2) -- Dodaje stały atrybut "colspan" - separator między listami end end -- Funkcja aplikująca do podanego elementu parametry "... style" i "... class" function Navbox.css(elem, name, class, style) -- elem: element docelowy; name: nazwa parametru; class: domyślna klasa jeśli nie został podany parametr; style: domyślne style jeśli nie został podany parametr elem:cssText(Navbox.args[name .. ' style'] or style or '') -- Aplikuje style z parametru "... style" lub z wartości podanej do funkcji elem:addClass(Navbox.args[name .. ' class'] or class or '') -- Aplikuje klasy z parametru "... style" lub z wartości podanej do funkcji end -- Łaczy argumenty z dwóch obiektów frame function Navbox.mergeFrames(frame, parent) local args = {} -- Pusta lista if frame then -- Jeśli obiekt "frame" został podany for k,v in pairs(frame.args) do -- Dla każdego argumentu obiektu "frame" if type(k) == 'string' then k = mw.text.trim(k) end -- Jeśli parametr tekstowy, obetnij białe znaki z początku i końca if type(v) == 'string' then v = mw.text.trim(v) end -- Jeśli wartość tekstowa, obetnij białe znaki z początku i końca args[k] = v -- Dodaj wartość do listy end end if parent then -- Jeśli obiekt "parent" został podany for k,v in pairs(parent.args) do -- Dla każdego argumentu obiektu "parent" if type(k) == 'string' then k = mw.text.trim(k) end -- Jeśli parametr tekstowy, obetnij białe znaki z początku i końca if type(v) == 'string' then v = mw.text.trim(v) end -- Jeśli wartość tekstowa, obetnij białe znaki z początku i końca args[k] = v -- Dodaj wartość do listy nadpisując ewentualne wartości z obiektu "frame" end end return args -- Zwraca wynik end -- Zwraca obiekt return p
Opis zmian:
Należy pamiętać, że wkład na Alan Wake Wiki jest udostępniany na licencji CC-BY-SA
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Szablon użyty w tym artykule:
Moduł:Navbox
(
edytuj
)
Follow on IG
TikTok
Join Fan Lab