Modul:Dobszay
Megjelenés
Dobszay[mi ez?] • [dokumentáció: mutat, ] • [tesztek: létrehozás]
Dobszay László: A magyar dal könyve és Vargyas Lajos: A magyarság népzenéje című könyvének fejezetei az interneten külön lapon vannak. A modul linket ad vissza a kottát tartalmazó fejezetre (Dobszay) ill. a kottára (Vargyas).
A modult a {{Dal infobox}}
(?) használja.
local dalkonyv = {}
local function szam(param)
-- elhagyjuk a kottaszám végéről a betűt (ha van)
return tonumber( string.match( param, '^%d+' ) )
end
function dalkonyv.dobszay(frame)
-- A fejezetek kezdő kottaszámai
local fejezet = { 0, 121, 146, 179, 238, 260, 274, 301, 340, 370, 394, 401, 421, 456, 489, 500, 539, 546, 651 }
local link = '[http://www.tankonyvtar.hu/hu/tartalom/tamop425/2011_0001_550_a_magyar_dal_konyve/ch%02d.html %s]'
param = frame.args['kotta']
kotta = szam(param)
if not kotta then
return param -- hibás bemenő paraméter: nem teszünk rá linket
end
for i, v in ipairs( fejezet ) do -- megkeressük, melyik fejezetben van a kotta
if kotta < v then
return string.format( link, i, param )
end
end
end
function dalkonyv.vargyas2(frame)
-- A fejezetek kezdő kottaszámai
local daltar = { 146, 153, 197, 208, 247, 255, 256, 303, 311, 319, 395 }
local fejezet = { 0, 46, 79, 104, 128, 135, 139, 147, 191, 206, 266, 269, 282 }
param = frame.args['kotta']
kotta = szam(param)
if not kotta then
return param -- hibás bemenő paraméter: nem teszünk rá linket
end
elso = string.sub(param,1,1) -- a kottaszám első karaktere 0: dallamtár, egyébként fejezetszám
if elso == '0' then
tomb = daltar
else
tomb = fejezet
end
urleleje = '['..'http://www.tankonyvtar.hu/hu/tartalom/tkt/magyarsag-nepzeneje/ch'
urlvege = ' '..param..']'
for i, v in ipairs( tomb ) do -- megkeressük, melyik fejezetben van a kotta
if kotta < v then -- megtaláltuk
szam = string.format('%02d',i) -- i értéke két számjegyen
if elso == '0' then -- daltár
if i == 1 then
fej = ''
else
fej = 's'..szam
end
return urleleje..'14'..fej..'.html#dgy-'..param..urlvege
else
return urleleje..szam..'.html#dsz-'..param..urlvege
end
end
end
end
return dalkonyv