這裡是一位史蒂夫[更多]的模塊測試頁面。
目前模塊測試被用於:
模塊子頁面:
local luaq = require("Module:Luaq") -- 加載查詢模塊。
local module = {}
local data = mw.text.jsonDecode(mw.title.new("Module:UserGroup/data"):getContent())
function table.indexof(t, item)
for i, v in ipairs(t) do
if v == item then return i end
end
return 0
end
local UserGroupInfo = function(group, frame)
local parent = frame:getParent()
if parent and parent:getTitle() == "Template:UserGroup" then
frame = parent
end
if frame.args["Count"] then
return #group
else
local list = {}
for key, val in ipairs(group) do
if mw.text.trim(val) ~= "" then
local user = config[val]
if (user) then
table.insert(list,
frame:preprocess(user.prefix or "")..
frame:expandTemplate{ title = "User", args = { val } }..
frame:preprocess(user.postfix or "")
)
else
table.insert(list, frame:expandTemplate{ title = "User", args = { val } })
end
end
end
return table.concat(list, " • ")
end
end
--[==[
動態生成用以展示某一用戶組成員列表的模塊導出函數,
生成操作支持的用戶組同[[Module:UserGroup/data]]中明確列舉出的用戶組,沒有列舉出的將不會支持。
在調用模塊時,仍然可以使用{{#invoke|UserGroup|【用戶組的代號】}},舊代碼可不做修改。
]==]
for gname, g in pairs(data) do
module[gname] = function(frame)
return UserGroupInfo(g, frame)
end
end
--[[
由於行政員默認擁有管理員用戶組,因此在顯示時需要去重。
]]
function module.vote_count(frame)
local filter = mw.text.trim(frame.args[1] or "")
local groups = getGroups(filter) -- 獲取要求和的用戶組列表
if groups == nil or #groups == 0 then return 0 end
return adjust + luaq.iasQuery(groups)
:select(check_vote)
:sum(function(x, y) return { x[1] + y[1] } end) -- 求和
end
return module