Module:Carousel: Difference between revisions
Appearance
Content deleted Content added
choice of names |
annotate |
||
Line 8: | Line 8: | ||
-- 43200 would be every 12 hours |
-- 43200 would be every 12 hours |
||
-- 86400 would be daily (the default) |
-- 86400 would be daily (the default) |
||
-- {{#invoke:carousel | |
-- {{#invoke:carousel | main | switchsecs = number-of-seconds }} |
||
-- {{#invoke:carousel | main }} for 12 hours between switches |
-- {{#invoke:carousel | main }} for 12 hours between switches |
||
p.main = function(frame) |
p.main = function(frame) |
||
-- get parameter switchsecs; if NaN or less than 1, set default |
|||
local switchtime = tonumber(frame.args.switchsecs) or 86400 |
local switchtime = tonumber(frame.args.switchsecs) or 86400 |
||
if switchtime < 1 then switchtime = 86400 end |
if switchtime < 1 then switchtime = 86400 end |
||
⚫ | |||
-- get parameter dataname; if missing, use default |
|||
⚫ | |||
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 imgs = require("Module:Carousel/" .. dataname) |
||
local numimgs = #imgs |
local numimgs = #imgs |
||
-- 'now' increments by 1 every switchtime seconds |
|||
local now = math.floor( os.time() / switchtime ) |
local now = math.floor( os.time() / switchtime ) |
||
-- set an index between 1 and number of images |
|||
local idx = now % numimgs + 1 |
local idx = now % numimgs + 1 |
||
return imgs[idx] |
return imgs[idx] |
Revision as of 14:18, 22 January 2018
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.
switchsecs=3600
would switch every hourswitchsecs=43200
would be every 12 hoursswitchsecs=86400
would be daily (the default)
Usage
Generic:
{{#invoke:carousel | main | name = name-of-data-module | switchsecs = number-of-seconds }}
Examples:
{{#invoke:carousel | main }}
for 24 hours between switches using default list{{#invoke:carousel | main | switchsecs = 10}}
for 10 sec between switches using default list{{#invoke:carousel | main | name= | switchsecs = 1}}
1 sec between switches using default list{{#invoke:carousel | main | name=Komodobish | switchsecs = 5}}
5 sec using Komodobish's list{{#invoke:carousel | main | name=54129 | switchsecs = 43200}}
12 hours using Serial Number 54129's list
The image lists are at Special:PrefixIndex/Module:Carousel/, e.g. Module:Carousel/Komodobish for name=Komodobish
.
Typically it will be used with standard image syntax:
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