Module:Side box
Jump to navigation
Jump to search
This module implements the {{side box}} template.
Usage from wikitext
This module cannot be used directly from wikitext. It can only be used through the {{side box}} template. Please see the template page for documentation.
Usage from Lua modules
To use this module from other Lua modules, first load the module.
local mSideBox = require('Module:Side box')
You can then generate a side box using the _main function.
mSideBox._main(args)
The args variable should be a table containing the arguments to pass to the module. To see the different arguments that can be specified and how they affect the module output, please refer to the {{side box}} template documentation.
-- This module implements {{side box}}. local yesno = require('Module:Yesno') local p = {} function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end function p._main(args) local data = p.makeData(args) return p.renderSidebox(data) end function p.makeData(args) local data = {} -- Main table classes data.classes = {} if yesno(args.metadata) ~= false then table.insert(data.classes, 'metadata') end if args.position and args.position:lower() == 'left' then table.insert(data.classes, 'mbox-small-left') else table.insert(data.classes, 'mbox-small') end table.insert(data.classes, args.class) -- Image if args.image and args.image ~= 'none' then data.image = args.image end -- Copy over data that doesn't need adjusting local argsToCopy = { -- Styles 'style', 'textstyle', -- Above row 'above', 'abovestyle', -- Body row 'text', 'imageright', -- Below row 'below', } for i, key in ipairs(argsToCopy) do data[key] = args[key] end return data end function p.renderSidebox(data) -- Renders the sidebox HTML. -- Table root local root = mw.html.create('table') for i, class in ipairs(data.classes or {}) do root:addClass(class) end root:css{border = '1px solid #aaa', ['background-color'] = '#f9f9f9'} if data.style then root:cssText(data.style) end -- The "above" row if data.above then local aboveCell = root:newline():tag('tr'):tag('td') aboveCell :attr('colspan', data.imageright and 3 or 2) :addClass('mbox-text') if data.textstyle then aboveCell:cssText(data.textstyle) end if data.abovestyle then aboveCell:cssText(data.abovestyle) end aboveCell :newline() :wikitext(data.above) end -- The body row local bodyRow = root:newline():tag('tr'):newline() if data.image then bodyRow:tag('td') :addClass('mbox-image') :wikitext(data.image) else bodyRow:tag('td'):css('width', '1px') end local textCell = bodyRow:newline():tag('td') textCell:addClass('mbox-text plainlist') if data.textstyle then textCell:cssText(data.textstyle) end textCell:wikitext(data.text) if data.imageright then bodyRow:newline():tag('td') :addClass('mbox-imageright') :wikitext(data.imageright) end -- The below row if data.below then local belowCell = root:newline():tag('tr'):tag('td') belowCell :attr('colspan', data.imageright and 3 or 2) :addClass('mbox-text') if data.textstyle then belowCell:cssText(data.textstyle) end belowCell:wikitext(data.below) end return tostring(root) end return p
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 18.116.85.60
Start request GET /mediawiki/index.php?oldid=303&printable=yes&title=Module%3ASide_box
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
COOKIE: wikidb229_mw__session=qelmlqmhouqa0n5uting1t9hd7fdnif3
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[session] Session "qelmlqmhouqa0n5uting1t9hd7fdnif3" requested without UserID cookie
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "18.116.85.60",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Module:Side box]] are {edit,move}
[ContentHandler] Created handler for Scribunto: ScribuntoContentHandler
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[ContentHandler] Created handler for wikitext: WikitextContentHandler
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
Article::view using parser cache: no
Article::view: doing uncached parse
[SQLBagOStuff] Connection mysql object #126 (handle id #120) will be used for SqlBagOStuff
Unstubbing $wgParser on call of $wgParser::parse from AbstractContent->getParserOutput
[Scribunto] Scribunto_LuaStandaloneInterpreter::__construct: creating interpreter: ""C:\Projekty\zero-k.info\www\mediawiki\extensions\Scribunto\includes\engines\LuaStandalone/binaries/lua5_1_5_Win64_bin/lua5.1.exe" "C:\Projekty\zero-k.info\www\mediawiki\extensions\Scribunto\includes\engines\LuaStandalone/mw_main.lua" "C:\Projekty\zero-k.info\www\mediawiki\extensions\Scribunto\includes" "0" "8""
[gitinfo] Candidate cacheFile=C:\Projekty\zero-k.info\www\mediawiki/gitinfo.json for C:\Projekty\zero-k.info\www\mediawiki
[gitinfo] Cache incomplete for C:\Projekty\zero-k.info\www\mediawiki
SiteStats::loadAndLazyInit: reading site_stats from replica DB
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[Module:Side box]] are {edit,move}