Module:ItemSlot: Difference between revisions
No edit summary |
No edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
function p.render(frame) | function p.render(frame) | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local itemParam = args.item or "" | local itemParam = args.item or "" | ||
local linkParam = args.link or "" | |||
local tooltipParam = args.tooltip | local tooltipParam = args.tooltip | ||
local amountParam = args.amount or "" | |||
local output = {} | local output = {} | ||
-- Split items by | -- Split items by semicolon | ||
for filename in string.gmatch(itemParam, '([^ | for filename in string.gmatch(itemParam, '([^;]+)') do | ||
filename = filename:gsub("^%s*(.-)%s*$", "%1") -- trim spaces | filename = filename:gsub("^%s*(.-)%s*$", "%1") -- trim spaces | ||
| Line 16: | Line 19: | ||
end | end | ||
local | local imgTag = string.format('[[File:%s|link=%s]]', filename, linkParam) | ||
table.insert(output, imgTag) | table.insert(output, imgTag) | ||
end | end | ||
| Line 27: | Line 25: | ||
local itemContainer = '<div class="image-sequence" style="width:32px;"><div class="image-sequence-group">' .. table.concat(output, "") .. '</div></div>' | local itemContainer = '<div class="image-sequence" style="width:32px;"><div class="image-sequence-group">' .. table.concat(output, "") .. '</div></div>' | ||
local tooltipText = | local amountSpan = "" | ||
if amountParam ~= "" then | |||
amountSpan = '<span class="item-slot-count">' .. amountParam .. '</span>' | |||
end | |||
local tooltipText = tooltipParam or (args.item or "") | |||
if not tooltipText or tooltipText == "" then | if not tooltipText or tooltipText == "" then | ||
tooltipText = "" | tooltipText = "" | ||
| Line 33: | Line 36: | ||
local result = '<div class="item-slot">' .. itemContainer | local result = '<div class="item-slot">' .. itemContainer | ||
if amountSpan ~= "" then | |||
result = result .. amountSpan | |||
end | |||
if tooltipText ~= "" then | if tooltipText ~= "" then | ||
Latest revision as of 07:03, 27 November 2025
Documentation for this module may be created at Module:ItemSlot/doc
local p = {}
function p.render(frame)
local args = frame:getParent().args
local itemParam = args.item or ""
local linkParam = args.link or ""
local tooltipParam = args.tooltip
local amountParam = args.amount or ""
local output = {}
-- Split items by semicolon
for filename in string.gmatch(itemParam, '([^;]+)') do
filename = filename:gsub("^%s*(.-)%s*$", "%1") -- trim spaces
if not filename:lower():match("%.png$") then
filename = filename .. ".png"
end
local imgTag = string.format('[[File:%s|link=%s]]', filename, linkParam)
table.insert(output, imgTag)
end
local itemContainer = '<div class="image-sequence" style="width:32px;"><div class="image-sequence-group">' .. table.concat(output, "") .. '</div></div>'
local amountSpan = ""
if amountParam ~= "" then
amountSpan = '<span class="item-slot-count">' .. amountParam .. '</span>'
end
local tooltipText = tooltipParam or (args.item or "")
if not tooltipText or tooltipText == "" then
tooltipText = ""
end
local result = '<div class="item-slot">' .. itemContainer
if amountSpan ~= "" then
result = result .. amountSpan
end
if tooltipText ~= "" then
result = result .. '<span class="item-tooltip">' .. tooltipText .. '</span>'
end
result = result .. '</div>'
return result
end
return p