Jump to content

Module:Higher education task force

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Tduk (talk | contribs) at 18:32, 21 April 2025. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
require("strict")
local yesNo = require("Module:Yesno")
local getArgs = require("Module:Arguments").getArgs
local banner = require("Module:WikiProject_banner")
local p = {}

--[[------------------------< _main >---------------------------------
Internal function to retrieve data for a task force.
]]----------------------------------------------------------------------------
function p._main(args, data)
	local dataModule = require('Module:Higher education task force/data')
	local taskForceCode = args.code or args[1]
	local taskForceData

	if taskForceCode then
		taskForceCode = taskForceCode:match('^%s*(.-)%s*$'):lower() -- trim whitespace and put in lower case
		taskForceData = dataModule[taskForceCode]
	end

	return taskForceData
end

--[[------------------------< getName >---------------------------------
Gets the full name of a task force.
]]----------------------------------------------------------------------------
function p.getName(frame)
	local args = getArgs(frame, { parentFirst = true })
	local tfData = p._main(args)
	if tfData then
		return tfData.name
	end
	return nil
end

--[[------------------------< getNestedName >---------------------------------
Gets the nested name of a task force.
]]----------------------------------------------------------------------------
function p.getNestedName(frame)
	local args = getArgs(frame, { parentFirst = true })
	local tfData = p._main(args)
	if tfData then
		return tfData.nested
	end
	return nil
end

--[[------------------------< getImage >---------------------------------
Gets the image filename for a task force.
]]----------------------------------------------------------------------------
function p.getImage(frame)
	local args = getArgs(frame, { parentFirst = true })
	local tfData = p._main(args)
	if tfData then
		return tfData.image
	end
	return nil
end

--[[------------------------< getCategory >---------------------------------
Gets the category name for a task force.
]]----------------------------------------------------------------------------
function p.getCategory(frame)
	local args = getArgs(frame, { parentFirst = true })
	local tfData = p._main(args)
	if tfData then
		return tfData.category
	end
	return nil
end

--[[------------------------< getLink >---------------------------------
Gets the project link for a task force.
]]----------------------------------------------------------------------------
function p.getLink(frame)
	local args = getArgs(frame, { parentFirst = true })
	local tfData = p._main(args)
	if tfData then
		return tfData.link
	end
	return nil
end

--[[------------------------< getCanonicalCode >---------------------------------
Gets the canonical code for a task force.
]]----------------------------------------------------------------------------
function p.getCanonicalCode(frame)
	local args = getArgs(frame, { parentFirst = true })
	local tfData = p._main(args)
	if tfData then
		return tfData.canonicalCode
	end
	return nil
end

function p.main(frame)
	local args = getArgs(frame, { parentFirst = true })
	return p._main(args)
end
function p.hello(frame)
	return "|MAIN_TEXT = feline"
end

--[[------------------------< generateTaskforceParameters >---------------------------------
Generates the WikiProject banner parameters for a comma-separated list of task force codes.

Parameters:
* frame: The frame object.

Returns:
* A string containing the WikiProject banner parameters for the task forces.
]]----------------------------------------------------------------------------
function p.generateTaskforceParameters(frame)
	local args = getArgs(frame, { parentFirst = true })
	local taskforcesStr = p._main(args)
    taskforcesStr = args[1]
	if not taskforcesStr then
		return "oops" .. args[2]
 	end

	local taskforceCodes = mw.text.split(taskforcesStr, ",", true, true) -- Split by comma, trim whitespace, remove empty strings
	local paramsStr = ""
	local tfCounter = 1


	for _, code in ipairs(taskforceCodes) do
		local tfData = p._main({code})
		if tfData then
			paramsStr = paramsStr .. string.format("|tf %d = %dyes", tfCounter,tfCounter)
			paramsStr = paramsStr .. "\n\n\n"
			paramsStr = paramsStr .. string.format("|TF_%d_LINK = %s", tfCounter, tfData.link)
			paramsStr = paramsStr .. "\n\n\n"
			paramsStr = paramsStr .. string.format("|TF_%d_NAME = %s", tfCounter, tfData.name)
			paramsStr = paramsStr .. "\n\n\n"
			paramsStr = paramsStr .. string.format("|TF_%d_NESTED = %s", tfCounter, tfData.nested)
			paramsStr = paramsStr .. "\n\n\n"
			paramsStr = paramsStr .. string.format("|TF_%d_IMAGE = %s", tfCounter, tfData.image)
			paramsStr = paramsStr .. "\n\n\n"
			paramsStr = paramsStr .. string.format("|TF_%d_MAIN_CAT = %s", tfCounter, tfData.category)
			paramsStr = paramsStr .. "\n\n\n"
			tfCounter = tfCounter + 1
		end
	end

end

function p.kludge(frame)
    local retstr = [===[{{#invoke:WikiProject banner|main
|PROJECT = Higher education/lua
|BANNER_NAME = Template:WikiProject Higher education
|substcheck=<includeonly>{{subst:</includeonly><includeonly>substcheck}}</includeonly>
|category={{{category|}}}
|listas={{{listas|}}}
|IMAGE_LEFT = Graduation hat.svg
|QUALITY_SCALE = extended
|class={{{class|}}}
|ASSESSMENT_LINK = Wikipedia:WikiProject Higher education/Assessment
|ASSESSMENT_CAT = Higher education
|MAIN_ARTICLE = \[\[higher education\]\], \[\[university|universities\]\] and \[\[college\]\]s
|MAIN_TEXT= This _PAGETYPE_ is within the scope of '''\[\[Wikipedia:WikiProject Higher education|WikiProject Higher education\]\]''', a collaborative effort to improve the coverage of \[\[higher education\]\], \[\[university|universities\]\], and [[college]]s on Wikipedia. Please visit the project page to join the \[\[Wikipedia talk:WikiProject Higher education|discussion\]\], and see the project's \[\[Wikipedia:College and university article guideline|article guideline\]\] for useful advice.
]===]
    retstr = retstr .. p.generateTaskforceParameters(frame)
    retstr = retstr .. [===[|MAIN_CAT = WikiProject Higher education articles
|attention={{{attention|}}}
|collaboration-candidate={{{collaboration-nom|}}}
|collaboration-current={{{collaboration-now|}}}
|collaboration-past={{{collaboration-past|}}}
|COLL_LINK = Wikipedia:WikiProject Higher education/COTM#{{FULLPAGENAME}}
|COLL_TEXT = Collaboration of the Month
|COLL_IMAGE = WPUNICOTF.png
|COLL_CANDIDATE_CAT = WikiProject Universities COTM candidates
|COLL_CURRENT_CAT = Higher education collaborations
|COLL_PAST_CAT = Higher education collaborations
}}<noinclude>
{{documentation}}
</noinclude>]===]
     return retstr
end
function p.ma1(frame,s1,s2)
   frame[s1]=s2
end

function p.mrkludge(frame)
   local trable={}
   local passstr = [===[main
|category={{{category|}}}
|listas={{{listas|}}}
|QUALITY_SCALE = extended
|class={{{class|}}}
|ASSESSMENT_LINK = Wikipedia:WikiProject Higher education/Assessment
|ASSESSMENT_CAT = Higher education
|MAIN_ARTICLE = [[higher education]], [[university|universities]] and [[college]]s
|MAIN_TEXT= This _PAGETYPE_ is within the scope of '''[[Wikipedia:WikiProject Higher education|WikiProject Higher education]]''', a collaborative effort to improve the coverage of [[higher education]], [[university|universities]], and [[college]]s on Wikipedia. Please visit the project page to join the [[Wikipedia talk:WikiProject Higher education|discussion]], and see the project's [[Wikipedia:College and university article guideline|article guideline]] for useful advice.
]===]
    passstr = passstr .. p.generateTaskforceParameters(frame)
    passstr = passstr .. [===[|MAIN_CAT = WikiProject Higher education articles
|attention={{{attention|}}}
|collaboration-candidate={{{collaboration-nom|}}}
|collaboration-current={{{collaboration-now|}}}
|collaboration-past={{{collaboration-past|}}}
|COLL_LINK = Wikipedia:WikiProject Higher education/COTM#{{FULLPAGENAME}}
|COLL_TEXT = Collaboration of the Month
|COLL_CANDIDATE_CAT = WikiProject Universities COTM candidates
|COLL_CURRENT_CAT = Higher education collaborations
|COLL_PAST_CAT = Higher education collaborations
}}<noinclude>
{{documentation}}
</noinclude>]===]
    p.ma1(trable,"substcheck","<includeonly>{{subst:</includeonly><includeonly>substcheck}}</includeonly>")
    p.ma1(trable,"COLL_IMAGE","WPUNICOTF.png")
    trable["1"]="main"
    trable["PROJECT"]="Higher education/lua"
    trable["BANNER_NAME"] = "Template:WikiProject Higher education"
    trable["IMAGE_LEFT"] = "Graduation hat.svg"

    return banner.main(trable)
end

function p.printargs(frame)
   local str=getArgs(frame, { parentFirst = true })
   return str[1]
end
function p.tester(frame)
   local str=""
   str = str .. "hello"
   return str
end




p[''] = function (frame) return p._main(frame.args) end

return p