Jump to content

Module:Carousel

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by RexxS (talk | contribs) at 14:18, 22 January 2018 (annotate). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

p = {}

-- carousel returns one of a list of image filenames
-- the index of the one chosen increments every 'switchsecs'
-- which is a parameter giving the number of seconds between switches
-- 3600 would switch every hour
-- 43200 would be every 12 hours
-- 86400 would be daily (the default)
-- {{#invoke:carousel | main | switchsecs = number-of-seconds }}
-- {{#invoke:carousel | main }} for 12 hours between switches
p.main = function(frame)
	-- get parameter switchsecs; if NaN or less than 1, set default
	local switchtime = tonumber(frame.args.switchsecs) or 86400
	if switchtime < 1 then switchtime = 86400 end
	
	-- get parameter dataname; if missing, use default
	local dataname = frame.args.name
	if not dataname or dataname == "" then dataname = "Shonen" end
	
	-- there should be a named data module as a submodule
	local imgs = require("Module:Carousel/" .. dataname)
	local numimgs = #imgs
	
	-- 'now' increments by 1 every switchtime seconds
	local now = math.floor( os.time() / switchtime )
	
	-- set an index between 1 and number of images
	local idx = now % numimgs + 1
	return imgs[idx]
end

return p