Această pagină este protejată de mișcare
Această pagină este protejată

Forma: Protecție

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Modul care implementează șablonul {{ Protejat }}.

Are o subpagină de configurare: Modul: Securitate / Configurare .


 - [[
* Modul care implementează șablonul protejat.
]] -

require ( „Formular: fără globali” )

local getArgs = require ( 'Modul: Argumente' ). getArgs
local cfg = mw . loadData ( „Modul: Securitate / Configurare” )

- Returnează protecția paginii pentru acțiunea solicitată sau nulă dacă nu este asigurată.
-
- @param {table} titlu
- acțiune @param {string}
- @return {șir}
funcția locală getProtection ( titlu , acțiune )
returnează titlul . protectionLevels [ acțiune ] și titlu . protectionLevels [ acțiune ] [ 1 ]
Sfârșit

- Adaugă pictograma pentru acțiunea și protecția specificate.
-
- acțiune @param {string}
- @param {string} prot
funcție locală addIcon ( acțiune , prot )
- sublinierea mutării este utilizată pentru a schimba ordinea de afișare a pictogramelor
local icon = string.format ( '<indicator name = "prot% s">% s </indicator>' ,
acțiune == 'mutați' și '_mutați' sau acțiune , cfg . pictograme [ acțiune ] [ prot ])
mw . getCurrentFrame (): preproces ( pictogramă )
Sfârșit

- Returnează mesajul configurat pentru tipul de acțiune și protecție pe pagina specificată.
-
- @param {table} titlu
- acțiune @param {string}
- @param {string} prot
- @return {șir}
funcția locală getMsg ( titlu , acțiune , prot )
local msg = cfg . mesaje [ acțiune ] [ prot ] [ titlu . spațiu de nume ]
returnează msg și msg : gsub ( '$ 1' , string.format ( '[[% s | pagina de discuții]]' , titlu . talkPageTitle . fullText )) sau nil
Sfârșit

- Returnează categoria configurată pentru tipul de acțiune și protecție pe pagina specificată.
-
- @param {table} titlu
- acțiune @param {string}
- @param {string} prot
- @return {șir}
funcție locală getCategory ( titlu , acțiune , prot )
categorii locale = cfg . categorii [ acțiune ]
pisică locală = categorii [ titlu . namespace ] sau categorii . Mod implicit
if prot == 'autoconfirmat' atunci
pisică = pisică .. „parțial”
Sfârșit
returnează string.format ( '[[Categorie:% s]]' , pisică )
Sfârșit

- Returnează categoria arbitrară aleasă de utilizator.
-
- @param {string} editProt
- @param {table} args
- @return {șir}
funcția locală getUserCategory ( editProt , args )
pisică locală
dacă editProt == 'sysop' atunci
cat = args . cat .. '' .. (args. generecat == 'm' și 'protejat' sau 'protejat')
elseif editProt == 'autoconfirmat' atunci
cat = args . cat .. '' .. (args. generecat == 'm' și 'protejată parțial' sau 'parțial protejată')
Sfârșit
returnează pisica și șirul.format ( '[[Categorie:% s]]' , pisică ) sau zero 
Sfârșit

- ================================================== ============================
- Funcții exportate
- ================================================== ============================

local p = {}

- Funcție pentru utilizare de către un alt modul.
funcția p. _principal ( argumente )
titlu local , editProt , moveProt , editCat , moveCat , msg , ret

title = mw . titlu . getCurrentTitle ()
editProt = getProtection ( titlu , 'editare' )
moveProt = getProtection ( titlu , 'mutare' )
- moveProt = confirmat automat este deja implicit în itwiki
dacă moveProt == 'autoconfirmat' atunci
moveProt = nul
Sfârșit

- protecție pentru modificare
dacă editProt atunci
addIcon ( „edit” , editProt )
msg = getMsg ( titlu , „edit” , editProt )
- parametrul „pisică” vă permite să specificați o categorie arbitrară
dacă arg. pisica atunci
editCat = getUserCategory ( editProt , args )
altfel
editCat = getCategory ( titlu , „edit” , editProt )
Sfârșit
Sfârșit

- protectie pentru deplasare
dacă moveProt atunci
addIcon ( 'mutați' , mutațiProt )
- categoria pentru mutare nu este adăugată dacă editProt = sysop
dacă editProt ~ = 'sysop' atunci
moveCat = getCategory ( titlu , 'mutare' , moveProt )
Sfârșit
Sfârșit

dacă editProt sau moveProt atunci
ret = ( msg sau '' ) .. ( editCat sau '' ) .. ( moveCat sau '' )
altfel
- pagina nu este protejată
dacă titlu . spațiu de nume == 10 și titlu . isSubpage și titlu . subpageText : match ( '^ [Ss] andbox $' ) apoi
ret = '[[Categorie: Șablon Sandbox]]'
altfel
ret = string.format ( '[[Categorie:% s]]' , cfg . catSprotette )
Sfârșit
Sfârșit

retur ret
Sfârșit

- Funcție pentru șablonul {{Protejat}}.
funcția p. principal ( cadru )
retur p . _main ( getArgs ( cadru , { parentOnly = true }))
Sfârșit

retur p