Wikibooks plwikibooks https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna MediaWiki 1.46.0-wmf.24 first-letter Media Specjalna Dyskusja Wikipedysta Dyskusja wikipedysty Wikibooks Dyskusja Wikibooks Plik Dyskusja pliku MediaWiki Dyskusja MediaWiki Szablon Dyskusja szablonu Pomoc Dyskusja pomocy Kategoria Dyskusja kategorii Wikijunior Dyskusja Wikijuniora TimedText TimedText talk Moduł Dyskusja modułu Wydarzenie Dyskusja wydarzenia Moduł:Pudełko 828 42178 540294 540284 2026-04-22T19:37:02Z Persino 2851 540294 Scribunto text/plain local p={}; function p.CzyNiepoprawnaNazwa(nazwa_jednostki) local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); end; p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); end; p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); end; p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); end; p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) end; p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); end; p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); end; p["Pełna nazwa dyskusji jednostki"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa przedmiotowa jednostki"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa jednostki"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa dyskusji jednostki 2"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa jednostki 2"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa dyskusji jednostki 3"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Pełna nazwa jednostki 3"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; end; p["Nazwa jednostki"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); end; p["Nazwa jednostki 2"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); end; p["Nazwa przedmiotowa jednostki 2"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); end; p["Nazwa dyskusji jednostki 2"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); end; p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,1); end; p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); end; p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); end; p["Nazwa jednostki 3"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); end; p["Nazwa przedmiotowa jednostki 3"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,2); end; p["Nazwa dyskusji jednostki 3"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,2); end; p["Typ jednostki"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); end; p["Typ jednostki 2"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); end; p["Typ jednostki 3"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); end; p["Przedmiotowy typ jednostki"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame, 1,i,0); end; p["Przedmiotowy typ jednostki 2"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame, 1,i,1); end; p["Przedmiotowy typ jednostki 3"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame, 1,i,nil); end; p["Dyskusyjny typ jednostki"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); end; p["Dyskusyjny typ jednostki 2"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame, 2,i,1); end; p["Dyskusyjny typ jednostki 3"]=function(frame,i) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Typ_jednostki(frame, 2,i,nil); end; p["Cecha pudełka"] = function(frame) local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne"); return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Błędy pudełka"); end; p["Przedmiotowa cecha pudełka"] = function(frame) local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne"); return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Przedmiotowe błędy pudełka"); end; p["Dyskusyjna cecha pudełka"] = function(frame) local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne"); return pudelko_potrzebne_modul.Cecha_kontenerowa_szablonowa(frame,"Dyskusyjne błędy pudełka"); end; p["Ogólne pudełko"]= function(frame) local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne"); return pudelko_potrzebne_modul.Generalny_kontener_szablonowy(frame); end; p["Tekst pudełka"] = function (frame) return frame.args["tekst"]; end; p["Błędy pudełka"]=function(frame) local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne"); return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,0); end; p["Przedmiotowe błędy pudełka"]=function(frame) local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne"); return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,1); end; p["Dyskusyjne błędy pudełka"]=function(frame) local pudelko_potrzebne_modul=require("Module:Pudełko/Potrzebne"); return pudelko_potrzebne_modul.Problemy_kontenerowe_szablonowe(frame,2); end; p["Nazwa strony głównej projektu"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local i=(numer_jednostki)and tonumber(numer_jednostki) or 0; local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); local kod_jezyka,kod_projektu=pudelko_pomocne_modul.Wikikody_kontenera(frame,i); return pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) or pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); end; p["Nazwa strony głównej dla dzieci projektu"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local i=(numer_jednostki)and tonumber(numer_jednostki) or 0; local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); local kod_jezyka,kod_projektu=pudelko_pomocne_modul.Wikikody_kontenera(frame,i); return pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) or pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); end; p["Kod języka"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local i=(numer_jednostki)and tonumber(numer_jednostki) or 0; local pudelko_modul=require("Module:Pudełko"); local wartosc_domyslna=pudelko_modul["Kod języka tego projektu"](); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Kod_jezyka(frame,i,wartosc_domyslna); end; p["Kod projektu"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local i=(numer_jednostki)and tonumber(numer_jednostki) or 0; local pudelko_modul=require("Module:Pudełko"); local wartosc_domyslna=pudelko_modul["Kod projektu tego projektu"](); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Kod_projektu(frame,i,wartosc_domyslna); end; p["Klucz projektu"]=function(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local i=(numer_jednostki)and tonumber(numer_jednostki) or 0; local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Klucz_projektu(frame,i); end; p["Inny niż język bieżący wiki"]=function(frame) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Analiza_interwiki_czy_projekt_aktualny(frame,true,false); end; p["Inne niż lokalne wiki"]=function(frame) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Analiza_interwiki_czy_projekt_aktualny(frame,false,true); end; p["Inne niż bieżące wiki"]=function(frame) local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Analiza_interwiki_czy_projekt_aktualny(frame,true,true); end; p["Podano parametry nienazwane"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); for i,_ in pairs(args)do if(type(i)=="number")then return "tak";end; end; return; end; p["Podano parametry numerowane"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); for i,_ in ipairs(args)do return "tak"; end; return; end; p["Podano parametry nazwane"]=function(frame) local parametry_modul=require("Module:Parametry"); local args=parametry_modul.PobierzArgsParametry(frame); for name,_ in pairs(args)do if(type(name)=="string")then return "tak"; end; end; return; end; p["Kod projektu tego projektu"]=function(frame) return "b"; end; p["Kod języka tego projektu"]=function(frame) return "pl" end; p["Klucz projektu tego projektu"]=function(frame) local pudelko_modul=require("Module:Pudełko"); return pudelko_modul["Kod języka tego projektu"](frame)..":"..pudelko_modul["Kod projektu tego projektu"](frame); end; p["Strona główna tego projektu"] = function(frame) local komunikat = mw.message.new('Mainpage', ''); if(not komunikat:exists())then return "Wikibooks:Strona główna";end; local zawartosc_komunikatu=komunikat:plain(); zawartosc_komunikatu=mw.getCurrentFrame():preprocess(zawartosc_komunikatu); return zawartosc_komunikatu; end; p["Strona główna dla dzieci tego projektu"] = function(frame) return "Wikijunior:Strona główna"; end; p["Nazwa strony głównej dla dzieci projektu 2"] = function(frame) local args=frame and (frame.args or frame) or {}; local kod_jezyka=args[1]; local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); end; p["Nazwa strony głównej projektu 2"] = function(frame) local args=frame and (frame.args or frame) or {}; local kod_jezyka=args[1]; local kod_projektu=args[2]; local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); end; return p; cju0yv3xzkmb89jcm6ii218ilxt4hgn Moduł:Pudełko/Pomocne 828 56499 540286 540282 2026-04-22T12:01:24Z Persino 2851 540286 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; if(kod_liczbowy_przestrzeni_nazw==1)then if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"] return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu"] return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); return typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return typ; end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(nazwa_przestrzeni_nazw=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(nazwa_przestrzeni_nazw=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return typ_jednostki; end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then if((not i)or(i==0))then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; psqpe8pnt91aj4t68xx1cgxhuv065qa 540293 540286 2026-04-22T19:23:01Z Persino 2851 540293 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; if(kod_liczbowy_przestrzeni_nazw==1)then if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); return typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return typ; end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(nazwa_przestrzeni_nazw=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(nazwa_przestrzeni_nazw=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return typ_jednostki; end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then if((not i)or(i==0))then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; 81rfku7b6wyw6zs8uxjio98lz1mgl7f 540340 540293 2026-04-23T08:35:53Z Persino 2851 540340 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); return typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return typ; end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(nazwa_przestrzeni_nazw=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(nazwa_przestrzeni_nazw=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return typ_jednostki; end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then if((not i)or(i==0))then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; 83zzlku4h60lfacah9xokzsrf7sdvw8 540359 540340 2026-04-23T10:59:49Z Persino 2851 540359 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and(frame.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki "..liczba_numer_jednostki]); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pf=frame:getParent() or {args={},}; local function FuncTemp(liczba_numer_jednostki) local dyskusja_parametr="dyskusja typu jednostki"; if(liczba_numer_jednostki==0)then return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]; else return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki]) or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"]) or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr])); end; end; local czy_dyskusja=FuncTemp(liczba_numer_jednostki); local parametry_modul=require("Module:Parametry"); local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja); return czy_dyskusja; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); local nazwa_przestrzeni_nazw=typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil; if(nazwa_przestrzeni_nazw)then local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i); if(czy_dyskusja)then if(nazwa_przestrzeni_nazw=="")then return "Talk"; else return nazwa_przestrzeni_nazw.." talk"; end; else return nazwa_przestrzeni_nazw; end; else return nil; end; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return typ; end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(nazwa_przestrzeni_nazw=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(nazwa_przestrzeni_nazw=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return typ_jednostki; end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then if((not i)or(i==0))then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; apm3sy6hzu7eevcsn0xn9kmg6g5ojfv 540362 540359 2026-04-23T11:30:00Z Persino 2851 540362 Scribunto text/plain local p={}; function p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu) local strona=require("Module:Pudełko")["Strona główna tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; else local pudelko_modul=require("Module:Pudełko"); if((kod_jezyka==pudelko_modul["Kod języka tego projektu"]())and(kod_projektu==pudelko_modul["Kod projektu tego projektu"]()))then return strona; else local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); local czy_w_wikidanych=wiki_interwiki_modul.tablica_kody_projektu_wikidane.lingwistyczne[kod_projektu] or wiki_interwiki_modul.tablica_kody_projektu_wikidane.specjalistyczne[kod_projektu]; return czy_w_wikidanych and "Main Page" or nil; end; end; end; function p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka) local strona=require("Module:Pudełko")["Strona główna dla dzieci tego projektu"](); local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then return strona;end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local odpowiednik_strony=require("Module:Wiki").WikidaneOdpowiednikStrony{["nazwa strony"]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu}; if(odpowiednik_strony)then local nazwy_modul=require("Module:Nazwy"); return nazwy_modul["PEŁNANAZWASTRONY"]{[1]=odpowiednik_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,}; else return "Wikijunior"; end; end; function p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local strona_glowna_projektu; if(i~=0)then local pudelko_modul=require("Module:Pudełko"); local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] else strona_glowna_projektu=(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]) end; else strona_glowna_projektu=frame.args["strona główna projektu"] or pf.args["strona główna projektu"] end; local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_projektu))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or (strona_glowna_projektu and "" or nil); end; function p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka) local pf=frame.getParent and frame:getParent() or {args={}}; local pudelko_modul=require("Module:Pudełko"); local strona_glowna_dla_dzieci; if(i~=0)then local kod_jezyka_tego_projektu=pudelko_modul["Kod języka tego projektu"](); if(kod_jezyka==kod_jezyka_tego_projektu)then strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] else strona_glowna_dla_dzieci=(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]) end; else strona_glowna_dla_dzieci=frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"] end; local kod_projektu_tego_projektu=pudelko_modul["Kod projektu tego projektu"](); local parametry_modul=require("Module:Parametry"); return (parametry_modul.CzyTak(strona_glowna_dla_dzieci))and require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=strona_glowna_dla_dzieci,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu_tego_projektu,} or (strona_glowna_dla_dzieci and "" or nil); end; function p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, normmalna_przedmiotwa_dyskusji,kod_jezyka,kod_projektu) local nazwa_przestrzeni_nazw_blad; local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(normmalna_przedmiotwa_dyskusji==0)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==1)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, przedmiotowa="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(normmalna_przedmiotwa_dyskusji==2)then if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, dyskusja="tak",["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw_blad=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else nazwa_przestrzeni_nazw_blad=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; return nazwa_przestrzeni_nazw_blad end; function p.Nazwa_przestrzeni_nazw(frame,kod_liczbowy_przestrzeni_nazw,czy_uwzglednic_alternatywna_nazwe,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_przestrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,numer_jednostki,1) or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,numer_jednostki); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwy_przestrzeni_nazw; local typ; if(kod_liczbowy_przestrzeni_nazw==1)then typ="przedmiotowa"; if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZEDMIOTOWAPRZESTRZEŃ"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,przedmiotowa="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; elseif(kod_liczbowy_przestrzeni_nazw==2)then if(czy_biezaca_wiki)then typ="dyskusja"; czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["PRZESTRZEŃDYSKUSJI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,dyskusja="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; else if(czy_biezaca_wiki)then czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]() or nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; else czy_blad_nazwy_przestrzeni_nazw=(not nazwa_przestrzeni_nazw)and nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,} or nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka, ["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; end; end; if(czy_blad_nazwy_przestrzeni_nazw)then return czy_blad_nazwy_przestrzeni_nazw; else if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local nazwa_przestrzeni_nazw_alternatywnej=mw.text.trim(frame.args[1]); if(mw.ustring.match(nazwa_przestrzeni_nazw_alternatywnej,"^[%w%s_]*$"))then local czy_blad_nazwa_przestrzeni_nazw_alternatywnej; if(czy_biezaca_wiki)then local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.Np(tab_parametry); else local tab_parametry={nazwa=nazwa_przestrzeni_nazw_alternatywnej,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(typ)then tab_parametry[typ]="tak";end; czy_blad_nazwa_przestrzeni_nazw_alternatywnej=nazwy_modul.NpDane(tab_parametry); end; return czy_blad_nazwa_przestrzeni_nazw_alternatywnej or "(błąd)"; else return "(błąd)"; end; else local parametry_modul=require("Module:Parametry"); nazwa_przestrzeni_nazw=parametry_modul["Odstępy"]{[1]=nazwa_przestrzeni_nazw,[2]="tak",}; if(mw.ustring.match(nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; end; end; function p.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca_wiki=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local nazwa_przestrzeni_nazw_blad; local parametry_modul=require("Module:Parametry"); if(czy_biezaca_wiki)then nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").Np{nazwa=nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; else nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; nazwa_przestrzeni_nazw_blad=require("Module:Nazwy").NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw_blad or nazwa_przestrzeni_nazw; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca_wiki)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then nazwa_przestrzeni_nazw=nazwy_np_modul.Template; end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=require("Module:Nazwy")["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then nazwa_przestrzeni_nazw=nazwy_np_modul.Module; end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then nazwa_przestrzeni_nazw=template_prze; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then nazwa_przestrzeni_nazw=module_prze; end; end; end; if(not nazwa_przestrzeni_nazw_blad)then if(((czy_uwzglednic_alternatywna_nazwe==nil)and true or czy_uwzglednic_alternatywna_nazwe) and frame.args[1])then local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(frame.args[1]); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then if(czy_biezaca_wiki)then local nazwy_modul=require("Module:Nazwy"); local czy_blad_nazwy_przestrzeni_nazw=nazwy_modul.Np{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} return czy_blad_nazwy_przestrzeni_nazw or "(błąd)"; else local nazwy_modul=require("Module:Nazwy"); local nazwa_przestrzeni_nazw_blad2=nazwy_modul.NpDane{nazwa=wytrimowana_nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",}; return nazwa_przestrzeni_nazw_blad2 or "(błąd)"; end; else return "(błąd)"; end; else local wytrimowana_nazwa_przestrzeni_nazw=mw.text.trim(nazwa_przestrzeni_nazw); if(mw.ustring.match(wytrimowana_nazwa_przestrzeni_nazw,"^[%w%s_]*$"))then return wytrimowana_nazwa_przestrzeni_nazw; else return "(błąd)"; end; end; else return nazwa_przestrzeni_nazw; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return require("Module:Nazwy")["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,typ) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local nazwa_przestrzeni_nazw=require("Module:Pudełko")["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local nazwy_modul=require("Module:Nazwy"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then return nazwy_modul.Np{[typ]="tak",nazwa=nazwa_przestrzeni_nazw}; else return nazwy_modul.NpDane{[typ]="tak",nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Kod_jezyka(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod języka tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod języka tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka"] or frame.args["kod języka 1"] or pf.args["kod języka"] or pf.args["kod języka 1"] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_jezyka=frame.args["kod języka "..i] or pf.args["kod języka "..i] return ((kod_jezyka)and(kod_jezyka~=""))and mw.text.trim(kod_jezyka) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Kod_projektu(frame,i,wartosc_domyslna) local pudelko_modul=require("Module:Pudełko"); if(not i)then return pudelko_modul["Kod projektu tego projektu"]();end; local pf=frame.getParent and frame:getParent() or {args={}}; if(i==0)then return pudelko_modul["Kod projektu tego projektu"](); elseif(i==1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu"] or frame.args["kod projektu 1"] or pf.args["kod projektu"] or pf.args["kod projektu 1"] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); elseif(i>1)then local parametry_modul=require("Module:Parametry"); local kod_projektu=frame.args["kod projektu "..i] or pf.args["kod projektu "..i] return ((kod_projektu)and(kod_projektu~=""))and mw.text.trim(kod_projektu) or ((parametry_modul.CzyTak(wartosc_domyslna))and wartosc_domyslna or nil); end; end function p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local pf=frame.getParent and frame:getParent() or {args={}}; local klucz_projektu; local function domyslne_klucz(klucz_projektu) local parametry_modul=require("Module:Parametry"); return ((klucz_projektu)and(klucz_projektu~=""))and mw.text.trim(klucz_projektu)or((parametry_modul.CzyTak(wartosc_domyslna_jezyka)and(parametry_modul.CzyTak(wartosc_domyslna_projektu)))and (wartosc_domyslna_jezyka..":" ..wartosc_domyslna_projektu)or(parametry_modul.CzyTak(wartosc_domyslna_jezyka) and wartosc_domyslna_jezyka or (parametry_modul.CzyTak(wartosc_domyslna_projektu) and wartosc_domyslna_projektu or nil))); end; if(i==0)then return nil; elseif(i==1)then local klucz_projektu=frame.args["klucz projektu"] or frame.args["klucz projektu 1"] or pf.args["klucz projektu"] or pf.args["klucz projektu 1"]; return domyslne_klucz(klucz_projektu); elseif(i>1)then local klucz_projektu=frame.args["klucz projektu "..i] or pf.args["klucz projektu "..i]; return domyslne_klucz(klucz_projektu); end; end; function p.Wikikody_kontenera(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu) local wiki_modul=require("Module:Wiki"); local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(p.Klucz_projektu(frame,i,wartosc_domyslna_jezyka,wartosc_domyslna_projektu),p.Kod_jezyka(frame,i,wartosc_domyslna_jezyka),p.Kod_projektu(frame,i,wartosc_domyslna_projektu)); return kod_jezyka,kod_projektu; end; function p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,args,bez_analizy) if(not bez_analizy)then local parametry_modul=require("Module:Parametry"); if((((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł")or(typ=="podręcznik")))or (typ=="artykuł")))then return ""; elseif(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci")))or(typ=="artykuł dla dzieci"))then return "Wikijunior"; elseif((not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"])) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki brudnopisu projektu"])and (typ=="podręcznik brudnopisu projektu" or typ=="artykuł brudnopisu projektu")or (typ=="jednostka brudnopisu projektu")) or (typ=="strona brudnopisu projektu"))or(typ=="strona projektu"))or (typ=="strona projektu"))then return "Project"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona szablonu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))or(typ=="strona brudnopisu szablonu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]) and not parametry_modul.CzyTak(args["obsługiwane nieudokumentowane szablony jako szablony"])) and((typ=="strona szablonu")or(typ=="strona opisu szablonu"))or(typ=="strona szablonu"))))then return "Template"; elseif((parametry_modul.CzyTak(args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))and (typ=="strona modułu") or(not parametry_modul.CzyTak(args["obsługiwane brudnopisy jako normalne strony"]) and((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))or(typ=="strona brudnopisu modułu")) or((not parametry_modul.CzyTak(args["obsługiwane opisy jako strony jednostek programowych"]) and not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"])) and((typ=="strona modułu")or(typ=="strona opisu modułu"))or(typ=="strona modułu"))))then return "Module"; elseif(not parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika jako normalne strony"]) and(((not parametry_modul.CzyTak(args["obsługiwane jednostki jako nieopisowe strony"]))and(parametry_modul.CzyTak(args["obsługiwane jednostki użytkownika"])and (typ=="podręcznik użytkownika" or typ=="artykuł użytkownika") or (typ=="jednostka użytkownika")) or (typ=="strona użytkownika"))or(typ=="strona główna użytkownika"))or(typ=="strona użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; return; end; if(typ)then if((typ=="artykuł")or(typ=="podręcznik"))then return ""; elseif((typ=="artykuł dla dzieci")or(typ=="podręcznik dla dzieci"))then return "Wikijunior"; elseif((typ=="podręcznik brudnopisu projektu")or(typ=="artykuł brudnopisu projektu")or(typ=="jednostka brudnopisu projektu")or(typ=="strona brudnopisu projektu")or(typ=="strona projektu"))then return "Project"; elseif((typ=="strona szablonu")or(typ=="strona opisu szablonu")or(typ=="strona brudnopisu szablonu")or(typ=="strona brudnopisu opisu szablonu"))then return "Template"; elseif((typ=="strona modułu")or(typ=="strona opisu modułu")or(typ=="strona brudnopisu modułu")or(typ=="strona brudnopisu opisu modułu"))then return "Module"; elseif((typ=="podręcznik użytkownika")or(typ=="artykuł użytkownika")or(typ=="jednostka użytkownika")or(typ=="strona użytkownika")or(typ=="strona główna użytkownika"))then return "User"; elseif(typ=="strona pliku")then return "File"; elseif(typ=="strona kategorii")then return "Category"; elseif(typ=="strona pomocy")then return "Help"; elseif(typ=="strona komunikatu")then return "MediaWiki"; elseif(typ=="strona specjalna")then return "Special"; elseif(typ=="strona gadżetu")then return "Gadget"; elseif(typ=="strona główna projektu")then return "Project"; elseif(typ=="strona główna dla dzieci")then return "Wikijunior"; end; end; end; function p.Typ_jednostki_uzyskany_z_frame(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local pf=frame.getParent and frame:getParent() or {args={}}; local typ; if liczba_numer_jednostki~=0 then typ=liczba_numer_jednostki and( (frame.args["typ jednostki "..liczba_numer_jednostki] or frame.args["typ jednostki i"]) or (pf.args["typ jednostki "..liczba_numer_jednostki] or pf.args["typ jednostki i"]) ); if(not typ)then local nazwa_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,2); if(nazwa_jednostki)then if(not mw.ustring.match(mw.text.trim(nazwa_jednostki),"^:"))then local nazwa_przesrzeni_nazw=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki,1); if(not nazwa_przesrzeni_nazw)then typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; end; end; end; else typ=frame.args["typ jednostki"] or pf.args["typ jednostki"]; end; return typ,liczba_numer_jednostki; end; function p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i) local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pf=frame:getParent() or {args={},}; local function FuncTemp(liczba_numer_jednostki) local dyskusja_parametr="dyskusja typu jednostki"; if(liczba_numer_jednostki==0)then return frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr]; else return ((frame.args[dyskusja_parametr.." "..liczba_numer_jednostki] or pf.args[dyskusja_parametr.." "..liczba_numer_jednostki]) or (frame.args[dyskusja_parametr.." i"] or pf.args[dyskusja_parametr.." i"]) or(frame.args[dyskusja_parametr] or pf.args[dyskusja_parametr])); end; end; local czy_dyskusja=FuncTemp(liczba_numer_jednostki); local parametry_modul=require("Module:Parametry"); local czy_dyskusja=parametry_modul.CzyTak(czy_dyskusja); return czy_dyskusja; end; function p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,i) local typ=p.Typ_jednostki_uzyskany_z_frame(frame,i); local nazwa_przestrzeni_nazw=typ and p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,nil,true) or nil; if(nazwa_przestrzeni_nazw)then local czy_dyskusja=p.Czy_dyskusja_typu_jednostki_z_frame_od_dyskusja_typu_jednostki(frame,i); if(czy_dyskusja)then if(nazwa_przestrzeni_nazw=="")then return "Talk"; else return nazwa_przestrzeni_nazw.." talk"; end; else return nazwa_przestrzeni_nazw; end; else return nil; end; end; function p.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu) local parametry_modul=require("Module:Parametry"); local analiza=parametry_modul.CzyTak(frame.args["analiza"]); local typ,liczba_numer_jednostki=p.Typ_jednostki_uzyskany_z_frame(frame,i); local uzyskana_przestrzen_nazw_od_typu_jednostki; local nazwa_przestrzeni_nazw_podana,nazwa_jednostki_podana=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,liczba_numer_jednostki); if((not analiza)and(typ))then if(typ~="")then uzyskana_przestrzen_nazw_od_typu_jednostki=p.Nazwa_przestrzeni_nazw_od_typu_jednostki(typ,frame.args); if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((not nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then return typ; end; else return "(błąd typu jednostki)"; end; end; end; local nazwa_przestrzeni_nazw,nazwa_jednostki=p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,liczba_numer_jednostki,numer_argorytmu); local nazwy_modul=require("Module:Nazwy"); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local czy_blad_nazwa_przestrzeni_nazw; if(czy_biezaca)then czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} else czy_blad_nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kanoniczna"]="tak",["nazwij projektem"]="tak",["nazwij dyskusją projektu"]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,["istnieje"]="tak",["wynik błędu nietekstowy"]="tak",} end; if(not czy_blad_nazwa_przestrzeni_nazw)then return "(błąd nazwy przestrzeni nazw)";end; nazwa_przestrzeni_nazw=czy_blad_nazwa_przestrzeni_nazw; --- --- if((not analiza)and(typ))then if(typ~="")then ---typ jednostki if(uzyskana_przestrzen_nazw_od_typu_jednostki)then if((nazwa_przestrzeni_nazw_podana)and(not nazwa_jednostki_podana))then if(uzyskana_przestrzen_nazw_od_typu_jednostki==nazwa_przestrzeni_nazw)then return typ; else return "(błąd niezgodności)"; end; end; else return "(błąd typu jednostki)"; end; end; end; local function Typ_jednostki() if(nazwa_jednostki~="")then --local kod_jezyka,kod_projektu=KodyWikiPudelka(frame,liczba_numer_jednostki); --local klucz_projektu=kod_projektu..":"..kod_jezyka; local pudelko_modul=require("Module:Pudełko"); local pelna_nazwa_strony=((nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki; if(pudelko_modul.CzyNiepoprawnaNazwa(pelna_nazwa_strony))then return "(błąd nazwy jednostki)";end; local nazwy_modul=require("Module:Nazwy") pelna_nazwa_strony=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local norm_przed_lub_dyskusji=p.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw,kod_jezyka,kod_projektu); if(kod_projektu==pudelko_modul["Kod projektu tego projektu"]())then local nazwa_strony_glownej_dla_dzieci_ze_zmiennej=p.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka); if(nazwa_strony_glownej_dla_dzieci_ze_zmiennej=="")then return "(błąd nazwy strony głównej dla dzieci)";end; local nazwa_strony_glownej_wikijuniora=p.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka); local nazwa_strony_glownej_dla_dzieci_uzyskana=(not nazwa_strony_glownej_dla_dzieci_ze_zmiennej)and nazwa_strony_glownej_wikijuniora or nazwa_strony_glownej_dla_dzieci_ze_zmiennej; if(nazwa_strony_glownej_dla_dzieci_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_dla_dzieci_uzyskana))then return "(błąd nazwy strony głównej dla dzieci)";end; nazwa_strony_glownej_dla_dzieci_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_dla_dzieci_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_dla_dzieci_uzyskana)then return "strona główna dla dzieci";end; end; end; local nazwa_strony_glownej_projektu_ze_zmiennej=p.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,liczba_numer_jednostki,kod_jezyka,kod_projektu); if(nazwa_strony_glownej_projektu_ze_zmiennej=="")then return "(błąd nazwy strony głównej projektu)";end; local nazwa_strony_glownej_projektu_z_wikidanych=p.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu); local nazwa_strony_glownej_projektu_uzyskana=(not nazwa_strony_glownej_projektu_ze_zmiennej)and nazwa_strony_glownej_projektu_z_wikidanych or nazwa_strony_glownej_projektu_ze_zmiennej; if(nazwa_strony_glownej_projektu_uzyskana)then if(pudelko_modul.CzyNiepoprawnaNazwa(nazwa_strony_glownej_projektu_uzyskana))then return "(błąd nazwy strony głównej projektu)";end; nazwa_strony_glownej_projektu_uzyskana=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=nazwa_strony_glownej_projektu_uzyskana,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(pelna_nazwa_strony==nazwa_strony_glownej_projektu_uzyskana)then return "strona główna projektu";end; end; if(norm_przed_lub_dyskusji=="")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik";else return "artykuł";end; end; elseif(norm_przed_lub_dyskusji=="Wikijunior")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "artykuł dla dzieci"; else local it=mw.ustring.match(nazwa_jednostki,"^[^/]+$"); if(it)then return "podręcznik dla dzieci";else return "artykuł dla dzieci";end; end; elseif(norm_przed_lub_dyskusji=="User")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]))then return "strona użytkownika"; else local czy_podstrony=mw.ustring.match(nazwa_jednostki,"^[^/]+$") if(czy_podstrony)then return "strona główna użytkownika"; else if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^[^/]+/[^/]*$"); if(czy_ksiazka)then return "podręcznik użytkownika"; else return "artykuł użytkownika"; end; else return "jednostka użytkownika"; end; else return "strona użytkownika"; end; end; end; elseif(norm_przed_lub_dyskusji=="File")then return "strona pliku"; elseif(norm_przed_lub_dyskusji=="Category")then return "strona kategorii"; elseif(norm_przed_lub_dyskusji=="Project")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))then return "strona projektu";end; if(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*"))then if(not parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then if(parametry_modul.CzyTak(frame.args["obsługiwane jednostki brudnopisu projektu"]))then local czy_ksiazka=mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/[^/]*$"); if(czy_ksiazka)then return "podręcznik brudnopisu projektu"; else return "artykuł brudnopisu projektu"; end; else return "jednostka brudnopisu projektu"; end; else return "strona brudnopisu projektu"; end; else return "strona projektu"; end; elseif(norm_przed_lub_dyskusji=="Help")then return "strona pomocy"; elseif(norm_przed_lub_dyskusji=="MediaWiki")then return "strona komunikatu"; elseif(norm_przed_lub_dyskusji=="Special")then return "strona specialna"; elseif(norm_przed_lub_dyskusji=="Gadget")then return "strona gadżetu"; elseif(nazwa_przestrzeni_nazw=="Template")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona szablonu";end; local function CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,szablon,opis_szablonu,strona_szablonu,prefix) local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return szablon; else if(mw.ustring.match(nazwa_jednostki,"^"..prefix..".*/opis$"))then return opis_szablonu; else if(not parametry_modul.CzyTak(frame.args["obsługiwane nieudokumentowane szablony jako szablony"]))then local czy_brudnopis=mw.ustring.match(nazwa_jednostki,"^"..prefix..".*$"); if(czy_brudnopis)then local pagename=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; local czy_istnieje_strona,tab=require("Module:Techniczne").PoliczZbiory(pagename); if(czy_istnieje_strona==1)then local czy_brudnopis_opisu_szablonu=require("Module:Łatki").contentMatch{ [1]='<noinclude>.-{{%s*[Dd]okumentacja%s*}}.-</noinclude>', [2]='<noinclude>.-{{%s*[Dd]okumentacja%s*|.-</noinclude>',pagename=pagename,namespace=0 }; if(not czy_brudnopis_opisu_szablonu)then return opis_szablonu;else return szablon;end; else return szablon; end; else return strona_szablonu; end; else return szablon; end; end; end; end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona brudnopisu szablonu","strona brudnopisu opisu szablonu","strona szablonu","[Bb]rudnopis/[^/]*/"); else return CzySzablonAlboOpis(nazwa_przestrzeni_nazw,nazwa_jednostki,"strona szablonu","strona opisu szablonu","strona szablonu",""); end; elseif(nazwa_przestrzeni_nazw=="Module")then local parametry_modul=require("Module:Parametry"); if(parametry_modul.CzyTak(frame.args["obsługiwane strony jako niebrudnopisowe jednostki programowe"]))then return "strona modułu";end; if((not parametry_modul.CzyTak(frame.args["obsługiwane brudnopisy jako normalne strony"]))and(mw.ustring.match(nazwa_jednostki,"^%s*[Bb]rudnopis/[^/]*/.*")))then if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona brudnopisu modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_strony_brudnopisu_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_strony_brudnopisu_opisu_modulu)then return "strona brudnopisu opisu modułu"; else return "strona brudnopisu modułu"; end; end; else if(parametry_modul.CzyTak(frame.args["obsługiwane opisy jako strony jednostek programowych"]) or parametry_modul.CzyTak(frame.args["obsługiwane jednostki jako nieopisowe strony"]))then return "strona modułu" else local pelna_nazwa_strony=(nazwa_przestrzeni_nazw~="")and nazwa_przestrzeni_nazw..":"..nazwa_jednostki or nazwa_jednostki; pelna_nazwa_strony=require("Module:Nazwy")["PEŁNANAZWASTRONY"]{[1]=pelna_nazwa_strony,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local pelna_nazwa_opisu_modulu=require("Module:Techniczne")["PełnaNazwaOpisuModułu"](pelna_nazwa_strony); if(pelna_nazwa_strony==pelna_nazwa_opisu_modulu)then return "strona opisu modułu"; else return "strona modułu"; end; end; end; else return "inne"; end; end; return "inne"; end; local typ_jednostki=Typ_jednostki(); if(((analiza)or(nazwa_jednostki_podana))and(typ)and(typ~=""))then if(typ_jednostki==typ)then return typ_jednostki; elseif(nazwa_jednostki_podana)then return "(błąd parametrów pudełkowych)" else return "(błąd typu jednostki)"; end; end; return typ_jednostki; end; function p.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i,numer_argorytmu,co_ma_liczyc) local nazwa_przestrzeni_fun,nazwa_jednostki_fun; if(kod_liczbowy_przestrzeni_nazw==0)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==1)then nazwa_przestrzeni_fun="Nazwa przedmiotowej przestrzeni nazw"; nazwa_jednostki_fun="Nazwa przedmiotowa jednostki"; elseif(kod_liczbowy_przestrzeni_nazw==2)then nazwa_przestrzeni_fun="Nazwa przestrzeni nazw dyskusji" nazwa_jednostki_fun="Nazwa dyskusji jednostki"; else nazwa_przestrzeni_fun="Nazwa przestrzeni nazw"; nazwa_jednostki_fun="Nazwa jednostki"; end; local pudelko_modul=require("Module:Pudełko"); if(not numer_argorytmu)then if((not i)or(i==0))then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=(n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); local nazwa_przestrzeni_nazw=(n)and pudelko_modul[nazwa_przestrzeni_fun](frame,false,i) or pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then local n=p.Nazwa_przestrzeni_nazw_dodatkowe(frame,i); return (n)and pudelko_modul["Nazwa jednostki"](frame,i) or pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; else if(numer_argorytmu==0)then if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul["Nazwa jednostki"](frame,i); end; else if((not co_ma_liczyc)or(co_ma_liczyc==0))then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); local nazwa_jednostki=pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); return nazwa_przestrzeni_nazw,nazwa_jednostki; elseif(co_ma_liczyc==1)then local nazwa_przestrzeni_nazw=pudelko_modul[nazwa_przestrzeni_fun.." 2"](frame,false,i); return nazwa_przestrzeni_nazw; elseif(co_ma_liczyc==2)then return pudelko_modul[nazwa_jednostki_fun.." 2"](frame,i); end; end; end; end; function p.Nazwa_przestrzeni_nazw_dodatkowe(frame,numer_jednostki) local pf=frame.getParent and frame:getParent() or {args={}}; return frame.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] or pf.args["nazwa przestrzeni nazw "..tostring(numer_jednostki)] end; function p.Nazwa_jednostki(frame,i) local pf=frame.getParent and frame:getParent() or {args={}}; local nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,2); local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); if(nazwa_jednostki)then nazwa_jednostki=mw.text.trim(nazwa_jednostki); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^:",""); nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^([^#]*)#(.*)$","%1"); local parametry=mw.ustring.match(nazwa_jednostki,"^.*%?([^%?]+)$"); if(parametry and mw.ustring.match(parametry,"[^=]+=[^=]*"))then nazwa_jednostki=mw.ustring.gsub(nazwa_jednostki,"^(.*)%?([^%?]+)$","%1"); end; else local nazwy_modul=require("Module:Nazwy"); nazwa_jednostki=nazwy_modul["NAZWASTRONY"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); end; function p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i,co_podac) local pf=frame.getParent and frame:getParent() or {args={}}; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=tonumber(numer_jednostki) or 0; local nazwa_jednostki; local bool_numer_jednostki=(liczba_numer_jednostki~=0); local function Nazwa_jednostki() if bool_numer_jednostki then nazwa_jednostki=frame.args["nazwa jednostki "..liczba_numer_jednostki] or ((liczba_numer_jednostki==1)and(pf.args["cel"])) or pf.args[liczba_numer_jednostki]; else nazwa_jednostki=frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"]; end; return nazwa_jednostki; end; local function Nazwa_przestrzeni_nazw() local nazwa_przestrzeni_nazw=bool_numer_jednostki and (frame.args["nazwa przestrzeni nazw i"] or pf.args["nazwa przestrzeni nazw i"] or frame.args["nazwa przestrzeni nazw "..liczba_numer_jednostki] or pf.args["nazwa przestrzeni nazw "..liczba_numer_jednostki]) or frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"]; return nazwa_przestrzeni_nazw; end; if(not co_podac)then return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; elseif(co_podac==1)then return Nazwa_przestrzeni_nazw(),liczba_numer_jednostki; elseif(co_podac==2)then return Nazwa_jednostki(),liczba_numer_jednostki; else return Nazwa_przestrzeni_nazw(),Nazwa_jednostki(),liczba_numer_jednostki; end; end; function p.Jaka_nazwa_jednostki(frame,i,jaka) local nazwa_przestrzeni_nazw,nazwa_jednostki,liczba_numer_jednostki=p.Nazwy_przestrzeni_i_jednostki_podane_o_pewnym_numerze(frame,i); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw or p.Nazwa_przestrzeni_nazw_uzyskana_z_typu_jednostki_z_frame(frame,liczba_numer_jednostki); ---- local nazwy_modul=require("Module:Nazwy"); nazwa_przestrzeni_nazw=nazwa_przestrzeni_nazw and mw.text.trim(nazwa_przestrzeni_nazw) or nazwy_modul["NAZWAPRZESTRZENI"](); if(nazwa_jednostki)then local html_modul=require("Module:Html"); nazwa_jednostki=html_modul["NazwaStronyAdresu"](nazwa_jednostki,true); else nazwa_jednostki=nazwy_modul["NAZWASTRONY"](); end; local kod_jezyka,kod_projektu=p.Wikikody_kontenera(frame,liczba_numer_jednostki); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(jaka)then if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak"}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw, [jaka]="tak",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else if(czy_biezaca)then nazwa_przestrzeni_nazw=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw}; else nazwa_przestrzeni_nazw=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; if(not mw.ustring.match(nazwa_jednostki,"^:"))then if(nazwa_przestrzeni_nazw~="")then if(czy_biezaca)then local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if(nazwa_przestrzeni_nazw==nazwy_np_modul.Template)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Template)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; elseif(nazwa_przestrzeni_nazw==nazwy_np_modul.Module)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_jednostki); if(nazwa_przestrzeni_nazw_d==nazwy_np_modul.Module)then return nazwy_modul["NAZWASTRONY"](nazwa_jednostki); end; end; else local template_prze=nazwy_modul.NpDane{nazwa="Template",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; local module_prze=nazwy_modul.NpDane{nazwa="Module",["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw==template_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==template_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; elseif(nazwa_przestrzeni_nazw==module_prze)then local nazwa_przestrzeni_nazw_d=nazwy_modul["NAZWAPRZESTRZENI"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(nazwa_przestrzeni_nazw_d==module_prze)then return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; end; local parametry_modul=require("Module:Parametry"); nazwa_jednostki=parametry_modul["Odstępy"]{[1]=nazwa_jednostki,[2]="tak",}; return mw.getContentLanguage():ucfirst(nazwa_jednostki); else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; else return nazwy_modul["NAZWASTRONY"]{[1]=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; end; function p.Czy_przestrzen_nazw_jest_obslugiwana(frame,jakas_przestrzen_nazw,kod_jezyka,kod_projektu) local nazwy_modul=require("Module:Nazwy"); local parametry_modul=require("Module:Parametry"); local wiki_modul=require("Module:Wiki"); local czy_biezaca=wiki_modul["CzyBieżącaWiki"]{["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; if(czy_biezaca)then jakas_przestrzen_nazw=nazwy_modul.Np{nazwa=jakas_przestrzen_nazw}; else jakas_przestrzen_nazw=nazwy_modul.NpDane{nazwa=jakas_przestrzen_nazw,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; local function nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_iter) if(czy_biezaca)then nazwa_przestrzeni_nazw_iter=nazwy_modul.Np{nazwa=nazwa_przestrzeni_nazw_iter}; else nazwa_przestrzeni_nazw_iter=nazwy_modul.NpDane{nazwa=nazwa_przestrzeni_nazw_iter,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}; end; if(jakas_przestrzen_nazw==nazwa_przestrzeni_nazw_iter)then return true; end; return false; end; for licznik,nazwa_przestrzeni_nazw in pairs(frame.args)do if(type(licznik)=="number")then local nazwa_przestrzeni_nazw_element,klucze_element=mw.ustring.match(nazwa_przestrzeni_nazw,"^%s*([%w%s]*)%s*:%s*(.-)%s*"); if(nazwa_przestrzeni_nazw_element and klucze_element)then local tab_klucze=mw.text.split(klucze_element,"%s*,%s*",false); local wiki_modul=require("Module:Wiki"); for _,klucz_element in ipairs(tab_klucze)do local kod_jezyka_obslugiwane,kod_projektu_obslugiwane=wiki_modul.KluczProjektu(klucz_element); if(kod_jezyka_obslugiwane==kod_jezyka and kod_projektu_obslugiwane==kod_projektu)then local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw_element); if(wynik)then return true;end; end; end; else local wynik=nazwa_przestrzeni_nazw_fun(nazwa_przestrzeni_nazw); if(wynik)then return true;end; end; end; end; return false; end; function p.Analiza_interwiki_czy_projekt_aktualny(frame,czy_jezyk,czy_projekt) local parametry_modul=require("Module:Parametry"); local p=parametry_modul.PobierzFrameEwentualnieParent(frame); local pudelko_modul=require("Module:Pudełko"); local wiki_modul=require("Module:Wiki"); local jezyk_biezacy=czy_jezyk and pudelko_modul["Kod języka tego projektu"](); local projekt_biezacy=czy_projekt and pudelko_modul["Kod projektu tego projektu"](); for i,_ in pairs(p.args)do if(type(i)=="number")then local klucz_projektu=pudelko_modul["Klucz projektu"](frame,i); local kod_jezyka=pudelko_modul["Kod języka"](frame,i); local kod_projektu=pudelko_modul["kod projektu"](frame,i); local jezyk,projekt=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu); if((czy_jezyk and (jezyk~=jezyk_biezacy))or(czy_projekt and(projekt~=projekt_biezacy)))then return "tak"; end; end; end; return; end; return p; jwma87rck2i1ylf4fx1c79zzsgnifj3 Wikibooks:Mechanizm MediaWiki 4 60755 540287 535779 2026-04-22T18:26:47Z Persino 2851 /* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */ 540287 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}. == Szablony == Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy. === Opis wizualny === * {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego. ** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lru|Szablony/Infoboksy - Prolog}}, {{lru|Szablony/Infoboksy - Tom I}}, {{lru|Szablony/Infoboksy - Tom II}}, {{lru|Szablony/Infoboksy - Tom III}}, {{lru|Szablony/Infoboksy - Tom IV}}, {{lru|Szablony/Infoboksy - Tom V}}, {{lru|Szablony/Infoboksy - Tom VI}}, {{lru|Szablony/Infoboksy - Komponenty}}, {{lru|Szablony/Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}. === Opis tekstowy === * {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów. ** {{lpu|Spis treści/Szablony - Tom I}}, {{lpu|Spis treści/Szablony - Tom II}}, {{lpu|Spis treści/Szablony - Tom III}} i {{lpu|Spis treści/Szablony - Tom IV}}. == Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} == {{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}} * Moduły podstawowe ** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL. ** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} ({{lru|Moduły/Nazwy - Tom I}}, {{lru|Moduły/Nazwy - Tom II}}, {{lru|Moduły/Nazwy - Tom III}} i {{lru|Moduły/Nazwy - Tom IV}}) procedur operujących na nazwach MediaWiki projektu. *** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie. ** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich. ** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy. *** {{m|Pudełko/Pomocne}} - {{lru|Moduły/Pudełko/Pomocne}} *** {{m|Pudełko/Potrzebne}} - {{lru|Moduły/Pudełko/Potrzebne}} *** {{m|Pudełko/ParametryCechy}} - {{lru|Moduły/Pudełko/ParametryCechy}} ** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje. ** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach. ** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych. ** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne. ** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron. ** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście. ** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych. * Moduły standardowe ** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami. ** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki. ** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki. ** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach. ** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony. * Specjalistyczne ** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów. ** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki. ** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu. {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!-- --></noinclude> pmzkxygofwq7a9a6x68jfounzrmo7bs 540288 540287 2026-04-22T18:37:06Z Persino 2851 /* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */ 540288 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}. == Szablony == Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy. === Opis wizualny === * {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego. ** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lru|Szablony/Infoboksy - Prolog}}, {{lru|Szablony/Infoboksy - Tom I}}, {{lru|Szablony/Infoboksy - Tom II}}, {{lru|Szablony/Infoboksy - Tom III}}, {{lru|Szablony/Infoboksy - Tom IV}}, {{lru|Szablony/Infoboksy - Tom V}}, {{lru|Szablony/Infoboksy - Tom VI}}, {{lru|Szablony/Infoboksy - Komponenty}}, {{lru|Szablony/Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}. === Opis tekstowy === * {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów. ** {{lpu|Spis treści/Szablony - Tom I}}, {{lpu|Spis treści/Szablony - Tom II}}, {{lpu|Spis treści/Szablony - Tom III}} i {{lpu|Spis treści/Szablony - Tom IV}}. == Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} == {{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}} * Moduły podstawowe ** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL. ** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} ({{lru|Moduły/Nazwy - Tom I}}, {{lru|Moduły/Nazwy - Tom II}}, {{lru|Moduły/Nazwy - Tom III}} i {{lru|Moduły/Nazwy - Tom IV}}) procedur operujących na nazwach MediaWiki projektu. *** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie. ** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich. ** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy. *** {{m|Pudełko/Pomocne}} - {{lru|Moduły/Pudełko/Pomocne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące różnych nazw. *** {{m|Pudełko/Potrzebne}} - {{lru|Moduły/Pudełko/Potrzebne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące {{m|Pudełko|Ogólne pudełko}}. *** {{m|Pudełko/ParametryCechy}} - {{lru|Moduły/Pudełko/ParametryCechy}} - zestaw funkcji potrzebnych do budowy szablonu {{s|Szablonowy opis pudełka}}. ** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje. ** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach. ** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych. ** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne. ** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron. ** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście. ** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych. * Moduły standardowe ** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami. ** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki. ** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki. ** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach. ** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony. * Specjalistyczne ** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów. ** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki. ** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu. {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!-- --></noinclude> k8s1b6u80tmf1nstybd8cpix9shvupq Wikibooks:Moduły/Pudełko 4 63479 540289 540285 2026-04-22T18:59:26Z Persino 2851 /* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */ 540289 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwajednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2mn19fl77o9t5uqhn0w0ws2fo3use19 540290 540289 2026-04-22T18:59:46Z Persino 2851 /* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */ 540290 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> g78en4p7dvekwshf77mf01jajc4q9sl 540291 540290 2026-04-22T19:02:53Z Persino 2851 /* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */ 540291 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 01d9fav2kkjkkde9mmdj9lms5wpk7r4 540292 540291 2026-04-22T19:14:21Z Persino 2851 /* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */ 540292 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul["CzyNiepoprawnaNazwa"](nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 55tyowto5vsm5ikcz4yc6ualjwavvvw 540295 540292 2026-04-22T19:37:36Z Persino 2851 /* {{Code|p["CzyNiepoprawnaNazwa"](nazwa_jednostki)}} */ 540295 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> p["CzyNiepoprawnaNazwa"]=function(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8uw6w9k1dthq0os0vj82mwyv6ufodew 540296 540295 2026-04-22T19:40:52Z Persino 2851 /* {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} */ 540296 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 26r7ocn0miiiy9tsslduq5qbabl5pa6 540297 540296 2026-04-22T20:04:06Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540297 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p["Nazwa_przestrzeni_nazw"](frame,...)|p=Pudełko/Pomocne}}}} domywznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1stn4fxn1p0ju7rlj7lze356m03224u 540298 540297 2026-04-22T20:04:33Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540298 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p["Nazwa_przestrzeni_nazw"](frame,...)|p=Pudełko/Pomocne}}}} domywznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qxxfa0furxat8hmery0x9jkrbarsq8j 540299 540298 2026-04-22T20:05:48Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540299 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cvcxradoganr2slh5rynr9v6x05zb19 540300 540299 2026-04-22T20:06:23Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540300 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} -nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ph5ht7y9ep4tfgabhjtp6y2xuj7knof 540301 540300 2026-04-22T20:06:57Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540301 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> i1w15z17ajf144675p8fuzdsyemn2ud 540302 540301 2026-04-22T20:23:20Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540302 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzglęędniana wtedy, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> hzi6y61xlr9quwhk7pkk82gqy6wlemj 540303 540302 2026-04-22T20:26:00Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540303 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> inahulbc5jv2j7xd5feex3koyfp6eu0 540304 540303 2026-04-22T20:29:23Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540304 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw,według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rv86sfl80e6cx0zasqapzbm4st2nc0z 540305 540304 2026-04-22T20:30:41Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540305 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 55wopk0mrpin8gxjklm5upowqnsm4k8 540306 540305 2026-04-22T20:35:15Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540306 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}},które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziacka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ek3qqx8ec00kz692902ap1gf0i08uub 540307 540306 2026-04-22T20:37:21Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540307 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|ni}}i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> s0bu0s7ysclaye6km74xdiv209kqqv1 540308 540307 2026-04-22T20:38:14Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540308 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lh0w76cf3opel4off59pixsu6sv6alr 540309 540308 2026-04-22T20:44:30Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540309 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> b27o6hbjqjh2b97k498o98n672kmflt 540310 540309 2026-04-22T21:13:49Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540310 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} == Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. == {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} == == {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} == == {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa jednostki"](frame,i)}} == == {{Code|p["Nazwa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} == == {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} == == {{Code|p["Nazwa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} == == {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} == == {{Code|p["Typ jednostki"](frame,i)}} == == {{Code|p["Typ jednostki 2"](frame,i)}} == == {{Code|p["Typ jednostki 3"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} == == {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} == == {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} == == {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} == == {{Code|p["Cecha pudełka"](frame)}} == == {{Code|p["Przedmiotowa cecha pudełka"](frame)}} == == {{Code|p["Dyskusyjna cecha pudełka"](frame)}} == == {{Code|p["Ogólne pudełko"](frame)}} == == {{Code|p["Tekst pudełka"](frame)}} == == {{Code|p["Błędy pudełka"](frame)}} == == {{Code|p["Przedmiotowe błędy pudełka"](frame)}} == == {{Code|p["Dyskusyjne błędy pudełka"](frame)}} == == {{Code|p["Nazwa strony głównej projektu"](frame,i)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} == == {{Code|p["Kod języka"]frame,i)}} == == {{Code|p["Kod projektu"](frame,i)}} == == {{Code|p["Klucz projektu"](frame,i)}} == == {{Code|p["Inny niż język bieżący wiki"](frame)}} == == {{Code|p["Inne niż lokalne wiki"](frame)}} == == {{Code|p["Inne niż bieżące wiki"](frame)}} == == {{Code|p["Podano parametry nienazwane"](frame)}} == == {{Code|p["Podano parametry numerowane"](frame)}} == == {{Code|p["Podano parametry nazwane"](frame)}} == == {{Code|p["Kod projektu tego projektu"](frame)}} == == {{Code|p["Kod języka tego projektu"](frame)}} == == {{Code|p["Klucz projektu tego projektu"](frame)}} == == {{Code|p["Strona główna tego projektu"](frame)}} == == {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} == == {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} == == {{Code| p["Nazwa strony głównej projektu 2"](frame)}} == {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f23k58or228d80raohx9l0lp872fl6h 540311 540310 2026-04-22T21:33:28Z Persino 2851 540311 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw w pierwszej wersji == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw w drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"]frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów paramwetrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> n32ck1bc6ycdmhui285sengqn4m7l1r 540312 540311 2026-04-22T21:45:18Z Persino 2851 /* Funkcje nazw przestrzeni nazw w drugiej wersji */ 540312 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw w pierwszej wersji == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"]frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów paramwetrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> iv8b4srq0won7dewhqhqhaft8udjyb4 540313 540312 2026-04-22T21:46:20Z Persino 2851 /* Funkcje nazw jednostki */ 540313 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw w pierwszej wersji == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"]frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów paramwetrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> g9prh1a02bps6lql47vu7hizhptu56d 540314 540313 2026-04-22T21:47:32Z Persino 2851 /* Funkcje nazw przestrzeni nazw w pierwszej wersji */ 540314 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"]frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów paramwetrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> o8mkyr4mp5cf4ga8xmo2n6l45o1v61h 540315 540314 2026-04-22T21:49:48Z Persino 2851 /* Funkcje pełnych nazw jednostki */ 540315 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"]frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów paramwetrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gopag8ca7iz9a6g8xej1r8u89ede3w1 540316 540315 2026-04-22T21:50:34Z Persino 2851 /* Funkcje typów paramwetrów, czy podane je */ 540316 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"]frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8mq2ilqdoormhzxexq9131nvw8wpusl 540317 540316 2026-04-22T21:51:50Z Persino 2851 /* Funkcje stron */ 540317 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"]frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> l8dk8c7a0diafrd9mety6hjkqvftubb 540318 540317 2026-04-22T22:20:24Z Persino 2851 /* Funkcje kodów */ 540318 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c8x0kihkqj5v8oyavtuj1qzc1bfamls 540319 540318 2026-04-23T05:13:14Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540319 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9vv7egux8ngdprym6295wwzqgj0xgjd 540320 540319 2026-04-23T05:25:42Z Persino 2851 540320 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1mnbc16wzn3d2ov62jls78qdaoxl5mv 540321 540320 2026-04-23T05:35:03Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540321 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Najpierw w funkcji nagłówku brane są paramtry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dyxeic0tn4rn03t1pfy9pb610qaawlv 540322 540321 2026-04-23T05:41:04Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540322 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Najpierw w funkcji nagłówku brane są paramtry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4qfqeaaqwzb2jp287tphk32e4j6ckkn 540323 540322 2026-04-23T05:50:26Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540323 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Najpierw w funkcji nagłówku brane są paramtry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 15506pedg79uk44dl9pdpdrms1uak3s 540324 540323 2026-04-23T05:54:44Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540324 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> sq2kgd8xbakxn3758kpji9w7ctf6tpd 540325 540324 2026-04-23T06:04:14Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540325 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> juhusf2d26ilg152veb0nintfz9hhd5 540326 540325 2026-04-23T06:09:27Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540326 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo istnieje "nazwa przestrzeni nazw i"; --> nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł <!-- Czyli wynik: Moduł --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6w8n8c11ly0urxa5fxm9tgtozos2ema 540327 540326 2026-04-23T06:20:16Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540327 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2g3clp3re98ctoca7nd8wftls85rmwe 540328 540327 2026-04-23T06:22:10Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540328 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 18g6nvs58at5ckfqaedtxltp0uar602 540329 540328 2026-04-23T06:22:49Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540329 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}}. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ezc2q3uavzgasma74bw76dcj2jacc4f 540330 540329 2026-04-23T06:43:38Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540330 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w {{sr|#Funkcje typu jednostki|p=Pudełko}}. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 51f7zxhgyodylr3oz11gnw3cyyz2jyz 540331 540330 2026-04-23T06:45:19Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540331 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogó;nego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> l8x4polws0qnyihf2767lezyz7am2oa 540332 540331 2026-04-23T07:06:32Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540332 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości {{Code|nil}} i {{Code|true}}, które oznaczają to samo, i {{Code|false}}, nazwa domyślna nie jest uwzględniana wtedy, jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> i7vjoceis15hhwq3jo5noo1iaiwkccx 540333 540332 2026-04-23T07:39:05Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540333 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}} i {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f1czl6xk6pk20vvn8btz6vfv53poqc1 540334 540333 2026-04-23T07:40:02Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540334 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e050tzvlwz5hjweskytte0f71bb51wx 540335 540334 2026-04-23T07:40:33Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540335 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 52fbls2soelenp0uj4ntooce9e9mjr6 540336 540335 2026-04-23T08:00:22Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540336 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}Szablon|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cqp2tzis31uiklc2k28w8al0c9dsmcu 540337 540336 2026-04-23T08:06:39Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540337 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> duql5vuohidnqnfr7r1sr78xnk3m163 540338 540337 2026-04-23T08:26:29Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540338 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cvqvi81z9jrpl342fjemm9old03och6 540339 540338 2026-04-23T08:27:19Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540339 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> o5vw5e01y2pmnvsqlwgbom827vx0rdt 540341 540339 2026-04-23T08:40:02Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540341 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> q1irarc6ezchee6sjcwxo2m0qjxomv5 540342 540341 2026-04-23T08:41:08Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540342 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> g11lriujta6s8rkhkvl6052r8ete57q 540343 540342 2026-04-23T08:44:52Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540343 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numerej mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0rcygf4949vvgsqdy4txf815nvh1jcu 540344 540343 2026-04-23T08:45:34Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540344 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5z6mmp4g0lc2rednk5k1xiwvwbteegf 540345 540344 2026-04-23T08:54:37Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540345 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja piszę przedmiotową nazwę przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 651ken29mhfd5vx2d3hr2tfflffrpb8 540346 540345 2026-04-23T09:08:53Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540346 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja piszę nazwę przestrzeni nazw, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> hnfmxsyz9q5rhlbejl8iy1cfzpn6rtv 540347 540346 2026-04-23T09:10:00Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540347 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8r84wbqxjrsm84jfeq3kp1u564l0mj3 540348 540347 2026-04-23T09:25:33Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540348 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 59864z968ktabovclxtzp4eehci8kbu 540349 540348 2026-04-23T09:28:58Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540349 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> iutg6zpilyf0xlchgypqw4rbbfbrhj0 540350 540349 2026-04-23T09:31:05Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */ 540350 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, tonie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4borsx0nosenegh88ihmj7i3fvngmgi 540351 540350 2026-04-23T09:32:52Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */ 540351 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, tonie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 23ebf0ho2z269xcivobkaqttc4b8rht 540352 540351 2026-04-23T09:36:30Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */ 540352 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> a5ftjfitvyhcarb4shq78w7zh0sjebh 540353 540352 2026-04-23T09:39:25Z Persino 2851 /* {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} */ 540353 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie było by żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> o4b0dorxxh89ngsf0msrwv0grhhe2g7 540354 540353 2026-04-23T09:41:53Z Persino 2851 540354 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonów, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> oc2ecpjhuxo0pewn01jfyre1ut5e23f 540355 540354 2026-04-23T09:47:23Z Persino 2851 540355 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 2ao16fkeaqzlp4l5f55sk83x3ast73g 540356 540355 2026-04-23T09:53:49Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540356 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gnioem3vsgnpwjt4back7ss3t1avff5 540357 540356 2026-04-23T09:56:12Z Persino 2851 540357 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> d8gfi0u2yrt1z7n7lu1sh0w16y6tdrr 540358 540357 2026-04-23T10:08:10Z Persino 2851 /* Funkcje nazw przestrzeni nazw */ 540358 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> irilte6aqvspitgbl8zfruuqjjk1x3v 540360 540358 2026-04-23T11:21:34Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} */ 540360 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ... * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gll3zosd7tmij4mxjpjibdojudtzvky 540361 540360 2026-04-23T11:26:10Z Persino 2851 540361 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 24aalzv38w12exr61bm64indo2m2u9k 540363 540361 2026-04-23T11:33:00Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540363 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, tyo i tak otrzymamy na samym końcu jego nazwę przeddmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> o62rli72hwrtc93nqr9y3tuei2qgqlv 540364 540363 2026-04-23T11:33:23Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540364 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, tyo i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cfx6j0tu0cda7io7hxxk7f6gibozrpc 540365 540364 2026-04-23T11:34:47Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} */ 540365 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, tyo i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rjuva1tygenj16e6u30hmwm0cqcfkhh 540366 540365 2026-04-23T11:35:50Z Persino 2851 /* {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} */ 540366 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} Moduł wywołuje się za pomocą polecenia: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. Zestawienie: * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą,że chodzi tutaj o typ jednostki. == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Fukcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw, niezależnie, czy to jest przedmiotowa, czy dyskusji, według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawaćw formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń programowa, którą również jest "Szablon"; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, on definiuje przestrzenie przedmiotowe, ale można użyć parametru dyskusji typu jednostki z wartością niepustą, wtedy wyświetli się nazwa przestrzeni nazw dyskusji. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja pisze przedmiotową nazwę przestrzeni nazw jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na przedmiotową. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu}}}} - ta nazwa domyślna zostanie zamieniona na przedmiotową, a jak ona by była przedmiotowa, to żadnej zamiany by nie było, a nazwa uzyskana z nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli ta nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Dyskusja Wikibooks|nazwa przestrzeni nazw 2=Dyskusja szablonu|nazwa przestrzeni nazw i=Dyskusja modułu}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Dyskusja modułu; --> <!-- Czyli wynik: --> Moduł <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń przedmiotowa programowa przestrzeni dyskusji "Dyskusja modułu", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to samo przekształca się na to samo; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskusja szablonu|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskusja szablonu|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskusja szablonu|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy ta sama nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na to samo, lepiej jest tutaj używać parametrów przestrzennych nazw niż typu jednostki, bo typ jednostki ma taką samą wartość dla przestrzeni przedmiotowej, co dyskusji. Tutaj parametr dyskusji typu jednostki bazowy i numerkowy ogólny, czy szczegółowy, nie gra roli, bo nawet, gdy wygenerujemy nazwę przestrzeni dyskusji za pomoca tego parametru, to i tak otrzymamy na samym końcu jego nazwę przedmiotową. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja pisze nazwę przestrzeni nazw dyskusji jakikolwiek nazwy przestrzeni nazw (tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą), według podanej w zmiennej {{Code|nazwa przestrzeni nazw}} dla pozycja bazowej w podanych parametrach szablonu rodzicu ramki dziecka, lub dla innej pozycji należy parametr podawać w formie {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., lub te parametry można podać w postaci ogólnej {{Code|nazwa przestrzeni nazw i}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli np.: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}<jakaś liczba całkowita dodatnia>}}}}. Te parametry przestrzenne zamiast w rodzicu w szablonie można podać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. Parametry przestrzenne mogą mogą być podane w postaci przestrzeni przedmiotowej lub dyskusji, ale ta funkcja zawsze ją zamienia na dyskusji. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon}}}} - ta nazwa domyślna zostanie przekształcona na dyskusji, a jeżeli ona by była dyskusji, to nie byłoby żadnego przekształcenia, a nazwa uzyskana nazwy przestrzeni nazw z parametrów przestrzennych jest w takim przypadku błędna, to w takim razie brany jest ten parametr, a jeżeli nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej. Parametry ramki tablicy transportu dziecka: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej, numerkowej i ogólnej. * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna. Parametr ramki tablicy transportu rodzica szablonu: * {{Code|nazwa przestrzeni nazw}}, {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, {{Code|nazwa przestrzeni nazw 3}},..., {{Code|nazwa przestrzeni nazw i}} - nazwy przestrzeni nazw dla pozycji bazowej oraz zwykłej i ogólnej numerkowej. Przykłady: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|nazwa przestrzeni nazw=Wikibooks|nazwa przestrzeni nazw 2=Szablon|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}: <syntaxhighlight lang="mediawiki"> {{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=1}} </syntaxhighlight> Na podstawie powyższego przykładu otrzymamy wynik o schemacie, nie wyniku, bo tam nie ma zmiennej {{Code|nazwa przestrzeni nazw 1}}, ale jest {{Code|nazwa przestrzeni nazw i}}: <syntaxhighlight lang="mediawiki"> <!-- Ale nie "nazwa przestrzeni nazw", bo jej nie ma, ale za to istnieje "nazwa przestrzeni nazw i"; --> <!-- nazwa przestrzeni nazw 1=nazwa przestrzeni nazw i=Moduł; --> <!-- Czyli wynik: --> Dyskusja modułu <!-- Widzimy, że wygenerowała się nazwa przestrzeni nazw, którą jest przestrzeń dyskusji przestrzeni programowej przestrzeni przedmiotowej "Moduł", którą również jest "Szablon" jego przestrzeni dyskusji "Dyskusja szablonu", a dla ich przestrzeni przedmiotowej, zamiast dyskusji, to przekształca się na dyskusji jej odpowiadającą; --> </syntaxhighlight> Nie jest brana w tym powyższym przykładzie zmienna {{Code|nazwa przestrzeni nazw}}, bo jej nie ma, ale za to jest {{Code|nazwa przestrzeni nazw i}}, bo ona występuje jako parametr domyślny ogólny dla parametrów numerkowych. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Szablon|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Szablon|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Szablon|numer jednostki=2}}}} Powyżej dla przykładu podano parametry nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry nazw przestrzeni nazw, ale ich się za to nie powinno podawać w tych ramach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak tutaj tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. Analogicznie możemy podawać parametry typu jednostki, np.: wywołaniu modułowym {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|typ jednostki 2{{=}}strona szablonu|numer jednostki{{=}}2}}}}, ale o tym więcej w rozdziałach {{Code|{{sr|# p["Typ jednostki"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko}}}}, {{Code|{{sr|#p["Typ jednostki 3"](frame,i)|p=Pudełko}}}} itp. w „{{sr|#Funkcje typu jednostki|p=Pudełko}}”, ale wtedy nazwa przestrzeni nazw reprezentowana przez {{Parametr|typ jednostki 2|strona szablonu}}, jest zamieniana na nazwę przestrzeni nazw dyskusji. Parametr dyskusji typu jednostki bazowy lub dla danego numerka ogólny, czy szczegółowy, nie gra roli. Również parametry typu jednostki nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są nazwy na podstawie aktualnego modułu. == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki"](frame,i)}} === == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 2"](frame,i)}} === == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Pełna nazwa jednostki 3"](frame,i)}} === == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,i)}} === === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,i)}} === == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === == Funkcje typu jednostki == === {{Code|p["Typ jednostki"](frame,i)}} === === {{Code|p["Typ jednostki 2"](frame,i)}} === === {{Code|p["Typ jednostki 3"](frame,i)}} === === Funkcje typu jednostki przedmiotowe === ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== === Fukcje typu jednostki dyskusji === ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === == Fukcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 70e6ym5amdtjk0xmtgyadcdh10blfcs