Jump to content

📢 Please make sure to read our Style Guide before editing. For questions, suggestions, or technical issues, please contact Noah.

Module:ButtonBox: Difference between revisions

From CrabCraft Wiki
perhaps fixed again
Tag: Reverted
trying again
Tag: Reverted
Line 13: Line 13:
local out = {}
local out = {}
table.insert(out, '{| class="buttonbox"')
table.insert(out, '{| class="buttonbox"')
local count = 1


local count = 1
local count = 1
for _, row in ipairs(results) do
for _, row in ipairs(results) do
local username = row.username
local username = row.username
if row.username ~= '$1' and row.username ~= 'MHF_Steve' and row.username ~= 'BlockKnight32' then
if username ~= '$1' and username ~= 'MHF_Steve' and username ~= 'BlockKnight32' then
local url = mw.title.new(row.username):fullUrl()
if (count - 1) % 7 == 0 then
if (count - 1) % 7 == 0 then
table.insert(out, '|-')
table.insert(out, '|-')
end
end
 
local imageUrl = 'https://mc-heads.net/avatar/' .. username .. '/100.png'
-- Generate valid HTML <img> tag via #tag parser function
local imageTag = string.format('{{#tag:img||src=%s|width=100}}', imageUrl)
local parsedImage = mw.getCurrentFrame():preprocess(imageTag)


local imageUrl = 'https://mc-heads.net/avatar/'..username..'/100.png'
-- Build full HTML button
local link = '[[' .. username .. '|<div class="buttonbox-entry">' ..
local box = '<div class="buttonbox-entry">' ..
            imageUrl ..
            parsedImage ..
            '<div class="buttonbox-label">' .. username .. '</div>' ..
            '<div class="buttonbox-label">' .. username .. '</div>' ..
            '</div>]]'
            '</div>'


local cell = '| ' .. link
-- Wrap entire box in a wikilink
local link = '[[' .. username .. '|' .. box .. ']]'


table.insert(out, cell)
table.insert(out, '| ' .. link)
count = count + 1
count = count + 1
end
end
end
end

Revision as of 15:44, 24 June 2025

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

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

function p.buttonbox()
	local tables = 'player_data'
	local fields = 'username'
	local args = {
		orderBy = 'username ASC',
		limit = 100 -- Optional; remove or increase if needed
	}

	local results = cargo.query(tables, fields, args)
	local out = {}
	table.insert(out, '{| class="buttonbox"')

	local count = 1

	local count = 1
	for _, row in ipairs(results) do
		local username = row.username
		if username ~= '$1' and username ~= 'MHF_Steve' and username ~= 'BlockKnight32' then
			if (count - 1) % 7 == 0 then
				table.insert(out, '|-')
			end

			local imageUrl = 'https://mc-heads.net/avatar/' .. username .. '/100.png'
			
			-- Generate valid HTML <img> tag via #tag parser function
			local imageTag = string.format('{{#tag:img||src=%s|width=100}}', imageUrl)
			local parsedImage = mw.getCurrentFrame():preprocess(imageTag)

			-- Build full HTML button
			local box = '<div class="buttonbox-entry">' ..
			             parsedImage ..
			             '<div class="buttonbox-label">' .. username .. '</div>' ..
			            '</div>'

			-- Wrap entire box in a wikilink
			local link = '[[' .. username .. '|' .. box .. ']]'

			table.insert(out, '| ' .. link)
			count = count + 1
		end
	end

	table.insert(out, '|}')
	return table.concat(out, '\n')
end

return p