Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Item thumbnail: Difference between revisions

From Sekaipedia
Content added Content deleted
mNo edit summary
mNo edit summary
Line 35: Line 35:
local root = mw.html.create('div')
local root = mw.html.create('div')
root:css({
root:css({
['display'] = 'inline-block',
['position'] = 'relative',
['position'] = 'relative',
['height'] = icon_size,
['height'] = icon_size,

Revision as of 23:12, 3 November 2021



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 = '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|80px|link=%s|%s]]',
			image,
			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.