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