Module:Liste2

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'] = tonumber(string.sub(row['dateDebut'],1,4))
			end
		elseif row['dateFin'] then
			row['annee'] = tonumber(string.sub(row['dateFin'],1,4))
		else
			row['annee'] = 2018
		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