Module:TemplateHelpers: Difference between revisions
// via Wikitext Extension for VSCode Tag: Reverted |
// via Wikitext Extension for VSCode Tag: Manual revert |
||
| Line 191: | Line 191: | ||
-- Retrieves a field value from args using either multiple possible keys or a single key | -- Retrieves a field value from args using either multiple possible keys or a single key | ||
-- Supports case-insensitive lookup by default | -- Supports case-insensitive lookup by default | ||
function p.getFieldValue(args, field) | function p.getFieldValue(args, field) | ||
if field.keys then | |||
for _, key in ipairs(field.keys) do | |||
-- First try exact match to maintain backward compatibility | |||
if args[key] and args[key] ~= "" then | |||
return key, args[key] | |||
end | |||
-- Then try lowercase version | |||
local lowerKey = key:lower() | |||
if args[lowerKey] and args[lowerKey] ~= "" and lowerKey ~= key then | |||
return lowerKey, args[lowerKey] | |||
end | end | ||
end | end | ||
return nil, nil | |||
end | |||
-- First try exact match | |||
if args[field.key] and args[field.key] ~= "" then | |||
return field.key, args[field.key] | |||
end | |||
-- Then try lowercase version | |||
local lowerKey = field.key:lower() | |||
if args[lowerKey] and args[lowerKey] ~= "" and lowerKey ~= field.key then | |||
return lowerKey, args[lowerKey] | |||
end | |||
return field.key, nil | |||
end | end | ||