Moduł:Pudełko

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png Dokumentacja modułu [stwórz] [odśwież]
function Ogolna_funkcja_przestrzeni_nazw(frame,namespace)
   return Nazwa_przestrzeni_nazw(frame,namespace,false);
end
function Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)
	return mw.ustring.gsub((namespace)and title.subjectNsText or title.nsText,"_"," ");
end;
function Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,sp)		
  	local pf=frame:getParent();
  	local i=1;
  	sp=mw.ustring.gsub(sp,"_"," ");
  	while(frame.args[i])do
  	   if(sp==mw.ustring.gsub(frame.args[i],"_"," "))then
  	   	   return true;
  	   	end;
  	   i=i+1;
  	end;
  	return false;	
  end;
function Nazwa_przestrzeni_nazw(frame,namespace,czy_nil)
		local pf=frame:getParent()
		local nazwa=(frame.args["nazwa przestrzeni nazw"])and frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
		local title=mw.title.getCurrentTitle();
		nazwa=(not nazwa)and title.nsText or nazwa;
		local nstext;
		if(namespace)then
		   nstext=mw.getCurrentFrame():callParserFunction{name='#invoke:Ns',args={"Tłumaczenie",nazwa,przedmiotowa="tak"}};
		else
		   nstext=mw.getCurrentFrame():callParserFunction{name='#invoke:Ns',args={"Tłumaczenie",nazwa}};
		end;
		local ns=mw.site.namespaces[nstext];
		if(ns)then
		  return nstext;
		else
			if(czy_nil)then
				if(frame.args[2])then
					return frame.args[2];
				else
					return nstext;
				end;
			else
				return nil;
			end;
		end;
end;
function Box_i_Typ_Box(frame,par1, par2, namespace)
  	local pf=frame:getParent();
  	local title=mw.title.getCurrentTitle();
  	local nazwa=(frame.args["nazwa jednostki"])and frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
    nazwa=(not nazwa)and title.text or nazwa;
    if(nazwa=="")then return par1;end;
  	local sp=Ogolna_funkcja_przestrzeni_nazw(frame,namespace);
  	if(not sp)then return par1;end;
  	local swit=Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,sp)
  	if(not swit)then return par1;end;
  	local pf=frame:getParent();
  	local prze=(frame.args["nazwa przestrzeni nazw"])and frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
  	local nazw=(frame.args["nazwa jednostki"])and frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
  	prze=(not prze)and title.nsText or prze;
  	nazw=(not nazw)and title.text or nazw;
  	if(nazw=="")then return par1;end;
    title=mw.title.makeTitle('',prze..":"..nazw);
    if((prze=="")and(title.nsText~=""))then return par1;end;
    local wl=frame.args["nieobsługiwane strony"];
    local swit1=(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikibooks")and Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,"Wikibooks");
    if(swit1)then
    	local projekt=(frame.args["strona główna projektu"])and frame.args["strona główna projektu"] or pf.args["strona główna projektu"];
  		projekt=(not projekt)and "Strona główna" or projekt;
  		if(projekt=="")then return par1;end;
  		if(not mw.ustring.match(projekt,"^[^/]+$"))then return par1;end;
    	if((wl)and(wl~=""))then
    		if((Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikibooks")and(title.text==projekt))then return par1;end;
    	end;
    end;
    local swit2=(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior") and Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,"Wikijunior");
    if(swit2)then
    	local swit=Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,"Wikijunior");
  		local junior=(frame.args["strona główna dla dzieci"])and frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"];
  		junior=(not junior)and "Strona główna" or junior;
  		if(junior=="")then return par1;end;
  		if(not mw.ustring.match(junior,"^[^/]+$"))then return par1;end;
    	if((wl)and(wl~=""))then
    		if((Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior")and(title.text==junior))then return par1;end;
    	end;
    end;
    local swit3=(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikipedysta") and Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,"Wikipedysta");
    if(swit3)then
    	  if(mw.ustring.match(title.text,"^[^/]+$"))then
    	  	  return par1;
    	  end;
    end;
    local naz=(frame.args["nazwij jednostką"])and frame.args["nazwij jednostką"] or pf.args["nazwij jednostką"];
  	if(((not naz)or(naz==""))and((Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="")or((swit2)and(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior"))))then
  	    typ_jed=Typ_jednostki(frame, namespace);
  	    if(not typ_jed)then return par1;end;
  	    local wl=frame.args["nieobsługiwane strony"];
  	    if(((swit2)and(typ_jed=="strona główna")and(not wl))or(typ_jed=="podręcznik")or(typ_jed=="artykuł"))then
  	        local dot=frame.args["dodatkowy warunek"];
  		    if(dot)then
  			   return dot;
  		    else 
  			   return par2;
  		    end;
  		else
  			return par1;
  	    end;
  	else
  		local dot=frame.args["dodatkowy warunek"];
  		if(dot)then
  			return dot;
  		else 
  			return par2;
  		end;
  	end;
  end;  
function Typ_jednostki(frame, namespace)
  	 local title=mw.title.getCurrentTitle();
     local pf=frame:getParent();
     local typ=(frame.args["typ jednostki"])and frame.args["typ jednostki"] or pf.args["typ jednostki"];
     if(typ)then
        return typ;
     end
  	 local prze=(frame.args["nazwa przestrzeni nazw"])and frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
  	 local nazw=(frame.args["nazwa jednostki"])and frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
  	 prze=(not prze)and title.nsText or prze;
  	 nazw=(not nazw)and title.text or nazw;
  	 if(nazw~="")then
    	title=mw.title.makeTitle('',prze..":"..nazw)
    	if((title.nsText=="")and(prze~=""))then return nil;end;
    	if(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior")then
     		local str=(frame.args["strona główna dla dzieci"])and frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"];
     		str=(not str)and "Strona główna" or str;
     		if(str==title.text)then return "strona główna";end;
    	end;
    	if((Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="")or(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior"))then
        	local it=mw.ustring.match(title.text,"^[^/]+$");
        	if(it)then return "podręcznik";else return "artykuł";end;
    	end;
     end;
     return nil;
  end;
function Bledy_pudelka(frame, namespace)
  	local pf=frame:getParent();
  	local bezkategorii=(frame.args["bez kategorii"])and frame.args["bez kategorii"] or pf.args["bez kategorii"];
  	local _string="";
  	local sp=Ogolna_funkcja_przestrzeni_nazw(frame,namespace);
  	if(not sp)then
  		_string="<li>Wartość zmiennej <code>nazwa przestrzeni nazw</code> jest nieprawidłowa.</li>";
  		if((not bezkategorii)or(bezkategorii==""))then
  			_string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieprawidłowa nazwa przestrzeni nazw]]";
  		end; 
    end;
     local i=1;
     local title=mw.title.getCurrentTitle();
     local prze=(frame.args["nazwa przestrzeni nazw"])and frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
     prze=(not prze)and title.nsText or prze;
  	 local nazw=(frame.args["nazwa jednostki"])and frame.args["nazwa jednostki"] or pf.args["nazwa jednostki"];
  	 nazw=(not nazw)and title.text or nazw;
  	 if(nazw=="")then
  	 	_string=_string.."<li>Wartość zmiennej <code>nazwa jednostki</code> jest pusta.</li>";
  	 	if((not bezkategorii)or(bezkategorii==""))then
  			_string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - pusta nazwa jednostki]]";
  		end; 
     end;
     if(sp)then
        local fu=Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,sp)
    	if(not fu)then
     		_string=_string.."<li>Szablon nie obsługuje podanej przestrzeni nazw.</li>";
     		if((not bezkategorii)or(bezkategorii==""))then
  				_string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieobsługiwana przestrzeń nazw]]";
  			end; 
    	end;
     end;
     if((prze=="")and(nazw~=""))then
     	  title=mw.title.makeTitle('',prze..":"..nazw);
     	  if(title.nsText~="")then
     	  	 _string=_string.."<li>Zmienna <code>nazwa jednostki</code> zawiera w sobie przestrzeń.</li>";
     	  	 if((not bezkategorii)or(bezkategorii==""))then
  			    _string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nazwa jednostki zawierająca w sobie przestrzeń]]";
  		     end; 
     	  end;
     elseif(nazw~="")then
     	 title=mw.title.makeTitle('',prze..":"..nazw);
     end;
     local swit2=true;
     local mo=Typ_jednostki(frame, namespace);
     if(nazw~="")then
    	local swit1=((Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikibooks")and(Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,"Wikibooks")));
    	if(swit1)then
    		local projekt=(frame.args["strona główna projektu"])and frame.args["strona główna projektu"] or pf.args["strona główna projektu"];
    		projekt=(not projekt)and "Strona główna" or projekt;
    		if(projekt=="")then
     			_string=_string.."<li>Nazwa strony głównej projektu Wikibooks w zmiennej <code>strona główna projektu</code> jest pusta.</li>";
     			if((not bezkategorii)or(bezkategorii==""))then
  		    		  _string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - pusta nazwa strony głównej projektu]]";
  				end; 
    		elseif(not mw.ustring.match(projekt,"^[^/]+$"))then
 	    		 _string=_string.."<li>Nazwa strony głównej projektu Wikibooks w zmiennej <code>strona główna projektu</code> zawiera w sobie prawe ukośniki.</li>";
     	    	if((not bezkategorii)or(bezkategorii==""))then
  		    		_string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieprawidłowa nazwa strony głównej projektu]]";
  				end; 
			end;
			if(nazw~="")then
				local wl=frame.args["nieobsługiwane strony"];
    			if((wl)and(wl~=""))then
    				if((title.text==projekt)and(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikibooks"))then
     					_string=_string.."<li>Wstawiono szablon na stronę wskazywaną przez zmienną <code>strona główna projektu.</code></li>";
     					if((not bezkategorii)or(bezkategorii==""))then
  		    				_string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieobsługiwana strona główna projektu]]";
  						end; 
					end; 
	    		end;
			end;
		end
		local swit2=((Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior")and (Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,"Wikijunior")));
		if(swit2)then
			local junior=(frame.args["strona główna dla dzieci"])and frame.args["strona główna dla dzieci"] or pf.args["strona główna dla dzieci"];
			junior=(not junior)and "Strona główna" or junior;
			if(junior=="")then
	     		_string=_string.."<li>Nazwa strony głównej dla dzieci w zmiennej <code>strona główna dla dzieci</code> jest pusta.</li>";
    	 		if((not bezkategorii)or(bezkategorii==""))then
  			    	  _string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - pusta nazwa strony głównej dla dzieci]]";
  				end; 
    		elseif(not mw.ustring.match(junior,"^[^/]+$"))then
 	        	_string=_string.."<li>Nazwa strony głównej dla dzieci w zmiennej <code>strona główna dla dzieci</code> zawiera w sobie prawe ukośniki.</li>";
     			if((not bezkategorii)or(bezkategorii==""))then
  		    		_string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieprawidłowa nazwa strony głównej dla dzieci]]";
  				end; 
    		end; 
			if(nazw~="")then
				local wl=frame.args["nieobsługiwane strony"];
    			if((wl)and(wl~=""))then
    				if(((title.text==junior)or(mo=="strona główna"))and(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior"))then
     						if(((frame.args["typ jednostki"])and frame.args["typ jednostki"] or pf.args["typ jednostki"])~="strona główna")then
     						   _string=_string.."<li>Wstawiono szablon na stronę wskazywaną przez zmienną <code>strona główna dla dzieci</code>.</li>";
     						else
     							_string=_string.."<li>Wstawiono szablon na stronę z ustawioną wartością <code>typ jednostki = strona główna</code>.</li>";
     						end
     					if((not bezkategorii)or(bezkategorii==""))then
  		    				_string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieobsługiwana strona główna dla dzieci]]";
  						end; 
					end; 
				end;
			end;
		end;
	end;
	local swit3=(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikipedysta") and Czy_ta_przestrzen_nazw_jest_obslugiwana(frame,"Wikipedysta");
    if(swit3)then
    	local wl=frame.args["nieobsługiwane strony"];
        if((wl)and(wl~=""))then
    	  if(mw.ustring.match(title.text,"^[^/]+$"))then
    	  	  _string=_string.."<li>Wstawiono szablon na stronę główną użytkownika albo uzyskano to za pomocą co najmniej jednej ze zmiennej: <code>nazwa przestrzeni nazw</code> i  <code>nazwa jednostki</code>.</li>";
     	  	  if((not bezkategorii)or(bezkategorii==""))then
  		    	   _string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieobsługiwana strona główna użytkownika]]";
  			 end; 
		end;
	  end;
    end;
	local naz=(frame.args["nazwij jednostką"])and frame.args["nazwij jednostką"] or pf.args["nazwij jednostką"];
    if(((not naz)or(naz==""))and((sp)and(nazw~="")))then
      	title=mw.title.makeTitle('',prze..":"..nazw);
      	if((Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="")or((swit2)and(Normalnie_czy_przedmiotowa_przestrzen_nazw(title, namespace)=="Wikijunior")))then
    		if((mo~="artykuł")and(mo~="podręcznik")and(mo~="strona główna"))then
     	    	_string=_string.."<li>Podana wartość zmiennej <code>typ jednostki</code> jest nieprawidłowa.</li>";
     			if((not bezkategorii)or(bezkategorii==""))then
  					 _string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - nieprawidłowa wartość parametrów]]";
  				end;     	
			end;	
		end;
	 end;
  	 local dot=frame.args["dodatkowy warunek"];
     if((dot)and(dot~=""))then
  	    _string=_string.."<li>Błąd wywołania szablonu.</li>";
  	    if((not bezkategorii)or(bezkategorii==""))then
  		     _string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - błędne wywołania]]";
  		end;
     end;
     local sz=frame.args["pierwszy człon kategorii błędu"];
     _string=mw.ustring.gsub(_string,"{{{pierwszy człon kategorii błędu}}}",sz);
     return _string;
  end;
  
return{
  ["Nazwa przestrzeni nazw"]=function(frame)
  	return Nazwa_przestrzeni_nazw(frame,false, true);
  end,	
  ["Nazwa przedmiotowej przestrzeni nazw"]=function(frame)
  	return Nazwa_przestrzeni_nazw(frame,true, true);
  end,
  ["Typ jednostki"]=function(frame)
     return Typ_jednostki(frame,false);
  end,
  ["Przedmiotowy typ jednostki"]=function(frame)
     return Typ_jednostki(frame,true);
  end,  
  ["Nazwa pudełka"]=function(frame)
     return Box_i_Typ_Box(frame,"ombox","mbox", false);
  end,
  ["Przedmiotowa nazwa pudełka"]=function(frame)
     return Box_i_Typ_Box(frame,"ombox","mbox", true);
  end,
  ["Typ pudełka"]=function(frame)
  	 return Box_i_Typ_Box(frame,"poważny","zawartość", false);
  end,
  ["Przedmiotowy typ pudełka"]=function(frame)
  	 return Box_i_Typ_Box(frame,"poważny","zawartość", true);
  end,
  ["Grafika pudełka"]=function(frame)
  	return Box_i_Typ_Box(frame,"poważny",frame.args["grafika"], false);
  end,
  ["Przedmiotowa grafika pudełka"]=function(frame)
  	return Box_i_Typ_Box(frame,"poważny",frame.args["grafika"], true);
  end,
  ["Błędy pudełka"]=function(frame)
  	return Bledy_pudelka(frame,false);
  end,
  ["Przedmiotowe błędy pudełka"]=function(frame)
  	return Bledy_pudelka(frame,true);
  end,
}