k (Update) |
k (test vertaalde parameters) |
||
(Een tussenliggende versie door dezelfde gebruiker niet weergegeven) | |||
Regel 3: | Regel 3: | ||
local args = require( 'Module:ProcessArgs' ).merge( true ) |
local args = require( 'Module:ProcessArgs' ).merge( true ) |
||
local titleObject = mw.title.getCurrentTitle() |
local titleObject = mw.title.getCurrentTitle() |
||
− | local title = args.title or titleObject.baseText |
+ | local title = args.title or titleObject.baseText or args.titel |
+ | local subtitle = args.subtitle or args.subtitel |
||
+ | |||
+ | if subtitle ~= nil then |
||
+ | sub_title = '</br><span style=font-size:75%>' .. subtitle .. '</span>' |
||
+ | else |
||
+ | sub_title = '' |
||
+ | end |
||
local imageArea = args.imagearea |
local imageArea = args.imagearea |
||
Regel 10: | Regel 17: | ||
local invImages = {} |
local invImages = {} |
||
local defaultImageSize = args.defaultimagesize or '150px' |
local defaultImageSize = args.defaultimagesize or '150px' |
||
− | args.image1 = args.image1 or args.image or 'title' |
+ | args.image1 = args.image1 or args.image or args.afbeelding1 or args.afbeelding or 'title' |
− | args.image1size = args.image1size or args.imagesize |
+ | args.image1size = args.image1size or args.imagesize or args.afbeeldingsgrootte1 or args.afbeeldingsgrootte |
args.invimage1 = args.invimage1 or args.invimage or 'title' |
args.invimage1 = args.invimage1 or args.invimage or 'title' |
||
Regel 117: | Regel 124: | ||
local html = { |
local html = { |
||
'<div class="notaninfobox">', |
'<div class="notaninfobox">', |
||
− | '<div class="mcwiki-header infobox-title">' .. title .. '</div>', |
+ | '<div class="mcwiki-header infobox-title">' .. title .. sub_title .. '</div>', |
imageArea, |
imageArea, |
||
'{| class="infobox-rows" cellspacing="1" cellpadding="4"', |
'{| class="infobox-rows" cellspacing="1" cellpadding="4"', |
Huidige versie van 29 jan 2019 om 16:46
This module implements {{infobox}}
. It should generally be invoked directly on template pages, rather than using the infobox template.
Parent arguments are automatically merged with directly passed arguments (the latter overwriting the former) and all arguments are normalised to trim whitespace and set empty arguments to nil
.
Dependencies
- Module:Animeer (when using animated images)
- Module:Grid (when using invimages)
- Module:ProcessArgs
Zie ook
{{3rd Party Tool}}
{{Biome}}
{{Blok}}
{{BlockTileEntity}}
{{Company}}
{{Entiteit}}
{{Voedsel}}
{{Gamemode}}
{{Voorwerp}}
{{ItemEntity}}
{{Mod}}
{{Person}}
{{Profile}}
{{Programma}}
{{Structuur}}
{{Technical Block}}
{{Version nav}}
- Module:Infobox
[bekijken | bewerken | geschiedenis | cache legen]Bovenstaande documentatie is getranscludeerd uit Module:Infobox/doc.
local p = {}
function p.infobox( f )
local args = require( 'Module:ProcessArgs' ).merge( true )
local titleObject = mw.title.getCurrentTitle()
local title = args.title or titleObject.baseText or args.titel
local subtitle = args.subtitle or args.subtitel
if subtitle ~= nil then
sub_title = '</br><span style=font-size:75%>' .. subtitle .. '</span>'
else
sub_title = ''
end
local imageArea = args.imagearea
if not imageArea and imageArea ~= 'none' then
local images = {}
local invImages = {}
local defaultImageSize = args.defaultimagesize or '150px'
args.image1 = args.image1 or args.image or args.afbeelding1 or args.afbeelding or 'title'
args.image1size = args.image1size or args.imagesize or args.afbeeldingsgrootte1 or args.afbeeldingsgrootte
args.invimage1 = args.invimage1 or args.invimage or 'title'
local imgCount = {}
local invImgCount = {}
for k, v in pairs( args ) do
if type( k ) == 'string' then
local image, num = k:match( '^(image)(%d+)$' )
local invImage, invNum = k:match( '^(invimage)(%d+)$' )
if v:lower() ~= 'none' then
if image then
table.insert( imgCount, tonumber( num ) )
elseif invImage then
table.insert( invImgCount, tonumber( invNum ) )
end
end
end
end
table.sort( imgCount )
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
local imageTitle = mw.title.new( 'Media:' .. title .. '.png' )
if imageTitle and imageTitle.exists then
image = '[[Bestand:' .. title .. '.png|' .. size .. ']]'
elseif titleObject.namespace == 0 then
image = '[[Bestand:No image.svg|' .. size .. '|link=Bestand:' .. title .. '.png|Upload ' .. title .. '.png]]'
else
image = '[[Bestand:No image.svg|' .. size .. '|link=]]'
end
elseif image:match( ';' ) then
if not animate then
animate = require( 'Module:Animeer' ).animate
end
image = animate{ image, size }
else
image = '[[Bestand:' .. image .. '|' .. size .. ']]'
end
table.insert( images, '<div>' .. image .. '</div>' )
end
images = table.concat( images, '\n' )
if #invImgCount > 0 then
table.sort( invImgCount )
local slot
local invIds = mw.loadData( 'Module:InvSprite' ).ids
for k, v in ipairs( invImgCount ) do
local image = args['invimage' .. v]
if image == 'title' then
local imageExists
if invIds[title] then
imageExists = true
else
local imageTitle = mw.title.new( 'Bestand:Grid ' .. title .. '.png' )
imageExists = imageTitle and imageTitle.exists
end
if imageExists then
image = title
else
image = false
end
end
if image == '----' then
table.insert( invImages, '</div><div style="padding-top:.5em">' )
elseif image then
if not slot then
slot = require( 'Module:Inventory slot' ).slot
end
table.insert( invImages, slot{ image, link = 'none' } )
end
end
if slot and #invImages > 0 then
invImages = '<div class="infobox-invimages"><div>' .. table.concat( invImages, '' ) .. '</div></div>'
else
invImages = ''
end
else
invImages = ''
end
if images ~= '' or invImages ~= '' then
imageArea = images .. '\n' .. invImages
else
imageArea = 'none'
end
end
if imageArea and imageArea ~= 'none' then
imageArea = '<div class="infobox-imagearea">' .. imageArea .. '</div>'
else
imageArea = ''
end
local footer = args.footer
if footer then
footer = '| class="infobox-footer" colspan="2" | ' .. footer
end
local html = {
'<div class="notaninfobox">',
'<div class="mcwiki-header infobox-title">' .. title .. sub_title .. '</div>',
imageArea,
'{| class="infobox-rows" cellspacing="1" cellpadding="4"',
'|-',
args.rows or '',
footer or '',
'|}',
'</div>'
}
return table.concat( html, '\n' )
end
return p