Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Portal image banner
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} local randomModule = require('Module:Random') p.main = function(frame) local parent = frame.getParent(frame) local parentArgs = parent.args local args = cleanupArgs(parentArgs) local output = p._main(args) return frame:preprocess(output) end function cleanupArgs(argsTable) local cleanArgs = {} for key, val in pairs(argsTable) do if type(val) == 'string' then val = val:match('^%s*(.-)%s*$') if val ~= '' then cleanArgs[key] = val end else cleanArgs[key] = val end end return cleanArgs end p._main = function(args) if not args[1] then return error(linked and 'No page specified' or 'No page specified', 0) end local lines=makeGalleryLinesTable(args) return makeOutput(lines, args.overflow, args.maxheight, args.mode, args.croptop) end function makeGalleryLine(file, caption, link) local title = mw.title.new(file, "File" ) local linktext = ( link and '{{!}}link=' .. link or '' ) local maxImageWidth = '{{!}}800px' return '[[' .. title.prefixedText ..(caption and'{{!}}'..caption or '').. maxImageWidth .. linktext ..']]' .. (caption and '\n<div style="text-align:center;">' .. caption ..'</div>' or '\n') end function makeGalleryLineSlideshow(file, caption) local title = mw.title.new(file, "File" ) local captiontext= '[[File:OOjs_UI_icon_info-progressive.svg|link=:'..title.prefixedText..']] <span style="font-size:110%;">'..(caption or '')..'</span>' return title.prefixedText .. '{{!}}' .. captiontext end function makeGalleryLinesTable(args) local galleryLinesTable = {} local i = 1 while args[i] do if not args.mode then table.insert(galleryLinesTable, makeGalleryLine(args[i], args[i+1],args.link)) else if args.mode=='slideshow' then table.insert(galleryLinesTable, makeGalleryLineSlideshow(args[i], args[i+1], args.link)) else error('Mode not supported') end end i = i + 2 end return galleryLinesTable end function makeOutput(imageLines, overflow, maxHeight, mode, croptop) local randomiseArgs = { ['t'] = imageLines } local randomisedLines = randomModule.main('array', randomiseArgs ) local output, galleryContent if not mode then galleryContent = table.concat(randomisedLines, '\n',1,1) seperate=mw.text.split(galleryContent,'\n') output = '<div class="portal-banner-image" style="max-height:' .. (maxHeight or 'initial') .. '; overflow:'..(overflow or 'auto').. ';"><div class="portal-banner-image-crop" style="position:relative; margin-top:-'..(croptop or '0')..'%;">'..seperate[1]..'</div></div>'..seperate[2] else if mode=='slideshow' then galleryContent = table.concat(randomisedLines, '\n') output='<div class="portal-banner-image-slideshow nomobile" style="max-height:' .. (maxHeight or 'initial') .. '; overflow:'..(overflow or 'auto').. ';"><div class="portal-banner-image-crop" style="position:relative; margin-top:-'..(croptop or '0')..'%;">'..'{{#tag:gallery|'..galleryContent..'|mode=slideshow}}'..'</div></div>' else error('Mode not supported') end end return output end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Module other
(
edit
)
Template:Module rating
(
edit
)
Template:Ombox
(
edit
)
Template:Portal templates navbox
(
edit
)
Template:Tl
(
edit
)
Template:Uses Lua
(
edit
)
Module:Arguments
(
edit
)
Module:Message box
(
edit
)
Module:Message box/configuration
(
edit
)
Module:Message box/ombox.css
(
edit
)
Module:Portal image banner/doc
(
edit
)
Module:Yesno
(
edit
)