Módulo:Infobox
Revisión del 20:34 11 oct 2015 de Leynaf (discusión | contribuciones)
[purge]
Esta es la página de documentación, debería ser transcluida a la página de plantilla principal. Véase Plantilla:Documentation para más información.
Este módulo implementa {{infobox}}. Por lo general, debe ser invocado directamente en las páginas de plantilla, en lugar de utilizar la plantilla infobox.
Los argumentos padre se fusionan automáticamente con argumentos que son trasmitidos directamente (el segundo sobrescribiendo al primero) y todos los argumentos se normalizan para recortar espacios en blanco y establecer argumentos vacíos a nil
.
Dependencias
- Módulo:Animate (cuando se usan imagenes animadas)
- Módulo:ProcessArgs
Véase también
- {{3rd Party Tool}}
- {{Block}}
- {{Bloque}}
- {{BlockTileEntity}}
- {{Entity}}
- {{Entidad}}
- {{Food}}
- {{Comida}}
- {{Alimento}}
- {{Gamemode}}
- {{Item}}
- {{ItemEntity}}
- {{Mod}}
- {{Objeto}}
- {{ObjetoEntidad}}
- {{Person}}
- {{Persona}}
- {{Potion}}
- {{Profile}}
- {{Program}}
- {{Structure}}
- {{Estructura}}
- {{Technical Block}}
- {{Version nav}}
- Module:Infobox
local p = {} function p.infobox( f ) local args = require( 'Module:ProcessArgs' ).merge( true ) local title = args.title or mw.title.getCurrentTitle().baseText 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 'title' args.image1size = args.image1size or args.imagesize args.invimage1 = args.invimage1 or args.invimage or 'title' local imgCount = {} local invImgCount = {} local grid 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( 'File:' .. title .. '.png' ) if imageTitle and imageTitle.exists then image = '[[File:' .. title .. '.png|' .. size .. ']]' elseif mw.title.getCurrentTitle().namespace == 0 then image = '[[File:No image.svg|' .. size .. '|link=File:' .. title .. '.png|Upload ' .. title .. '.png]]' else image = '[[File:No image.svg|' .. size .. '|link=]]' end elseif image:match( ';' ) then if not animate then animate = require( 'Module:Animate' ).animate end image = animate{ image, size } else image = '[[File:' .. image .. '|' .. size .. ']]' end table.insert( images, '<div>' .. image .. '</div>' ) end images = table.concat( images, '\n' ) if #invImgCount > 0 then table.sort( invImgCount ) local grid for k, v in ipairs( invImgCount ) do local image = args['invimage' .. v] if image == 'title' then local imageTitle = mw.title.new( 'File:Grid ' .. title .. '.png' ) if imageTitle and imageTitle.exists 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 grid then grid = require( 'Module:Grid' ).cell end table.insert( invImages, grid{ image, link = 'none' } ) end if image then if not grid then grid = require( 'Module:Grid' ).cell end table.insert( invImages, grid{ image, link = 'none' } ) end end if #invImages > 0 then invImages = '<div class="infobox-invimages">' .. table.concat( invImages, '' ) .. '</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="infobox-title mcwiki-header">' .. title .. '</div>', imageArea, '{| class="infobox-rows" cellspacing="1" cellpadding="4"', '|-', args.rows or '', footer or '', '|}', '</div>' } return table.concat( html, '\n' ) end return p