Module:ProjectLister/NameBuilder

From Terra Invicta Official Wiki

Documentation for this module may be created at Module:ProjectLister/NameBuilder/doc

-- This module builds a full name for a project
-- Other modules should use this to name projects consistently.

local p = {}

local IconModule = require('Module:Icon')
local ProjectData = mw.loadData('Module:CSVReader/Project')
local ProjectNames = mw.loadData('Module:ENReader/Project')

local ssub = string.sub

function p.buildName( frame )
	-- Read parameters
	--- [1] is project data name (mandatory)
	local projectID = frame.args[1]
	
	if not projectID or projectID == '' then
		return ''
	elseif projectID == 'Project_AlienMasterProject' or projectID == 'Project_AlienAdvancedMasterProject' then
		return IconModule.Icon({args={'alien'}}) .. '[[Aliens|Alien Only]]'
	elseif not ProjectData[projectID] then
		return 'No such Project'
	else
		return '[[' .. projectID .. '|' .. (ProjectNames['TIProjectTemplate.displayName.' .. projectID] or projectID) .. ']]'
	end
end

return p