Menyunting Modul:Lua banner
Loncat ke navigasi
Loncat ke pencarian
Suntingan ini dapat dibalikkan. Harap periksa perbandingan di bawah ini untuk meyakinkan bahwa benar tindakan itu yang ingin Anda lakukan, lalu terbitkan perubahan tersebut untuk menyelesaikan pembalikan suntingan.
Revisi terkini | Teks Anda | ||
Baris 1: | Baris 1: | ||
-- This module implements the {{lua}} template. | -- This module implements the {{lua}} template. | ||
local yesno = require('Module:Yesno') | local yesno = require('Module:Yesno') | ||
local mList = require('Module:List') | local mList = require('Module:List') | ||
local mTableTools = require('Module:TableTools') | local mTableTools = require('Module:TableTools') | ||
local mMessageBox = require('Module:Message box') | local mMessageBox = require('Module:Message box') | ||
local TNT = require('Module:TNT') | |||
local p = {} | local p = {} | ||
local function format(msg) | |||
return TNT.format('I18n/Lua banner', msg) | |||
end | |||
local function getConfig() | |||
return mw.loadData('Module:Lua banner/config') | |||
end | |||
function p.main(frame) | function p.main(frame) | ||
Baris 19: | Baris 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, args) | ||
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, args) | ||
local boxArgs = {} | local boxArgs = {} | ||
if #modules < 1 then | if #modules < 1 then | ||
boxArgs.text = '<strong class="error"> | cfg = cfg or getConfig() | ||
if cfg['allow_wishes'] or yesno(args and args.wish) 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 = {} | ||
Baris 36: | Baris 51: | ||
end | end | ||
local moduleList = mList.makeList('bulleted', moduleLinks) | local moduleList = mList.makeList('bulleted', moduleLinks) | ||
boxArgs.text = | boxArgs.text = format('header') .. '\n' .. moduleList | ||
end | end | ||
boxArgs.type = 'notice' | boxArgs.type = 'notice' | ||
boxArgs.small = true | boxArgs.small = true | ||
boxArgs.image = '[[ | boxArgs.image = string.format( | ||
'[[File:Lua-logo-nolabel.svg|30px|alt=%s|link=%s]]', | |||
format('logo_alt'), | |||
format('logo_link') | |||
) | |||
return mMessageBox.main('mbox', boxArgs) | return mMessageBox.main('mbox', boxArgs) | ||
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 then | if #modules < 1 and not (cfg['allow_wishes'] or yesno(args.wish)) and cfg['error_category'] then | ||
cats[#cats + 1] = ' | cats[#cats + 1] = cfg['error_category'] | ||
end | end | ||
-- Lua templates category | -- Lua templates category | ||
titleObj = titleObj or mw.title.getCurrentTitle() | titleObj = titleObj or mw.title.getCurrentTitle() | ||
if titleObj.namespace == 10 | if titleObj.namespace == 10 | ||
and not | and not cfg['subpage_blacklist'][titleObj.subpageText] | ||
then | then | ||
local category = args.category | local category = args.category | ||
if not category then | if not category then | ||
local | local pagename = modules[1] and mw.title.new(modules[1]) | ||
category = pagename and cfg['module_categories'][pagename.text] | |||
if not category then | |||
if (cfg['allow_wishes'] or yesno(args.wish)) and #modules < 1 then | |||
category = cfg['wish_category'] | |||
else | |||
category = cfg['default_category'] | |||
end | |||
end | |||
end | end | ||
if category then | |||
cats[#cats + 1] = category | |||
end | end | ||
end | end | ||
for i, cat in ipairs(cats) do | for i, cat in ipairs(cats) do | ||
cats[i] = string.format('[[ | cats[i] = string.format('[[Category:%s]]', cat) | ||
end | end | ||
return table.concat(cats) | return table.concat(cats) |