Module:Liste7 : Différence entre versions
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'}} | + | --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 | |
− | math.randomseed(os.time()) | + | return 'Requête trop sélective, essayez d\'élargir pour avoir au moins 6 résultats' |
− | + | else | |
− | + | math.randomseed(os.time()) | |
− | + | local i = 0 | |
− | + | liste = {} | |
− | + | while i < 6 do | |
− | + | nb = math.random(1,#result) | |
+ | 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 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
end | end | ||
return p | return p |
Version du 28 juin 2019 à 15:48
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'}) --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' else math.randomseed(os.time()) local i = 0 liste = {} while i < 6 do nb = math.random(1,#result) 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