Для документации этого модуля может быть создана страница Модуль:Обычный инфобокс/doc
local CommonInfobox = {}
function CommonInfobox.create( name, media, type )
local obj = {}
obj.infobox = mw.html.create( 'div' )
obj.infobox:addClass( 'cIn_commonInfobox' )
local title = mw.html.create( 'div' )
title:addClass( 'cIn_title' )
title:wikitext( name )
obj.infobox:node( title )
if media and media ~= '' then
if not type or type == 'image' then
obj.infobox:wikitext( '[[Файл:'..media..'|250px]]' )
elseif type == 'video' then
obj.infobox:wikitext( '<div class="media-player" data-video="'..media..'"></div>' )
end
end
local self = CommonInfobox
setmetatable( obj, self )
self.__index = self
return obj
end
function CommonInfobox:addHeader( text )
local header = mw.html.create( 'div' )
header:addClass( 'cIn_header' )
header:wikitext( text )
self.infobox:node( header )
end
function CommonInfobox:addRow( text, title )
local row = mw.html.create( 'div' )
local firstCell = mw.html.create( 'div' )
local secondCell
row:addClass( 'cIn_row' )
if title then
secondCell = mw.html.create( 'div' )
firstCell:addClass( 'cIn_cell' )
secondCell:addClass( 'cIn_cell' )
firstCell:wikitext( title )
secondCell:wikitext( text )
row:node( firstCell )
row:node( secondCell )
else
firstCell:addClass( 'cIn_singleCell' )
firstCell:wikitext( text )
row:node( firstCell )
end
self.infobox:node( row )
end
function CommonInfobox:addNav( prev, next )
local nav = mw.html.create( 'div' )
local prevCell = mw.html.create( 'div' )
local nextCell = mw.html.create( 'div' )
nav:addClass( 'cIn_nav' )
prevCell:wikitext( '<span>Предыдущая</span><br />'..prev )
nextCell:wikitext( '<span>Следующая</span><br />'..next )
nav:node( prevCell )
nav:node( nextCell )
self.infobox:node( nav )
end
function CommonInfobox:getInfobox()
local frame = mw.getCurrentFrame()
local infobox = tostring( self.infobox )
return frame:preprocess( infobox )
end
return CommonInfobox
Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA, если не указано иное.