Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Talent: Difference between revisions

From eSportsAmaze
No edit summary
No edit summary
 
Line 4: Line 4:
function p.main(frame)
function p.main(frame)
     local args = frame:getParent().args
     local args = frame:getParent().args
     local container = html.create('div'):addClass('talent-box')
     local container = html.create('div'):addClass('talent-container')
      
 
     -- Loop through group1, group2...
     for i = 1, 20 do
     for i = 1, 20 do
         local role = args['group' .. i]
         local role = args['group' .. i]
         local people = args['list' .. i]
         local people = args['list' .. i]
       
 
         if role and role ~= "" and people and people ~= "" then
         if role and role ~= "" and people and people ~= "" then
             local section = container:tag('div'):addClass('talent-section')
            -- Create the Row
             section:tag('div'):addClass('talent-role-header'):wikitext(role)
             local row = container:tag('div'):addClass('talent-row')
             local grid = section:tag('div'):addClass('talent-grid')
 
            -- 1. The Header (Left Side)
             row:tag('div'):addClass('talent-header'):wikitext(role)
 
            -- 2. The Pills Container (Right Side)
             local listDiv = row:tag('div'):addClass('talent-list')
              
              
             local items = mw.text.split(people, ",")
             local items = mw.text.split(people, ",")
             for _, item in ipairs(items) do
             for _, name in ipairs(items) do
                 -- Split by "="
                 name = mw.text.trim(name)
                local parts = mw.text.split(item, "=")
                 -- If user accidentally leaves an empty comma
                local name = mw.text.trim(parts[1])
                local customImg = parts[2] and mw.text.trim(parts[2])
                  
                 if name ~= "" then
                 if name ~= "" then
                     -- Decide class based on whether image exists
                     -- Simple Text Pill
                     local chipClass = customImg and 'talent-chip has-img' or 'talent-chip no-img'
                     listDiv:tag('div'):addClass('talent-pill')
                    local chip = grid:tag('div'):addClass(chipClass)
                   
                    -- A. IF IMAGE EXPLICITLY SET
                    if customImg then
                        -- Check for "File:" prefix
                        if not mw.ustring.find(customImg, "^File:") and not mw.ustring.find(customImg, "^Image:") then
                            customImg = "File:" .. customImg
                        end
                       
                        chip:tag('div'):addClass('talent-img')
                            :wikitext('[[' .. customImg .. '|link=|class=talent-avatar-img|50px]]')
                    end
                   
                    -- B. NAME (Always shown)
                    chip:tag('div'):addClass('talent-name')
                         :wikitext('[[' .. name .. ']]')
                         :wikitext('[[' .. name .. ']]')
                 end
                 end

Latest revision as of 12:31, 6 February 2026

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

local p = {}
local html = mw.html

function p.main(frame)
    local args = frame:getParent().args
    local container = html.create('div'):addClass('talent-container')

    -- Loop through group1, group2...
    for i = 1, 20 do
        local role = args['group' .. i]
        local people = args['list' .. i]

        if role and role ~= "" and people and people ~= "" then
            -- Create the Row
            local row = container:tag('div'):addClass('talent-row')

            -- 1. The Header (Left Side)
            row:tag('div'):addClass('talent-header'):wikitext(role)

            -- 2. The Pills Container (Right Side)
            local listDiv = row:tag('div'):addClass('talent-list')
            
            local items = mw.text.split(people, ",")
            for _, name in ipairs(items) do
                name = mw.text.trim(name)
                -- If user accidentally leaves an empty comma
                if name ~= "" then
                    -- Simple Text Pill
                    listDiv:tag('div'):addClass('talent-pill')
                        :wikitext('[[' .. name .. ']]')
                end
            end
        end
    end
    
    return tostring(container)
end

return p