Module:Infobox/Événement

De Starfield Wiki
Documentation[voir] [modifier] [purger]
local localdata = require("Module:Infobox/Localdata")

function build_columns(localdata, prefix)
    local res = mw.html.create("div")
    local style = "display:grid;text-align:left;"
    local isFirstColumn = true

    for i = 1, 4 do
        local value = localdata[prefix .. i]
        if value then
            if isFirstColumn then
                isFirstColumn = false
                style = style .. "grid-template-columns:1fr"
            else
                style = style .. " 1fr"
            end
            res:tag("div"):wikitext(value):done()
        else
            break
        end
    end

    res:attr("style", style .. ";"):allDone()

    if isFirstColumn then
        return
    end

    return tostring(res)
end

return {
    parts = {
        {
            type = "title",
            value = "titre",
            subtitle = "sous-titre",
        },
        {
            type = "images",
            imageparameters = {"image", "image2", "image3", "image4", "image5"},
            captionparameter = "légende",
        },
        {
            type = "table",
            title = "Informations générales",
            rows = {
                {type = "row", label = "Date", value = "date"},
                {type = "row", label = "Lieu", value = "lieu"},
                {type = "row", label = "''Casus belli''", value = "casus belli"},
                {type = "row", label = "Issue", value = "issue"}
            }
        },
        {
            type = "table",
            title = "Belligérants",
            rows = {
                {type = "row1col", value = function(localdata)
                        return build_columns(localdata, "combattant")
                    end}
            }
        },
        {
            type = "table",
            title = "Commandants",
            rows = {
                {type = "row1col", value = function(localdata)
                        return build_columns(localdata, "commandant")
                    end}
            }
        },
        {
            type = "table",
            title = "Forces en présence",
            rows = {
                {type = "row1col", value = function(localdata)
                        return build_columns(localdata, "forces")
                    end}
            }
        },
        {
            type = "table",
            title = "Pertes",
            rows = {
                {type = "row1col", value = function(localdata)
                        return build_columns(localdata, "pertes")
                    end}
            }
        },
        {
            type = "table",
            title = "Évènements associés",
            rows = {
                {type = "row", label = "Partie de", value = "partie de"},
                {type = "row", label = "Connexe", value = "connexe"},
                {
                    type = "succession",
                    value = {
                        before = localdata["précédent"],
                        after = localdata["suivant"]
                    }
                }
            }
        },
    }
}