Module:Clade/gallery
local p = {}
-- display a gallery of cladograms using floating div elements
function p.gallery(frame)
local params = mw.getCurrentFrame():getParent().args
local outerBorders = false
if params['caption'] or params['footer'] then outerBorders = true end
-- the gallery container
local gallery = mw.html.create('div'):addClass('clade-gallery'):css('float',params['align'])
-- main caption for gallery if there is one
if params['main-caption'] then
gallery:tag('div'):wikitext(params['main-caption']):addClass('main-caption')
end
-- a gallery of floating divs with content
local shading = ''
if params['shading'] then shading = 'wikitable' end -- class for shading
local vertical = '' -- defaults to horizontal
if params['vertical'] then vertical = 'vertical' end -- class for vertical display
local styleAll = params['style'] or '' -- style for all elements
local mainBorders = ''
local elementBorders = ''
if not params['main-borders'] or params['main-borders'] == "no" then mainBorders = 'no-border' end
if params['borders'] == "no" then elementBorders = 'no-border' end
-- the gallery contents
local content = gallery:tag('div'):addClass('main-content')
:addClass(mainBorders)
--:css('height',params['height'])
local i=0
while i<15 do
i=i+1
local caption = params['caption'..i] --or ''
local header = params['header'..i] --or ''
local footer = params['footer'..i] --or ''
local style = params['style'..i] or styleAll
local headerstyle = params['headerstyle'..i] or params['headerstyle']
local width = params['width'..i] or params['width']
-- for each gallery element containing a cladogram
if params['cladogram'..i] then
local cladogramTable = content:tag('table')
:addClass(elementBorders)
:addClass(shading):addClass('gallery-element')
:addClass(vertical)
:css('width',width)
:css('height',params['height'])
:cssText(style)
if caption then
cladogramTable:tag('caption'):wikitext(caption):addClass('caption')
end
if header then
local row = cladogramTable:tag('tr'):addClass('header')
row:tag('th'):wikitext(header)
:cssText(headerstyle)
end
-- if params['cladogram'..i] already checked
local row = cladogramTable:tag('tr')
row:tag('td') :wikitext("\n" .. params['cladogram'..i])
:addClass('cladogram')
--:css("padding", "20px")
-- :css('width',params['cladogram-width'])
--:css('height',params['cladogram-height'])
:css('height',params['height'])
if footer then
local row = cladogramTable:tag('tr')
row:tag('td'):wikitext(footer):addClass('footer'):addClass(shading)
end
--[[DIV VERSION - different browsers behave differently
-- the div containing each element in the gallery
local div = content:tag('div'):addClass('gallery-element'):addClass(direction)
:css('width',params['width'])
:css('height',params['height'])
-- the caption, header, content and footer for each element
if caption then div:tag('div'):wikitext(caption):addClass('caption'):addClass(shading) end
if header then div:tag('div'):wikitext(header):addClass('header'):addClass(shading) end
div:tag('div'):wikitext(params['cladogram'..i]):addClass('cladogram'):addClass(shading)
:css('width',params['cladogram-width'])
:css('height',params['cladogram-height'])
if footer then div:tag('div'):wikitext(footer):addClass('footer'):addClass(shading) end
END DIV VERSION--]]
else
--break -- either break or comment out to allow gaps in sequence
end
end
-- main footer
if params['main-footer'] then
gallery:tag('div'):wikitext(params['main-footer']):addClass('main-footer'):addClass(noborder)
end
-- TemplateStyles file
local src = "Template:Clade gallery/styles.css"
return p.templateStyle( frame, src ) .. tostring(gallery)
end
function p.templateStyle( frame, src )
return frame:extensionTag( 'templatestyles', '', { src = src } );
end
-- this must be at end
return p
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.