Модуль:Звесткі пра футбольны клуб
Выгляд
Гэты модуль прызначаны для таго, каб атрымоўваць звесткі аб футбольных клубах, якія запісаны ў Модуль:Футбольныя клубы.
У цяперашні час даступны наступныя функцыі:
- getClubLink — вяртае назву артыкула пра клуб
- getClubAbbreviature — вяртае скарочаную назву клуба, якая выкарыстоўваецца для подпісу слупкоў у шаблоне {{Fb r header}}
- getClubName — вяртае назву клуба
Выкарыстоўваць функцыі модуля варта не непасрэдна, а з дапамогай спецыяльнага шаблона {{Звесткі пра футбольны клуб}}.
local clubData = require( 'Module:Футбольныя клубы' )
local errors = require( 'Module:Error' )
local p = {}
local function showError( message, category )
return errors.error( { ['message'] = 'Памылка: ' .. tostring( message ) .. '.' .. ( ( category == nil or category == '' ) and '' or '[[Катэгорыя:' .. category .. ']]' ) } )
end
local function fallbackArgs( args, ... )
for i = 1, arg.n do
if args[arg[i]] ~= nil then return args[arg[i]] end
end
return nil
end
local function lcArgs( args )
local newArgs = {}
for k, v in pairs( args ) do
if type( k ) == "string" then
newArgs[mw.ustring.lower( k )] = type( v ) == 'string' and mw.text.trim( v ) or v
else
newArgs[k] = type( v ) == 'string' and mw.text.trim( v ) or v
end
end
return newArgs
end
local function getClubData( club )
return clubData [club]
end
function p.getClubLink( frame )
local args
if frame == mw.getCurrentFrame() then
args = frame:getParent().args
else
args = frame
end
args = lcArgs( args )
local club, link = tostring( args[2] ), 'спасылка'
local isLoop = 0
while type( getClubData( club ) ) == 'string' do
isLoop = isLoop + 1
if isLoop > 6 then return showError( 'клуб не знойдзены з-за множных перанакіраванняў', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
club = getClubData( club ) -- пераход па рэдырэкце, у тым ліку двайным
end
if getClubData( club ) == nil then return showError( 'клуб «' .. club .. '» не існуе або не дададзены ў [[Модуль:Футбольныя клубы]]', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
if getClubData( club )[link] == nil then return showError( 'у клуба «' .. club .. '» не апісана поле "спасылка" ў [[Модуль:Футбольныя клубы]]', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
return getClubData( club )[link]
end
function p.getClubAbbreviature( frame )
local args
if frame == mw.getCurrentFrame() then
args = frame:getParent().args
else
args = frame
end
args = lcArgs( args )
local club, abb = tostring( args[2] ), 'абрэвіятура'
local isLoop = 0
while type( getClubData( club ) ) == 'string' do
isLoop = isLoop + 1
if isLoop > 6 then return showError( 'клуб не знойдзены з-за множных перанакіраванняў', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
club = getClubData( club ) -- пераход па рэдырэкце, у тым ліку двайным
end
if getClubData( club ) == nil then return showError( 'клуб «' .. club .. '» не існуе або не дададзены ў [[Модуль:Футбольныя клубы]]', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
if getClubData( club )[abb] == nil then return showError( 'у клуба «' .. club .. '» не апісана поле "абрэвіятура" ў [[Модуль:Футбольныя клубы]]', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
return getClubData( club )[abb]
end
function p.getClubName( frame )
local args
if frame == mw.getCurrentFrame() then
args = frame:getParent().args
else
args = frame
end
args = lcArgs( args )
local club, name = tostring( args[2] ), 'назва'
local isLoop = 0
while type( getClubData( club ) ) == 'string' do
isLoop = isLoop + 1
if isLoop > 6 then return showError( 'клуб не знойдзены з-за множных перанакіраванняў', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
club = getClubData( club ) -- пераход па рэдырэкце, у тым ліку двайным
end
if getClubData( club ) == nil then return showError( 'клуб «' .. club .. '» не існуе або не дададзены ў [[Модуль:Футбольныя клубы]]', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
if getClubData( club )[name] == nil then return showError( 'у клуба «' .. club .. '» не апісана поле "назва" ў [[Модуль:Футбольныя клубы]]', 'Старонкі з некарэктнымі параметрамі футбольнага клуба' ) end
if getClubData( club )[name].default == nil then return showError( 'у клуба «' .. club .. '» не здаддзена назва па змоўчванні ў параметры "default" поля "назва" ў [[Модуль:Футбольныя клубы]]', 'Старонкі з некарэктнымі параметрамі сцягафікацыі' ) end
return getClubData( club )[name].default
end
return p