Modül:kutu

Vikisözlük sitesinden
Modül belgelemesi [Düzenle] [Tazele]


local cikart = {}

function cikart.sonuc(frame)
	--önce tüm parametreleri tek bir tabloda tanıt
	local params = {
		["şablon"] = {default= "kutu"},
		["açıklama"] = {},
		["resim"] = {},
		["sağ"] = {},
		["kontur"] = {default = "#666"},
		["arkaplan"] = {default = "#f9f9f9"},
		["genişlik"] = {default = "70%"},
	}
	--daha sonra tüm parametreleri modül yardımıyla args tanımlayıcısına aktar
	local args = require("Modül:parameters").process(frame:getParent().args, params)
	
	--kutunun dış stillerini tek bir tanımlayıcıda tutmak işi ileride kolaylaştırır
	local stiller = "background: " .. args["arkaplan"] .. "; box-sizing: border-box; margin: 5px auto; padding: 10px; display: table;" ..
				"border: " .. args["kontur"] .. " 1px solid; border-left-width: 10px; width: " .. args["genişlik"] .. ";"
	
	--kutunun açılış div tagini oluştur
	local ust = "<div id='" .. args["şablon"] .. "' style='" .. stiller .. "'>"
	
	--CSS biçimlerini ayarlayalım
	local resim_bicim = "width: 5%; display: table-cell; vertical-align: middle; text-align: center;"
	local aciklama_bicim = "width: "
		.. ((args["resim"] and args["sağ"]) and "90%" or ((args["resim"] or args["sağ"]) and "95%") or "100%") 
		.."%;" .. ((args["resim"] or args["sağ"]) and "display: table-cell;" or "")
		..(args["resim"] and "padding-left: 10px;" or "")
		..(args["sağ"] and "padding-right: 10px;" or "")

	--bunlar da div etiketleri
	--açıklama ve resim parametrelerini ayarla
	local resim = args["resim"] and ("<div style='".. resim_bicim .."'>[[Dosya:" .. args["resim"] .. "|30px]]</div>") or ""
	local aciklama = args["açıklama"] and ("<div style='".. aciklama_bicim .."'>" .. args["açıklama"] .. "</div>") or ""
	local sag = args["sağ"] and ("<div style='"..resim_bicim.."'>" .. args["sağ"] .. "</div>") or ""
	
	--kutuyu son olarak birleştir
	return ust .. resim .. aciklama .. sag .. "</div>"
end

return cikart