Module:Liste2
Révision datée du 10 décembre 2018 à 11:16 par L.strappazon (discussion | contributions)
La documentation pour ce module peut être créée à Module:Liste2/doc
local p = {}
function p.main(frame)
if frame == mw.getCurrentFrame() then
args = require('Module:ProcessArgs').merge(true)
else
frame = mw.getCurrentFrame()
end
local query = {}
for k, v in pairs(args) do
if string.sub(k, 0, 2) == 'q?' then
query[string.sub(k, 3)] = v
end
end
supports={}
local result = mw.ext.cargo.query('Supports','idSupport,video',{groupBy = 'idSupport',limit=3000})
for d, row in ipairs(result) do
supports[row['idSupport']] = row['video']
end
result = mw.ext.cargo.query(query.tables, query.fields, query)
if not next(result) then
return frame:preprocess(args.default or '')
end
local tbl1,tbl2,tbl3,tbl4,tbl5,tbl6 = {},{},{},{},{},{},{}
for _, row in ipairs(result) do
if row['dateDebut'] and row['dateDebut'] ~= '' then
if row['dateFin'] and row['dateFin'] ~= '' then
local a = tonumber(string.sub(row['dateDebut'],1,4)) + tonumber(string.sub(row['dateFin'],1,4))
row['annee'] = (a-a%2)/2
else
row['annee'] = string.sub(row['dateDebut'],1,4)
end
elseif row['dateFin'] then
row['annee'] = string.sub(row['dateFin'],1,4)
else
row['annee'] = '?'
end
if row['video'] == '' then
if supports[row['idSupport']] then row['video']=supports[row['idSupport']] end
end
if row['annee'] < 1930 then
tbl1[#tbl1+1] = frame:expandTemplate{ title = args.template, args = row }
elseif row['annee'] >= 1930 and row['annee'] < 1940 then
tbl2[#tbl2+1] = frame:expandTemplate{ title = args.template, args = row }
elseif row['annee'] >= 1940 and row['annee'] < 1950 then
tbl3[#tbl3+1] = frame:expandTemplate{ title = args.template, args = row }
elseif row['annee'] >= 1950 and row['annee'] < 1960 then
tbl4[#tbl4+1] = frame:expandTemplate{ title = args.template, args = row }
elseif row['annee'] >= 1960 and row['annee'] < 1970 then
tbl5[#tbl5+1] = frame:expandTemplate{ title = args.template, args = row }
else
tbl6[#tbl6+1] = frame:expandTemplate{ title = args.template, args = row }
end
end
local intro = frame:preprocess(args.intro or '')
local outro = frame:preprocess(args.outro or '')
return intro .. table.concat(tbl1,args.delimiter or '') .. table.concat(tbl2,args.delimiter or '') .. table.concat(tbl3,args.delimiter or '') .. table.concat(tbl4,args.delimiter or '') .. table.concat(tbl5,args.delimiter or '') .. table.concat(tbl6,args.delimiter or '') .. outro
end
return p