Module:Higher education task force test: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
 
(136 intermediate revisions by the same user not shown)
Line 2:
local yesNo = require("Module:Yesno")
local getArgs = require("Module:Arguments").getArgs
--local banner = require("Module:Higher_education_task_force_test2")
local banner = require("Module:WikiProject_banner")
local p = {}
Line 26 ⟶ 27:
]]----------------------------------------------------------------------------
 
function p.olddmain(frame)
local args = getArgs(frame, { parentFirst = true })
return p._main(args)
end
 
-- Takes an input string "r" in the form "|a=b" (no spaces around the =) used in templates and adds it to the table
Line 49 ⟶ 46:
]]--
function p.fudgeTaskforceParameters(frame)
local args = getArgs(frame, { parentFirst = true })
local taskforcesStr = ""
taskforcesStr = args["HETF_TASKFORCES_TO_EXPAND"]
Line 75 ⟶ 72:
return frame
end
 
function p.fudgeTaskforceCategories(frame)
function p.fudgeTaskforceParametersArgs(args)
local args = getArgs(frame, { parentFirst = true })
local taskforcesStr = ""
taskforcesStr = args["HETF_TASKFORCES_TO_EXPAND"]
if not taskforcesStr then
return "" args
end
local class=""
local cat=""
 
 
local taskforceCodes = mw.text.split(taskforcesStr, ",", true, true) -- Split by comma, trim whitespace, remove empty strings
Line 94 ⟶ 87:
local tfData = p._oldmain({code})
if tfData then
trable = p.tab2arg(trable,string.format("|tf %d=%dyes", tfCounter,tfCounter))
cat = cat .. "[[Category:"..tfData.name..args[1].."]]"
trable = p.tab2arg(trable,string.format("|TF_%d_LINK=%s", tfCounter, tfData.link))
trable = p.tab2arg(trable,string.format("|TF_%d_NAME=%s", tfCounter, tfData.name))
trable = p.tab2arg(trable,string.format("|TF_%d_NESTED=%s", tfCounter, tfData.nested))
trable = p.tab2arg(trable,string.format("|TF_%d_IMAGE=%s", tfCounter, tfData.image))
trable = p.tab2arg(trable,string.format("|TF_%d_MAIN_CAT=%s", tfCounter, tfData.category))
tfCounter = tfCounter + 1
end
end
return catargs=trable
return args
end
 
function p.printentry(e)
if type(e) == "table" then
return p.printtab(e)
end
return e
end
 
function p.printtab(tab)
local s=""
for k,v in pairs(tab) do
-- s=s..(k)
s=s..("("..p.printentry(k).." = "..p.printentry(v)..")")
end
return s
end
 
function p.printargs(frame)
local str=getArgs(frame,{wrappers = {"Module:WikiProject banner shell","banner shell",'Template:Banner holder'}})
return p.printtab(str)
end
 
 
 
---------------------------
-- Initialise arguments -- this function copied from WikiProject banner ---
---------------------------
local yesno = require('Module:Yesno')
 
local copiedinitialise = function(args, raw_args, inactive_status)
local frame = mw.getCurrentFrame()
local parent_args = getArgs(frame, {parentOnly = true})
local category = parent_args.category or args.category or true
local demo_page = parent_args.demo_page
local on_template_page = false
local sandbox-- = '/sandbox' -- BE SURE TO COMMENT OUT this definition when deploying to live
local cfg = mw.loadData('Module:WikiProject banner/config' .. (sandbox or ''))
local lang = mw.getLanguage(cfg.language)
local current_title = mw.title.getCurrentTitle()
local auxiliary = cfg.auxiliary_module .. (sandbox or '')
 
 
local banner_name = mw.title.new(args.BANNER_NAME or 'Template:WikiProject ' .. (args.PROJECT or 'PROJECT'))
if not demo_page then
if yesno(category, true) then
on_template_page = current_title.rootPageTitle==banner_name.rootPageTitle
else
demo_page = true
end
end
local project_name = args.PROJECT_NAME or 'WikiProject ' .. (args.PROJECT or 'PROJECT')
local unknown_parameters = ''
if banner_name.exists and not demo_page then -- check for unknown parameters
local parameters = {}
for parameter in banner_name:getContent():gmatch('{{{([^|}]+)') do
table.insert(parameters, parameter)
end
parameters.showblankpositional = "1"
local check_for_unknown = require('Module:Check for unknown parameters')._check
local unknowns = check_for_unknown(parameters, parent_args)
if unknowns and unknowns~='' then -- there are some unknown parameters
parameters.preview = cfg.unknown_parameters.preview:format(wikilink(banner_name.fullText))
local unknown_category = cfg.unknown_parameters.tracking:format(project_name)
if not mw.title.new(unknown_category).exists then
unknown_category = cfg.unknown_parameters.default
end
parameters.unknown = unknown_category and '[[' .. unknown_category .. '|_VALUE_]]' or ''
unknown_parameters = check_for_unknown(parameters, parent_args)
end
end
if on_template_page then
local templatepage = require('Module:WikiProject banner/templatepage' .. (sandbox or '')).templatepage
return templatepage(args, raw_args, inactive_status)
else
return unknown_parameters
.. banner._main(args, raw_args, demo_page, banner_name, inactive_status and true or false), nil -- nil to disregard subsequent returned values
end
end
 
 
 
 
 
-- More or less a wrapper for WikiProject Banner with some argument sweetening
function p.mainomain(frame)
local oframe=frame
-- local a=p.printargs(frame)
local retv=p.fudgeTaskforceParameters(frame)
 
local ret=banner.main(retv)
ret=ret .. p.fudgeTaskforceCategories(frame)
 
return ret
end
 
p.main = function(frame)
local args = getArgs(frame, {frameOnly = true})
local raw_args = getArgs(frame, {frameOnly = true, removeBlanks = false})
args=p.fudgeTaskforceParametersArgs(args)
-- raw_args=p.fudgeTaskforceParameters(raw_args)
 
local i=copiedinitialise(args, raw_args)
function p.printargs(frame)
local stra=getArgsp.printtab(frame, { parentFirst = true }raw_args)
return str[1]i..a
end