Module:Liste7 : Différence entre versions

 
(15 révisions intermédiaires par le même utilisateur non affichées)
Ligne 23 : Ligne 23 :
 
result = mw.ext.cargo.query('Sequences',frame.args.fields,{where = frame.args.where,groupBy = '_pageName'})
 
result = mw.ext.cargo.query('Sequences',frame.args.fields,{where = frame.args.where,groupBy = '_pageName'})
 
 
lieux = {{titre = 'Strasbourg', lat = 48.582, lon = 7.750, distance = 5}, {titre = 'Sélestat', lat = 48.260, lon = 7.452, distance = 10 }, {titre = 'Colmar'}, {titre = 'Mulhouse'}}
+
if #result < 6 then
 
+
return 'Requête trop sélective, essayez d\'élargir pour avoir au moins 6 résultats'
math.randomseed(os.time())
+
else
local i = 0
+
math.randomseed(os.time() + #result + result[1]['duree'])
liste = {}
+
local i = 0
while i < 6 do
+
liste = {}
nb = math.random(1,#result)
+
while i < 6 do
table.insert(liste,table.remove(result,nb))
+
nb = math.random(1,#result)
i = i+1
+
auto = math.random(0,2)
 +
if auto == 0 then
 +
result[nb]['Autoplay'] = 'autoplay'
 +
end
 +
table.insert(liste,table.remove(result,nb))
 +
i = i+1
 +
end
 +
 +
local retour = '<div id="bandeau-video">'
 +
for _, row in ipairs(liste) do
 +
retour = retour .. frame:expandTemplate({ title = "VideoAccueil", args = row})
 +
end
 +
 +
return  retour .. '</div>'
 
end
 
end
 
local retour = '<div id="bandeau-video">'
 
for _, row in ipairs(liste) do
 
retour = retour .. 'La cinémathèque du Rhin Supérieur vous donne accès à des films amateurs tournés en Alsace, dans le Bade-Wurtemberg et dans le pays de Bâle, et vous permet d’en apprendre davantage sur le contexte historique et cinématographique dans lequel ils ont été tournés. Vous avez également la possibilité de contribuer à cette plateforme à travers la rédaction d’une fiche ou l’apport d’un témoignage.'.. frame:expandTemplate({ title = "VideoAccueil", args = row})
 
end
 
 
return  retour .. '</div>'
 
  
 
end  
 
end  
 
return p
 
return p

Version actuelle datée du 12 juillet 2019 à 08:50

La documentation pour ce module peut être créée à Module:Liste7/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('Sequences',frame.args.fields,{where = frame.args.where,groupBy = '_pageName'})
	
	if #result < 6 then
		return 'Requête trop sélective, essayez d\'élargir pour avoir au moins 6 résultats'
	else
		math.randomseed(os.time() + #result + result[1]['duree'])
		local i = 0
		liste = {}
		while i < 6 do
			nb = math.random(1,#result)
			auto = math.random(0,2)
			if auto == 0 then
				result[nb]['Autoplay'] = 'autoplay'
			end
			table.insert(liste,table.remove(result,nb))
			i = i+1
		end
	
		local retour = '<div id="bandeau-video">'
		for _, row in ipairs(liste) do
			retour = retour .. frame:expandTemplate({ title = "VideoAccueil", args = row})
		end 
	
		return  retour .. '</div>'
	end

end 
return p