Modul:Tvar
Vzhled
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[1]
local slovniDruh = templateArgs[2]
local tvar = templateArgs[3]
local word = templateArgs[4]
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, "[[Category:Monitoring:Šablona Tvar/Nezadáno slovo]]")
word = false
end
if tvar == "" or tvar == nil then
table.insert(ErrorMsgs,"Nezadán tvar.")
table.insert(ErrorCats, "[[Category:Monitoring:Šablona Tvar/Nezadán tvar]]")
tvar = false
end
if jazyk == "" or jazyk == nil then
table.insert(ErrorMsgs,"Nezadán jazyk.")
table.insert(ErrorCats, "[[Category:Monitoring:Šablona Tvar/Nezadán jazyk]]")
jazyk = false
else
if Languages[jazyk] == 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 [[Wikislovník:Jazyky]].</small>)")
table.insert(ErrorCats, "[[Category:Monitoring:Šablona Tvar/Neexistující jazyk]]")
jazyk = false
end
end
if slovniDruh == "" or slovniDruh == nil then
table.insert(ErrorMsgs,"Nezadán slovní druh.")
table.insert(ErrorCats, "[[Category:Monitoring:Šablona Tvar/Nezadán slovní druh]]")
slovniDruh = false
else
if Tvar[slovniDruh] == 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, "[[Category:Monitoring:Šablona Tvar/Chybný slovní druh]]")
slovniDruh = false
end
if slovniDruh and jazyk and tvar then
local tvarVJazyceExistuje = false
for a in pairs (Tvar[slovniDruh]["existing-categories"][jazyk]) do
if Tvar[slovniDruh]["existing-categories"][jazyk][a] == tvar then
tvarVJazyceExistuje = true
end
end
if not tvarVJazyceExistuje then
table.insert(ErrorMsgs,"V jazyce s kódem „" .. jazyk .. "“ (''" .. Languages[jazyk]["name"] .. "'') nemá ''" .. slovniDruh .. "'' tvar „" .. tvar .. "“.")
table.insert(ErrorCats, "[[Category:Monitoring:Šablona Tvar/Chybný tvar]]")
slovniDruh = false
end
end
end
if jazyk and slovniDruh and tvar and word then
if Tvar[slovniDruh]["lang-specific-names"][jazyk] ~= nil then
if Tvar[slovniDruh]["lang-specific-names"][jazyk][tvar] ~= nil and Tvar[slovniDruh]["lang-specific-names"][jazyk][tvar] ~= "" then
out = Tvar[slovniDruh]["lang-specific-names"][jazyk][tvar]
end
else
out = Tvar[slovniDruh]["default-names"][tvar]
end
local kategorieSlovniDruhJazyk = false
if Languages[jazyk]["name_attr_gen_pl"] ~= nil and Languages[jazyk]["name_attr_gen_pl"] ~= "" then
if not Languages[jazyk]["name_attr_written_behind"] then
kategorieSlovniDruhJazyk = "[[Category:Tvary " .. Languages[jazyk]["name_attr_gen_pl"] .. " " .. Tvar[slovniDruh]["name-pl-gen"] .. "]]"
else
kategorieSlovniDruhJazyk = "[[Category:Tvary " .. Tvar[slovniDruh]["name-pl-gen"] .. " " .. Languages[jazyk]["name_attr_gen_pl"] .. "]]"
end
table.insert(OtherCats, kategorieSlovniDruhJazyk)
else
table.insert(ErrorCats, "[[Category:Monitoring:Šablona Tvar/Nezkategorizovaná hesla]]")
end
out = "''" .. out .. " " .. Tvar[slovniDruh]["name-sg-gen"] .. " [[" .. word .."]]''"
end
local errors = ""
if #ErrorMsgs > 0 or #ErrorCats > 0 then
if #ErrorMsgs == 1 then
errors = "Šablona [[Šablona:Tvar|Tvar]] obsahuje následující chybu: "
elseif #ErrorMsgs > 1 then
errors = "Šablona [[Šablona:Tvar|Tvar]] obsahuje následující chyby: "
end
for a in pairs (ErrorMsgs) do
errors = errors .. ErrorMsgs[a] .. " "
end
for a in pairs (ErrorCats) do
errors = errors .. ErrorCats[a]
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[a]
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[Kategorie[a]]["name-pl-nom"] .. "</h3>"
out = out .. "<table class=\"wikitable sortable\">"
out = out .. "<th>kód parametru</th><th>popis</th>"
local Params = {}
for b in pairs (Tvar[Kategorie[a]]["default-names"]) do
table.insert(Params, {b,Tvar[Kategorie[a]]["default-names"][b]})
end
table.sort(Params, function(x, y) return x[1] < y[1] end)
for n in pairs (Params) do
out = out .. "<tr><td>" .. Params[n][1] .. "</td><td>" .. Params[n][2] .. "</td></tr>"
end
out = out .. "</table>"
out = out .. ""
end
return out
end
return p