Module:Iteration/doc: Difference between revisions
More actions
m odd number problem |
m format |
||
| Line 24: | Line 24: | ||
when always a tupel of e.g. an item and its correlated text needs to be passed. <br> | when always a tupel of e.g. an item and its correlated text needs to be passed. <br> | ||
<br> | <br> | ||
When there are tuples, tripels etc. the <tt>table.insert</tt> occurs, when the last element is | When there are tuples, tripels etc., the <tt>table.insert</tt> occurs, when the last element is processed;<br> | ||
this performs problems when the last group is incomplete – it should be finished with empty values <br> | this performs problems when the last group is incomplete – it should be finished with empty values <br> | ||
to trigger the <tt>table.insert</tt>. The check with <tt>table.maxn</tt> seems not to work correctly ? | to trigger the <tt>table.insert</tt>. The check with <tt>table.maxn</tt> seems not to work correctly ?<br> | ||
''This'' problem is solved differently, for the function "attribs" with a primitive workaround. | |||
<br> | <br> | ||
Revision as of 11:38, 30 January 2020
This module contains the functions for different templates, solving their iteration problem
- The wikipedia template coding does not support the repetitive processing of a parameter set,
- which leads often to a very primitive and long chain of parameter checks in the kind of
{{#if:{{{1|}}} | perform an action with parameter 1 }} {{#if:{{{2|}}} | perform an action with parameter 2 }} {{#if:{{{3|}}} | perform an action with parameter 3 }} {{#if:{{{4|}}} | perform an action with parameter 4 }} ••• ••• {{#if:{{{33|}}} perform an action with parameter 33 }}
with the disadvantage that such a construct will fail as soon as there comes a 34nd parm.
I always thought that with Lua and its for loops this iterations should be possible, somehow.
After long searching without any success and without an idea how to perform it, I asked at several forums
and got finally from User:Trappist the monk the helping hint to solve it with a control structure like
local out = {}
for i, v in ipairs (args) do
table.insert (out, frame:expandTemplate{ title = title, args = v })
end
return table.concat (out)
The functions contained therein are from very simple, just one parameter to pass,
to more complicated ones, where e.g. a pair of parameters needs kind of a flip-flop switch
when always a tupel of e.g. an item and its correlated text needs to be passed.
When there are tuples, tripels etc., the table.insert occurs, when the last element is processed;
this performs problems when the last group is incomplete – it should be finished with empty values
to trigger the table.insert. The check with table.maxn seems not to work correctly ?
This problem is solved differently, for the function "attribs" with a primitive workaround.