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 __space(frame,namespace)
	    local title=mw.title.getCurrentTitle();
		local pf=frame:getParent()
		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;
		title=mw.title.makeTitle('',prze..":STRONA");
		local space=title.nsText;
		if(space=="")then
			if(prze~="")then
                return nil
			end;
		end;
		return mw.ustring.gsub((namespace)and title.subjectNsText or space,"_"," ");
end
function switch(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 Box_i_Typ_Box(frame,par1, par2)
  	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=__space(frame);
  	if(not sp)then return par1;end;
  	local swit=switch(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=(title.nsText=="Wikibooks")and switch(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((title.nsText=="Wikibooks")and(title.text==projekt))then return par1;end;
    	end;
    end;
    local swit2=(title.nsText=="Wikijunior") and switch(frame,"Wikijunior");
    if(swit2)then
    	local swit=switch(frame,"Wikijunior");
  		local junior=(frame.args["strona główna Wikijuniora"])and frame.args["strona główna Wikijuniora"] or pf.args["strona główna Wikijuniora"];
  		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((title.nsText=="Wikijunior")and(title.text==junior))then return par1;end;
    	end;
    end;
    local swit3=(title.nsText=="Wikipedysta") and switch(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((title.nsText=="")or((swit2)and(title.nsText=="Wikijunior"))))then
  	    typ_jed=require("Moduł:Pudełko")["Typ jednostki"](frame);
  	    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;  
return{
	["Ramka"]=function(frame)
		local d=frame:preprocess(frame.args[1])
		return d
	end,
	["Nazwa przestrzeni nazw"]=function(frame,namespace)
		local pf=frame:getParent()
		local nazwa=(frame.args["nazwa przestrzeni nazw"])and frame.args["nazwa przestrzeni nazw"] or pf.args["nazwa przestrzeni nazw"];
		local sp=__space(frame,namespace)
		if(sp)then 
			 return sp;
		elseif(nazwa~="")then
			if(frame.args[2])then
				return frame.args[2];
            else
        	   return nazwa;
	    	end;
		end;
		return nil;
   end,
  ["Nazwa przedmiotowej przestrzeni nazw"]=function(frame)
  	return require("Moduł:Pudełko")["Nazwa przestrzeni nazw"](frame,true)
  end,
  ["Typ jednostki"]=function(frame)
  	 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
        if(not mw.ustring.match(typ,"^{{.-}}$"))then return typ;end;
     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(title.nsText=="Wikijunior")then
     		local str=(frame.args["strona główna Wikijuniora"])and frame.args["strona główna Wikijuniora"] or pf.args["strona główna Wikijuniora"];
     		str=(not str)and "Strona główna" or str;
     		if(str==title.text)then return "strona główna";end;
    	end;
    	if((title.nsText=="")or(title.nsText=="Wikijunior"))then
        	local it=mw.ustring.match(title.text,"^[^/]+$");
        	if(it)then return "podręcznik";else return "artykuł";end;
    	end;
     end;
     return nil;
  end,
  ["Nazwa pudełka"]=function(frame)
     return Box_i_Typ_Box(frame,"ombox","mbox");
  end,
  ["Typ pudełka"]=function(frame)
  	 return Box_i_Typ_Box(frame,"poważny","zawartość");
  end,
  ["Grafika pudełka"]=function(frame)
  	return Box_i_Typ_Box(frame,"poważny",frame.args["grafika"]);
  end,
  ["Błędy pudełka"]=function(frame)
  	local pf=frame:getParent();
  	local bezkategorii=(frame.args["bez kategorii"])and frame.args["bez kategorii"] or pf.args["bez kategorii"];
  	local _string="";
  	local sp=__space(frame);
  	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=switch(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=require("Moduł:Pudełko")["Typ jednostki"](frame);
     if(nazw~="")then
    	local swit1=((title.nsText=="Wikibooks")and(switch(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(title.nsText=="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=((title.nsText=="Wikijunior")and (switch(frame,"Wikijunior")));
		if(swit2)then
			local junior=(frame.args["strona główna Wikijuniora"])and frame.args["strona główna Wikijuniora"] or pf.args["strona główna Wikijuniora"];
			junior=(not junior)and "Strona główna" or junior;
			if(junior=="")then
	     		_string=_string.."<li>Nazwa strony głównej Wikijuniora w zmiennej <code>strona główna Wikijuniora</code> jest pusta.</li>";
    	 		if((not bezkategorii)or(bezkategorii==""))then
  			    	  _string=_string.."[[Kategoria:{{{pierwszy człon kategorii błędu}}} - pusta nazwa strony głównej Wikijuniora]]";
  				end; 
    		elseif(not mw.ustring.match(junior,"^[^/]+$"))then
 	        	_string=_string.."<li>Nazwa strony głównej Wikijuniora w zmiennej <code>strona główna Wikijuniora</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 Wikijuniora]]";
  				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(title.nsText=="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 Wikijuniora</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 Wikijuniora]]";
  						end; 
					end; 
				end;
			end;
		end;
	end;
	local swit3=(title.nsText=="Wikipedysta") and switch(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((title.nsText=="")or((swit2)and(title.nsText=="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;
}