Editing Module:Abilities/utilsGive feedback
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
| Latest revision | Your text | ||
| Line 121: | Line 121: | ||
return notes_source_page | return notes_source_page | ||
end | |||
-- Generic function to traverse the table | |||
-- A parameter can be passed that is numerical, like 2; and the function will | |||
-- first try to access the key "2", otherwise it will look for the value at index=2 (3rd value) | |||
function p.get_value(frame) | |||
local args = frame.args | |||
local value = item_data | |||
for i = 1, #args do | |||
local key = args[i] | |||
-- First try string key | |||
if type(value) == "table" and value[key] ~= nil then | |||
value = value[key] | |||
-- Then try numeric key if string didn't work | |||
elseif type(value) == "table" then | |||
local num_key = tonumber(key) | |||
if num_key and value[num_key] ~= nil then | |||
value = value[num_key] | |||
else | |||
return "" | |||
end | |||
else | |||
return "" | |||
end | |||
end | |||
-- Return final value, convert to string if not nil | |||
if value == nil then | |||
return "" | |||
else | |||
return tostring(value) | |||
end | |||
end | end | ||
return p | return p | ||