local tipHallet = require("Modül:Kategori").tipHallet
--veri listesi
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)
local a2 = mw.ustring.find(alfabe, mw.ustring.sub(a, 1, 1))
local b2 = mw.ustring.find(alfabe, mw.ustring.sub(b, 1, 1))
return a2 == b2 and a:lower() < b:lower() or a2 < b2
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 (d.sonIkiHarfSil and mw.ustring.sub(a, 1, -3) 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önem")).exists then
table.insert(tablo, '| colspan="3"|[[:Kategori:'..tipHallet(baslik, "dönem")
.."|"..tipHallet(baslik, "dönem").."]]")
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 = {}
local args = frame.args
table.insert(goruntuler, mw.getCurrentFrame():expandTemplate{
title = "gizli içerik-başlık",
args = {["başlık"]=args[1]}})
table.insert(goruntuler, tabloOlustur(args[1]))
table.insert(goruntuler, mw.getCurrentFrame():expandTemplate{title = "gizli içerik-son",args = {}})
return table.concat(goruntuler)
end
return {goster = goster}