Modül:RolBox: Revizyonlar arasındaki fark

FM Wiki sitesinden
"local p = {} function p.render(frame) local args = frame:getParent().args local isim = args["isim"] or "" local rolID = args["rolID"] or "" local gorev = args["gorev"] or "" local kritik = args["kritik"] or "" local ikinci = args["ikinci"] or "" local simgeler = args["simgeler"] or "" -- kritik özellikleri yeşil local kritik_html = "" if kritik ~= "" then kritik_html = '<span st..." içeriğiyle yeni sayfa oluşturdu
 
Değişiklik özeti yok
1. satır: 1. satır:
local p = {}
local p = {}
-- split: "A, B, C" → {"A","B","C"}
local function splitList(str)
    local t = {}
    for item in string.gmatch(str, "([^,]+)") do
        table.insert(t, mw.text.trim(item))
    end
    return t
end


function p.render(frame)
function p.render(frame)
     local args = frame:getParent().args
     local args = frame:getParent().args
   
    local isim      = args["isim"] or ""
    local rolID    = args["rolID"] or ""
    local gorev    = args["gorev"] or ""
    local kritik    = args["kritik"] or ""
    local ikinci    = args["ikinci"] or ""
    local simgeler  = args["simgeler"] or ""


     -- kritik özellikleri yeşil
    local isim    = args["isim"] or ""
    local gorev    = args["gorev"] or ""
    local kritik  = args["kritik"] or ""
    local ikinci  = args["ikinci"] or ""
    local simgeler = args["simgeler"] or ""
 
     -- kritik ve ikinci: liste parse
    local kritikList = kritik ~= "" and splitList(kritik) or {}
    local ikinciList = ikinci ~= "" and splitList(ikinci) or {}
    local simgeList  = simgeler ~= "" and splitList(simgeler) or {}
 
     local kritik_html = ""
     local kritik_html = ""
     if kritik ~= "" then
     for _,v in ipairs(kritikList) do
         kritik_html = '<span style="color:#0ea000;font-weight:600;">' .. kritik .. '</span>'
         kritik_html = kritik_html .. '<span class="fm-badge fm-badge-critical">' .. v .. '</span>'
     end
     end


    -- ikinci özellikleri mavi
     local ikinci_html = ""
     local ikinci_html = ""
     if ikinci ~= "" then
     for _,v in ipairs(ikinciList) do
         ikinci_html = '<span style="color:#0077dd;font-weight:500;">' .. ikinci .. '</span>'
        ikinci_html = ikinci_html .. '<span class="fm-badge fm-badge-secondary">' .. v .. '</span>'
    end
 
    local simge_html = ""
    for _,v in ipairs(simgeList) do
         simge_html = simge_html .. '<span class="fm-icon">' .. v .. '</span>'
     end
     end
   
    return string.format([[
    <div class="fm-rolebox">
        <div class="fm-role-header">
            <span class="fm-role-name">%s</span>
            <span class="fm-role-task">%s</span>
        </div>


         <div class="fm-role-section">
    local html = string.format([[
            <div class="fm-role-row"><b>Kritik Özellikler:</b> %s</div>
<div class="fm-rolecard">
            %s
    <div class="fm-role-top">
         <div class="fm-role-name">%s</div>
        <div class="fm-role-tag">%s</div>
    </div>
 
    <div class="fm-role-section">
        <div class="fm-role-block">
            <div class="fm-role-title">Kritik Alanlar</div>
            <div class="fm-badge-list">%s</div>
         </div>
         </div>


         <div class="fm-role-icons">%s</div>
         %s
    </div>


        <div class="fm-role-id">ID: %s</div>
    <div class="fm-role-icons">%s</div>
    </div>
</div>
    ]],
]],
         isim,
         isim,
         gorev,
         gorev,
         kritik_html,
         kritik_html,
         (ikinci ~= "" and '<div class="fm-role-row"><b>İkinci Özellikler:</b> ' .. ikinci_html .. '</div>' or ""),
         (ikinci ~= "" and '<div class="fm-role-block"><div class="fm-role-title">İkincil Alanlar</div><div class="fm-badge-list">'..ikinci_html..'</div></div>' or ""),
         simgeler,
         simge_html
        rolID
     )
     )
    return html
end
end


return p
return p

07.56, 4 Aralık 2025 tarihindeki hâli

Bu modül için bir Modül:RolBox/belge belgelendirmesi oluşturabilirsiniz

local p = {}

-- split: "A, B, C" → {"A","B","C"}
local function splitList(str)
    local t = {}
    for item in string.gmatch(str, "([^,]+)") do
        table.insert(t, mw.text.trim(item))
    end
    return t
end

function p.render(frame)
    local args = frame:getParent().args

    local isim     = args["isim"] or ""
    local gorev    = args["gorev"] or ""
    local kritik   = args["kritik"] or ""
    local ikinci   = args["ikinci"] or ""
    local simgeler = args["simgeler"] or ""

    -- kritik ve ikinci: liste parse
    local kritikList = kritik ~= "" and splitList(kritik) or {}
    local ikinciList = ikinci ~= "" and splitList(ikinci) or {}
    local simgeList  = simgeler ~= "" and splitList(simgeler) or {}

    local kritik_html = ""
    for _,v in ipairs(kritikList) do
        kritik_html = kritik_html .. '<span class="fm-badge fm-badge-critical">' .. v .. '</span>'
    end

    local ikinci_html = ""
    for _,v in ipairs(ikinciList) do
        ikinci_html = ikinci_html .. '<span class="fm-badge fm-badge-secondary">' .. v .. '</span>'
    end

    local simge_html = ""
    for _,v in ipairs(simgeList) do
        simge_html = simge_html .. '<span class="fm-icon">' .. v .. '</span>'
    end

    local html = string.format([[
<div class="fm-rolecard">
    <div class="fm-role-top">
        <div class="fm-role-name">%s</div>
        <div class="fm-role-tag">%s</div>
    </div>

    <div class="fm-role-section">
        <div class="fm-role-block">
            <div class="fm-role-title">Kritik Alanlar</div>
            <div class="fm-badge-list">%s</div>
        </div>

        %s
    </div>

    <div class="fm-role-icons">%s</div>
</div>
]],
        isim,
        gorev,
        kritik_html,
        (ikinci ~= "" and '<div class="fm-role-block"><div class="fm-role-title">İkincil Alanlar</div><div class="fm-badge-list">'..ikinci_html..'</div></div>' or ""),
        simge_html
    )

    return html
end

return p