Module:Lua banner: Difference between revisions
Jump to navigation
Jump to search
Add parameter to disable protection level tracking, useful when a template only includes part of a module
MediaWiki>Tacsipacsi (Undid revision 3688766 by meta>IPad365 (talk): it is exactly designed to be called from wikitext: from the {{Lua}} *template*) |
(Add parameter to disable protection level tracking, useful when a template only includes part of a module) |
||
Line 1: | Line 1: | ||
-- This module implements the {{lua}} template. | -- This module implements the {{lua}} template. | ||
local yesno = require('Module:Yesno') | local yesno = require('Module:Yesno') | ||
local mList = require('Module:List') | local mList = require('Module:List') | ||
Line 37: | Line 36: | ||
end | end | ||
local moduleList = mList.makeList('bulleted', moduleLinks) | local moduleList = mList.makeList('bulleted', moduleLinks) | ||
boxArgs.text = ' | local title = mw.title.getCurrentTitle() | ||
if title.subpageText == "doc" then | |||
title = title.basePageTitle | |||
end | |||
if title.contentModel == "Scribunto" then | |||
boxArgs.text = 'This module depends on the following other modules:' .. moduleList | |||
else | |||
boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList | |||
end | |||
end | end | ||
boxArgs.type = 'notice' | boxArgs.type = 'notice' | ||
boxArgs.small = true | boxArgs.small = true | ||
boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt= | boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=|link=]]' | ||
return mMessageBox.main('mbox', boxArgs) | return mMessageBox.main('mbox', boxArgs) | ||
end | end | ||
Line 49: | Line 56: | ||
return '' | return '' | ||
end | end | ||
local cats = {} | local cats = {} | ||
-- Error category | -- Error category | ||
if #modules < 1 then | if #modules < 1 then | ||
cats[#cats + 1] = 'Lua templates with errors' | cats[#cats + 1] = 'Lua templates with errors' | ||
end | end | ||
-- Lua templates category | -- Lua templates category | ||
titleObj = titleObj or mw.title.getCurrentTitle() | titleObj = titleObj or mw.title.getCurrentTitle() | ||
Line 65: | Line 72: | ||
testcases = true | testcases = true | ||
} | } | ||
if titleObj.namespace == 10 | if titleObj.namespace == 10 | ||
and not subpageBlacklist[titleObj.subpageText] | and not subpageBlacklist[titleObj.subpageText] | ||
and not args.noprotcat | |||
then | then | ||
local category = args.category | local category = args.category | ||
Line 81: | Line 89: | ||
end | end | ||
cats[#cats + 1] = category | cats[#cats + 1] = category | ||
local protLevels = { | |||
autoconfirmed = 1, | |||
extendedconfirmed = 2, | |||
templateeditor = 3, | |||
sysop = 4 | |||
} | |||
local currentProt | |||
if titleObj.id ~= 0 then | |||
-- id is 0 (page does not exist) if am previewing before creating a template. | |||
currentProt = titleObj.protectionLevels["edit"][1] | |||
end | |||
if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end | |||
for i, module in ipairs(modules) do | |||
local moduleProt = mw.title.new(module).protectionLevels["edit"][1] | |||
if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end | |||
if moduleProt < currentProt then | |||
cats[#cats + 1] = "Templates using under-protected Lua modules" | |||
break | |||
end | |||
end | |||
end | end | ||
for i, cat in ipairs(cats) do | for i, cat in ipairs(cats) do | ||
cats[i] = string.format('[[Category:%s]]', cat) | cats[i] = string.format('[[Category:%s]]', cat) |