Interested Article - Велокоманда
lorelei
- 2020-12-13
- 1
require('strict')
local CTBOX={}
CTBOX.__index=CTBOX
local CTBOXconfig={
headerstyle='background: #0785c8; color:white; text-align: center;',
abovestyle='font-size:1.3em;',
}
function CTBOX:checkargs(arr)
if type(arr)=='table' then
local Count
Count=0
for Index, Value in pairs( tab ) do
Count=Count + 1
end
if Count~=0 then return true end
end
return false
end
function CTBOX:veloformtable(builder)
local VeloformCustom
if self.args['ИзображениеФормы'] then
VeloformCustom=self.frame:preprocess('[[Файл:'..self.args['ИзображениеФормы']..'|175px]]')
end
local Veloform=VeloformCustom or self.frame:expandTemplate{title='Велосипедная форма', args={pattern_la=self.args['pattern_la1'], pattern_b =self.args['pattern_b1'] or '_unknown', pattern_ra=self.args['pattern_ra1'], leftarm=self.args['leftarm1'], body= self.args['body1'], rightarm=self.args['rightarm1'], shorts=self.args['shorts1'], title='Командная форма'}}
builder=builder:tag('table')
:cssText('width:100%; text-align:center;')
:tag('tr')
:tag('td')
:wikitext(Veloform)
builder=builder:done():done()
end
function CTBOX:render()
local title=self.frame:expandTemplate{title='wikidata', args={ 'p1448[language!:ru]', self.args['название']}}
local piccapt=self.frame:expandtemplate{title='wikidata', args={'p2096',self.args['описание изображения']}}
local pic=self.frame:expandTemplate{title='wikidata', args={'p18',self.args['изображение'], caption=piccapt}}
local UCIcode=self.frame:expandTemplate{title='wikidata', args={ 'p1998', self.args['код']}}
local Country=self.frame:expandTemplate{title='wikidata', args={ 'p17', self.args['размещение']}}
local Founded=self.frame:expandTemplate{title='wikidata', args={ 'p571', self.args['основана']}}
local Dissolved=self.frame:expandTemplate{title='wikidata', args={ 'p576', self.args['распалась']}}
local sport=self.frame:expandTemplate{title='wikidata', args={ 'p641', self.args['дисциплины']}}
local Status=self.frame:expandTemplate{title='wikidata', args={ 'p361', self.args['статус']}} or self.frame:expandTemplate{title='wikidata', args={ 'p31'}}
local Cycles=self.args['велосипеды']
local Spareparts=self.args['комплектующие']
local Genman=self.frame:expandTemplate{title='wikidata', args={ 'p505', self.args['менеджер']}}
local SportDir=self.frame:expandTemplate{title='wikidata', args={ 'p286', self.args['спортивный директор']}}
local SportAdm=self.args['спортивный администратор']
local Season=self.args['сезон']
local Pastnam=self.args['старое название']
local Vict=self.args['победы']
local Veloform=self.frame:expandTemplate{title='Велосипедная форма', args={pattern_la=self.args['pattern_la1'], pattern_b =self.args['pattern_b1'] or '_unknown', pattern_ra=self.args['pattern_ra1'], leftarm=self.args['leftarm1'], body= self.args['body1'], rightarm=self.args['rightarm1'], shorts=self.args['shorts1'], title='Командная форма'}}
local Website=self.frame:expandTemplate{title='wikidata', args={'p586',self.args['сайт']}}
local builder=mw.html:create('table')
:addClass('infobox')
:addClass('vcard')
:cssText('font-size: 90%; text-align: left;')
:tag('tr')
:tag('td')
:attr('colspan',2)
:wikitext(title or self.frame:preprocess('{{PAGENAME}}'))
if pic then
builder:tag('tr')
:tag('td')
:attr('colspan',2)
:css('text-align','center')
:wikitext(pic)
end
if self:checkargs({UCIcode, Country, Founded, Dissolved, sport, Status, Cycles, Spareparts}) then
builder:tag('tr')
:tag('td')
:attr('colspan',2)
:addClass(CTBOXconfig.headerstyle)
:wikitext('Информация о команде')
end
if UCIcode then
builder:tag('tr')
:tag('th')
:wikitext('UCI код')
:done()
:tag('td')
:wikitext(UCIcode)
end
if Country then
builder:tag('tr')
:tag('th')
:wikitext('Размещение')
:done()
:tag('td')
:wikitext(Country)
end
if Founded then
builder:tag('tr')
:tag('th')
:wikitext('Основана')
:done()
:tag('td')
:wikitext(Founded)
end
if Dissolved then
builder:tag('tr')
:tag('th')
:wikitext('Распалась')
:done()
:tag('td')
:wikitext(Dissolved)
end
if sport then
builder:tag('tr')
:tag('th')
:wikitext('Дисциплины')
:done()
:tag('td')
:wikitext(sport)
end
if Status then
builder:tag('tr')
:tag('th')
:wikitext('Статус')
:done()
:tag('td')
:wikitext(Status)
end
if Cycles then
builder:tag('tr')
:tag('th')
:wikitext('Велосипеды')
:done()
:tag('td')
:wikitext(Cycles)
end
if Spareparts then
builder:tag('tr')
:tag('th')
:wikitext('Комплектующие')
:done()
:tag('td')
:wikitext(Spareparts)
end
if self:checkargs({Genman, SportDir, SportAdm}) then
builder:tag('tr')
:tag('td')
:attr('colspan',2)
:addClass(CTBOXconfig.headerstyle)
:wikitext('Ключевые персоны')
end
if Genman then
builder:tag('tr')
:tag('th')
:wikitext('Генеральный менеджер')
:done()
:tag('td')
:wikitext(Genman)
end
if SportDir then
builder:tag('tr')
:tag('th')
:wikitext('Спортивные директора')
:done()
:tag('td')
:wikitext(SportDir)
end
if SportAdm then
builder:tag('tr')
:tag('th')
:wikitext('Спортивный администратор')
:done()
:tag('td')
:wikitext(SportAdm)
end
if Season or Pastnam then
builder:tag('tr')
:tag('td')
:attr('colspan',2)
:addClass(CTBOXconfig.headerstyle)
:wikitext('Предыдущие названия команды')
:done()
:tag('tr')
:tag('th')
:wikitext(Season or '')
:done()
:tag('td')
:wikitext(Pastnam or '')
end
if Vict then
builder:tag('tr')
:tag('td')
:attr('colspan',2)
:addClass(CTBOXconfig.headerstyle)
:wikitext('Главные победы')
:done():done()
:tag('tr')
:tag('td')
:attr('colspan',2)
:wikitext(Vict)
end
builder:tag('tr')
:tag('td')
:attr('colspan',2)
:addClass(CTBOXconfig.headerstyle)
:wikitext('Форма')
:done()
:done()
self:veloformtable(builder:tag('tr'):tag('td'):addClass('toccolours'):cssText('padding: 0; background: #ffffff; text-align: center;'):attr('colspan',2))
if Website then
builder:tag('tr')
:tag('td')
:attr(colspan,2)
:wikitext(Website)
end
builder=builder:done()
return builder
end
function CTBOX.new(frame, args)
if not args then
args=require('Module:Arguments').getArgs(frame, {wrappers={'Template:Велосипедная команда'}})
--return
end
local obj={
frame=frame,
args=args
}
return setmetatable(obj, CTBOX)
end
local p={}
function p.main(frame)
return CTBOX.new(frame):render()
end
return
lorelei
- 2020-12-13
- 1