Moduł:Pudełko/Potrzebne

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [stwórz] [odśwież]
local p={}
function p.Problemy_kontenerowe_szablonowe(frame, kod_liczbowy_przestrzeni_nazw)
  	local pf=frame:getParent();
  	local parametry_modul=require("Module:Parametry");
  	local zkategoria=not parametry_modul.CzyTak(frame.args["bez kategorii"] or pf.args["bez kategorii"]);
    local brudnopis_wikibooks=parametry_modul.CzyTak(frame.args["obsługiwany brudnopis projektu"]);
	local brudnopis_modul=parametry_modul.CzyTak(frame.args["obsługiwany brudnopis modułu"]);
	local brudnopis_szablon=parametry_modul.CzyTak(frame.args["obsługiwany brudnopis szablonu"]);
	local nieobslugiwane_strony_glowne=parametry_modul.CzyTak(frame.args["nieobsługiwane strony główne"]);
	
	local nieobslugiwane_strony_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony szablonów"]);
	local nieobslugiwane_strony_opisu_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony opisu szablonów"]);
	local nieobslugiwane_strony_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony modułów"]);
	local nieobslugiwane_strony_opisu_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony opisu szablonów"]);
	
	local nieobslugiwane_strony_brudnopisu_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony brudnopisu szablonów"]);
	local nieobslugiwane_strony_brudnopisu_opisu_szablonow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony brudnopisu opisu szablonów"]);
	local nieobslugiwane_strony_brudnopisu_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strony brudnopisu modułów"]);
	local nieobslugiwane_strony_brudnopisu_opisu_modulow=parametry_modul.CzyTak(frame.args["nieobsługiwane strona brudnopisu opisu modułów"]);
	
	local nieobslugiwane_strony_jednostek_programowych=parametry_modul.CzyTak(frame.args["nieobsługiwane strony jednostek programowych"]);
	local nieobslugiwane_strony_opisu_jednostek_programowych=parametry_modul.CzyTak(frame.args["nieobsługiwane strony opisu jednostek programowych"]);
	
	local nieobslugiwana_strony_glowne_uzytkownikow=nieobslugiwane_strony_glowne or parametry_modul.CzyTak(frame.args["nieobsługiwane strony główne użytkowników"]);
    local nieobslugiwana_strona_glowna_projektu=nieobslugiwane_strony_glowne or parametry_modul.CzyTak(frame.args["nieobsługiwana strona główna projektu"]);
	local nieobslugiwana_strona_glowna_dla_dzieci=nieobslugiwane_strony_glowne or parametry_modul.CzyTak(frame.args["nieobsługiwana strona główna dla dzieci"]);
	
	local obslugiwane_niebiezace_wiki=parametry_modul.CzyTak(frame.args["obsługiwane niebieżące wiki"]);
	local nieobslugiwane_polskie_wiki=parametry_modul.CzyTak(frame.args["nieobsługiwane polskie wiki"]);
	local nieobslugiwane_lokalne_wiki=parametry_modul.CzyTak(frame.args["nieobsługiwane lokalne wiki"]);
	
	local podkategoria_niebiezace_wiki;
	local wskazuje_wiki;
	local nazwij_jednostka=parametry_modul.CzyTak(frame.args["nazwij jednostką"] or pf.args["nazwij jednostką"]);
	local wylocz_niezaleznosc_od_nazwij_jednostka=parametry_modul.CzyTak(frame.args["wyłącz niezależność od nazwij jednostką"]);
	local w_user_jako_strony_uzykownika=parametry_modul.CzyTak(frame.args["obsługiwane jednostki użytkownika jako normalne strony"]);
	
	local pudelko_modul=require("Module:Pudełko");
  	local lancuch_bledow={};
  	local tablica_lancuch_kategorii_bledow={};
  	local czy_ze_szczegolami=not parametry_modul.CzyTak(frame.args["bez szczegółów"] or pf.args["bez szczegółów"]);
  	local wiki_modul=require("Module:Wiki");
  	local kod_jezyka_tego_projektu;
  	local kod_projektu_tego_projektu;
  	local pudelko_modul=require("Module:Pudełko");
  	local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne");
  	
  	function AnalizujDane(i)
  		local kod_jezyka;local kod_projektu;
  		if(obslugiwane_niebiezace_wiki or nieobslugiwane_polskie_wiki or nieobslugiwane_lokalne_wiki)then
  	         kod_jezyka,kod_projektu=pudelko_pomocne_modul.Wikikody_kontenera(frame,i);
  	    else
  	    	kod_jezyka=pudelko_modul["Kod języka tego projektu"]();
  	    	kod_projektu=pudelko_modul["Kod projektu tego projektu"]();
  	    end;
  	    if(i>0)then
  	    	if(obslugiwane_niebiezace_wiki or nieobslugiwane_polskie_wiki or nieobslugiwane_lokalne_wiki)then
  	    		local klucz_projektu2=pudelko_pomocne_modul.Klucz_projektu(frame,i);
  	    		local kod_jezyka2=pudelko_pomocne_modul.Kod_jezyka(frame,i);
  	    		local kod_projektu2=pudelko_pomocne_modul.Kod_projektu(frame,i);
  	    		podkategoria_niebiezace_wiki=podkategoria_niebiezace_wiki 
  	    		                    or (obslugiwane_niebiezace_wiki and "bieżące wiki"
  	                                    or ((nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki)
  	    		                           and "polskie lub lokalne, wiki" 
  	    		                           or ((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki)
  	    		                                     and "polskie wiki" or "lokalne wiki"
  	    		                               ) or nil));
	            wskazuje_wiki=wskazuje_wiki 
	                                  or (obslugiwane_niebiezace_wiki and "niebieżący"
	                                  or ((nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki)
  	    		                           and "niepolski i nielokalny" 
  	    		                           or ((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki)
  	    		                                      and "niepolski" or "nielokalny"
  	    		                               ) or nil));
  	    		if(not(klucz_projektu2 or kod_jezyka2 or kod_projektu2))then
  	    			if((obslugiwane_niebiezace_wiki)or(nieobslugiwane_polskie_wiki)or(nieobslugiwane_lokalne_wiki))then
  	    				if(czy_ze_szczegolami)then
  	    					table.insert(lancuch_bledow,"<li>Nie podano, które wiki ma osbługiwać, dla zmiennych o numerze "..i..".</li>");
  	    					if(zkategoria)then
  								parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - "..podkategoria_niebiezace_wiki);
  	    					end; 
  							return;
  	    				else
  	    			    	return "tak";
  	    				end;
  	    			end;
  	    		else
  	    			local wynik=wiki_modul:OddawajDaneKodyWiki(klucz_projektu2,kod_jezyka2,kod_projektu2);
  	    			if((type(wynik)=="table") and (wynik[4]) and (wynik[5])) then
  	    				if((obslugiwane_niebiezace_wiki)or(nieobslugiwane_polskie_wiki)or(nieobslugiwane_lokalne_wiki))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(parametry_modul.CzyTak(klucz_projektu2))then
  	    		  				if((kod_jezyka)and(kod_projektu))then
  	    		  					if(kod_jezyka==kod_jezyka_tego_projektu)and(kod_projektu==kod_projektu_tego_projektu)then
  	    		  						table.insert(lancuch_bledow,"<li>Podany klucz projektu, a w nim: kod języka i kod projektu, nie wskazują na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
  	    		  						--projekt_lokalny_lub_polski_kategorie(podkategoria_niebiezace_wiki);
  	    		  						if(czy_ze_szczegolami)then
  											if(zkategoria)then
  												parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - "..podkategoria_niebiezace_wiki);
  											end; 
  	    								else
  	    		  							return "tak";
  	    								end;
  	    		  					elseif((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki) or (nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki))and(kod_jezyka==kod_jezyka_tego_projektu)then
      		  		    	    			table.insert(lancuch_bledow,"<li>Podany klucz projektu: a w nim: kod języka, nie wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
  		  									if(czy_ze_szczegolami)then
  												if(zkategoria)then
  													parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - "..podkategoria_niebiezace_wiki);
  												end; 
  	    									else
  	    		  								return "tak";
  	    									end;
  	    		  					elseif(((not nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)or(nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki))and(kod_projektu==kod_projektu_tego_projektu))then
      		  		    	    			table.insert(lancuch_bledow,"<li>Podany klucz projektu: a w nim: kod projektu, nie wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
      		  		    	    			if(czy_ze_szczegolami)then
  												if(zkategoria)then
  													parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - "..podkategoria_niebiezace_wiki);
  												end; 
  	    									else
  	    		  								return "tak";
  	    									end;
      		  		    	    	end;
      		  					end;
  	    		  			else
  	    		  				if (kod_jezyka2 and kod_projektu2 
  	    		  					and ((((kod_jezyka2==kod_jezyka_tego_projektu)and(kod_projektu2~=kod_projektu_tego_projektu))
  	    		  					        	or(((not nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)
  	    		  					        		or(nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki))and(kod_jezyka2~=kod_jezyka_tego_projektu)and(kod_projektu2==kod_projektu_tego_projektu))
  	    		  					        	or(((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)
  	    		  					        		or(nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)
  	    		  					        		or obslugiwane_niebiezace_wiki)and(kod_jezyka2==kod_jezyka_tego_projektu)and(kod_projektu2==kod_projektu_tego_projektu))
  	    		  					       )
  	    		  					      or(((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)or(nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki))
  	    		  					        and(kod_jezyka2==kod_jezyka_tego_projektu))
  	    		  					       or(((not nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)or(nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki))
  	    		  					        and(kod_projektu2==kod_projektu_tego_projektu))
  	    		  				    ))then
  	    		  					   table.insert(lancuch_bledow,"<li>Podany: kod języka i kod projektu, nie wskazują na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
  	    		  					   if(czy_ze_szczegolami)then
  											if(zkategoria)then
  												parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - "..podkategoria_niebiezace_wiki);
  											end; 
  	    								else
  	    		  							return "tak";
  	    								end;
  	    		  				    elseif((kod_jezyka2 and not kod_projektu2) and ((((nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)or obslugiwane_niebiezace_wiki)and (kod_jezyka2==kod_jezyka_tego_projektu))or(not nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)or(nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)))
      		  					    then
      		  		    	    	   table.insert(lancuch_bledow,"<li>Podany kod języka nie wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
      		  		    	    	   if(czy_ze_szczegolami)then
  											if(zkategoria)then
  												parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - "..podkategoria_niebiezace_wiki);
  											end; 
  	    								else
  	    		  							return "tak";
  	    								end;
      		  					    elseif((not kod_jezyka2 and kod_projektu2)and 
  		  		    	    	          (((((not nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)or obslugiwane_niebiezace_wiki))and (kod_projektu2==kod_projektu_tego_projektu))or(nieobslugiwane_polskie_wiki and not nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)or(nieobslugiwane_polskie_wiki and nieobslugiwane_lokalne_wiki and not obslugiwane_niebiezace_wiki)))
  		  		    	    	    then
      		  		    	    	   table.insert(lancuch_bledow,"<li>Podany kod projektu nie wskazuje na projekt "..wskazuje_wiki..", dla zmiennych o numerze "..i..".</li>");
      		  		    	    	   if(czy_ze_szczegolami)then
  											if(zkategoria)then
  												parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - "..podkategoria_niebiezace_wiki);
  											end; 
  	    								else
  	    		  							return "tak";
  	    								end;
      		  		    	    end;
  	    		  			end;
  	    				end;
  	    			else
  	    				if(czy_ze_szczegolami)then
  	    					if(wynik[1])then
  	    						table.insert(lancuch_bledow,"<li>Podany klucz projektu, jest błędny, dla zmiennych o numerze "..i..".</li>");
  	    					elseif(not wynik[4] and not wynik[5])then
  	    						table.insert(lancuch_bledow,"<li>Podany: kod języka i kod projektu, są błędne, dla zmiennych o numerze "..i..".</li>");
  	    					elseif(not wynik[4])then
  	    						table.insert(lancuch_bledow,"<li>Podany kod języka, jest błędny, dla zmiennych o numerze "..i..".</li>");
  	    					elseif(not wynik[5])then
  	    						 table.insert(lancuch_bledow,"<li>Podany kod projektu, jest błędny, dla zmiennych o numerze "..i..".</li>");
  	    					end;
  	    					if(zkategoria)then
  								parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - błędne parametry wiki");
  							end; 
  	    				else
  	    					return "tak";
  	    				end;
  	    			end;
  	    		end;
  	    	end;
  	    end;
  	    local obslugiwane1=pudelko_pomocne_modul.Czy_przestrzen_nazw_jest_obslugiwana(frame,"Template",kod_jezyka,kod_projektu);
    	local obslugiwane2=pudelko_pomocne_modul.Czy_przestrzen_nazw_jest_obslugiwana(frame,"Module",kod_jezyka,kod_projektu);
    	
  		local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,kod_liczbowy_przestrzeni_nazw,i)
  		local nazwy_modul=require("Module:Nazwy");
  		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
  			if((i==0)or ((i>0)and pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_dodatkowe(frame,i)))then
  				if(czy_ze_szczegolami)then
  						table.insert(lancuch_bledow,(i==0)
  							and "<li>Wartość, nazwy przestrzeni nazw, dla korzystanej jednostki jest nieprawidłowa.</li>"
  							or "<li>Wartość, nazwy przestrzeni nazw, dla zmiennych o numerze "..i.." jest nieprawidłowa.</li>"
  	        				);
  					if(zkategoria)then
  						parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa przestrzeni nazw");
  					end; 
  				else
  					return "tak";
  				end;
  			end;
  		end;
  		if(nazwa_jednostki=="")then
  				if(czy_ze_szczegolami)then
  	 				table.insert(lancuch_bledow,(i==0)
  	 					and"<li>Wartość, nazwy jednostki, dla korzystanej jednostki jest pusta.</li>"
  	 					or"<li>Wartość, nazwy jednostki, dla zmiennych o numerze "..i.." jest pusta.</li>"
  	 					);
  	 				if(zkategoria)then
  						parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - pusta nazwa jednostki");
  	 				end; 
  	 			else
  	 				return "tak";
  				end;
		end;
		local mo, norm_przed_lub_dyskusji;
    	if(czy_blad_nazwa_przestrzeni_nazw)then
    		if(nazwa_jednostki~="")then
    			mo=(not nieprawidlowa_niepusta_pelna_nazwa_jednostki)and pudelko_pomocne_modul.Typ_jednostki(frame, kod_liczbowy_przestrzeni_nazw,i) or nil;
    		end;
    		norm_przed_lub_dyskusji=pudelko_pomocne_modul.Normalna_przedmiotowa_lub_dyskusji_nazwa_przestrzeni_nazw(czy_blad_nazwa_przestrzeni_nazw, kod_liczbowy_przestrzeni_nazw) or nil;
    	end;
		if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~=""))then
			if((i==0)or ((i>0)and pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_dodatkowe(frame,i)))then
				    local obslugiwane=czy_blad_nazwa_przestrzeni_nazw and pudelko_pomocne_modul.Czy_przestrzen_nazw_jest_obslugiwana(frame,czy_blad_nazwa_przestrzeni_nazw,kod_jezyka,kod_projektu);
    				if((not obslugiwane)and((not mo)or(not(((czy_blad_nazwa_przestrzeni_nazw=="Project")and(brudnopis_wikibooks
    					  and(((mo=="jednostka brudnopisu projektu")or(mo=="strona brudnopisu projektu")or(mo=="podręcznik brudnopisu projektu")or(mo=="artykuł brudnopisu projektu"))or(parametry_modul.CzyTak(nazwa_jednostki)and(mw.ustring.match(nazwa_jednostki,"^[Bb]rudnopis/.*"))))))
  			                   or((czy_blad_nazwa_przestrzeni_nazw=="Template")and(parametry_modul.CzyTak(brudnopis_szablon)
  			                   	and(((mo=="strona brudnopisu szablonu")or(mo=="strona brudnopisu opisu szablonu"))or(parametry_modul.CzyTak(nazwa_jednostki)and(mw.ustring.match(nazwa_jednostki,"^[Bb]rudnopis/.*"))))))
  			                      or((czy_blad_nazwa_przestrzeni_nazw=="Module")and(parametry_modul.CzyTak(brudnopis_modul)
  			                      	and(((mo=="strona brudnopisu modułu")or(mo=="strona brudnopisu opisu modułu"))or(parametry_modul.CzyTak(nazwa_jednostki)and(mw.ustring.match(nazwa_jednostki,"^[Bb]rudnopis/.*")))))))))
    				)then
  						if(czy_ze_szczegolami)then
     						table.insert(lancuch_bledow,
     							(i==0)and"<li>Szablon wartości, nazwy przestrzeni nazw, dla korzystanej jednostki nie obsługuje.</li>"
     				    		or"<li>Szablon wartości, nazwy przestrzeni nazw, dla zmiennych o numerze "..i.." nie obsługuje.</li>"
     	        			);
     						if(zkategoria)then
  								parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana przestrzeń nazw");
     						end; 
     					else
     						return "tak";
  						end;
					end;
			end;
	   end;
       local nieprawidlowa_niepusta_pelna_nazwa_jednostki=false;
       if(czy_blad_nazwa_przestrzeni_nazw and nazwa_jednostki~="")then
     		nieprawidlowa_niepusta_pelna_nazwa_jednostki=pudelko_modul.CzyNiepoprawnaNazwa(((parametry_modul.CzyTak(czy_blad_nazwa_przestrzeni_nazw))and czy_blad_nazwa_przestrzeni_nazw..":" or "")..nazwa_jednostki);
     		if(nieprawidlowa_niepusta_pelna_nazwa_jednostki)then
  				if(czy_ze_szczegolami)then
        			table.insert(lancuch_bledow,
        				(i==0)and"<li>Wartość, nazwy jednostki, dla korzystanej jednostki jest nieprawidłowa.</li>"
        				      or"<li>Wartość, nazwy jednostki, dla zmiennych o numerze "..i.." jest nieprawidłowa.</li>"
        				);
     				if(zkategoria)then
  						 parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa jednostki");
     				end; 
  				else
  					return "tak";
  				end;
  			end;
  		end;
  		if(czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")then
    		if((not nieprawidlowa_niepusta_pelna_nazwa_jednostki)and((czy_blad_nazwa_przestrzeni_nazw=="")and(nazwa_jednostki~="")))then
     			local nazwy_modul=require("Module:Nazwy");
     			local nowa_nazwa_przestrzeni_nazw=nazwy_modul["NAZWAPRZESTRZENI"]{nazwa=nazwa_jednostki,["kod języka"]=kod_jezyka,["kod projektu"]=kod_projektu,};
     			if(nowa_nazwa_przestrzeni_nazw~="")then
  					if(czy_ze_szczegolami)then
     	  					 table.insert(lancuch_bledow,
     	  			 			(i==0)and"<li>Zmienna <code>nazwa jednostki</code> zawiera w sobie przestrzeń.</li>"
     	  			 	    	  or"<li>Zmienna nienazwana "..i.." zawiera w sobie przestrzeń.</li>"
     	  					);
     	  				if(zkategoria)then
  			    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nazwa jednostki zawierająca w sobie przestrzeń");
     	  				end; 
     	  			else
     	  				return "tak";
  	    			end;
     			end;
    		end;
    	end;
    	if((obslugiwane1)and(mo)and(mo=="strona szablonu")and((nieobslugiwane_strony_szablonow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona szablonu");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((obslugiwane1)and(mo)and(mo=="strona opisu szablonu")and((nieobslugiwane_strony_opisu_szablonow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  					 (i==0)and"<li>Strona opisu szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona opisu szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  					);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona opisu szablonu");
     	  			end;	 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((obslugiwane2)and(mo)and(mo=="strona modułu")and((nieobslugiwane_strony_modulow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona modułu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona modułu");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((obslugiwane2)and(mo)and(mo=="strona opisu modułu")and((nieobslugiwane_strony_opisu_modulow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  					 (i==0)and"<li>Strona opisu modułu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona opisu modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona opisu modułu");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;    	
    	if((mo)and(mo=="strona brudnopisu szablonu")and((nieobslugiwane_strony_brudnopisu_szablonow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    			parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu szablonu");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((mo)and(mo=="strona brudnopisu opisu szablonu")and((nieobslugiwane_strony_brudnopisu_opisu_szablonow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu opisu szablonu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu opisu szablonu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    		parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu opisu szablonu");
     	  			end; 
  	    		else
  	    			return "tak";
  	    		end;
    	end;
    	if((mo)and(mo=="strona brudnopisu modułu")and((nieobslugiwane_strony_brudnopisu_modulow)or (nieobslugiwane_strony_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu modulu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    			parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu modułu");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;
    	if((mo)and(mo=="strona brudnopisu opisu modułu")and((nieobslugiwane_strony_brudnopisu_opisu_modulow)or (nieobslugiwane_strony_opisu_jednostek_programowych)))then
  				if(czy_ze_szczegolami)then
    				table.insert(lancuch_bledow,
     	  				 (i==0)and"<li>Strona brudnopisu opisu modułu jest nieobsługiwana.</li>"
     	  			 	    	  or"<li>Strona brudnopisu opisu modułu wskazującego na zmienną "..i.." jest nieobsługiwana.</li>"
     	  				);
     	  			if(zkategoria)then
  			    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona brudnopisu opisu modułu");
     	  			end; 
     	  		else
     	  			return "tak";
  	    		end;
    	end;    	    	
    	if(((i>0)and(frame.args["strona główna projektu "..i] or pf.args["strona główna projektu "..i]))
    		     or ((i==0)and(frame.args["strona główna projektu"] or pf.args["strona główna projektu"])))then
    		local projekt=pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_ze_zmiennej(frame,i,kod_jezyka,kod_projektu);
    		local nazwa_strony_glownej_projektu_z_wikidanych=pudelko_pomocne_modul.Nazwa_strony_bazowej_projektu_z_wikidanych(kod_jezyka,kod_projektu);
    	    projekt=(not projekt)and nazwa_strony_glownej_projektu_z_wikidanych or projekt;
    	    local dowolna_nazwa_strony_glownej_projektu=parametry_modul.CzyTak(frame.args["dowolna nazwa strony głównej projektu"]);
    	    if(projekt)then
    			if(projekt=="")then
  					if(czy_ze_szczegolami)then
     					table.insert(lancuch_bledow,
     				      (i==0)and"<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu</code> jest pusta.</li>"
     						    or "<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu .."..i.."</code> jest pusta.</li>"
     						);
     					if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - pusta nazwa strony głównej projektu");
     					end; 
  					else
  						return "tak";
  					end;
    			elseif((not dowolna_nazwa_strony_glownej_projektu)and(not mw.ustring.match(projekt,"^[^/]+$")))then
  					if(czy_ze_szczegolami)then
 	    	    		table.insert(lancuch_bledow,
 	    	    			(i==0)and"<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu</code> zawiera prawe ukośniki.</li>"
     						      or "<li>Wartość nazwy, strony głównej projektu, dla zmiennej <code>strona główna projektu "..i.."</code> zawiera prawe ukośniki</li>"
     						 );
     	    			if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej projektu");
     	    			end; 
     	    		else
     	    			return "tak";
  					end;
  				elseif(pudelko_modul.CzyNiepoprawnaNazwa(projekt))then
  					if(czy_ze_szczegolami)then
 	    	    		table.insert(lancuch_bledow,
 	    	    			(i==0)and"<li>Wartość nazwy, strony głównej projektu, w zmiennej <code>strona główna projektu</code> ma nazwę niepustą nieprawidłową.</li>"
     						      or "<li>Wartość nazwy, strony głównej projektu, w zmiennej <code>strona główna projektu "..i.."</code> ma nazwę niepustą nieprawidłową.</li>"
     							 );
     	    			if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej projektu");
     	    			end;   				
     	    		else
     	    			return "tak";
     	    		end;
  				end;
			end;
		end;
		local typ=frame.args["typ jednostki"..((i)and((i~=0))and (" "..i) or "")] or pf.args["typ jednostki"..((i)and((i~=0))and (" "..i) or "")];
		if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")and(not nieprawidlowa_niepusta_pelna_nazwa_jednostki))then
    		if(nieobslugiwana_strona_glowna_projektu)then
    			if(mo=="strona główna projektu")then
  					if(czy_ze_szczegolami)then
    				   if(typ~="strona główna projektu")then
    							table.insert(lancuch_bledow,
    										(i==0)and"<li>Wstawiono szablon na stronę główną projektu.</li>"
     						            			or ((frame.args["strona główna projektu "..i] 
                                            			or pf.args["strona główna projektu "..i])and"<li>Szablon, wskazuje na stronę główna projektu, według zmiennej <code>strona główna projektu "..i.."</code>, dla zmiennych o numerze "..i..".</li>"
     						                					or"<li>Szablon, wskazuje na stronę główną projektu, dla zmiennych o numerze "..i..".</li>"
     						    				));
     		    		else
     							table.insert(lancuch_bledow,(i==0)and "<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki = strona główna projektu</code>.</li>"
     								                                                       or"<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki "..i.." = strona główna projektu</code>.</li>"
     								                                             );
                        end;
     					if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna projektu");
     					end; 
     				else
     					return "tak";
     				end;
  				end;
	    	end;
		end;
		if(kod_projektu==require("Module:Pudełko")["Kod projektu tego projektu"]())then
			if(((i>0)and(frame.args["strona główna dla dzieci "..i] or pf.args["strona główna dla dzieci "..i]))
    		     or ((i==0)and(frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"])))then
				local junior=pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_ze_zmiennej(frame,i,kod_jezyka,kod_projektu);
     			local nazwa_strony_glownej_wikijuniora_z_wikidanych=pudelko_pomocne_modul.Nazwa_strony_bazowej_dla_dzieci_z_wikidanych(kod_jezyka)
    	    	junior=(not junior)and nazwa_strony_glownej_wikijuniora_z_wikidanych or junior;
    	    	local dowolna_nazwa_strony_glownej_wikijuniora=parametry_modul.CzyTak(frame.args["dowolna nazwa strony głównej dla dzieci"]);
    	    	if(junior)then
					if(junior=="")then
  						if(czy_ze_szczegolami)then
	     						table.insert(lancuch_bledow,
	     							(i==0)and"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci</code> jest pusta.</li>"
     						    	   or "<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci .."..i.."</code> jest pusta.</li>"
     				    			);
    	 						if(zkategoria)then
  			    					parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - pusta nazwa strony głównej dla dzieci");
    	 						end; 
  						else
  							return "tak";
  						end;
    				elseif((not dowolna_nazwa_strony_glownej_wikijuniora)and(not mw.ustring.match(junior,"^[^/]+$")))then
  						if(czy_ze_szczegolami)then
 	        				table.insert(lancuch_bledow,
 	        					(i==0)and"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci</code> zawiera prawe ukośniki.</li>"
     						    	  or"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci "..i.."</code> zawiera prawe ukośniki.</li>"
     							);
     						if(zkategoria)then
  		    					parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej dla dzieci");
     						end; 
  						else
  							return "tak";
  						end;
  					elseif(pudelko_modul.CzyNiepoprawnaNazwa(junior))then
  						if(czy_ze_szczegolami)then
  							table.insert(lancuch_bledow,
 	        					(i==0)and"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci</code> ma nazwę niepustą nieprawidłową.</li>"
     						    	  or"<li>Wartość nazwy, strony głównej dla dzieci, w zmiennej <code>strona główna dla dzieci "..i.."</code> ma nazwę niepustą nieprawidłową.</li>"
     						);
     						if(zkategoria)then
	  		    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieprawidłowa nazwa strony głównej dla dzieci");
     						end; 
  						else
  							return "tak";
  						end;
  					end;
				end; 
			end;
			if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")and(not nieprawidlowa_niepusta_pelna_nazwa_jednostki))then
    			if(nieobslugiwana_strona_glowna_dla_dzieci)then
    				if(mo=="strona główna dla dzieci")then
  						if(czy_ze_szczegolami)then
    					    if(typ~="strona główna dla dzieci")then
     									table.insert(lancuch_bledow,
     											(i==0)and"<li>Wstawiono szablon na stronę główną dla dzieci.</li>"
     						            				or ((frame.args["strona główna dla dzieci "..i] 
                                            				or pf.args["strona główna dla dzieci "..i])and"<li>Szablon, wskazuje na stronę główną dla dzieci, według zmiennej <code>strona główna dla dzieci .."..i..", dla zmiennych o numerze "..i..".</code>.</li>"
     						                						or"<li>Szablon, wskazuje na stronę główną dla dzieci, dla zmiennych o numerze "..i..".</li>"
     						        				));
     						else
     							table.insert(lancuch_bledow,(i==0)and "<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki = strona główna dla dzieci</code>.</li>"
     								                                                            or"<li>Wstawiono szablon, na stronę, z ustawioną wartością <code>typ jednostki "..i.." = strona główna dla dzieci</code>.</li>"
                                                                                                 );     								                                                       
     						end                                                  
     						if(zkategoria)then
  		    					parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna dla dzieci");
     						end; 
  						else
  							return "tak";
  						end;
  					end;
				end;
			end;
		end;
		local obslugiwane3=(czy_blad_nazwa_przestrzeni_nazw)and((norm_przed_lub_dyskusji=="User") and pudelko_pomocne_modul.Czy_przestrzen_nazw_jest_obslugiwana(frame,"User",kod_jezyka,kod_projektu));
		if((czy_blad_nazwa_przestrzeni_nazw)and(nazwa_jednostki~="")and(not nieprawidlowa_niepusta_pelna_nazwa_jednostki)and(obslugiwane3))then
        	if(nieobslugiwana_strony_glowne_uzytkownikow)then
        		if(mo=="strona główna użytkownika")then
  					if(czy_ze_szczegolami)then
					  	table.insert(lancuch_bledow,
    	  					  	(i==0)and "<li>Wstawiono szablon na stronę główną użytkownika.</li>"
    	  				  		      or"<li>Szablon, wskazuje na stronę główną użytkownika, dla zmiennych o numerze "..i..".</li>"
    	  				  		);
     	  				if(zkategoria)then
  		    				parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna użytkownika");
     	  				end; 
  					else
  						return "tak";
  					end;
        		elseif((mo~="jednostka użytkownika")and(mo~="podręcznik użytkownika")and(mo~="artykuł użytkownika")and(mo~="strona główna użytkownika")and((mo~="strona użytkownika")or(w_user_jako_strony_uzykownika)))then
  					if(czy_ze_szczegolami)then
    					if(mw.ustring.match(nazwa_jednostki,"^[^/]+$"))then
    	  					table.insert(lancuch_bledow,
    	  					  	(i==0)and "<li>Wstawiono szablon na stronę główną użytkownika.</li>"
    	  				  		      or"<li>Szablon, wskazuje na stronę główną użytkownika, dla zmiennych o numerze "..i..".</li>"
    	  				  		);
     	  					if(zkategoria)then
  		    					parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieobsługiwana strona główna użytkownika");
  							end; 
    					end;
					else
						return "tak";
					end;
				end;
			end;
		end;
		if((not nieprawidlowa_niepusta_pelna_nazwa_jednostki)
			    and((not wylocz_niezaleznosc_od_nazwij_jednostka)or(not nazwij_jednostka))
			         and(((i>0)and((frame.args["typ jednostki "..i])or(pf.args["typ jednostki "..i])or(pf.args["typ jednostki"])))
			         or ((i==0)and((frame.args["typ jednostki"])or (pf.args["typ jednostki"]))))
		)then
			local typ_i=(i>0)and((frame.args["typ jednostki "..i])or(pf.args["typ jednostki "..i])) or nil;
			if(mo=="(błąd typu jednostki)")then
  				if(czy_ze_szczegolami)then
     	    		table.insert(lancuch_bledow,
     	    				(i==0)and"<li>Podana wartość zmiennej <code>typ jednostki</code> jest nieprawidłowa.</li>"
     	    		    		  or (typ_i and "<li>Podana wartość zmiennej <code>typ jednostki "..i.."</code> jest nieprawidłowa.</li>"
     	    		    		  	   or "<li>Podana wartość zmiennej <code>typ jednostki</code> dla zmiennych o numerze "..i.." jest nieprawidłowa.</li>")
     	    	    		);
     				if(zkategoria)then
  						parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - nieprawidłowa wartość typu jednostki");
     				end;     	
  				else
  					return "tak";
  				end;
			elseif(mo=="(błąd niezgodności)")then
				if(czy_ze_szczegolami)then
     	    		table.insert(lancuch_bledow,
     	    				(i==0)and"<li>Podana wartość zmiennej <code>typ jednostki</code> jest niezgodna z podaną zmienną: <code>nazwą przestrzeni nazw</code>.</li>"
     	    		    		  or (typ_i and ("<li>Podana wartość zmiennej <code>typ jednostki "..i.."</code> jest niezgodna z podaną: <code>nazwą przestrzeni nazw "..i.."</code>.</li>")
     	    		    		  		      or("<li>Podana wartość zmiennej <code>typ jednostki</code> dla zmiennych o numerze "..i.." jest niezgodna z podaną: <code>nazwą przestrzeni nazw "..i.."</code>.</li>"))
     	    	    		);
     				if(zkategoria)then
  						parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - niezgodna wartość typu jednostki");
     				end;     	
  				else
  					return "tak";
				end;
			elseif(mo=="(błąd parametrów pudełkowych)")then
  				if(czy_ze_szczegolami)then
     	    		table.insert(lancuch_bledow,
     	    				(i==0)and"<li>Podana wartość zmiennej <code>typ jednostki</code> jest niezgodna z podanymi parametrami pudełkowymi.</li>"
     	    		    		  or (typ_i and "<li>Podana wartość zmiennej <code>typ jednostki "..i.."</code> jest niezgodna z podanymi parametrami pudełkowymi.</li>"
     	    		    		  	          or "<li>Podana wartość zmiennej <code>typ jednostki</code> dla zmiennych o numerze "..i.." jest niezgodna z podanymi parametrami pudełkowymi.</li>")
     	    	    		);
     				if(zkategoria)then
  						parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - niezgodne parametry pudełkowe");
     				end;     	
  				else
  					return "tak";
				end;
  			end;
		end;
  	  	if(not czy_ze_szczegolami)then return "";end;
  	end;
	local num=frame.args["nazwy jednostki numerowane"];
	if(parametry_modul.CzyTak(num))then 
		AnalizujDane(0);
		local i=1;
		local maksymalny_numer_elementu_nienazwanego=frame.args["maksymalny numer argumentu nienazwanego"];
		local czy_maksymalny_numer_elementu_nienazwanego=parametry_modul.CzyTak(maksymalny_numer_elementu_nienazwanego);
		local num2;
		if(czy_maksymalny_numer_elementu_nienazwanego)then
			num2=tonumber(maksymalny_numer_elementu_nienazwanego) or 0;
		else
			num2=0;
		end;
		local minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku=parametry_modul.MinimalnyIMaksymalnyNumerParametru(frame.args,"nazwa jednostki");
		maksimum_z_numerem_dodatkowego_warunku=math.max(maksimum_z_numerem_dodatkowego_warunku,parametry_modul.MaksymalnaLiczbaParametruNienazwanegoTablicy(pf.args));
	    if(pf.args["cel"])then maksimum_z_numerem_dodatkowego_warunku=math.max(1,maksimum_z_numerem_dodatkowego_warunku);end;
	    
	    minimum_z_numerem_dodatkowego_warunku=math.min(minimum_z_numerem_dodatkowego_warunku,parametry_modul.MinimalnaLiczbaParametruNienazwanegoTablicy(pf.args));
	    if(pf.args["cel"])then minimum_z_numerem_dodatkowego_warunku=math.min(1,minimum_z_numerem_dodatkowego_warunku);end;
	    if(czy_maksymalny_numer_elementu_nienazwanego)then 
	    	if(num2>0)then
	    		if(maksimum_z_numerem_dodatkowego_warunku>0)then
	    			if(minimum_z_numerem_dodatkowego_warunku>num2)then 
	    				maksimum_z_numerem_dodatkowego_warunku=0;
	    			elseif(maksimum_z_numerem_dodatkowego_warunku>=num2)then
	    				for i=num2,1,-1 do
	    					local wartosc_parametru=(((i>1)and frame.args["nazwa jednostki "..tostring(i)])or ((i==1)and (frame.args["nazwa jednostki 1"] or frame.args["nazwa jednostki"]))or  ((i==1)and(pf.args["cel"])) or pf.args[i]);
	    					if(wartosc_parametru)then
	    						maksimum_z_numerem_dodatkowego_warunku=i;
	    						break;
	    					end;
	    				end;
	    			end;
	    		end;
	    	end;
	    end;
	    
	    local tabelka_braku_zmiennych={};
	    for i=1,maksimum_z_numerem_dodatkowego_warunku,1 do
		    local wartosc_parametru=(((i>1)and frame.args["nazwa jednostki "..tostring(i)])or ((i==1)and (frame.args["nazwa jednostki 1"] or frame.args["nazwa jednostki"]))or  ((i==1)and(pf.args["cel"])) or pf.args[i]);
	        if(not wartosc_parametru)then
	        	  if(czy_ze_szczegolami)then
                       tabelka_braku_zmiennych[#tabelka_braku_zmiennych+1]=i;
  					else
  						return "tak";
  					end;
	        else
				local wynik=AnalizujDane(i);
				if((not czy_ze_szczegolami)and(wynik~=""))then return wynik;end;
			end;
	    end;
	    if(czy_ze_szczegolami)then
	    	if(parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka_braku_zmiennych))then
	    		local str_braku_parametru="";
	    		for i,wartosc in ipairs(tabelka_braku_zmiennych)do
	    			str_braku_parametru=str_braku_parametru..((str_braku_parametru=="")and "" or ((tabelka_braku_zmiennych[i+1])and ", " or " i "))..wartosc;
	    		end;
		    	table.insert(lancuch_bledow,"<li>Brak parametrów o numerach: "..str_braku_parametru..", w obsługiwanym zakresie zmiennych.</li>");
     			if(zkategoria)then
  		    		 parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - brak parametrów");
     			end; 
	    	end;
 		end;
	else
		local wynik=AnalizujDane(0);
		if((not czy_ze_szczegolami)and(wynik~=""))then return wynik;end;
	end;
	--local lancuch_kategorii_bledow_zlaczony=table.concat(lancuch_kategorii_bledow,"");
    local minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku=parametry_modul.MinimalnyIMaksymalnyNumerParametru(frame.args,"dodatkowy warunek");
    for i=minimum_z_numerem_dodatkowego_warunku, maksimum_z_numerem_dodatkowego_warunku,1 do
       local wartosc_parametru=(i>1)and frame.args["dodatkowy warunek "..i] or ((i==1)and frame.args["dodatkowy warunek 1"] or frame.args["dodatkowy warunek"]);
	   if(parametry_modul.CzyTak(wartosc_parametru))then
  			if(czy_ze_szczegolami)then
				local bledy_dodatkowego_warunku=frame.args["błędy dodatkowego warunku "..i];
				if(parametry_modul.CzyTak(bledy_dodatkowego_warunku))then
					local bledy_w_postaci_kategorii="<li>"..bledy_dodatkowego_warunku.."</li>";
    				table.insert(lancuch_bledow,bledy_dodatkowego_warunku);
    				if(zkategoria)then
    					local bledy_w_postaci_kategorii=frame.args["dodatek kategorii błędu dodatkowego warunku "..i];
    				    if(parametry_modul.CzyTak(bledy_w_postaci_kategorii))then
    						local bledy_w_postaci_kategorii="{{pierwszy człon kategorii błędu}} - "..bledy_w_postaci_kategorii;
  		        			parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,bledy_w_postaci_kategorii);
  		        		else
  		        			parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - błędne wywołania");
  		        		end;
    				end;
  	    		else
  	    	    	table.insert(lancuch_bledow,"<li>Błąd wywołania szablonu.</li>");
  	    			if(zkategoria)then
  	    				local bledy_w_postaci_kategorii=frame.args["dodatek kategorii błędu dodatkowego warunku"];
  	    				if(parametry_modul.CzyTak(bledy_w_postaci_kategorii))then
  	    					local bledy_w_postaci_kategorii="{{pierwszy człon kategorii błędu}} - "..bledy_w_postaci_kategorii;
  	    			        parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,bledy_w_postaci_kategorii);
  	    			    else
  		        			parametry_modul.DodajElementDoZbioru(tablica_lancuch_kategorii_bledow,"{{pierwszy człon kategorii błędu}} - błędne wywołania");
  		        		end;
  		    		end;
				end;
  	    	else
  	    		return "tak";
  	    	end;
  		end;
    end;
  	if(not czy_ze_szczegolami)then return "";end;
    local i=1;
    local templates={};
    --templates["{{Category}}"]="Category";
    local lancuch_kategorii_bledow_zlaczony2="";
    local minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku=parametry_modul.MinimalnyIMaksymalnyNumerParametru(frame.args,"pierwszy człon kategorii błędu");
    if(#tablica_lancuch_kategorii_bledow>0)then
    	local wszystkie_bledy={};
    	--wszystkie_bledy[1]="Szablon";
		for i=minimum_z_numerem_dodatkowego_warunku,maksimum_z_numerem_dodatkowego_warunku,1 do
        	 local pierwszy_czlon_kategorii_bledow=(i>1)and frame.args["pierwszy człon kategorii błędu "..i] or (frame.args["pierwszy człon kategorii błędu "..1] or frame.args["pierwszy człon kategorii błędu"] );
        	templates["{{pierwszy człon kategorii błędu}}"]=pierwszy_czlon_kategorii_bledow;
        	for _,kategoria in ipairs(tablica_lancuch_kategorii_bledow) do
        		parametry_modul.DodajElementDoZbioru(wszystkie_bledy,mw.ustring.gsub(kategoria,"{{[%w%s]+}}",templates));
        	end;
        	i=i+1;
		end;
    --lancuch_kategorii_bledow_zlaczony2=string.gsub(lancuch_kategorii_bledow_zlaczony2,"%[%[Category:","{{#invoke:Ramka|Szablon|parametry funkcji modułu pudełek=tak|Nazwa=Kategoria|");
    --lancuch_kategorii_bledow_zlaczony2=string.gsub(lancuch_kategorii_bledow_zlaczony2,"%]%]","}}");
    	wszystkie_bledy["parametry podstawowe funkcji modułu pudełek"]="tak";
    	wszystkie_bledy["Nazwa"]="Kategorie";
    	local frame2=frame:getParent():newChild{title="#invoke:Ramka",args=wszystkie_bledy,};
    	local ramka_modul=require("Module:Ramka");
    	lancuch_kategorii_bledow_zlaczony2=ramka_modul["Szablon"](frame2);
    end;
    local lancuch=table.concat(lancuch_bledow,"")..lancuch_kategorii_bledow_zlaczony2;
    if(lancuch~="")then lancuch="<ul>"..lancuch.."</ul>";end;
    return lancuch;
end;

function p.Cecha_kontenerowa_szablonowa(frame,__funkcja)
  local parametry_modul=require("Module:Parametry");
  local parametry_pudelka=frame:getParent().args["parametry pudełka"]
  if(parametry_modul.CzyTak(parametry_pudelka))then
  	return require("Module:Pudełko/ParametryCechy")["Parametry ogólnego pudełka"](frame,__funkcja);
  end;
  local funkcja=frame.args["funkcja cechowania"];
  if(not parametry_modul.CzyTak(funkcja))then funkcja=__funkcja;end;
  local modul=frame.args["moduł"];
  if(not parametry_modul.CzyTak(modul))then modul="Pudełko";end;
  local cecha=require("Module:"..modul)[funkcja](frame);
  return cecha;
end;
function p.Generalny_kontener_szablonowy(frame)
   local pf=frame.getParent and frame:getParent() or {args={}};
   local parametry_modul=require("Module:Parametry");
   local parametry_pudelka=pf.args["parametry pudełka"]
   if(parametry_modul.CzyTak(parametry_pudelka))then
     	return frame.args["cecha"] or "";
   end;
   local alternatywny_szablon=frame.args["alternatywny szablon"];
   if(parametry_modul.CzyTak(alternatywny_szablon))then return alternatywny_szablon; end
   local cecha;
   local bez_bledu=parametry_modul.CzyTak(frame.args["bez błędu"] or pf.args["bez błędu"]);
   local czy_ogolne_pudelko;
   if(not bez_bledu)then cecha=frame.args["cecha"] or ""; czy_ogolne_pudelko=(cecha=="");else czy_ogolne_pudelko=true;end;
   if(czy_ogolne_pudelko)then
   		local warunek_niealternatywnego_wywolania=frame.args["warunek niealternatywnego wywołania"];
   		if((warunek_niealternatywnego_wywolania)and(warunek_niealternatywnego_wywolania==""))then
   			  local alternatywne_wywolanie=frame.args["alternatywne wywołanie"];
   			  if(alternatywne_wywolanie)then
   			  	  return alternatywne_wywolanie;
   			  end;
   		end;
   end;
   local szablon=frame.args["szablon"];
   local pudelko,grafika,typ;
   local nazwa_przestrzeni_nazw=frame.args["nazwa przestrzeni nazw"];
   local komunikat=frame.args["własny komunikat"];
   local szablon2=(parametry_modul.CzyTak(szablon)) and szablon  or require("Module:Nazwy")["NAZWASTRONY"](pf:getTitle()); 
   local czy_komunikat=parametry_modul.CzyTak(komunikat);
   local funkcja_komunikatu;
   local wynik_komunikatu;
   local tekst;
   local klasa;local styl;
   if(czy_komunikat)then
   	  local modul=frame.args["moduł"];
   	  if(not parametry_modul.CzyTak(modul))then modul="Pudełko";end;
   	  funkcja_komunikatu=require("Module:"..modul)[komunikat];
   	  if(funkcja_komunikatu)then
   	  	   wynik_komunikatu=funkcja_komunikatu(frame);
   	  end;
   end;
   if(czy_ogolne_pudelko)then
   	  local wybor=frame.args["wybór"];
   	  local czy_wybor=parametry_modul.CzyTak(wybor);
   	  pudelko=(czy_wybor and frame.args["nazwa "..wybor] or frame.args["nazwa"]) or "mbox";
      grafika=czy_wybor and frame.args["grafika "..wybor] or frame.args["grafika"];
      typ=czy_wybor and frame.args["typ "..wybor] or frame.args["typ"];
      typ=parametry_modul.CzyTak(typ) and typ or "zawartość";
      tekst=czy_wybor and frame.args["tekst "..wybor] or frame.args["tekst"] or "";
      local parametry=czy_wybor and frame.args["parametry "..wybor] or frame.args["parametry"] or "";
      klasa=czy_wybor and frame.args["klasa "..wybor] or frame.args["klasa"];
      styl=czy_wybor and frame.args["styl "..wybor] or frame.args["styl"];
      local kategorie=czy_wybor and frame.args["kategorie "..wybor] or frame.args["kategorie"] or "";
      tekst=tekst..parametry..kategorie;
   else
   	 pudelko="ombox";
   	 grafika="poważny";
   	 typ="poważny";
   	 local czy_ze_szczegolami=not parametry_modul.CzyTak(frame.args["bez szczegółów"] or pf.args["bez szczegółów"]);
   	 if(czy_ze_szczegolami)then
   		tekst="'''Szablon ".."{{[[Template:"..szablon2.."|"..szablon2.."]]}} zgłosił następujące błędy:'''"..cecha;
   	else
   		tekst="Szablon '''".."{{[[Template:"..szablon2.."|"..szablon2.."]]}}''' jest w stanie błędu, popraw parametry szablonu!";
   	end;
   end;
   local argumenty={
   	                ["klasa"]=klasa,
   	                ["styl"]=styl,
   	                ["nazwa przestrzeni nazw"]=nazwa_przestrzeni_nazw,
   	                ["typ"]=typ,
   	                ["grafika"]=grafika,
   	                ["tekst"]=(czy_komunikat) and ((funkcja_komunikatu)and wynik_komunikatu or tekst)or tekst,
					};
    return pf:expandTemplate{title=pudelko,args=argumenty};
end;
return p;