Изменения

Модуль:Карточка

1551 байт добавлено, 15:19, 3 ноября 2018
м
Добавление поддержки gif и svg изображений (при необходимости)
local args = require( 'Модуль:ProcessArgs' ).merge( true )
local titleObject = mw.title.getCurrentTitle()
local title = args['название'] or titleObject.title subpageText local invtitle = args['инвизображение'] or args["инвизображение1"] or args['название'] or titleObject.baseTextsubpageText local modtitle = args['мод'] or titleObject.rootText if modtitle == 'нет' then modification = '' invmodification = '' else modification = ' (' .. modtitle .. ')' invmodification = modtitle .. ':' end  local imageArea = args.imagearea['изображения']
if not imageArea and imageArea ~= 'none' then
local images = {}
local invImages = {}
local defaultImageSize = args.defaultimagesize ["умолчразмеризобр"] or '150px' args.image1 ["изображение1"] = args.image1 ["изображение1"] or args.image ["изображение"] or 'title' args.image1size ["изобр1разм"] = args.image1size ["изобр1разм"] or args.imagesize["изобрразм"] args.invimage1 ["инвизображение1"] = args.invimage1 ["инвизображение1"] or args.invimage ["инвизображение"] or 'title' args["мод"] = args["мод"]
local imgCount = {}
for k, v in pairs( args ) do
if type( k ) == 'string' then
local image, num = k:mw.ustring.match( k, '^(imageизображение)(%d+)$' ) local invImage, invNum = k:mw.ustring.match( k, '^(invimageинвизображение)(%d+)$' ) if v:mw.ustring.lower(v) ~= 'noneнет' then
if image then
table.insert( imgCount, tonumber( num ) )
local animate
for k, v in ipairs( imgCount ) do
local image = args['imageизображение' .. v] local size = args['imageизобр' .. v .. 'sizeразм'] or defaultImageSize
if image == 'title' then
oimage = '.png' local imageTitle = mw.title.new( 'FileФайл:' .. title .. 'modification ..png' oimage )
if imageTitle and imageTitle.exists then
image = '[[FileФайл:' .. title .. modification .. oimage .. '.png|' .. size .. ']]'
elseif titleObject.namespace == 0 then
image = '[[FileФайл:No image.svg|' .. size .. '|link=FileФайл:' .. title .. modification .. oimage .. '.png|Upload Загрузить' .. title .. modification .. oimage .. '.png]]'
else
image = '[[FileФайл:No image.svg|' .. size .. '|link=]]' end elseif mw.ustring.match(image, 'svg' ) then endoimage = '.svg' title = mw.ustring.sub(image, 0, -5) image = '[[Файл:' .. title .. modification .. oimage .. '|' .. size .. ']]' elseif mw.ustring.match(image, 'gif' ) then oimage = '.gif' title = mw.ustring.sub(image, 0, -5) image = '[[Файл:' .. title .. modification .. oimage .. '|' .. size .. ']]' elseif mw.ustring.match( image, ';' ) then
if not animate then
animate = require( 'Модуль:Анимация' ).animate
image = animate{ image, size }
else
oimage = '.png' image = '[[FileФайл:' .. image .. modification .. oimage .. '|' .. size .. ']]'
end
if #invImgCount > 0 then
table.sort( invImgCount )
local slotgrid local invIds = mw.loadData( '[[Модуль:ИнвСпрайт/ID' ]] )['"IDы'"]
for k, v in ipairs( invImgCount ) do
local image = args['invimageинвизображение' .. v]
if image == 'title' then
local imageExists
imageExists = true
else
local imageTitle = mw.title.new( 'FileФайл:Grid ' .. title .. 'modification ..png' oimage )
imageExists = imageTitle and imageTitle.exists
end
if image == '----' then
table.insert( invImages, '</div><div style="padding-top:.5em">' )
elseif image ~= '----' then if not slot grid then slot grid = require( 'Модуль:Инвентарный слот' ).slot
end
table.insert( invImages, slotgrid{ imageinvmodification .. invtitle, link ['ссылка'] = 'noneнет' } )
end
end
if slot grid and #invImages > 0 then
invImages = '<div class="infobox-invimages"><div>' .. table.concat( invImages, '' ) .. '</div></div>'
else
invImages = '[[Файл:No image.svg|link=]]'
end
else
imageArea = images .. '\n' .. invImages
else
imageArea = 'noneнет'
end
end
if imageArea and imageArea ~= 'noneнет' then
imageArea = '<div class="infobox-imagearea">' .. imageArea .. '</div>'
else
end
local footer = args.footer["подвал"]
if footer then
footer = '| class="infobox-footer" colspan="2" | ' .. footer
end
local bgcolor = args["цвет"]
if bgcolor then
bgcolor = ' style="background:#' .. bgcolor .. '"'
end
 
local html = {
'<div class="notaninfobox">',
'<div class="mcwiki-header infobox-title"', bgcolor or '', '>' .. title .. '</div>',
imageArea,
'{| class="infobox-rows" cellspacing="1" cellpadding="4"',
'|-',
args['"ряды'"] or '',
footer or '',
'|}',
1136
правок