No edit summary |
mNo edit summary |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local Sponsors = {} | local Sponsors = {} | ||
function Sponsors.make(results) | function Sponsors.make(results, frame) | ||
if type(results) == 'string' then results = Sponsors.encode(results) end | |||
local container = mw.html.create('div') | local container = mw.html.create('div') | ||
for r = 1, #results do | for r = 1, #results do | ||
local result = results[r] | local result = results[r] | ||
local sponsor = mw.html.create(' | local id = string.gsub(result.id, 'Companies/', '') | ||
:wikitext('[[' .. | local sponsor = mw.html.create('div') | ||
if result.startRef then | :wikitext('[[Companies/' .. id .. '|' .. id .. ']]') | ||
if result.startRef or result.startRefName then | |||
local startRefName = result.startRefName or '' | local startRefName = result.startRefName or '' | ||
sponsor:wikitext(frame:preprocess('<ref name='.. startRefName .. '>' . | local startRef = result.startRef or '' | ||
sponsor:wikitext(frame:preprocess('<ref name='.. startRefName .. '>' ..startRef.. '</ref>')) | |||
end | end | ||
container:node(sponsor) | container:node(sponsor) | ||
Line 16: | Line 19: | ||
return container | return container | ||
end | |||
function Sponsors.encode(jsonString) | |||
local decodedTables = {} | |||
for objectString in jsonString:gmatch('{.-}') do | |||
local decodedTable = {} | |||
for key, value in objectString:gmatch('"(%w+)":"([^"]+)"') do | |||
decodedTable[key] = value | |||
end | |||
table.insert(decodedTables, decodedTable) | |||
end | |||
return decodedTables | |||
end | end | ||
return Sponsors | return Sponsors |
Latest revision as of 21:28, 14 February 2024
Documentation for this module may be created at Module:Infobox/Widget/Sponsors/doc
local Sponsors = {} function Sponsors.make(results, frame) if type(results) == 'string' then results = Sponsors.encode(results) end local container = mw.html.create('div') for r = 1, #results do local result = results[r] local id = string.gsub(result.id, 'Companies/', '') local sponsor = mw.html.create('div') :wikitext('[[Companies/' .. id .. '|' .. id .. ']]') if result.startRef or result.startRefName then local startRefName = result.startRefName or '' local startRef = result.startRef or '' sponsor:wikitext(frame:preprocess('<ref name='.. startRefName .. '>' ..startRef.. '</ref>')) end container:node(sponsor) end return container end function Sponsors.encode(jsonString) local decodedTables = {} for objectString in jsonString:gmatch('{.-}') do local decodedTable = {} for key, value in objectString:gmatch('"(%w+)":"([^"]+)"') do decodedTable[key] = value end table.insert(decodedTables, decodedTable) end return decodedTables end return Sponsors