Module:CharTree: Difference between revisions

From Elwiki
No edit summary
No edit summary
Line 8: Line 8:
     local char_tree = mw.html.create('div'):addClass('char-banner-tree'):attr('data-base', args[1])
     local char_tree = mw.html.create('div'):addClass('char-banner-tree'):attr('data-base', args[1])
     local out = {};
     local out = {};
     local char, file_name, link, nopath, nopathnojob, entry, image_arg;
     local char, file_name, link, nopath, nopathnojob, entry, image_arg, icon_str;
     for job_iter=1,3,1 do
     for job_iter=1,3,1 do
         for path_iter=1,4,1 do
         for path_iter=1,4,1 do
Line 15: Line 15:
             nopathnojob = 'no' .. path_iter .. 'x' .. job_iter;
             nopathnojob = 'no' .. path_iter .. 'x' .. job_iter;
             entry = char_tree:tag('div'):addClass('char-banner-tree-image')
             entry = char_tree:tag('div'):addClass('char-banner-tree-image')
            icon_str = 'Icon - '


             if char ~= 'Unreleased' then
             if char ~= 'Unreleased' then
                 file_name = 'Icon - ' .. char:gsub(':', '');
                 file_name = char:gsub(':', '');
                 link = '|link=' .. char
                 link = '|link=' .. char
             end
             end
Line 24: Line 25:
                 file_name = 'Dunno';
                 file_name = 'Dunno';
                 link = '|link=' .. char;
                 link = '|link=' .. char;
                icon_str = ''
             end
             end


Line 32: Line 34:
             end
             end


             entry:attr('data-class-name', char):wikitext('[[File:' .. file_name .. '.png' .. link .. ']]');
             entry:attr('data-class-name', char):wikitext('[[File:' .. icon_str .. file_name .. '.png' .. link .. ']]');


             if (args[nopath] ~= nil) then
             if (args[nopath] ~= nil) then

Revision as of 01:17, 28 August 2022

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

require('Module:CommonFunctions')
local getArgs = require('Module:Arguments').getArgs
local p = {}

-- Main process
function p.main(frame)
    local args = getArgs(frame);
    local char_tree = mw.html.create('div'):addClass('char-banner-tree'):attr('data-base', args[1])
    local out = {};
    local char, file_name, link, nopath, nopathnojob, entry, image_arg, icon_str;
    for job_iter=1,3,1 do
        for path_iter=1,4,1 do
            char = args[path_iter .. 'x' .. job_iter] or 'Unreleased';
            nopath = 'no' .. path_iter .. 'path';
            nopathnojob = 'no' .. path_iter .. 'x' .. job_iter;
            entry = char_tree:tag('div'):addClass('char-banner-tree-image')
            icon_str = 'Icon - '

            if char ~= 'Unreleased' then
                file_name = char:gsub(':', '');
                link = '|link=' .. char
            end
            
            if (args[nopath] ~= nil or args[nopathnojob] ~= nil) then
                file_name = 'Dunno';
                link = '|link=' .. char;
                icon_str = ''
            end

            image_arg = args['image' .. path_iter .. 'x' .. job_iter]

            if image_arg ~= nil then
                file_name = image_arg
            end

            entry:attr('data-class-name', char):wikitext('[[File:' .. icon_str .. file_name .. '.png' .. link .. ']]');

            if (args[nopath] ~= nil) then
                entry:attr('data-unreleased', 'true');
            end

            if (args[nopathnojob] ~= nil) then
                entry:addClass('disable-image-link');
                entry:attr('data-unreleased', 'true');
            end
        end
    end
    
    return tostring(char_tree);

end

return p