Modulo:Protezione/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuova sandbox
 
Omega Bot (discussione | contributi)
m Bot: rimuovo no globals obsoleto
 
(2 versioni intermedie di un altro utente non mostrate)
Riga 3:
]]--
 
require('Modulo:No globalsstrict')
 
local getArgs = require('Modulo:Arguments').getArgs
local cfg = mw.loadData('Modulo:Protezione/Configurazione')
local p = {}
 
-- Restituisce la protezione della pagina per l'actionazione richiesta o nil se non protetta.
--
local function getProtection(action, title)
-- @param {table} title
-- @param {string} action
-- @return {string}
local function getProtection(actiontitle, titleaction)
return title.protectionLevels[action] and title.protectionLevels[action][1]
end
 
-- Aggiunge l'icona per l'azione e la protezione specificate.
--
-- @param {string} action
-- @param {string} prot
local function addIcon(action, prot)
-- l'underscore di move serve per cambiare l'ordine di visualizzazione delle icone
Line 22 ⟶ 28:
end
 
-- Restituisce il messaggio configurato per l'azione,il latipo protezionedi azione e laprotezione sulla pagina specificatespecificata.
--
local function getMsg(action, prot, title)
-- @param {table} title
-- @param {string} action
-- @param {string} prot
-- @return {string}
local function getMsg(actiontitle, protaction, titleprot)
local msg = cfg.messaggi[action][prot][title.namespace]
return msg and msg:gsub('$1', string.format('[[%s|pagina di discussione]]', title.talkPageTitle.fullText)) or nil
end
 
-- Restituisce la categoria configurata per l'azione,il latipo protezionedi azione e laprotezione sulla pagina specificatespecificata.
--
local function getCategory(action, prot, title)
-- @param {table} title
-- @param {string} action
-- @param {string} prot
-- @return {string}
local function getCategory(actiontitle, protaction, titleprot)
local categories = cfg.categorie[action]
local cat = categories[title.namespace] or categories.default
Line 38 ⟶ 54:
end
 
-- Restituisce la categoria arbitraria scelta dall'utente.
--
-- @param {string} editProt
-- @param {table} args
-- @return {string}
local function getUserCategory(editProt, args)
local cat
Line 49 ⟶ 69:
end
 
-- =============================================================================
-- Per l'utilizzo da altro modulo
-- Funzioni esportate
-- =============================================================================
 
local p = {}
 
-- PerFunzione per l'utilizzo da un altro modulo.
function p._main(args)
local title, editProt, moveProt, editCat, moveCat, msg, ret
 
title = mw.title.getCurrentTitle()
editProt = getProtection(title, 'edit', title)
moveProt = getProtection(title, 'move', title)
-- se è rimasta solo moveProt=autoconfirmed è dagià il default considerarsiin scadutaitwiki
if not editProt and moveProt == 'autoconfirmed' then
moveProt = nil
end
Line 64 ⟶ 90:
if editProt then
addIcon('edit', editProt)
msg = getMsg(title, 'edit', editProt, title)
-- il parametro "cat" permette di specificare una categoria arbitraria
if args.cat then
editCat = getUserCategory(editProt, args)
else
editCat = getCategory(title, 'edit', editProt, title)
end
end
 
-- protezione per lo spostamento (l'icona e la categoria sono aggiunte solo se moveProt=sysop)
if moveProt == 'sysop' then
addIcon('move', moveProt)
-- la categoria per lo spostamento non è aggiunta se editProt=sysop
if editProt ~= 'sysop' then
moveCat = getCategory(title, 'move', moveProt, title)
end
end
Line 96 ⟶ 122:
end
 
-- Entry-pointFunzione per il template {{Protetta}}.
function p.main(frame)
return p._main(getArgs(frame, { parentOnly = true }))