ФЭНДОМ


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 , если не указано иное.