Sari la conținut

Modul:NameAndImage

Permanently protected module
De la Wikipedia, enciclopedia liberă

local getArgs = require('Modul:Arguments').getArgs
local wikidata = require('Modul:Wikidata')
local StringUtils = require('Modul:StringUtils')
local join = require('Modul:Separated entries')._main
local libUtils = require('libraryUtil')
local p = {}

local maxSize = { }
maxSize['P94'] = '23x23'
maxSize['P41'] = '40x40'

p._nameAndImage = function(entityId, imagePropId)
	libUtils.checkTypeForNamedArg('_nameAndImage', 'imagePropId', imagePropId, 'string', false)
	libUtils.checkTypeForNamedArg('_nameAndImage', 'entityId', entityId, 'string', true)
	
	local imageName = wikidata.findOneValueNoRef(imagePropId, entityId)
	local articleLink = wikidata.findLinkToItem(entityId, false)

	local imageLink = ''
	if imageName and mw.text.trim(imageName) ~= '' then
		local maxSizeOfImage = StringUtils.appendIfMissing({maxSize[imagePropId] or '40x40', 'px'})
		imageLink = '[[Fișier:' .. imageName .. '|' .. maxSizeOfImage .. ']]'
	end
	return mw.text.trim(join({imageLink, articleLink, separator = ' '}))
end

p.nameAndImage = function(frame)
	local args = getArgs(frame)
	local entityId = args[1]
	local propId = args[2]
	return p._nameAndImage()
end

p.nameAndCoatOfArms = function(frame)
	local args = getArgs(frame)
	local entityId = args[1]
	return p._nameAndImage(entityId, 'P94')
end

return p