Module:Message box: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
add mbox, various other fixes |
pass nocat, page, and demospace parameters to Module:Category handler, and add a choice for which arguments to allow as blank |
||
Line 88: | Line 88: | ||
local function getNamespaceId(ns) |
local function getNamespaceId(ns) |
||
⚫ | |||
if type(ns) == 'string' then |
if type(ns) == 'string' then |
||
ns = lang:ucfirst(mw.ustring.lower(ns)) |
ns = lang:ucfirst(mw.ustring.lower(ns)) |
||
Line 124: | Line 125: | ||
-- Get the title object and the namespace. |
-- Get the title object and the namespace. |
||
local |
local pageTitle = getTitleObject(args.page ~= '' and args.page) |
||
local |
local title = pageTitle or mw.title.getCurrentTitle() |
||
local demospace = getNamespaceId(args.demospace ~= '' and args.demospace) |
|||
local nsid = demospace or title.namespace |
|||
-- Get the box config data from the data page. |
-- Get the box config data from the data page. |
||
Line 141: | Line 144: | ||
error(format('invalid message box type "%s"; valid types are %s', tostring(boxType), mw.text.listToText(boxTypes)), 2) |
error(format('invalid message box type "%s"; valid types are %s', tostring(boxType), mw.text.listToText(boxTypes)), 2) |
||
end |
end |
||
-- Only allow blank arguments for the parameter names listed in data.allowBlankParams. |
|||
local newArgs = {} |
|||
for k, v in pairs(args) do |
|||
for i, param in ipairs(data.allowBlankParams or {}) do |
|||
⚫ | |||
newArgs[k] = v |
|||
end |
|||
end |
|||
end |
|||
args = newArgs |
|||
newArgs = nil |
|||
------------------------ Process config data ---------------------------- |
------------------------ Process config data ---------------------------- |
||
Line 222: | Line 237: | ||
if data.allowMainspaceCategories then |
if data.allowMainspaceCategories then |
||
-- Categories for the main namespace. |
-- Categories for the main namespace. |
||
if args.cat then |
|||
args.cat1 = args.cat |
|||
end |
|||
local origCatNums = getArgNums(args, 'cat') |
local origCatNums = getArgNums(args, 'cat') |
||
if args.category then |
|||
args.category1 = args.category |
|||
end |
|||
local origCategoryNums = getArgNums(args, 'category') |
local origCategoryNums = getArgNums(args, 'category') |
||
local catNums = union(origCatNums, origCategoryNums) |
local catNums = union(origCatNums, origCategoryNums) |
||
Line 233: | Line 254: | ||
-- Process template namespace categories |
-- Process template namespace categories |
||
local isTemplatePage = type(name) == 'string' and title.prefixedText == ('Template:' .. name) |
|||
local templateCats = {} |
local templateCats = {} |
||
if data.templateCategory |
if data.templateCategory then |
||
if name then |
|||
⚫ | |||
if isTemplatePage then |
|||
tinsert(templateCats, format('[[Category:%s]]', data.templateCategory)) |
|||
end |
|||
elseif not title.isSubpage then |
|||
⚫ | |||
end |
|||
end |
end |
||
-- Add an error category for the template namespace if appropriate. |
-- Add an error category for the template namespace if appropriate. |
||
if data.templateErrorCategory then |
if data.templateErrorCategory then |
||
Line 387: | Line 415: | ||
main = tconcat(mainCats), |
main = tconcat(mainCats), |
||
template = tconcat(templateCats), |
template = tconcat(templateCats), |
||
all = tconcat(allCats) |
all = tconcat(allCats), |
||
nocat = args.nocat, |
|||
demospace = demospace and args.demospace or nil, |
|||
page = pageTitle and pageTitle.prefixedText or nil |
|||
}) |
}) |
||
Line 415: | Line 446: | ||
v = mw.text.trim(v) |
v = mw.text.trim(v) |
||
end |
end |
||
args[k] = v |
|||
⚫ | |||
⚫ | |||
end |
end |
||
return p.build(boxType, args) |
return p.build(boxType, args) |