Documentation for this module may be created at Module:PageIsSponsoring/doc
local cargo = mw.ext.cargo local Flags = require('Module:Flags') local PageIsSponsoring = {} function PageIsSponsoring.main(frame) local currentTitle = mw.title.getCurrentTitle().text local empty = true -- Check if there are any interviews for this page local tables = 'Sponsors' local fields = '_pageName, id, type, start, end' local currentDate = os.date('%Y-%m-%d') local cargoArgs = { where = 'id ="' .. currentTitle .. '" AND (end is NULL OR end > "' .. currentDate .. '")', limit=30, orderBy = 'type, start' } local results = cargo.query(tables, fields, cargoArgs) local fullString = '' local container = mw.html.create() :node(mw.html.create('h2'):wikitext('Sponsoring')) if #results > 0 then empty = false local limit = 1 local type = results[1].type fullString = fullString .. '<tabber>|-|' .. PageIsSponsoring.capitalizeFirstCharacter(type) .. 's=' local Table = mw.html.create('table') :addClass('striped-table') local titleRow = mw.html.create('tr') :addClass('headerRow') local nameCell = mw.html.create('th') :wikitext('Name') local startCell = mw.html.create('th') :wikitext('Start') Table:node(titleRow:node(nameCell):node(startCell)) for r = 1, #results do local result = results[r] if results[r-1] and results[r-1].type ~= result.type then limit = 1 country = Flags.CountryName(result.country) fullString = fullString .. tostring(mw.clone(Table)) .. '|-|' .. PageIsSponsoring.capitalizeFirstCharacter(result.type) .. 's=' Table = mw.html.create('table') :addClass('striped-table') titleRow = mw.html.create('tr') :addClass('headerRow') nameCell = mw.html.create('th') :wikitext('Name') startCell= mw.html.create('th') :wikitext('Start') Table:node(titleRow:node(nameCell):node(startCell)) end if limit < 10 then local resultRow= mw.html.create('tr'):addClass('bodyRow') local name = mw.html.create('td'):wikitext('[[' .. result._pageName .. ']]') local start = mw.html.create('td') :node(result.start or 'TBD' ) Table:node(resultRow:node(name):node(start)) end limit = limit + 1 end fullString = fullString .. tostring(Table) end fullString = fullString .. '</tabber>' mw.log(fullString) if empty then return '<span class="d-none"></span>' else return container:wikitext(frame:preprocess(fullString)) end end function PageIsSponsoring.capitalizeFirstCharacter(str) return str:gsub('^%l', string.upper) end return PageIsSponsoring