Difference between revisions of "Module:Lua banner"

351 bytes added ,  17:24, 11 July 2020
allow wishes (used e.g. on Commons), allow overriding config for testing
>Tacsipacsi
(i18n using Module:TNT, load MediaWiki.org-specific configuration from /config)
>Tacsipacsi
(allow wishes (used e.g. on Commons), allow overriding config for testing)
Line 11: Line 11:
local function format(msg)
local function format(msg)
return TNT.format('I18n/Lua banner', msg)
return TNT.format('I18n/Lua banner', msg)
end
local function getConfig()
return mw.loadData('Module:Lua banner/config/sandbox')
end
end


Line 25: Line 29:
end
end


function p._main(args)
function p._main(args, cfg)
local modules = mTableTools.compressSparseArray(args)
local modules = mTableTools.compressSparseArray(args)
local box = p.renderBox(modules)
local box = p.renderBox(modules, cfg)
local trackingCategories = p.renderTrackingCategories(args, modules)
local trackingCategories = p.renderTrackingCategories(args, modules, nil, cfg)
return box .. trackingCategories
return box .. trackingCategories
end
end


function p.renderBox(modules)
function p.renderBox(modules, cfg)
local boxArgs = {}
local boxArgs = {}
if #modules < 1 then
if #modules < 1 then
boxArgs.text = string.format('<strong class="error">%s</strong>', format('error_emptylist'))
cfg = cfg or getConfig()
if cfg['allow_wishes'] then
boxArgs.text = format('wishtext')
else
boxArgs.text = string.format('<strong class="error">%s</strong>', format('error_emptylist'))
end
else
else
local moduleLinks = {}
local moduleLinks = {}
Line 54: Line 63:
end
end


function p.renderTrackingCategories(args, modules, titleObj)
function p.renderTrackingCategories(args, modules, titleObj, cfg)
if yesno(args.nocat) then
if yesno(args.nocat) then
return ''
return ''
end
end
local cfg = mw.loadData('Module:Lua banner/config')
cfg = cfg or getConfig()
local cats = {}
local cats = {}
-- Error category
-- Error category
if #modules < 1 and cfg['error_category'] then
if #modules < 1 and not cfg['allow_wishes'] and cfg['error_category'] then
cats[#cats + 1] = cfg['error_category']
cats[#cats + 1] = cfg['error_category']
end
end
Line 77: Line 86:
local pagename = modules[1] and mw.title.new(modules[1])
local pagename = modules[1] and mw.title.new(modules[1])
category = pagename and cfg['module_categories'][pagename.text]
category = pagename and cfg['module_categories'][pagename.text]
category = category or cfg['default_category']
if not category then
if cfg['allow_wishes'] and #modules < 1 then
category = cfg['wish_category']
else
category = cfg['default_category']
end
end
end
end
if category then
if category then
Anonymous user