Przejdź do zawartości

Moduł:Wiki

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local p={};
function p.OddawajDaneKodyWiki(self,klucz_projektu,kod_jezyka,kod_projektu)
	if(self.tabkodywiki)then
		local parametry_modul=require("Module:Parametry");
        local pudelko_modul=require("Module:Pudełko");
        		
		local czy_klucz_projektu=parametry_modul.CzyTak(klucz_projektu);
		
		local czy_jezyk=parametry_modul.CzyTak(kod_jezyka);
		local czy_projekt=parametry_modul.CzyTak(kod_projektu);
		
		local kod_jezyka_w_bazie=czy_jezyk and kod_jezyka or pudelko_modul["Kod języka tego projektu"]();
		local kod_projektu_w_bazie=czy_projekt and kod_projektu or pudelko_modul["Kod projektu tego projektu"]();
		
		for _,tab_element in ipairs(self.tabkodywiki)do
			if(czy_klucz_projektu)then
				if((parametry_modul.CzyTak(tab_element[1]))and((not parametry_modul.CzyTak(tab_element[2]))and(not parametry_modul.CzyTak(tab_element[3]))))then
					if(tab_element[1]==klucz_projektu)then
						return {tab_element[1],tab_element[2],tab_element[3],tab_element[4],tab_element[5],};
					end;
				end;
			else
				if((not parametry_modul.CzyTak(tab_element[1]))and((parametry_modul.CzyTak(tab_element[2]))or(parametry_modul.CzyTak(tab_element[3]))))then
			    	local tab_element_jezyk=parametry_modul.CzyTak(tab_element[2]) and tab_element[2] or pudelko_modul["Kod języka tego projektu"]();
			    	local tab_element_projekt=parametry_modul.CzyTak(tab_element[3]) and tab_element[3] or pudelko_modul["Kod projektu tego projektu"]();
				
					if((kod_jezyka_w_bazie==tab_element_jezyk) and (kod_projektu_w_bazie==tab_element_projekt))then
						 return {tab_element[1],tab_element[2],tab_element[3],tab_element[4],tab_element[5],};
					end;
				end;
			end;
		end;
	end;
	return;
end;
function p.UstawDaneKodyWiki(self,klucz_projektu,kod_jezyka,kod_projektu,czy_jezyk,czy_projekt)
	local wynik=p:OddawajDaneKodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
	if((type(wynik)=="nil"))then
		if(not self.tabkodywiki)then self.tabkodywiki={};end;
		table.insert(self.tabkodywiki,{klucz_projektu,kod_jezyka,kod_projektu,czy_jezyk,czy_projekt,});
	end;
	
end;
function p.KodyNazwyStrony(nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy,tablica_kodow,informacja_jakie_kody)
	local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
	local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie;
	local interwikimap=wiki_interwiki_modul.interwikimap;
	
	local parametry_modul=require("Module:Parametry");
	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"]();
	
    local jezykowe_projekty=wiki_interwiki_modul.tablica_lokalne_lingwistyczne_siostrzane;
	
	local poczatek=true;
	local kod_jezyka_poczatkowy=nil;
	local kod_projektu_poczatkowy=nil;
	
	while(true)do
    	local kod_jezyka_lub_projektu, dalsza_czesc_strony_linku=mw.ustring.match(nazwa_strony_linku,"^[%s_:]*([^:]*[^%s_:])[%s_:]*:[%s_:]*(.*)");
    	if(kod_jezyka_lub_projektu and dalsza_czesc_strony_linku)then
    		kod_jezyka_lub_projektu=parametry_modul["Odstępy"]{[1]=kod_jezyka_lub_projektu,[2]="tak",};
    		kod_jezyka_lub_projektu=mw.getContentLanguage():lc(kod_jezyka_lub_projektu);
    		local czy_jazyk=mw.language.isKnownLanguageTag(kod_jezyka_lub_projektu);
    		if(czy_jazyk)then 
    			kod_jezyka_koncowy=kod_jezyka_lub_projektu;
    			if(not poczatek)then
    				if(tablica_kodow)then
    					table.insert(tablica_kodow,(not informacja_jakie_kody)and kod_jezyka_koncowy or {kod_jezyka_koncowy,true,});
    				end;
    			else
    				kod_jezyka_poczatkowy=kod_jezyka_lub_projektu;
    				if(tablica_kodow)then
    					if(kod_jezyka_poczatkowy==kod_jezyka_tego_projektu)then
    						table.insert(tablica_kodow,(not informacja_jakie_kody)and kod_jezyka_poczatkowy or {kod_jezyka_poczatkowy,true,})
    					end;
    				end;
    				poczatek=false;
    			end;
    			nazwa_strony_linku=dalsza_czesc_strony_linku;
    		else
    			local czy_interwiki=interwikimap[kod_jezyka_lub_projektu];
    			if(czy_interwiki)then
	                local kod_interwiki=interwikisiostrzaneangielskie[kod_jezyka_lub_projektu];
	                if(not kod_interwiki)then
                    	kod_projektu_koncowy=kod_jezyka_lub_projektu;
                    	if(not poczatek)then
                    		if(tablica_kodow)then
                    			table.insert(tablica_kodow,(not informacja_jakie_kody) and kod_projektu_koncowy or {kod_projektu_koncowy,false,});
                    			if(kod_projektu_koncowy==kod_projektu_tego_projektu)then 
                    				if(kod_jezyka_koncowy)then
                    					for i=#tablica_kodow,1,-1 do
                    						local kod=(not informacja_jakie_kody) and tablica_kodow[i] or tablica_kodow[i][1];
                    						if((kod_jezyka_koncowy)and(kod==kod_jezyka_koncowy))then
                    							table.remove(tablica_kodow,i);
                    							table.insert(tablica_kodow,(not informacja_jakie_kody) and kod_jezyka_koncowy or {kod_jezyka_koncowy,true,});
                    							break;
                    						end;
                    						if(i==1)then
                    							table.insert(tablica_kodow,(not informacja_jakie_kody) and kod_jezyka_koncowy or {kod_jezyka_koncowy,true,});
                    							local kod=tablica_kodow[1];
                    							----
                    							kod_jezyka_poczatkowy=nil;
                    							kod_projektu_poczatkowy=kod;
                    						end;
                    					end;
                    				else
                    					table.insert(tablica_kodow,(not informacja_jakie_kody) and (kod_jezyka_tego_projektu) or {kod_jezyka_tego_projektu,true});
                    				end;
                    			end;
                    		end;
                    	else
                    		kod_projektu_poczatkowy=kod_jezyka_lub_projektu;
                    		if(tablica_kodow)then
                    			if(kod_projektu_poczatkowy==kod_projektu_tego_projektu)then
                    				table.insert(tablica_kodow,(not informacja_jakie_kody) and kod_projektu_poczatkowy or {kod_projektu_poczatkowy,false,});
                    			end;
                    		end;
                    		poczatek=false;
                    	end;
                    	nazwa_strony_linku=dalsza_czesc_strony_linku;
                    else
                    	if(interwikimap[kod_projektu_koncowy or kod_projektu_tego_projektu]~=interwikimap[kod_interwiki])then
                    		kod_projektu_koncowy=kod_interwiki;
                    		if(not poczatek)then
                    			if(tablica_kodow)then
                    				table.insert(tablica_kodow,(not informacja_jakie_kody) and kod_projektu_koncowy or {kod_projektu_koncowy,false,});
                    			end;
                    		else
                    			kod_projektu_poczatkowy=kod_jezyka_lub_projektu;
                    			poczatek=true;
                    		end;
                    		local projekty_nie_en=jezykowe_projekty[kod_projektu_koncowy];
                    		if(projekty_nie_en)then
                    			kod_jezyka_koncowy="en";
                    			if(tablica_kodow)then
                    				table.insert(tablica_kodow,(not informacja_jakie_kody) and "en" or {"en",true,});
                    			end;
                    		end;
                    	    nazwa_strony_linku=dalsza_czesc_strony_linku;
                    	else
                    		break;
                    	end;
                    end;
                else
                	break;
    			end;
    		end;
    	else
    		break;
    	end;
	end;
    return nazwa_strony_linku,kod_jezyka_koncowy,kod_projektu_koncowy, kod_jezyka_poczatkowy, kod_projektu_poczatkowy;
end;
function p.SpecjalneKodyInterwiki(kod_jezyka,kod_projektu)
	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"]();
	----
	local kod_jezyka=kod_jezyka and mw.getContentLanguage():lc(kod_jezyka) or nil;
	local kod_projektu=kod_projektu and mw.getContentLanguage():lc(kod_projektu) or nil;
	----
	local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
	local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie;
	kod_jezyka=kod_jezyka and (mw.language.isKnownLanguageTag(kod_jezyka) and kod_jezyka or kod_jezyka_tego_projektu) or kod_jezyka_tego_projektu;
	kod_projektu=kod_projektu and (interwikisiostrzaneangielskie[kod_projektu] or kod_projektu) or kod_projektu_tego_projektu;
	return kod_jezyka,kod_projektu;
end;
local function WyzyskiwanieKodow(klucz_projektu,kod_jezyka,kod_projektu)
	local parametry_modul=require("Module:Parametry");
	
	local czy_klucz_projektu=parametry_modul.CzyTak(klucz_projektu);
	local czy_kod_jezyka=parametry_modul.CzyTak(kod_jezyka);
	local czy_kod_projektu=parametry_modul.CzyTak(kod_projektu);
	
	klucz_projektu=czy_klucz_projektu and mw.getContentLanguage():lc(klucz_projektu) or nil;
	kod_jezyka=czy_kod_jezyka and mw.getContentLanguage():lc(kod_jezyka) or nil;
	kod_projektu=czy_kod_projektu and mw.getContentLanguage():lc(kod_projektu) or nil;
	
	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"]()
	
	local czy_jezyk;local czy_projekt;
	local czy_kody_nieprawidlowe;
	
	if(czy_klucz_projektu or (czy_kod_jezyka or czy_kod_projektu))then
		
		if(((czy_klucz_projektu)
			  and((klucz_projektu==kod_jezyka_tego_projektu..":"..kod_projektu_tego_projektu)
			  	or(klucz_projektu==kod_projektu_tego_projektu..":"..kod_jezyka_tego_projektu)
			  	 or(klucz_projektu==kod_jezyka_tego_projektu)
			  	  or(klucz_projektu==kod_projektu_tego_projektu)
	    ))
		or (((kod_jezyka)and((kod_jezyka=="")or(kod_jezyka==kod_jezyka_tego_projektu)))
		and ((kod_projektu)and((kod_projektu=="")or(kod_projektu==kod_projektu_tego_projektu))))
		)then
			p:UstawDaneKodyWiki(nil,kod_jezyka_tego_projektu,kod_projektu_tego_projektu,kod_jezyka_tego_projektu,kod_projektu_tego_projektu);
			
			p:UstawDaneKodyWiki(kod_jezyka_tego_projektu..":"..kod_projektu_tego_projektu,nil,nil,kod_jezyka_tego_projektu,kod_projektu_tego_projektu);
			p:UstawDaneKodyWiki(kod_projektu_tego_projektu..":"..kod_jezyka_tego_projektu,nil,nil,kod_jezyka_tego_projektu,kod_projektu_tego_projektu);
			return kod_jezyka_tego_projektu,kod_projektu_tego_projektu;
	    end;
		
		local wynik=p:OddawajDaneKodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
	
		if(type(wynik)=="table")then 
			if(wynik[4] and wynik[5])then 
				 return wynik[4],wynik[5];
			else
			     return (wynik[4] or kod_jezyka_tego_projektu), (wynik[5] or kod_projektu_tego_projektu),true;
			end;
		end;
	else
		if((not czy_klucz_projektu)and((not czy_kod_jezyka) and (not czy_kod_projektu)))then
			local pudelko_modul=require("Module:Pudełko");
			
			p:UstawDaneKodyWiki(nil,kod_jezyka_tego_projektu,kod_projektu_tego_projektu,kod_jezyka_tego_projektu,kod_projektu_tego_projektu);
			
			p:UstawDaneKodyWiki(kod_jezyka_tego_projektu..":"..kod_projektu_tego_projektu,nil,nil,kod_jezyka_tego_projektu,kod_projektu_tego_projektu);
			p:UstawDaneKodyWiki(kod_projektu_tego_projektu..":"..kod_jezyka_tego_projektu,nil,nil,kod_jezyka_tego_projektu,kod_projektu_tego_projektu);
			
			return kod_jezyka_tego_projektu,kod_projektu_tego_projektu;
		end;
	end;
	
	if(czy_klucz_projektu)then
    	local nazwa_strony,kod_jezyka_koncowy,kod_projektu_koncowy,kod_jezyka_poczatkowy,kod_projektu_poczatkowy=p.KodyNazwyStrony(klucz_projektu..":Main Page");
    
		czy_kody_nieprawidlowe=(nazwa_strony~="Main Page");
		if(not czy_kody_nieprawidlowe)then
			 kod_jezyka_koncowy,kod_projektu_koncowy=p.SpecjalneKodyInterwiki(kod_jezyka_koncowy,kod_projektu_koncowy);
		end;
    
    	czy_jezyk=(not czy_kody_nieprawidlowe) and (kod_jezyka_koncowy or kod_jezyka_tego_projektu) or kod_jezyka_koncowy;
                    	   
    	local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
		local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie;                	   
	
    	czy_projekt=(not czy_kody_nieprawidlowe) and (kod_projektu_koncowy or kod_projektu_tego_projektu) or kod_projektu_koncowy;
    	
    	p:UstawDaneKodyWiki(nil,kod_jezyka_koncowy,kod_projektu_koncowy,czy_jezyk,czy_projekt);
    	p:UstawDaneKodyWiki(klucz_projektu,nil,nil,czy_jezyk,czy_projekt);
	elseif((czy_kod_jezyka)or(czy_kod_projektu))then
    	if(czy_kod_jezyka)then
    		czy_jezyk=mw.language.isKnownLanguageTag(kod_jezyka) and kod_jezyka or nil;
    		if(not czy_jezyk)then czy_kody_nieprawidlowe=true;end;
    	else
    		czy_jezyk=kod_jezyka_tego_projektu;
    	end;
    	if(czy_kod_projektu)then
    		local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
			local interwikisiostrzaneangielskie=wiki_interwiki_modul.tablica_interwiki_siostrzane_angielskie;
			local interwikimap=wiki_interwiki_modul.interwikimap;
    		czy_projekt=interwikisiostrzaneangielskie[kod_projektu] or kod_projektu;
    		czy_projekt=interwikimap[czy_projekt] and czy_projekt or nil;
    		if(not czy_projekt)then czy_kody_nieprawidlowe=true;end;
    	else
    		czy_projekt=kod_projektu_tego_projektu;
    	end;
    	p:UstawDaneKodyWiki(nil,kod_jezyka,kod_projektu,czy_jezyk,czy_projekt);
    else
    	czy_jezyk=kod_jezyka_tego_projektu;
    	czy_projekt=kod_projektu_tego_projektu;
    end;
    
    czy_jezyk=czy_jezyk or kod_jezyka_tego_projektu;
    czy_projekt=czy_projekt or kod_projektu_tego_projektu;
    
    return czy_jezyk,czy_projekt,czy_kody_nieprawidlowe;
end;
function p.KluczProjektu(klucz_projektu) 
    local kod_jezyka_koncowy,kod_projektu_koncowy,czy_kody_nieprawidlowe=WyzyskiwanieKodow(klucz_projektu,nil,nil);
    return kod_jezyka_koncowy,kod_projektu_koncowy,czy_kody_nieprawidlowe;
end;
function p.KodyGeneruj(kod_jezyka,kod_projektu)
    local kod_jezyka_koncowy,kod_projektu_koncowy,czy_kody_nieprawidlowe=WyzyskiwanieKodow(nil,kod_jezyka,kod_projektu);
    return kod_jezyka_koncowy,kod_projektu_koncowy,czy_kody_nieprawidlowe;
end;
function p.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu)
  local parametry_modul=require("Module:Parametry");
  local kod_jezyka2;local kod_projektu2;
  local czy_kody_nieprawidlowe;
  if(parametry_modul.CzyTak(klucz_projektu))then
		kod_jezyka2,kod_projektu2,czy_kody_nieprawidlowe=p.KluczProjektu(klucz_projektu);
		if((czy_kody_nieprawidlowe)and((kod_jezyka)or(kod_projektu)))then
			kod_jezyka2,kod_projektu2,czy_kody_nieprawidlowe=p.KodyGeneruj(kod_jezyka,kod_projektu);
		end;
  else
		kod_jezyka2,kod_projektu2,czy_kody_nieprawidlowe=p.KodyGeneruj(kod_jezyka,kod_projektu);
  end;
  return kod_jezyka2,kod_projektu2,czy_kody_nieprawidlowe;
end;
function p.KluczProjektuWiki(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local kod_jezyka,kod_projektu=p.KodyWiki(args["klucz projektu"],args["kod języka"],args["kod projektu"]);
	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
		return kod_jezyka..":"..kod_projektu;
	elseif(kod_jezyka~=kod_jezyka_tego_projektu)then
		return kod_jezyka;
	elseif(kod_projektu~=kod_projektu_tego_projektu)then
		return kod_projektu;
	else
		return "";
	end;
end;
p["KodJęzykaWiki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local wiki_modul=require("Module:Wiki");
	local kod_jezyka,_=p.KodyWiki(args["klucz projektu"],args["kod języka"],args["kod projektu"]);
	return kod_jezyka;
end;
p["KodProjektuWiki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local wiki_modul=require("Module:Wiki");
	local _,kod_projektu=p.KodyWiki(args["klucz projektu"],args["kod języka"],args["kod projektu"]);
	return kod_projektu;
end;
function p.WikidaneIdWiki(frame)
    local parametry_modul=require("Module:Parametry");
    local args=parametry_modul.PobierzArgsParametry(frame);

   	local klucz_projektu=args["klucz projektu"];
	local kod_jezyka=args["kod języka"];
	local kod_projektu=args["kod projektu"];
		
   	kod_jezyka,kod_projektu=p.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
    local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki").tablica_kody_projektu_wikidane;
    local pudelko_modul=require("Module:Pudełko");
    local parametry_modul=require("Module:Parametry");
	if(not parametry_modul.CzyTak(kod_jezyka))then kod_jezyka=pudelko_modul["Kod języka tego projektu"]();end;
	if(not parametry_modul.CzyTak(kod_projektu))then kod_projektu=pudelko_modul["Kod projektu tego projektu"]();end;
	
    local kod_projektu_identyfikatora_projektu_11=wiki_interwiki_modul.lingwistyczne[kod_projektu];    
    local kod_projektu_identyfikatora_projektu_12=wiki_interwiki_modul.specjalistyczne[kod_projektu];
    
    local czy_wspierany=mw.language.isKnownLanguageTag(kod_jezyka);
    if(czy_wspierany)then
    	if(kod_projektu_identyfikatora_projektu_11)then 
    		return kod_jezyka..kod_projektu_identyfikatora_projektu_11;
    	elseif(kod_projektu_identyfikatora_projektu_12) then
     		return kod_projektu_identyfikatora_projektu_12;
    	else 
     		return nil;
    	end;
    else
    	return nil;
    end;
end;
function p.WikidaneOdpowiednikStrony(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	
	local nazwa_strony=args["nazwa strony"];
	local kod_jezyka=args["kod języka"];
	local kod_projektu=args["kod projektu"];
	local klucz_projektu=args["klucz projektu"];
	local kod_jezyka_baza=args["kod języka bazy"];
	local kod_projektu_baza=args["kod projektu bazy"];
    local klucz_projektu_baza=args["klucz projektu bazy"];
	    
	local identyfikator_projektu_globalnej_danej_wiki=p.WikidaneIdWiki{
		                     ["klucz projektu"]=klucz_projektu_baza,
		                     ["kod języka"]=kod_jezyka_baza,
		                     ["kod projektu"]=kod_projektu_baza,
	};
	if(not identyfikator_projektu_globalnej_danej_wiki)then identyfikator_projektu_globalnej_danej_wiki=mw.wikibase.getGlobalSiteId();end;
	local identyfikator_strony=mw.wikibase.getEntityIdForTitle(nazwa_strony,identyfikator_projektu_globalnej_danej_wiki);
	if(not identyfikator_strony)then return nil;end;
	local identyfikator_projektu_globalnej_danej_wiki_2=p.WikidaneIdWiki{
		                    ["klucz projektu"]=klucz_projektu,
		                    ["kod języka"]=kod_jezyka,
		                    ["kod projektu"]=kod_projektu,
	};
	if(not identyfikator_projektu_globalnej_danej_wiki_2)then return;end;
    local odpowiednik=mw.wikibase.getSitelink(identyfikator_strony,identyfikator_projektu_globalnej_danej_wiki_2);
    if(odpowiednik)then
    	local odpowiednik_strony_danej_wiki_na_innej_wiki,_=mw.ustring.gsub(odpowiednik,"[_%s]+"," ");
    	return odpowiednik_strony_danej_wiki_na_innej_wiki;
    else
        return nil
    end;
end;
function p.CzyIstniejeDanaWiki(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local klucz_projektu=args["klucz projektu"];
	local kod_jezyka=args["kod języka"];
	local kod_projektu=args["kod projektu"];
	local kod_jezyka,kod_projektu=p.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
	if(kod_jezyka and kod_projektu)then
		return p.WikidaneIdWiki{["klucz projektu"]=klucz_projektu,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
	else
		return;
	end;
end;
function p.KodyKlasStronyNaDanejWiki(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	local html_modul=require("Module:Html");
	local strona=html_modul.DecodeHtml(args["strona"]);
	local czy_url=parametry_modul.CzyTak(args["url"]);
	if(czy_url)then
		local hash=args["nagłówek"];
		if(parametry_modul.CzyTak(hash))then
			return "sun";
		else
			return "su";
		end;
	end;
	local nazwy_modul=require("Module:Nazwy");
	local parametry_modul=require("Module:Parametry")
	local idwiki=p.CzyIstniejeDanaWiki(frame);
	local klucz_projektu=args["klucz projektu"];
	local kod_jezyka=args["kod języka"];
	local kod_projektu=args["kod projektu"];
	local hash=args["nagłówek"];
	local parametry=args["parametry"];
	local aktywny=args["aktywny"];
    local kod_jezyka,kod_projektu=p.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
	local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki");
	local function CzyParametryLinku(kod)
		if(parametry_modul.CzyTak(parametry))then
			return kod.."p";
		else
			return kod;
		end;
	end;
	if (not idwiki)then 
		if(wiki_interwiki_modul.tablica_nowiki_data[kod_projektu])then
			if(not parametry_modul.CzyTak(hash))then
				return CzyParametryLinku("ipw");
			else
				return CzyParametryLinku("inpw");
			end;
		end;
		return CzyParametryLinku("dwni");
	end;
	if(idwiki=="plwikibooks")then
		strona=nazwy_modul["PEŁNANAZWASTRONY"](strona)
		local wikidane_modul=require("Module:Wikidane");
		local id=wikidane_modul.id{args={["idwiki"]=idwiki,[1]=strona}};
		local title=mw.title.getCurrentTitle();
		if(strona==title.fullText)then 
			if(not parametry_modul.CzyTak(hash))then
				return CzyParametryLinku((not id)and ((aktywny) and "wash" or "was") or ((aktywny) and "washew" or "wasew"));
			else
				return CzyParametryLinku((not id)and "wasn" or "wasnew");
			end;
		end;
		local title=mw.title.makeTitle('',strona);
		local czy_istnieje=title and (title:getContent() or title.exists) or nil;
		if(czy_istnieje)then
			if(not parametry_modul.CzyTak(hash))then
				return CzyParametryLinku((not id)and "iw" or "iwew");
			else
				return CzyParametryLinku((not id)and "inw" or "inwew");
			end;
		else
			if(not parametry_modul.CzyTak(hash))then
				return CzyParametryLinku("niw");
			else
				return CzyParametryLinku("ninw");
			end;
		end;
	else
		strona=nazwy_modul["PEŁNANAZWASTRONY"]{[1]=strona,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,}
		local wikidane_modul=require("Module:Wikidane");
		local id=wikidane_modul.id{args={["idwiki"]=idwiki,[1]=strona}};
		if(id)then
			if(not parametry_modul.CzyTak(hash))then
				return CzyParametryLinku("iew");
			else
				return CzyParametryLinku("inew");
			end;
		else
			if(not parametry_modul.CzyTak(hash))then
				return CzyParametryLinku("niew");
			else
				return CzyParametryLinku("ninew");
			end;
		end;
	end;
end;
p["CzyBieżącaWiki"]=function(frame)
	local parametry_modul=require("Module:Parametry");
	local args=parametry_modul.PobierzArgsParametry(frame);
	
	local klucz_projektu=args["klucz projektu"];
	local kod_jezyka=args["kod języka"];
	local kod_projektu=args["kod projektu"];
	
	if(not klucz_projektu and not kod_jezyka and not kod_projektu)then return "tak";end;
	
	local wiki_modul=require("Module:Wiki");
	local parametry_modul=require("Module:Parametry");
	local kod_jezyka,kod_projektu=wiki_modul.KodyWiki(klucz_projektu,kod_jezyka,kod_projektu);
	if(not kod_jezyka and not kod_projektu)then return true;end;
	local pudelko_modul=require("Module:Pudełko");
	local kod_jezyka_pl=pudelko_modul["Kod języka tego projektu"]();
	local kod_projektu_lokalne=pudelko_modul["Kod projektu tego projektu"]();
	if((kod_jezyka==kod_jezyka_pl)and(kod_projektu==kod_projektu_lokalne))then
		return "tak";
	end;
	return;
end;
return p;