Module:Foreach: Difference between revisions
From Bonkipedia
[[mw:]]>Uzume (fix when there are nonnumeric args; frame:argumentPairs is marked as "Included for backwards compatibility" and same as "pairs" but we want "ipairs") |
ManfredoDo (talk | contribs) m (1 revision imported: Module Import) |
(No difference)
|
Latest revision as of 18:20, 12 November 2022
See Template:Fe.
See also Lua error in Module:Wikidata_label at line 265: attempt to index field 'wikibase' (a nil value). (Q15213889) and specifically w:Module:For loop.
-- Replace http://www.mediawiki.org/wiki/Template:Foreach
local p = {}
function p.w(frame)
-- called from Template:Fe
local pframe = frame:getParent()
local tplname = pframe.args[1]
local delim = pframe.args[2]
r = ''
for n,v in ipairs(pframe.args) do
if n > 3 then
r = r .. delim
end
if n>2 then r = r .. frame:expandTemplate{title = tplname, args = {v}} end
end
return r
end
function p.m(t,frame)
-- to be called from a module
-- at the top: p={foreach = require "Module:foreach"}
-- example: p.foreach.m({tplname,', ',item1,item3,item3},frame)
r = ''
tplname=t[1]
delim=t[2]
for n,v in ipairs(t) do
if n > 3 then
r = r .. delim
end
if n>2 then r = r .. frame:expandTemplate{title = tplname, args = {v}} end
end
return r
end
return p