Anonymous

Module:InfoboxProto: Difference between revisions

From Elwiki
no edit summary
No edit summary
No edit summary
Tag: Manual revert
 
(22 intermediate revisions by the same user not shown)
Line 7: Line 7:
     local args = getArgs(frame);
     local args = getArgs(frame);


     if args.textcolor == nil then
     if args.color == nil then
         args.textcolor = 'white';
         if args['Color'] ~= nil then
    else
            args.color = args['Color'];
        args.textcolor = 'black';
        else
            args.color = '{{ColorSel|Misc}}';
        end
     end
     end


     if args.color == nil then
     if title == nil then
         args.color = '{{ColorSel|Misc}}';
        title = args.name
    end
    if title == nil then
         title = args['Name']
     end
     end


     local infobox = mw.html.create('div'):addClass('infobox-new');
     local infobox = mw.html.create('div'):addClass('infobox-new');
     infobox:tag('div'):addClass('infobox-new-header'):css('background-color', args.color:gsub("%#", "#")):css(
     infobox:tag('div'):addClass('infobox-new-header'):css('background-color', args.color:gsub("%#", "#")):wikitext(title);
        'color', args.textcolor):wikitext(title);
     local img = args.image;
     local img = args.image;
     if args.image == nil then
     if args.image == nil then
Line 27: Line 31:


     -- Adds a normal row
     -- Adds a normal row
     function addField(param, field_name, double)
     function addField(param, field_name, double, field_value, collapsed)
         if args[param] ~= nil then
         if args[param] ~= nil or field_value ~= nil then
             local row = infobox:tag('div'):addClass('infobox-row');
             local row = infobox:tag('div'):addClass('infobox-row');
             if field_name == nil then
             if field_name == nil then
                 field_name = titleCase(param);
                 field_name = titleCase(param);
            end
            if field_value == nil then
                field_value = args[param];
             end
             end
             row:tag('div'):addClass('infobox-row-title'):tag('span'):wikitext(field_name);
             row:tag('div'):addClass('infobox-row-title'):tag('span'):wikitext(field_name);
             if (param == 'video' or param == 'tree' or param == 'stats') then
            local content = row:tag('div'):addClass('infobox-row-content');
                 row:tag('div'):addClass('infobox-row-content'):wikitext(args[param]);
             if (param == 'video' or param == 'tree' or param == 'stat') then
                 content:wikitext(field_value);
                if param == 'video' then
                    content:addClass('infobox-video-row')
                end
             else
             else
                 row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext(args[param]);
                 local inner = content:tag('div')
                if collapsed then
                    inner:addClass('mw-collapsible mw-collapsed')
                end
                inner:wikitext(field_value);
             end
             end
         end
         end
         if double == true then addField2(param, field_name) end;
         if double == true then
            addField2(param, field_name, collapsed)
        end
     end
     end


     -- Adds a row with 2 columns
     -- Adds a row with 2 columns
     function addField2(param, field_name)
     function addField2(param, field_name, collapsed)
         if args[param .. '1'] ~= nil and args[param .. '2'] ~= nil then
         if args[param .. '1'] ~= nil and args[param .. '2'] ~= nil then
             local row = infobox:tag('div'):addClass('infobox-row'):addClass('infobox-double-row');
             local row = infobox:tag('div'):addClass('infobox-row'):addClass('infobox-double-row');
Line 51: Line 68:
             end
             end
             row:tag('div'):addClass('infobox-row-title'):wikitext(field_name);
             row:tag('div'):addClass('infobox-row-title'):wikitext(field_name);
             row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext(args[param .. '1']);
             for i=1, 2, 1 do
             row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext(args[param .. '2']);
                local inner = row:tag('div'):addClass('infobox-row-content'):tag('div')
                if collapsed then
                    inner:addClass('mw-collapsible mw-collapsed')
                end
                inner:wikitext(args[param .. i]);
             end
        end
    end
 
    -- For adding multiple fields.
    function addFields(fields)
        for k, v in ipairs(fields) do
            if v.special then
                addField2(v.id, v.localize)
            else
                addField(v.id, v.localize, v.dual, v.value, v.collapsed)
            end
         end
         end
     end
     end