Module:CollectionLog: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:


function p.render(frame)
function p.render(frame)
     local args = frame:getParent():getArguments()
     local args = frame:getParent().args
     local html = mw.html.create('div'):addClass('collection-log-wrapper')
     local html = mw.html.create('div'):addClass('collection-log-wrapper')


     -- Look for Killcount first (optional)
     if args.Killcount then
    local killcount
        html:node(
    for _, arg in ipairs(args) do
            mw.html.create('div')
        if arg.name == "Killcount" then
                :addClass('collection-log-killcount')
            killcount = arg.value
                :wikitext('Killcount: ' .. args.Killcount)
            break
         )
         end
     end
     end


     if killcount then
     local grid = mw.html.create('div'):addClass('collection-log-grid')
        local killcountDiv = mw.html.create('div')
 
            :addClass('collection-log-killcount')
    local i = 1
            :wikitext('Killcount: ' .. killcount)
    while true do
         html:node(killcountDiv)
        local itemName = args['item' .. i]
    end
         if not itemName then break end


    local grid = mw.html.create('div'):addClass('collection-log-grid')
        local qty = tonumber(args['qty' .. i]) or 0


    for _, arg in ipairs(args) do
         local item = mw.html.create('div')
        local name = arg.name
            :addClass('collection-log-item')
         if name ~= "Killcount" then
            :addClass(qty > 0 and 'obtained' or 'missing')
            local qty = tonumber(arg.value) or 0
            local item = mw.html.create('div')
                :addClass('collection-log-item')
                :addClass(qty > 0 and 'obtained' or 'missing')


            -- Call your custom template, for example plinkp3
        item:wikitext(string.format(
            item:wikitext(string.format(
            '{{plinkp3|name=%s|qty=%d|obtained=%s}}',
                '{{plinkp3|name=%s|qty=%d|obtained=%s}}',
            itemName, qty, qty > 0 and 'obtained' or 'missing'
                name, qty, qty > 0 and 'obtained' or 'missing'
        ))
            ))


            grid:node(item)
        grid:node(item)
         end
         i = i + 1
     end
     end


     html:node(grid)
     html:node(grid)
     return tostring(html)
     return tostring(html)
end
end


return p
return p

Revision as of 06:48, 19 May 2025

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

local p = {}

function p.render(frame)
    local args = frame:getParent().args
    local html = mw.html.create('div'):addClass('collection-log-wrapper')

    if args.Killcount then
        html:node(
            mw.html.create('div')
                :addClass('collection-log-killcount')
                :wikitext('Killcount: ' .. args.Killcount)
        )
    end

    local grid = mw.html.create('div'):addClass('collection-log-grid')

    local i = 1
    while true do
        local itemName = args['item' .. i]
        if not itemName then break end

        local qty = tonumber(args['qty' .. i]) or 0

        local item = mw.html.create('div')
            :addClass('collection-log-item')
            :addClass(qty > 0 and 'obtained' or 'missing')

        item:wikitext(string.format(
            '{{plinkp3|name=%s|qty=%d|obtained=%s}}',
            itemName, qty, qty > 0 and 'obtained' or 'missing'
        ))

        grid:node(item)
        i = i + 1
    end

    html:node(grid)
    return tostring(html)
end

return p