This module depends on the following other modules: |
Module:R from fictional object multi is used by {{R from fictional character}}, {{R from fictional element}} and {{R from fictional location}} to handle multiple series tagged with the same redirect.
Usage
{{#invoke:R from fictional object multi|main|category=|1=|2=|3=|4=|5=|6=|7=|8=|sort=}}
Parameter list
Parameter | Explanation |
---|---|
1...8
|
Positional or numbered parameters for each series name. |
category
|
The redirect category scheme to be used. |
sort
|
An optional sort key for the category. |
require("strict")
local p = {}
local resolveRedir = require("Module:Resolve category redirect").rtarget
--[[
Local function which creates the relevent category, either with or without a sort key.
--]]
local function createCategory(categoryScheme, name, sortKey)
local category = name .. " " .. categoryScheme
category = resolveRedir(category)
if (sortKey) then
category = category .. "|" .. sortKey
end
return "[[Category:" .. category .. "]]"
end
--[[
Local function which handles the main process.
Parameters:
-- |1...8= — required; Positional or numbered parameters for each series name.
-- |category= — required; The redirect category scheme to be used.
-- |sort= — optinal; A sort key for the category.
--]]
local function _main(args)
-- If category wasn't set, return error.
if (not args.category) then
return error
end
local categories = ""
for i = 1, 10 do
if (args[i]) then
categories = categories .. createCategory(args.category, args[i], args["sort"])
end
end
return categories
end
--[[
Entry point.
--]]
function p.main(frame)
local getArgs = require("Module:Arguments").getArgs
local args = getArgs(frame)
return _main(args)
end
return p