Moduł:StronicowyParser/NumeracjaObiektówStron
Zobacz podstrony tego modułu.
|
local p={};
function p.SprawdzanieReferencji(self,tablica_zmiennych,link_obiekt_lub_wypowiedzenie, nazwa_obiektu1, nazwa_obiektu2, nazwa_przestrzeni, nazwa_przestrzeni_ksiazki, nazwa_ksiazki,nazwa_artykulu)
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
if((not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",nazwa_obiektu2))or(nazwa_artykulu==""))then
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie in ipairs(link_obiekt_lub_wypowiedzenie) do
local czy_uchwyty_nie_sa_ponumerowane=true;
for _, elementy_w_tablicy_obiekt_lub_wypowiedzenie2 in ipairs(tablica_zmiennych.tabela_listy_danych_analizy_ksiazki2[nazwa_obiektu1]) do
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie==elementy_w_tablicy_obiekt_lub_wypowiedzenie2[1])then
if(elementy_w_tablicy_obiekt_lub_wypowiedzenie2[2])then
czy_uchwyty_nie_sa_ponumerowane=false;
break;
end;
end;
end;
if(czy_uchwyty_nie_sa_ponumerowane)then
local czy_tylko_ze_znakami_odstepu_lub_puste=mw.ustring.match(elementy_w_tablicy_obiekt_lub_wypowiedzenie,"^%s*$");
if(czy_tylko_ze_znakami_odstepu_lub_puste)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu1,1)) then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"puste parametry szablonów stronicowych linkujących",nazwa_obiektu1,1);
end;
return;
elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",nazwa_obiektu2))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",nazwa_obiektu2);
return;
end;
end;
end;
end;
end;
function p.PrzetwarzanieWszystkichSzablonowychElementowychFormParsowanejStrony(self, dane_artykulu,biezacy_artykul,numer_artykulu_w_ksiazce,stronicowyparser_obiekty_modul,__Funkcja)
for _,element_w_podtablicy_kategorii_bledow in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do
local element_obiekty=element_w_podtablicy_kategorii_bledow[1];
tabela_listy_danych_analizy_ksiazki=p.SprawdzanieOrazNumerowanieElementowychFormStrony(self,dane_artykulu,biezacy_artykul,element_obiekty,numer_artykulu_w_ksiazce,stronicowyparser_obiekty_modul,__Funkcja);
end;
end;
function p.PrzetwarzanieZebranychInformacjiDanejKorzystanejStrony(self,tablica_zmiennych,nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,nazwa_artykulu2)
local stronicowyparser_obiekty_modul=mw.loadData("Module:StronicowyParser/obiekty");
local stronicowyparser_potrzebne_modul=require("Module:StronicowyParser/Potrzebne");
local parametry_modul=require("Module:Parametry");
-----
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
-----
for nazwa_przestrzeni,tablica_nazw_przestrzeni_ksiazek in pairs(self.tabela_listy_danych_analizy_ksiazki.dane_analizy_stron)do
for nazwa_przestrzeni_ksiazki, tablica_nazw_ksiazek in pairs(tablica_nazw_przestrzeni_ksiazek)do
for nazwa_ksiazki,tablica_nazw_artykulow in pairs(tablica_nazw_ksiazek)do
local tablica_artykulow={};
local tab_ksiazki=tablica_nazw_artykulow.spis;
local czy_da_sie_numerowac_obiekty_ze_spisem_tresci=false;
if(tab_ksiazki)then
local i=1;
for _,tab_rozdzialu in pairs(tab_ksiazki)do
if(tab_rozdzialu[2])then
for _,tab_dane_nazwa_artykulu_spisu in ipairs(tab_rozdzialu[2])do
local czy_tabelka_artykulu=stronicowyparser_potrzebne_modul.CzyTabelaStronyWoluminuSpisuRzeczy(tab_dane_nazwa_artykulu_spisu[1]);
local tab_nazwa_artukulu_link=czy_tabelka_artykulu and tab_dane_nazwa_artykulu_spisu[1][1] or tab_dane_nazwa_artykulu_spisu[1];
local artykul=stronicowyparser_potrzebne_modul.TylkoStronaWoluminuBezParametrowOrazReferencji(tab_nazwa_artukulu_link);
if(artykul)then
tablica_artykulow[artykul]=i;
i=i+1;
end;
end;
end;
end;
if(parametry_modul["CzySąElementyTablicy"](tablica_artykulow))then
czy_da_sie_numerowac_obiekty_ze_spisem_tresci=true;
end;
end;
for nazwa_artykulu, dane_artykulu in pairs(tablica_nazw_artykulow.lista_podstron_woluminu) do
local biezacy_artykul=dane_artykulu.artykul_biezacy;
local numer_obiektu_w_ksiazce=tablica_artykulow[nazwa_artykulu] or 0;
local function Problemy_z_doloczonymi_uchywtami(nazwa_obiektu)
stronicowyparser_problemy_modul.DodawanieProblemowegoElementuDoTablicy(self,"błędy uchwytów dołączonych stron",nazwa_obiektu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki);
end;
if((czy_da_sie_numerowac_obiekty_ze_spisem_tresci)and(nazwa_artykulu~=""))then
p.PrzetwarzanieWszystkichSzablonowychElementowychFormParsowanejStrony(self,dane_artykulu,biezacy_artykul,numer_obiektu_w_ksiazce,stronicowyparser_obiekty_modul,Problemy_z_doloczonymi_uchywtami);
else
p.PrzetwarzanieWszystkichSzablonowychElementowychFormParsowanejStrony(self,dane_artykulu,biezacy_artykul,0,stronicowyparser_obiekty_modul,Problemy_z_doloczonymi_uchywtami);
end;
end;
end;
end;
end;
for _,obiekt in pairs(stronicowyparser_obiekty_modul.tablica_obiektowych_form)do
local obiekt2=obiekt[1];
p.SprawdzanieReferencji(self,tablica_zmiennych,tablica_zmiennych.linkobiekt[obiekt2],obiekt2,"Link"..obiekt2, nazwa_przestrzeni2,nazwa_przestrzeni_ksiazki2,nazwa_ksiazki2,nazwa_artykulu2);
end;
return tabela_listy_danych_analizy_ksiazki;
end;
function p.SprawdzanieOrazNumerowanieElementowychFormStrony(self, dane_artykulu, biezacy_artykul, nazwa_obiektu, numer_artykulu_w_ksiazce,stronicowyparser_obiekty_modul,__Funkcja)
local parametry_modul=require("Module:Parametry");
if(not dane_artykulu.uchwyty_i_numeracje)then return;end;
local tabela_obiektu=dane_artykulu.uchwyty_i_numeracje[nazwa_obiektu];
if(not tabela_obiektu)then return;end;
if(stronicowyparser_obiekty_modul.nienumerowane_z_uchwytami_szablony_wprowadzenia_tekstu[nazwa_obiektu])then
return tabela_listy_danych_analizy_ksiazki;
end;
local stronicowyparser_problemy_modul=require("Module:StronicowyParser/Problemy");
for licznik,element_obiektu in pairs(tabela_obiektu)do
local czy_numerowac=true;
for licznik2=1, licznik-1,1 do
if((tabela_obiektu[licznik2][1])and(element_obiektu[1]==tabela_obiektu[licznik2][1]))then
if(biezacy_artykul)then
if(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",nazwa_obiektu))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błędy uchwytów korzystanych stron",nazwa_obiektu);
end;
else
__Funkcja(nazwa_obiektu);
end;
tabela_obiektu[licznik2][2]=nil;
czy_numerowac=false;
break;
end;
end;
if(czy_numerowac)then
if(numer_artykulu_w_ksiazce>0)then
element_obiektu[2]=numer_artykulu_w_ksiazce.."."..licznik;
elseif(numer_artykulu_w_ksiazce==0)then
element_obiektu[2]=licznik;
elseif(not stronicowyparser_problemy_modul.CzyJestTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera"))then
stronicowyparser_problemy_modul.UstawTakiProblemowyElement(self,"błąd wewnętrzny modułu lua stronicowego parsera");
end;
end;
end;
return tabela_listy_danych_analizy_ksiazki;
end;
return p;