Difference between revisions of "Module:Lua banner"
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 | ||
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 | 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 |