Module:Item thumbnail

From Sekaipedia
Revision as of 17:44, 12 November 2021 by ChaoticShadow (talk | contribs)



local getArgs   = require('Module:Arguments').getArgs
local cargo     = mw.ext.cargo

local p = {}

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local item = string.lower(args['item'] or '')
	local image = nil 
	local link = nil
	local count = args['count']
	local icon_size = args['size'] or '80px'

	if item then
		local tables = 'Items'
		local fields = '_pageName, image'
		local args = {
	        where = string.format("item_name = '%s'", item),
	    }
		local result = cargo.query( tables, fields, args )
		
		if #result > 0 then
			image = result[1]['image']
			link = result[1]['_pageName']
		end
	end

	image = args['image'] or image or ''
	link = args['link'] or link or ''
	
	local root = mw.html.create('div')
	root:css({
		['display'] = 'inline-block',
		['position'] = 'relative',
		['height'] = icon_size,
		['width'] = icon_size
	})
		:wikitext(string.format(
			'[[File:%s|%s|link=%s|%s]]',
			image,
			icon_size,
			link,
			link
		))
	
	if count and tonumber(count) > 1 then
		root:tag('div')
			:addClass('theme-primary')
			:css({
				['bottom'] =  0,
				['right'] = 0,
				['position'] = 'absolute',
				['padding'] = '0 5px',
				['border-radius'] = '5px 0 5px 0',
				['user-select'] = 'none'
			})
			:wikitext('x' .. count)
	end
		
	return tostring(root)
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.