Module:SkillList: Difference between revisions

From Eco - English Wiki
[unchecked revision][checked revision]
No edit summary
No edit summary
 
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local p = {}


-- Grabs args from the parent frame
local Utils = require('Module:Utils')
-- Trims and parses the args into a table, then returns the table
local IconUtils = require('Module:IconUtils')
function norm()
local Lang = Utils.WikiLang
    local origArgs = mw.getCurrentFrame():getParent().args
    local args = {}
   
    for k, v in pairs( origArgs ) do
        v = mw.text.trim( tostring( v ) )
        if v ~= '' then
            args[k] = v
        end
    end
   
    return args
end


-- Main entry point for the Module
-- Main entry point for the Module
function p.main()
function p.main()
    -- get args from the Template
 
    local args = norm()
   
if args.list == nil or args.list == '' then
        return '\'list\' must be specified.'
    end
    -- assign variables for list
    local list = args.list
     -- load lists
     -- load lists
     local skillData = require( "Module:SkillData" )
     local skillData = mw.loadData('Module:SkillData')
local skillList = ''
    local skillList = skillData.skills
local text = '<div class="col-lg-12"><Center><h2 class="title">' .. Utils.Translate("Skills") .. '</h2></Center></div>';


--Check Passes
for Pname,Pdata in pairs(skillList) do
if list ~= 'profession' and list ~= 'specialty' and list ~= 'skill' then
        return skillList .. ' Incorrect use of pass. '
    end
local a = {}
--Profession List
if list == 'profession' then
skillList = skillList .. '=== Profession List ===\n'     
for k,v in pairs(skillData.skills) do       
            if skillData.skills[k].root == true then
              table.insert(a,k)
            end
        end
        table.sort(a)
        for i,n in ipairs(a) do
            skillList = skillList .. '* [[' .. n .. ']]\n'               
        end
end
--Specialty List
if list == 'specialty' then
skillList = skillList .. '=== Specialty List ===\n'
skillList = skillList .. '<div style=\"column-count:2;-moz-column-count:2;-webkit-column-count:2\">\n'
for k,v in pairs(skillData.skills) do       
if skillData.skills[k].specialty == true and skillData.skills[k].root == false then
              table.insert(a,k)
            end
        end
        table.sort(a)
        for i,n in ipairs(a) do
            skillList = skillList .. '* [[' .. n .. ']]\n'               
        end
skillList = skillList .. '</div>'
end


-- --Skill List (exclude Profession and Specialty)
if Pdata.IsRoot == 'True' then  
-- if list == 'skill' then
if (Pdata.Name[Lang] == "") then ProfessionName = Pdata.Name.English else ProfessionName = Pdata.Name[Lang] end
-- skillList = skillList .. '=== Skill List ===\n'
-- skillList = skillList .. '<div style=\"column-count:3;-moz-column-count:3;-webkit-column-count:3\">\n'
 
-- for k,v in pairs(skillData.skills) do       
-- if skillData.skills[k].specialty == false and skillData.skills[k].root == false then
              -- table.insert(a,k)
            -- end
        -- end
        -- table.sort(a)
        -- for i,n in ipairs(a) do
            -- skillList = skillList .. '* [[' .. n .. ']]\n'               
        -- end
-- skillList = skillList .. '</div>'
text = text .. '<div class="col-lg-3"><div class="card">';
-- end
text = text .. '[[File:Banner4k.jpg|class=card-img-top|link=]]';
text = text .. '<div class="card-body"><p class="card-title">';
text = text .. IconUtils.main{id = Pdata.SkillID , size = 48, style = 1, link = ProfessionName} .. '  '
local ProfessionTitle = Utils.VSTranslate('{0} Profession',ProfessionName)
text = text .. '[[' .. ProfessionName .. '|' .. ProfessionTitle .. ']]</p><p class="card-subtitle mb-2 text-muted">' .. Pdata.Description[Lang] .. '</p><p class="card-text">';
text = text .. '<div class="card"> <div class="card-body">';


for Sname,Sdata in pairs(skillList) do
if Sdata.IsRoot == 'False' and Sdata.RootSkill == Pname then
if (Sdata.Name[Lang] == "") then SpecialtyName = Sdata.Name.English else SpecialtyName = Sdata.Name[Lang] end
text = text .. IconUtils.main{id = Sdata.SkillID , size = 32, style = 1, link = SpecialtyName} .. '  ';
end
end
text = text .. '</div></div></p></div></div></div>'; end
end


return text
return skillList
end
end


return p
return p

Latest revision as of 11:42, 13 April 2026

This module provides the back end functionality of the Template:SkillList.

If the template is passed, this module creates a list using details from the following Modules:


local p = {}

local Utils = require('Module:Utils')
local IconUtils = require('Module:IconUtils')
local Lang = Utils.WikiLang

-- Main entry point for the Module
function p.main()
   	
    -- load lists
    local skillData = mw.loadData('Module:SkillData')
    local skillList = skillData.skills
	local text = '<div class="col-lg-12"><Center><h2 class="title">' .. Utils.Translate("Skills") .. '</h2></Center></div>';

	for Pname,Pdata in pairs(skillList) do

		if Pdata.IsRoot == 'True' then 
		if (Pdata.Name[Lang] == "") then ProfessionName = Pdata.Name.English else ProfessionName = Pdata.Name[Lang] end
		
		text = text .. '<div class="col-lg-3"><div class="card">';
		text = text .. '[[File:Banner4k.jpg|class=card-img-top|link=]]';
		text = text .. '<div class="card-body"><p class="card-title">';
		text = text .. IconUtils.main{id = Pdata.SkillID , size = 48, style = 1, link = ProfessionName} .. '  '
		local ProfessionTitle = Utils.VSTranslate('{0} Profession',ProfessionName)
		text = text .. '[[' .. ProfessionName .. '|' .. ProfessionTitle .. ']]</p><p class="card-subtitle mb-2 text-muted">' .. Pdata.Description[Lang] .. '</p><p class="card-text">';
		text = text .. '<div class="card"> <div class="card-body">';

		for Sname,Sdata in pairs(skillList) do
			if Sdata.IsRoot == 'False' and Sdata.RootSkill == Pname then 
				if (Sdata.Name[Lang] == "") then SpecialtyName = Sdata.Name.English else SpecialtyName = Sdata.Name[Lang] end
				text = text .. IconUtils.main{id = Sdata.SkillID , size = 32, style = 1, link = SpecialtyName} .. '  ';
			end
		end
		text = text .. '</div></div></p></div></div></div>'; end
	end

	return text
end

return p