Sari la conținut

Modul:Infocasetă: Diferență între versiuni

De la Enciclopedia Trimeria
test infocasete
 
mFără descriere a modificării
 
(Nu s-au afișat 12 versiuni intermediare efectuate de același utilizator)
Linia 3: Linia 3:
function p.infobox(frame)
function p.infobox(frame)
     local args = frame.args
     local args = frame.args
    local parentArgs = frame:getParent().args
   
    local html = mw.html.create('table')
    html:addClass('infobox')
        :css('float', 'right')
        :css('width', args.width or '300px')
        :css('border', '1px solid #a2a9b1')
        :css('background-color', '#f8f9fa')
        :css('padding', '5px')
        :css('font-size', '88%')
        :css('margin', '0 0 1em 1em')
        :css('border-collapse', 'collapse')


    -- Titlu / Nume (folosește parametrul 'nume' sau numele paginii)
     local title = args.title or mw.title.getCurrentTitle().text
     local titlu = parentArgs['nume'] or mw.title.getCurrentTitle().text
     local image = args.image or ""
     html:tag('tr')
    local caption = args.caption or ""
        :tag('th')
            :attr('colspan', '2')
            :css('text-align', 'center')
            :css('font-size', '125%')
            :css('font-weight', 'bold')
            :css('background-color', '#def')
            :css('padding', '5px')
            :wikitext(titlu)


     -- Randuri (conținutul generat de sub-șabloane)
     local root = mw.html.create("table")
     if args['rows'] then
        :addClass("infocaseta")
         html:wikitext(args['rows'])
        :css("width", "320px")
        :css("float", "right")
        :css("margin", "0 0 1em 1em")
        :css("border", "1px solid #5b8a3c")
        :css("background", "#f8fff5")
        :css("border-collapse", "collapse")
        :css("font-size", "88%")
 
    root:tag("tr")
        :tag("th")
        :attr("colspan", "2")
        :css("background", "#6aa84f")
        :css("color", "white")
        :css("font-size", "120%")
        :css("padding", "8px")
        :css("text-align", "center")
        :wikitext(title)
 
     if image ~= "" then
         local tr = root:tag("tr")
        local td = tr:tag("td")
            :attr("colspan", "2")
            :css("text-align", "center")
            :css("padding", "8px")
 
        td:wikitext(image)
 
        if caption ~= "" then
            td:tag("div")
                :css("font-size", "90%")
                :css("color", "#666")
                :css("margin-top", "4px")
                :css("text-align", "center")
                :wikitext(caption)
        end
    end
 
 
    local function addRow(label, value)
        if value and value ~= "" and value ~= "nil" then
            local tr = root:tag("tr")
            tr:tag("th")
                :css("text-align", "left")
                :css("padding", "5px")
                :css("width", "40%")
                :css("font-weight", "bold")
                :wikitext(label)
 
            tr:tag("td")
                :css("padding", "5px")
                :wikitext(value)
        end
     end
     end


    -- Footer (Notițe)
     if args.rows and args.rows ~= "" then
     if args['footer'] and args['footer'] ~= '' then
         for linie in string.gmatch(args.rows, "[^\r\n]+") do
         html:tag('tr')
             local eticheta, valoare = string.match(linie, "^%s*(.-)%s*//%s*(.-)%s*$")
             :tag('td')
            if eticheta and valoare then
                :attr('colspan', '2')
                 addRow(eticheta, valoare)
                :css('font-size', '90%')
            end
                 :css('border-top', '1px solid #a2a9b1')
        end
                :css('padding', '5px')
                :wikitext(args['footer'])
     end
     end


     return tostring(html)
     return tostring(root)
end
end


return p
return p

Versiunea curentă din 7 iunie 2026 16:43

Documentația acestui modul poate fi creată la Modul:Infocasetă/doc

local p = {}

function p.infobox(frame)
    local args = frame.args

    local title = args.title or mw.title.getCurrentTitle().text
    local image = args.image or ""
    local caption = args.caption or ""

    local root = mw.html.create("table")
        :addClass("infocaseta")
        :css("width", "320px")
        :css("float", "right")
        :css("margin", "0 0 1em 1em")
        :css("border", "1px solid #5b8a3c")
        :css("background", "#f8fff5")
        :css("border-collapse", "collapse")
        :css("font-size", "88%")

    root:tag("tr")
        :tag("th")
        :attr("colspan", "2")
        :css("background", "#6aa84f")
        :css("color", "white")
        :css("font-size", "120%")
        :css("padding", "8px")
        :css("text-align", "center")
        :wikitext(title)

    if image ~= "" then
        local tr = root:tag("tr")
        local td = tr:tag("td")
            :attr("colspan", "2")
            :css("text-align", "center")
            :css("padding", "8px")

        td:wikitext(image)

        if caption ~= "" then
            td:tag("div")
                :css("font-size", "90%")
                :css("color", "#666")
                :css("margin-top", "4px")
                :css("text-align", "center")
                :wikitext(caption)
        end
    end


    local function addRow(label, value)
        if value and value ~= "" and value ~= "nil" then
            local tr = root:tag("tr")
            tr:tag("th")
                :css("text-align", "left")
                :css("padding", "5px")
                :css("width", "40%")
                :css("font-weight", "bold")
                :wikitext(label)

            tr:tag("td")
                :css("padding", "5px")
                :wikitext(value)
        end
    end

    if args.rows and args.rows ~= "" then
        for linie in string.gmatch(args.rows, "[^\r\n]+") do
            local eticheta, valoare = string.match(linie, "^%s*(.-)%s*//%s*(.-)%s*$")
            if eticheta and valoare then
                addRow(eticheta, valoare)
            end
        end
    end

    return tostring(root)
end

return p