Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
welcome
Community portal
village pump
participate
Upload file
Recent changes
latestfiles
Random File
contact
Special pages
Islamical Commons
Search
Search
English
Appearance
Create account
Log in
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Editing
Module
:
Lua banner
Module
Discussion
English
Read
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit source
View history
General
What links here
Related changes
Upload file
Page information
Appearance
move to sidebar
hide
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!
-- This module implements the {{lua}} template. local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local TNT = require('Module:TNT') local lang = mw.getCurrentFrame():preprocess('{{int:lang}}') local p = {} local function format(msg) return TNT.formatInLanguage(lang, 'I18n/Lua banner', msg) end local function getConfig() return mw.loadData('Module:Lua banner/config') end 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, cfg) local modules = mTableTools.compressSparseArray(args) local box = p.renderBox(modules, cfg) local trackingCategories = p.renderTrackingCategories(args, modules, nil, cfg) return box .. trackingCategories end function p.renderBox(modules, cfg) local boxArgs = {} if #modules < 1 then cfg = cfg or getConfig() if cfg['allow_wishes'] then boxArgs.text = format('wishtext') else boxArgs.text = string.format('<strong class="error">%s</strong>', format('error_emptylist')) end else local moduleLinks = {} for i, module in ipairs(modules) do moduleLinks[i] = string.format('[[:%s]]', module) end local moduleList = mList.makeList('bulleted', moduleLinks) boxArgs.text = format('header') .. '\n' .. moduleList end boxArgs.type = 'notice' boxArgs.small = true boxArgs.class = 'tpl-lua-banner' boxArgs.image = string.format( '<span aria-hidden="true">[[File:Lua-Logo-small.svg|30px|alt=%s|link=%s]]</span>', format('logo_alt'), format('logo_link') ) return mMessageBox.main('mbox', boxArgs) end function p.renderTrackingCategories(args, modules, titleObj, cfg) if yesno(args.nocat) then return '' end cfg = cfg or getConfig() local cats = {} -- Error category if #modules < 1 and not cfg['allow_wishes'] and cfg['error_category'] then cats[#cats + 1] = cfg['error_category'] end -- Lua templates category titleObj = titleObj or mw.title.getCurrentTitle() if titleObj.namespace == 10 and not cfg['subpage_blacklist'][titleObj.subpageText] then local category = args.category if not category then local pagename = modules[1] and mw.title.new(modules[1]) category = pagename and cfg['module_categories'][pagename.text] if not category then if cfg['allow_wishes'] and #modules < 1 then category = cfg['wish_category'] else category = cfg['default_category'] end end end if category then cats[#cats + 1] = category end end for i, cat in ipairs(cats) do cats[i] = string.format('[[Category:%s]]', cat) end return table.concat(cats) end return p
Summary:
Please note that all contributions to Islamical Commons 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
commons:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Pages included on this page:
Template:Documentation subpage
(
edit
)
Template:Fallback
(
edit
)
Template:GetFallback
(
edit
)
Template:GetFallback2
(
edit
)
Template:Mbox
(
edit
)
Template:Module rating
(
edit
)
Template:Module rating/i18n/en
(
edit
)
Template:Mono/styles.css
(
edit
)
Template:Ombox
(
edit
)
Template:Sandbox other
(
edit
)
Template:Tld
(
edit
)
Template:Uses TNT
(
edit
)
Module:Arguments
(
edit
)
Module:Autotranslate
(
edit
)
Module:Error
(
edit
)
Module:Func
(
edit
)
Module:List
(
edit
)
Module:Lua banner/doc
(
edit
)
Module:Message box
(
edit
)
Module:Message box/configuration
(
edit
)
Module:Message box/mbox.css
(
edit
)
Module:TNT
(
edit
)
Module:TNTTools
(
edit
)
Module:TableTools
(
edit
)
Module:Uses TNT
(
edit
)
Module:Uses TNT/config
(
edit
)
Module:Yesno
(
edit
)
Search
Search
Editing
Module
:
Lua banner
Add languages
Add topic