Moduł:Kategorie
Przejdź do nawigacji
Przejdź do wyszukiwania
Zobacz podstrony tego modułu.
|
local p={};
function PoliczLiczbeStronWPodkategoriach(z_kategoriami_bledow,parametry_modul,argumenty_szablonu,zebrane_kategorie,bledy,czy_korzystana_kategoria)
local parametry_modul=require("Module:Parametry");
local techniczne_modul=require("Module:Techniczne");
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local liczba_stron_w_kategoriach=0;
for numer_argumentu_szablonu, nazwa_kategorii in ipairs(argumenty_szablonu) do
if(numer_argumentu_szablonu~=0)then
local nazwa_kategorii2=parametry_modul["Odstępy"]{[1]=nazwa_kategorii,[2]="tak",};
local liczba_stron_istniejacych,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory(Category..":"..nazwa_kategorii2);
if(liczba_stron_istniejacych==0)then
if(z_kategoriami_bledow)then
if(tabela_uchwytow_stron[1][1])then
parametry_modul.DodajElementDoZbioru(bledy,"[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - nieistniejące kategorie]]");
else
parametry_modul.DodajElementDoZbioru(bledy,"[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - niepoprawne kategorie]]");
end;
end;
else
--local tab_strony_uchwyt=tabela_uchwytow_stron[1];
--local uchwyt_strony=tab_strony_uchwyt[1];
local zawartosc_strony=tabela_uchwytow_stron[1][2];
zawartosc_strony=mw.ustring.gsub(zawartosc_strony,"%s*<!%-%-.-%-%->%s*","")
local wywolanie_szablonu;
local iterator=mw.ustring.gmatch(zawartosc_strony,"({{[^{}|]+|[^{}]-}})");
for wywolanie_szablonu in iterator do
local wywolanie_szablonu2=mw.text.trim(mw.ustring.match(wywolanie_szablonu,"^{{([^{}|]+)|"));
if(mw.ustring.match(wywolanie_szablonu2,"^[_%s]-Łączna[_%s]+liczba[_%s]+stron[_%s]+w[_%s]+kategoriach[_%s]-$"))then
local niepowtarzajace_sie_kategorie=true;
if(zebrane_kategorie[nazwa_kategorii2])then
if(z_kategoriami_bledow)then
if(not czy_korzystana_kategoria)then
parametry_modul.DodajElementDoZbioru(bledy,"[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się kategorie]]");
else
parametry_modul.DodajElementDoZbioru(bledy,"[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się parametry]]");
end;
end;
niepowtarzajace_sie_kategorie=false;
end;
if(niepowtarzajace_sie_kategorie)then
zebrane_kategorie[nazwa_kategorii2]=true;
local tablica_argumentow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_szablonu);
local liczba_stron_w_kategorii=0;
for licznik,elementy_nieponumerowane_argumentow_szablonu in pairs(tablica_argumentow_szablonu)do
if((type(licznik)=="number")and(licznik>0))then
local elementy_nieponumerowane_argumentow_szablonu2=parametry_modul["Odstępy"]{[1]=elementy_nieponumerowane_argumentow_szablonu,[2]="tak",};
liczba_stron_w_kategorii=liczba_stron_w_kategorii+mw.site.stats.pagesInCategory(elementy_nieponumerowane_argumentow_szablonu2,"all");
end;
end;
liczba_stron_w_kategoriach=liczba_stron_w_kategoriach+liczba_stron_w_kategorii;
end;
elseif(mw.ustring.match(wywolanie_szablonu2,"^[_%s]-Rekurencyjna[_%s]+łączna[_%s]+liczba[_%s]+stron[_%s]+w[_%s]+kategoriach[_%s]-$"))then
local tablica_argumentow_szablonu=techniczne_modul["ParsujWywołanieSzablonu"](wywolanie_szablonu);
for licznik,wartosc_argumentu in pairs(tablica_argumentow_szablonu) do
wartosc_argumentu=parametry_modul["Odstępy"]{[1]=wartosc_argumentu,[2]="tak",};
if((type(licznik)=="number")and(wartosc_argumentu~=""))then
tablica_argumentow_szablonu[licznik]=wartosc_argumentu
end;
end;
local niepowtarzajace_sie_kategorie=true
if(zebrane_kategorie[nazwa_kategorii2])then
if(z_kategoriami_bledow)then
if(not czy_korzystana_kategoria)then
parametry_modul.DodajElementDoZbioru(bledy,"[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się kategorie]]");
else
parametry_modul.DodajElementDoZbioru(bledy,"[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - powtarzające się parametry]]");
end;
end;
niepowtarzajace_sie_kategorie=false;
end;
zebrane_kategorie[nazwa_kategorii2]=true;
if(niepowtarzajace_sie_kategorie)then
liczba_stron_w_kategoriach=liczba_stron_w_kategoriach+PoliczLiczbeStronWPodkategoriach(z_kategoriami_bledow,parametry_modul,tablica_argumentow_szablonu,zebrane_kategorie,bledy,false);
end;
end;
end;
end;
end;
end;
return liczba_stron_w_kategoriach;
end;
p["Rekurencyjna łączna liczba stron w kategoriach"]=function(frame)
local parametry_modul=require("Module:Parametry");
local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
local bledy={};
local nazwy_modul=require("Module:Nazwy");
local nazwa_kategorii=(args["aktualna kategoria"])and (Category..':'..args["aktualna kategoria"]) or nil;
local nazwa_strony_aktualnej=nazwy_modul["NAZWASTRONY"](nazwa_kategorii);
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_kategorii);
local zebrane_kategorie={};
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
zebrane_kategorie[nazwa_strony_aktualnej]=true;
end;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local liczba_argumentow_ponumerowanych_w_argumentach_szablonu=parametry_modul["MaksymalnaLiczbaParametruNienazwanegoTablicy"](args,"tak");
if(liczba_argumentow_ponumerowanych_w_argumentach_szablonu==0)then
if(z_kategoriami_bledow)then
return "0[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - brak kategorii]]";
else
return "0";
end;
end;
for licznik,wartosc_argumentu in pairs(args) do
local wartosc_argumentu=parametry_modul["Odstępy"]{[1]=wartosc_argumentu,[2]="tak",};
if((type(licznik)=="number")and(wartosc_argumentu~=""))then
args[licznik]=wartosc_argumentu;
end;
end;
local liczba_stron_w_kategortiach=PoliczLiczbeStronWPodkategoriach(z_kategoriami_bledow,parametry_modul,args,zebrane_kategorie,bledy,true);
if((z_kategoriami_bledow)and(not parametry_modul["CzySąElementyNienazwaneTablicy"](bledy,"tak")))then
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
local args2=parametry_modul["KopiujTabelęŁańcuchów"]{tabela=args,przedrostek='Category:'};
local techniczne_modul=require("Module:Techniczne");
local liczba_istniejacych_kategorii_w_aktualnej_kategorii,_=techniczne_modul.PoliczZbiory(args2);
if(liczba_argumentow_ponumerowanych_w_argumentach_szablonu~=mw.site.stats.pagesInCategory(nazwa_strony_aktualnej,"subcats")
or(liczba_argumentow_ponumerowanych_w_argumentach_szablonu~=liczba_istniejacych_kategorii_w_aktualnej_kategorii)
)then
parametry_modul.DodajElementDoZbioru(bledy,"[["..Category..":Szablon rekurencyjna łączna liczba stron w kategoriach - niezgodność kategorii]]");
end;
end;
end;
return liczba_stron_w_kategortiach..table.concat(bledy);
end;
p["Łączna liczba stron w kategoriach"] = function(frame)
local parametry_modul=require("Module:Parametry");
local args=frame and ((frame.getParent and ((parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent()) or frame).args or frame) or {};
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local liczba_argumentow_ponumerowanych_w_argumentach_szablonu=parametry_modul["MaksymalnaLiczbaParametruNienazwanegoTablicy"](args,"tak");
if(liczba_argumentow_ponumerowanych_w_argumentach_szablonu==0)then
if(z_kategoriami_bledow)then
return "0[["..Category..":Szablon łączna liczba stron w kategoriach - brak kategorii]]";
else
return "0";
end;
end;
local tabela_kategorii={};
for licznik=1,liczba_argumentow_ponumerowanych_w_argumentach_szablonu,1 do args[licznik]=parametry_modul["Odstępy"]{[1]=args[licznik],[2]="tak",};end;
local liczba_stron_w_kategorii=0;
local liczba_kategorii_w_korzystanej_kategorii=0;
local czy_ma_liczyc_zgodnosc_kategorii=true;
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local techniczne_modul=require("Module:Techniczne");
for licznik,wartosc_argumentu in pairs(args)do
if((type(licznik)=="number")and(mw.text.trim(wartosc_argumentu)~=""))then
local liczba_istniejacych_kategorii,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory("Category:"..args[licznik]);
if(liczba_istniejacych_kategorii==0)then
if(z_kategoriami_bledow)then
if(tabela_uchwytow_stron[1][1])then
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..Category..":Szablon łączna liczba stron w kategoriach - nieistniejące kategorie]]");
else
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..Category..":Szablon łączna liczba stron w kategoriach - niepoprawne kategorie]]");
end;
end;
czy_ma_liczyc_zgodnosc_kategorii=false;
else
local czy_niepowtarzajace_kategorie=true;
for licznik2=licznik+1,liczba_argumentow_ponumerowanych_w_argumentach_szablonu,1 do
if(args[licznik]==args[licznik2])then
if(z_kategoriami_bledow)then
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..Category..":Szablon łączna liczba stron w kategoriach - powtarzające się parametry]]");
end;
czy_niepowtarzajace_kategorie=false;
czy_ma_liczyc_zgodnosc_kategorii=false;
break;
end;
end;
if(czy_niepowtarzajace_kategorie)then
liczba_kategorii_w_korzystanej_kategorii=liczba_kategorii_w_korzystanej_kategorii+1;
liczba_stron_w_kategorii=liczba_stron_w_kategorii+mw.site.stats.pagesInCategory(args[licznik],"all");
end;
end;
end;
end;
if(z_kategoriami_bledow)then
if(czy_ma_liczyc_zgodnosc_kategorii)then
local nazwy_modul=require("Module:Nazwy");
local nazwa_kategorii=(args["aktualna kategoria"])and ('Category:'..args["aktualna kategoria"]) or nil;
local nazwa_strony_aktualnej=nazwy_modul["NAZWASTRONY"](nazwa_kategorii);
local nazwa_przestrzeni=nazwy_modul["NAZWAPRZESTRZENI"](nazwa_kategorii);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
local liczba_kategorii_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony_aktualnej,"subcats")+(((args["kategoria alternatywna jako podkategoria"])and(args["kategoria alternatywna jako podkategoria"]~="")) and -1 or 0);
local liczba_kategorii_w_kategorii_alternatywnej=(args["kategoria alternatywna"])and mw.site.stats.pagesInCategory(args["kategoria alternatywna"],"subcats") or 0;
if(liczba_kategorii_w_korzystanej_kategorii~=liczba_kategorii_w_kategorii_aktualnej+liczba_kategorii_w_kategorii_alternatywnej)then
parametry_modul.DodajElementDoZbioru(tabela_kategorii,"[["..Category..":Szablon łączna liczba stron w kategoriach - niezgodność kategorii]]");
end;
end;
end;
end;
return liczba_stron_w_kategorii..table.concat(tabela_kategorii);
end;
p["NazwaSortowaniaDomyślnaStrony"]=function(frame)
return p:NazwaSortowaniaDomyslna(frame);
end;
function p.NazwaSortowaniaDomyslna(self,frame)
if(self.nazwa_sortowania)then return self.nazwa_sortowania;end;
local pudelko_modul=require("Module:Pudełko");
local nazwa_sortowania=pudelko_modul["Nazwa jednostki 2"](frame);
local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local category=nazwy_np_modul.Category;
if(nazwa_przestrzeni_nazw==category)then nazwa_sortowania,_=mw.ustring.gsub(nazwa_sortowania,"^Książka:(.*)$","%1");end;
nazwa_sortowania,_=mw.ustring.gsub(nazwa_sortowania,"^.*/([^/]+)$","%1");
self.nazwa_sortowania=nazwa_sortowania;
return nazwa_sortowania;
end;
function p.CzyKategoriaDlaKategorii(frame)
local pudelko_modul=require("Module:Pudełko");
local nazwa_przestrzeni=pudelko_modul["Nazwa przestrzeni nazw 2"](frame);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
if(nazwa_przestrzeni==nazwy_np_modul.Category)then
local nazwa_strony=pudelko_modul["Nazwa jednostki 2"](frame);
local kategorie_dla_kategorii="Kategorie dla kategorii";
if(nazwa_strony==kategorie_dla_kategorii)then return nil;end;
local techniczne_modul=require("Module:Techniczne");
local liczba_stron_istniejacych,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory("Category:"..kategorie_dla_kategorii);
if(liczba_stron_istniejacych==0)then return nil;end;
local liczba_stron_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony,"pages");
local liczba_podkategorii_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony,"subcats");
local liczba_plikow_w_kategorii_aktualnej=mw.site.stats.pagesInCategory(nazwa_strony,"pages");
if((liczba_stron_w_kategorii_aktualnej>0)or (liczba_plikow_w_kategorii_aktualnej>0)or(liczba_podkategorii_w_kategorii_aktualnej==0))then return nil;end;
return "tak";
end;
return nil;
end;
function p.KategoriaDlaKategorii(frame)
local czy_kategoria_dla_kategorii=p.CzyKategoriaDlaKategorii(frame)
if(czy_kategoria_dla_kategorii)then
local nazwa_sortowania=p:NazwaSortowaniaDomyslna(frame);
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
return "[["..Category..":Kategorie dla kategorii|"..nazwa_sortowania.."]]";
end;
return "";
end;
function p.Kategoria(frame)
local parametry_modul=require("Module:Parametry");
local m=(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent();
local args=frame and ((frame.getParent and m or frame).args or frame) or {};
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local kategoria2=args[1] and parametry_modul["Odstępy"]{[1]=args[1],[2]="tak",};
local kategoria=parametry_modul.CzyTak(kategoria2) and mw.getContentLanguage():ucfirst(kategoria2) or nil;
local nazwa_sortowania=args[2] and parametry_modul["Odstępy"]{[1]=args[2],[2]="tak",};
local czy_nazwa_sortowania_aut=parametry_modul.CzyTak(args["nie sortuj nazwą"] or args["n"]);
local czy_nie_kategorie_dla_kategorii=parametry_modul.CzyTak(args["nie kategorie dla kategorii"] or args["nk"]);
local kategorie_dla_kategorii="Kategorie dla kategorii";
if((kategoria)and(kategoria~="")and(nazwa_sortowania)and(nazwa_sortowania~=""))then
local sortuj=args["sortuj spacją"] or args["s"];
local techniczne_modul=require("Module:Techniczne");
local liczba_istniejacych_stron,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory(Category..":"..kategoria);
local dotatkowekategorie="";
if(z_kategoriami_bledow)then
if(liczba_istniejacych_stron==0)then
local nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
if(tabela_uchwytow_stron[1][1])then
dotatkowekategorie="[["..Category..":Szablon kategoria - nieistniejąca kategoria|"..nazwa_sortowania_aut.."]]";
else
dotatkowekategorie="[["..Category..":Szablon kategoria - niepoprawna kategoria|"..nazwa_sortowania_aut.."]]";
end;
end;
end;
return ((tabela_uchwytow_stron[1][1])and "[["..Category..":"..kategoria..((not czy_nazwa_sortowania_aut) and ("|"..((parametry_modul.CzyTak(sortuj))and " " or nazwa_sortowania)) or "").."]]" or "")..dotatkowekategorie..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
elseif((kategoria)and(kategoria~="")and((not nazwa_sortowania)or(nazwa_sortowania=="")))then
local sortuj=args["sortuj spacją"] or args["s"];
local techniczne_modul=require("Module:Techniczne");
local liczba_istniejacych_stron,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory(Category..":"..kategoria);
local dotatkowekategorie="";
local nazwa_sortowania_aut;
if(z_kategoriami_bledow)then
if(liczba_istniejacych_stron==0)then
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
if(tabela_uchwytow_stron[1][1])then
dotatkowekategorie="[["..Category..":Szablon kategoria - nieistniejąca kategoria|"..nazwa_sortowania_aut.."]]";
else
dotatkowekategorie="[["..Category..":Szablon kategoria - niepoprawna kategoria|"..nazwa_sortowania_aut.."]]";
end;
end;
end;
if(parametry_modul.CzyTak(sortuj))then
return ((tabela_uchwytow_stron[1][1])and "[["..Category..":"..kategoria.."| ]]" or "")..dotatkowekategorie..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
else
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
return ((tabela_uchwytow_stron[1][1])and "[["..Category..":"..kategoria..(((not czy_nazwa_sortowania_aut) and (not nazwa_sortowania)) and ("|"..nazwa_sortowania_aut) or "").."]]" or "")..dotatkowekategorie..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
end;
end;
local title=mw.title.getCurrentTitle();
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np")
local category=nazwy_np_modul.Category;
if(title.nsText==category)then nazwa_sortowania,_=mw.ustring.gsub(title.text,"^Książka:(.*)$","%1");else nazwa_sortowania=title.text;end;
--nazwa_sortowania,_=mw.ustring.gsub(nazwa_sortowania,"^.*/([^/]+)$","%1");
local nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
return "[["..Category..":Szablon kategoria - nazwa kategorii pusta lub niepodana|"..nazwa_sortowania_aut.."]]"..((czy_nie_kategorie_dla_kategorii or (kategoria==kategorie_dla_kategorii)) and "" or p.KategoriaDlaKategorii(frame));
end;
function p.Kategorie(frame)
local parametry_modul=require("Module:Parametry");
local m=(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]))and frame or frame:getParent();
local args=frame and ((frame.getParent and m or frame).args or frame) or {};
local tablica_kategorii_bledow={};
local tablica_kategorii={};
local tablica_czy_kategorie_sie_powtarzaja={};
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
local Category=nazwy_np_modul.Category;
local parametry_modul=require("Module:Parametry");
local z_kategoriami_bledow=not parametry_modul.CzyTak(args["bez kategorii"]);
local czy_sa_argumenty_ponumerowane=parametry_modul["CzySąElementyNienazwaneTablicy"](args);
if(not czy_sa_argumenty_ponumerowane)then
if(z_kategoriami_bledow)then
local nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
return "[["..Category..":Szablon kategorie - nie podano nazw kategorii|"..nazwa_sortowania_aut.."]]"..(czy_nie_kategorie_dla_kategorii and "" or p.KategoriaDlaKategorii(frame));
else
return (czy_nie_kategorie_dla_kategorii and "" or p.KategoriaDlaKategorii(frame));
end;
end;
local klucz_sortowania=args["klucz sortowania"] or args["k"];
local czy_klucz_sortowania=parametry_modul.CzyTak(klucz_sortowania);
local czy_nie_kategorie_dla_kategorii=parametry_modul.CzyTak(args["nie kategorie dla kategorii"] or args["nk"]);
local kategorie_dla_kategorii="Kategorie dla kategorii";
local techniczne_modul=require("Module:Techniczne");
local nazwa_sortowania_aut;
for licznik,wartosc_argumentu in pairs(args)do
if(type(licznik)=="number")then
local kategoria=wartosc_argumentu and parametry_modul["Odstępy"]{[1]=wartosc_argumentu,[2]="tak",};
if((kategoria)and(kategoria~=""))then
local _i=args["_"..licznik] or args["_i"];
local nazwa_sortowania=_i and parametry_modul["Odstępy"]{[1]=_i,[2]="tak",};
local sortuj=(not czy_klucz_sortowania) and (parametry_modul.CzyTak(args["sortuj spacją "..licznik] or args["s"..licznik] or args["sortuj spacją"] or args["s"])) or nil;
local czy_nazwa_sortowania_aut=parametry_modul.CzyTak(args["nie sortuj nazwą "..licznik] or args["n"..licznik] or args["nie sortuj nazwą"] or args["n"]);
if((nazwa_sortowania)and(nazwa_sortowania~=""))then
local liczba_istniejacych_stron,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory(Category..":"..kategoria);
if(z_kategoriami_bledow)then
if(liczba_istniejacych_stron==0)then
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
if(tabela_uchwytow_stron[1][1])then
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - nieistniejące kategorie|"..nazwa_sortowania_aut.."]]");
else
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - niepoprawne kategorie|"..nazwa_sortowania_aut.."]]");
end;
end;
end;
local czy_sie_nie_powtarza=true;
kategoria=mw.getContentLanguage():ucfirst(kategoria);
if(tablica_czy_kategorie_sie_powtarzaja[kategoria])then
if(z_kategoriami_bledow)then
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - powtarzające się kategorie|"..nazwa_sortowania_aut.."]]");
end;
czy_sie_nie_powtarza=false;
end;
if((czy_sie_nie_powtarza)and (tabela_uchwytow_stron[1][1]))then
tablica_kategorii[#tablica_kategorii+1]="[["..Category..":"..kategoria..((not czy_klucz_sortowania)and("|"..((parametry_modul.CzyTak(sortuj))and " " or nazwa_sortowania)) or "").."]]";
end;
tablica_czy_kategorie_sie_powtarzaja[kategoria]=true;
elseif(((not nazwa_sortowania)or(nazwa_sortowania=="")))then
local liczba_stron_istniejacych,tabela_uchwytow_stron=techniczne_modul.PoliczZbiory(Category..":"..kategoria);
if(z_kategoriami_bledow)then
if(liczba_stron_istniejacych==0)then
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
if(tabela_uchwytow_stron[1][1])then
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - nieistniejące kategorie|"..nazwa_sortowania_aut.."]]");
else
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - niepoprawne kategorie|"..nazwa_sortowania_aut.."]]");
end;
end;
end;
local czy_sie_nie_powtarza=true;
kategoria=mw.getContentLanguage():ucfirst(kategoria);
if(tablica_czy_kategorie_sie_powtarzaja[kategoria])then
if(z_kategoriami_bledow)then
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - powtarzające się kategorie|"..nazwa_sortowania_aut.."]]");
end;
czy_sie_nie_powtarza=false;
end;
tablica_czy_kategorie_sie_powtarzaja[kategoria]=true;
if((czy_sie_nie_powtarza)and (tabela_uchwytow_stron[1][1]))then
if(sortuj)then
tablica_kategorii[#tablica_kategorii+1]="[["..Category..":"..kategoria.."| ]]";
else
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
tablica_kategorii[#tablica_kategorii+1]="[["..Category..":"..kategoria..(((not czy_nazwa_sortowania_aut) and (not czy_klucz_sortowania)) and ("|"..((sortuj)and " " or nazwa_sortowania_aut)) or "").."]]";
end;
end;
end;
elseif((kategoria)and(kategoria==""))then
nazwa_sortowania_aut=p:NazwaSortowaniaDomyslna(frame);
parametry_modul.DodajElementDoZbioru(tablica_kategorii_bledow,"[["..Category..":Szablon kategorie - puste kategorie|"..nazwa_sortowania_aut.."]]");
end;
end;
end;
local lancuch_kategorii=table.concat(tablica_kategorii,"")..table.concat(tablica_kategorii_bledow);
if(lancuch_kategorii~="")then
if(czy_klucz_sortowania)then
klucz_sortowania=parametry_modul["Odstępy"]{[1]=klucz_sortowania,[2]="tak",};
lancuch_kategorii=lancuch_kategorii..m:callParserFunction("DEFAULTSORT",klucz_sortowania);
end;
end;
return lancuch_kategorii..((czy_nie_kategorie_dla_kategorii or (tablica_czy_kategorie_sie_powtarzaja[kategorie_dla_kategorii])) and "" or p.KategoriaDlaKategorii(frame));
end;
p["UsuńKategorie"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local tekst=PobierzParametr("tekst") or PobierzParametr(1);
local kategoria=PobierzParametr("kategoria") or PobierzParametr(2) or "([^%[%]|]*)";
tekst,_=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*"..kategoria.."%s*%]%]","");
tekst,_=mw.ustring.gsub(tekst,"%[%[%s*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:%s*"..kategoria.."%s*%]%]","");
tekst,_=mw.ustring.gsub(tekst,"%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:%s*"..kategoria.."%s*|[^%[%]]*%]%]","");
tekst,_=mw.ustring.gsub(tekst,"%[%[%s*[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:%s*"..kategoria.."|[^%[%]]*%s*%]%]","");
return tekst;
end;
return p;