Modul:Tvar

Dobrý den, přišli jste sem a hledáte význam slova Modul:Tvar. V DICTIOUS najdete nejen všechny slovníkové významy slova Modul:Tvar, ale dozvíte se také o jeho etymologii, charakteristice a o tom, jak se říká Modul:Tvar v jednotném a množném čísle. Vše, co potřebujete vědět o slově Modul:Tvar, najdete zde. Definice slova Modul:Tvar vám pomůže být přesnější a správnější při mluvení nebo psaní textů. Znalost definiceModul:Tvar, stejně jako definice dalších slov, obohacuje vaši slovní zásobu a poskytuje vám více a lepších jazykových zdrojů.

Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:Tvar

p = {}

local Languages = require ("Modul:Languages")
local Tvar = require ("Modul:Tvar/Seznam")

function p.printMain (frame)
	local parentFrame = frame:getParent()
	local templateArgs = parentFrame.args
	local title = mw.title.getCurrentTitle()
	local pageName = title.fullText
	
	local jazyk = templateArgs 
	local slovniDruh = templateArgs 
	local tvar =  templateArgs 
	local word = templateArgs
	
	local ErrorMsgs = {}
	local ErrorCats = {}
	local OtherCats = {}
	
	local out = ""
	
	if word == "" or word == nil then
		table.insert(ErrorMsgs,"Nezadáno slovo, k němuž se kategorie váže.")
		table.insert(ErrorCats, "]")
		word = false
	end
	
	if tvar == "" or tvar == nil then
		table.insert(ErrorMsgs,"Nezadán tvar.")
		table.insert(ErrorCats, "]")
		tvar = false
	end
	
	if jazyk == "" or jazyk == nil then
		table.insert(ErrorMsgs,"Nezadán jazyk.")
		table.insert(ErrorCats, "]")
		jazyk = false
	else
		if Languages == nil then
			table.insert(ErrorMsgs,"Chybné zadání jazyka. (Pod parametrem „" .. jazyk .. "“ není na Wikislovníku veden žádný jazyk. <small>Pro seznam podporovaných jazyků vizte ].</small>)")
			table.insert(ErrorCats, "]")
			jazyk = false
		end
	end

	if slovniDruh == "" or slovniDruh == nil then
		table.insert(ErrorMsgs,"Nezadán slovní druh.")
		table.insert(ErrorCats, "]")
		slovniDruh = false
	else
		if Tvar == nil then
			table.insert(ErrorMsgs,"Chybné zadání slovního druhu. (Slovní druh „" .. slovniDruh .. "“ není na Wikislovníku podporován. <small>Buď neexistuje, je nesklonný nebo jste se přepsali.</small>)")
			table.insert(ErrorCats, "]")
			slovniDruh = false
		end
		if slovniDruh and jazyk and tvar then
			local tvarVJazyceExistuje = false
			for a in pairs (Tvar) do
				if Tvar == tvar then
					tvarVJazyceExistuje = true
				end
			end
			if not tvarVJazyceExistuje then
				table.insert(ErrorMsgs,"V jazyce s kódem „" .. jazyk .. "“ (''" .. Languages .. "'') nemá ''" .. slovniDruh .. "'' tvar „" .. tvar .. "“.")
				table.insert(ErrorCats, "]")	
				slovniDruh = false
			end
		end	
	end

	if jazyk and slovniDruh and tvar and word then

		if Tvar ~= nil then
			if Tvar ~= nil and Tvar ~= "" then
				out = Tvar
			end
		else
			out = Tvar
		end
		
		local kategorieSlovniDruhJazyk = false
		if Languages ~= nil and Languages ~= "" then
			if not Languages then
				kategorieSlovniDruhJazyk = " .. " " .. Tvar .. "]]"
			else
				kategorieSlovniDruhJazyk = " .. " " .. Languages .. "]]"
			end
			table.insert(OtherCats, kategorieSlovniDruhJazyk)
		else
			table.insert(ErrorCats, "]")
		end
		out = "''" .. out .. " " .. Tvar .. " ]''"
		
	end		
	local errors = ""
	if #ErrorMsgs > 0 or #ErrorCats > 0 then
		if #ErrorMsgs == 1 then
			errors = "Šablona ] obsahuje následující chybu: "
		elseif #ErrorMsgs > 1 then
			errors = "Šablona ] obsahuje následující chyby: "
		end
			
		for a in pairs (ErrorMsgs) do 
			errors = errors .. ErrorMsgs .. " "
		end
		for a in pairs (ErrorCats) do
			errors = errors .. ErrorCats
		end
	end
	if errors ~= "" and pageName ~= "Šablona:Tvar" then
		out = out .. errors
	end
	if #OtherCats > 0 then
		for a in pairs (OtherCats) do
			out = out .. OtherCats
		end
	end
	return out
end

function p.printParams (frame)
	local out = ""
	local Kategorie = {}
	for a in pairs (Tvar) do
		table.insert(Kategorie, a)
	end
	table.sort(Kategorie)
	for a in pairs (Kategorie) do
		
		out = out .. "<h3>" .. Tvar] .. "</h3>"
		out = out .. "<table class=\"wikitable sortable\">"
		out = out .. "<th>kód parametru</th><th>popis</th>"
		local Params = {}
		for b in pairs (Tvar]) do
			table.insert(Params, {b,Tvar]})
		end
		table.sort(Params, function(x, y) return x < y end)
		for n in pairs (Params) do
			out = out .. "<tr><td>" .. Params .. "</td><td>" .. Params .. "</td></tr>"
		end
		out = out .. "</table>"
		out = out .. ""
	end	
	return out
end
return p