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

local p = {}
local cargo = mw.ext.cargo

function p.Main( frame )
    local t = {}
    local tables = 'Commendations'
    local fields = 'Commendation'


    local args = {
        where = 'Recipient = "' .. frame.args[1] .. '" AND Commendation LIKE "Highlander %" AND Approved = true'
    }
    local results = cargo.query( tables, fields, args )
    local tattoo_id = 0
    for n = 1, #results do
        if results[n].Commendation == "Highlander I" then
            tattoo_id = math.max(tattoo_id, 1)
        elseif results[n].Commendation == "Highlander II" then
            tattoo_id = math.max(tattoo_id, 2)
        elseif results[n].Commendation == "Highlander III" then
            tattoo_id = math.max(tattoo_id, 3)
        elseif results[n].Commendation == "Highlander IV" then
            tattoo_id = math.max(tattoo_id, 4)
        end
    end


    local results = cargo.query( tables, fields, args )

    local args = {
        where = 'Recipient = "' .. frame.args[1] .. '" AND Commendation LIKE "Tattoo:%" AND Approved = true'
    }

    local results = cargo.query( tables, fields, args )
    
    local output = "[[Image:Tattoo_" .. tattoo_id .. ".png|frameless|600px]]" .. [[<div style="position:relative;">]]
    
    local i = 0
    local d = 140
    local r = 30
    -- n = 1, #results
    for n = 1, #results do
        local x = math.cos(math.rad(i*r)) * d
        local y = math.sin(math.rad(i*r)) * d*1.3
        output = output .. [[<span style="position:absolute; margin-top:-310px; margin-left:calc(50% + 0px); left:calc(]] .. x .. [[px - 15px); top:calc(]] .. y .. [[px - 15px);">]].. "[[Image:" .. results[n].Commendation .. "|30px]]" .. [[</span>]]
        i = i + 1
        if i > (360/r) then
            i = 0
            d = d + 40
            r = r / 1.5
        end          
    end
    return output .. "</div>"
end

return p


Categories: