Modül:Kategori/tablo

Vikipedi, özgür ansiklopedi
Gezinti kısmına atla Arama kısmına atla
Modül belgelemesi[gör] [değiştir] [geçmiş] [temizle]

Çalışma

local tipHallet = require("Modül:Kategori").tipHallet

--veri listesi
local altsayfalar = {
	"veri",
	"veri/kişiler",
	"veri/sanat",
}
local tumveri = {}

local kademeler = {"yıl", "onyıl", "yüzyıl", "binyıl"}
local x = {}
x["yıl"] = {"2020", "2020'de"}
x["onyıl"] = {"2020'ler", "2020'lerde"}
x["yüzyıl"] = {"21. yüzyıl", "21. yüzyılda"}
x["binyıl"] = {"3. binyıl", "3. binyılda"}

local alfabe = "AaBbCcÇçDdEeFfGgĞğHhIıİiJjKkLlMmNnOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyZz0123456789"

function diz(a, b)
	return mw.ustring.find(alfabe, mw.ustring.sub(a, 1, 1)) < mw.ustring.find(alfabe, mw.ustring.sub(b, 1, 1))
end

function tabloOlustur(sayfa)
	local tablo = {}
	local islem = {}
	
	table.insert(tablo, "2020 yılı örnek alınmıştır.")
	table.insert(tablo, '{|class="wikitable"')
	table.insert(tablo, "! Kademeler !! Yıl !! Son eki ")
	table.insert(tablo, "|-")
	
	verimodulu = require("Modül:Kategori/" .. sayfa)
	for a,d in pairs(verimodulu) do
		if type(d) == "table" and d.ek then
			table.insert(islem, a)
			tumveri[a] = d
		end
	end

	table.sort(islem, function(a, b) return diz(a, b) end)
	
	for _,a in ipairs(islem) do
		local d = tumveri[a]
		local baslik = d.sonHarfSil and mw.ustring.sub(a, 1, -2) or a
		table.insert(tablo, '! colspan="3" style="background: #dddddd;" |' .. baslik)
		if d.kademe then 
			for i=1,d.kademe do
				if mw.title.new("Kategori:"..tipHallet(baslik, kademeler[i])).exists then
					table.insert(tablo, "|- class='"..a.."-"..kademeler[i].."'")
					table.insert(tablo, '|[[:Kategori:'..tipHallet(baslik, kademeler[i]).."|"..kademeler[i].."a göre]]")
					local ek = type(d.ek) == "table" and (d.ek[i] or d.ek[i-1] or d.ek[i-2]) or d.ek
					local yilDegeri = ek == "d" and x[kademeler[i]][2] or x[kademeler[i]][1]
					table.insert(tablo, '|'..yilDegeri)
					local deger = d[i] or a
					table.insert(tablo, '|'..deger)
					--table.insert(tablo, '| class="duzenle" style="text-align: center;font-size: smaller;"| [düzenle]')
				end
			end
		end
		table.insert(tablo, "|-")
		if d.gore and (type(d.gore) == "table" and d.gore[1] == "üst" or d.gore == "üst") then else
			if mw.title.new("Kategori:"..tipHallet(baslik, "döneme göre")).exists then
				table.insert(tablo, '| colspan="3"|[[:Kategori:'..tipHallet(baslik, "döneme göre")
					.."|"..tipHallet(baslik, "döneme göre").."]]")
			end
			table.insert(tablo, "|-")
		end
		if d.aciklama or d.bak or d.ebeveynler then
			table.insert(tablo, '|colspan="3"|')
			if d.ebeveynler then
				local ebList = "'''Ebeveynler:''' "
				for _,ebeveyn in ipairs(d.ebeveynler) do
					ebList = ebList .. ebeveyn .. ", "
				end
				ebList = mw.ustring.gsub(ebList, "%,%s$", "")
				table.insert(tablo, ebList)
			end
			if d.aciklama then table.insert(tablo, "'''Açıklama:''' "..d.aciklama) end
			if d.bak then
				local sonucBak = "'''Ayrıca bakınız:''' "
				for _,kars in ipairs(d.bak) do
					sonucBak = sonucBak .. kars .. ", "
				end
				sonucBak = mw.ustring.gsub(sonucBak, "%,%s$", "")
				table.insert(tablo, sonucBak)
			end
			table.insert(tablo, "|-")
		end
	end
	
	table.insert(tablo, "|}")
	
	return table.concat(tablo, "\n\n")
end

function goster(frame)
	local goruntuler = {}
	
	for _,sayfa in ipairs(altsayfalar) do
		table.insert(goruntuler, mw.getCurrentFrame():expandTemplate{
			title = "gizli içerik-başlık",
			args = {["başlık"]=sayfa}})
		table.insert(goruntuler, tabloOlustur(sayfa))
		table.insert(goruntuler, mw.getCurrentFrame():expandTemplate{title = "gizli içerik-son",args = {}})
	end
	
	return table.concat(goruntuler)
end

return {goster = goster}