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

Forma: Jocurile Olimpice

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

Modul care implementează șabloanele {{ EdizOlimp }} și {{ Link Olympic Games }}.

Are o subpagină de configurare:

în care se pot defini toate diferitele ediții ale Jocurilor Olimpice, atât vara cât și iarna, paralimpice și tinerețe.


 - [[
* Modul care implementează șabloanele Jocurilor Olimpice EdizOlimp și Link.
]] -

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

local getArgs = require ( 'Modul: Argumente' ). getArgs
local cfg = mw . loadData ( „Modul: Jocuri Olimpice / Configurare” )
local errorCategory = '[[Categorie: erori ale modulului Jocurilor Olimpice]]'
local p = {}

funcție locală errhandler ( msg )
local cat = mw . titlu . getCurrentTitle (). spațiu de nume == 0 și errorCategory sau "
returnează string.format ( '<span class = "error">% s </span>% s' , msg , cat )
Sfârșit
	
funcția locală getTable ( tip , sezon )
local ret	
dacă tastați == 'G' atunci
ret = sezon == 'I' și cfg . olympic_games_young_winter sau cfg . jocuri_de_vară_polimpice
elseif tastați == 'P' atunci
ret = sezon == 'I' și cfg . winter_paralympic_games sau cfg . jocuri_paralimpice_de vară
altceva
ret = sezon == 'I' și cfg . olimpici_invernali sau cfg . jocuri_olimpice_de vară
Sfârșit
retur ret
Sfârșit

funcție locală getAnno ( tbl , ediție )
local ret
pentru cheie , val în perechi ( tbl ) do
dacă val . și == apoi ediție
ret = cheie
pauză
Sfârșit
Sfârșit
retur ret
Sfârșit

format funcție locală Țintă ( disciplină , specialitate , an , ediție , sezon , tip )
țintă locală
	
dacă discipline atunci
local prep = 'ai'
dacă ( sezon == 'I' sau tastați == 'P' ) și ( ediție == 'VIII' sau ediție == 'XI' ) atunci
prep = 'to'
Sfârșit	
discipline = string.format ( '% s% s' , disciplină , pregătire )
altceva
disciplina = "
Sfârșit

dacă tastați == 'G' atunci
target = string.format ( '% s Jocurile Olimpice pentru Tineret% s' ,
ediție , sezon == „I” și „iarnă” sau „vară” )
elseif tastați == 'P' atunci
target = string.format ( '% s Jocuri Paralimpice% s' ,
ediție , sezon == „I” și „iarnă” sau „vară” )
altceva
dacă sezonul == „Eu” atunci
target = string.format ( „% s Jocurile Olimpice de iarnă” , ediția )
altceva
dacă anul == '1906' atunci
target = 'Jocurile Olimpice Intermediare'
altceva
target = string.format ( „Jocuri ale Olimpiadei% s” , ediție )
Sfârșit
Sfârșit
Sfârșit
specialitate = specialitate și (. '-' .. mw limba getContentLanguage (): ucfirst (specialitate).) sau ''

disciplina de întoarcere .. țintă .. specialitate
Sfârșit

funcția p . _edizOlimp ( args )
local ret

- args [3] și args [4] sunt opționale, pentru a indica vara / iarna și paralimpic / tineret
dacă args [ 1 ] și args [ 2 ] atunci
câmp local , anul_ediz , sezon , tip = args [ 1 ], args [ 2 ], args [ 3 ], args [ 4 ]
local tbl = getTable ( tip , sezon )
anno locale = tonumber ( anno_ediz ) și anno_ediz sau getAnno ( tbl , anno_ediz )
dacă anul și tbl [ anul ] atunci
ret = câmp == 'a' și anul sau tbl [ anul ] [ câmpul ]
altceva
eroare ( „An sau ediție inexistentă” , 2 )
Sfârșit
Sfârșit

retur ret	
Sfârșit

funcția p . _getWlink ( args )
local ret

- args [2] este necesar, args [1] poate fi gol
dacă args [ 2 ] atunci
disciplina locală , an , sezon , tip = args [ 1 ], args [ 2 ], args [ 3 ], args [ 4 ]
local tbl = getTable ( tip , sezon )
anno = tonumber ( year ) și anno or getAnno ( tbl , year )
dacă tbl [ an ] și nu mw . ustring . găsi ( tbl [ an ]. c , '(nu disputat' , 1 , adevărat ) atunci
dacă arg . formatare == 'etichetă' atunci
ret = string.format ( '% s% s' , tbl [ an ]. c , an )
elseif arg . formatarea == „țintă” atunci
ret = formatTarget ( disciplină , argumente [ „specialitate” ], an , tbl [ an ]. e , sezon , tip )
elseif arg . formatarea == 'city_country' atunci
ret = string.format ( '[[% s |% s]], [[% s]]' , tbl [ an ]. d , tbl [ an ]. c , tbl [ an ]. p )
altceva
ret = string.format ( '[[% s |% s% s]]' ,
formatTarget ( disciplină , args [ „specialitate” ], an , tbl [ an ]. e , sezon , tip ),
tbl [ an ]. c , an )
Sfârșit
elseif arg . eroare == „da” atunci
eroare ( „An sau ediție inexistentă” , 2 )
altceva
ret = string.format ( "''% s - Niciuna% s% s% s ''" , args [ 2 ],
tastați == „P” și „Paralimpice” sau „Jocuri Olimpice” ,
tastați == „G” și „juvenil” sau „” ,
sezon == „I” și „iarnă” sau „vară” )
Sfârșit
Sfârșit

retur ret
Sfârșit

- Punct de intrare pentru {{EdizOlimp}}
funcția p . EdizOlimp ( cadru )
return select ( 2 , xpcall ( funcție ()
retur p . _edizOlimp ( getArgs ( cadru , { parentOnly = true }))
end , errhandler ))
Sfârșit

- Punct de intrare pentru {{Link Olympic Games}}
funcția p . Link_Giochi_olimpici ( cadru )
return select ( 2 , xpcall ( funcție ()
retur p . _getWlink ( getArgs ( cadru , { parentOnly = true }))
end , errhandler ))
Sfârșit

retur p