Module:Infobox/Widget/Sponsors: Difference between revisions

From TwogPedia
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('li')
        local id = string.gsub(result.id, 'Companies/', '')
         :wikitext('[[' .. result._pageName .. ']]')
         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 .. '>' ..result.startRef .. '</ref>'))
        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