Модуль:Песочница/Seryo93/Культурное наследие Крым
Перейти к навигации
Перейти к поиску
Документация
require('Module:No globals')
local ICH = {}
ICH.__index = ICH
function ICH:getrureg()
local src = self.args['1'] or ''
if (src and (mw.ustring.sub(src,1,1) == '{')) and (mw.ustring.sub(src,-1) == '}') then
src = mw.ustring.sub(src,2,-2)
src = string.gsub(src, "%s+", "")
src = mw.text.split(src,',')
if table.count(src)>2 then
src={src[1],src[2]}
end
end
if type(src)=='table' then return src[1] else return src~='' and src or nil end
end
function ICH:getruvoy()
local src = self.args['1'] or ''
if (src and (mw.ustring.sub(src,1,1) == '{')) and (mw.ustring.sub(src,-1) == '}') then
src = mw.ustring.sub(src,2,-2)
src = string.gsub(src, "%s+", "")
src = mw.text.split(src,',')
if table.count(src)>2 then
src={src[1],src[2]}
end
end
if type(src)=='table' then return src[2] else return nil end
end
function ICH:getrustat()
local src = self.args['статус'] or self.args['Статус'] or ''
if (src and (mw.ustring.sub(src,1,1) == '{')) and (mw.ustring.sub(src,-1) == '}') then
src = mw.ustring.sub(src,2,-2)
src = string.gsub(src, "%s+", "")
src = mw.text.split(src,',')
if table.count(src)>2 then
src={src[1],src[2]}
end
end
if type(src)=='table' then return src[1] else return nil end
end
function ICH:getuastat()
local src = self.args['статус'] or self.args['Статус'] or ''
if (src and (mw.ustring.sub(src,1,1) == '{')) and (mw.ustring.sub(src,-1) == '}') then
src = mw.ustring.sub(src,2,-2)
src = string.gsub(src, "%s+", "")
src = mw.text.split(src,',')
if table.count(src)>2 then
src={src[1],src[2]}
end
end
if type(src)=='table' then return src[2] else return nil end
end
function ICH:render()
local rureg = self:getrureg() or self.args['рег_N'] or ''
local ruvoy = self.frame:preprocess('{{wikidata|p1483|'..(self:getruvoy() or self.args['Код-памятника'] or '')..'|plain=true}}') or ''
local rustat = self:getrustat() or ''
local region = self.args['регион'] or self.args['Регион'] or ''
local nocat=self.args['nocat'] or ''
local doc = self.args['док'] or ''
local mini = self.args['мини'] or ''
local uareg = self.args['2'] or self.args['номер'] or ''
local uastat = self:getuastat() or ''
local ruarms = self.frame:preprocess('{{#invoke:Культурное наследие народов РФ|mainArms|рег_N='..rureg..'|Код-памятника='..ruvoy..'|Статус='..rustat..'|Регион='..region..'}}') or ''
local uaarms = self.frame:preprocess('{{#invoke:Памятник культурного наследия Украины|mainArms|номер='..uareg..'|Статус='..uastat..'|Регион='..region..'}}') or ''
local rutext = self.frame:preprocess('{{#invoke:Культурное наследие народов РФ|mainCoregen|рег_N='..rureg..'|Код-памятника='..ruvoy..'|Статус='..rustat..'|Регион='..region..'|док='..doc..'|nocat='..nocat..'|мини='..mini..'}}') or ''
local uatext = self.frame:preprocess('{{#invoke:Памятник культурного наследия Украины|mainText|номер='..uareg..'|Статус='..uastat..'|Регион='..region..'|nocat='..nocat..'|мини='..mini..'}}') or ''
if mini~='' then
if ruarms==uaarms then
return self.frame:expandTemplate{title='Культурное наследие народов РФ',args={['рег_N']=rureg,['Код-памятника']=ruvoy,['Статус']=rustat,['Регион']=region,['док']=doc,['nocat']=nocat,['мини']=mini,}}..self.frame:expandTemplate{title='Памятник культурного наследия Украины',args={['номер']=uareg,['Статус']=uastat,['Регион']=region,['док']=doc,['nocat']=nocat,['мини']=mini,['Без герба']=1,}}
else
return self.frame:expandTemplate{title='Культурное наследие народов РФ',args={['рег_N']=rureg,['Код-памятника']=ruvoy,['Статус']=rustat,['Регион']=region,['док']=doc,['nocat']=nocat,['мини']='div',}}..self.frame:expandTemplate{title='Памятник культурного наследия Украины',args={['номер']=uareg,['Статус']=uastat,['Регион']=region,['док']=doc,['nocat']=nocat,['мини']='div',}}
end
else
local embwidth, embclass, embwidthcss, embbordercss, cellspa
if not self.args['встраивать'] then
embclass = 'infobox'
embwidthcss = '280px'
embwidth = nil
embbordercss = nil
else
embclass = nil
embwidthcss = nil
embwidth = '100%'
embbordercss = '1px solid #a2a9b1'
if self.args['встраивать']=='UNESCO' then
cellspa = '5'
end
end
local builder
builder=mw.html.create('table')
:attr('width', embwidth)
:attr('cellspacing', cellspa)
:addClass(embclass)
:css('width', embwidthcss)
:css('border', embbordercss)
:tag('tr')
:tag('td')
:attr('colspan',(tostring(ruarms)==tostring(uaarms)) and 2 or nil)
:cssText('vertical-align: middle; padding: 5px;')
:wikitext('[[Файл:'..tostring(ruarms)..'|45px|link=|Герб]]')
:done()
:tag('td')
:cssText('text-align:center; vertical-align:middle; background:'..(self.args['цвет'] or '{{цвет|Крым}}')..'; width:100%; margin-bottom: 0; padding-bottom: 0; border-bottom: 0')
:wikitext(tostring(rutext))
:done()
:done()
:tag('tr')
if tostring(ruarms)~=tostring(uaarms) then
builder=builder:tag('td')
:cssText('vertical-align: middle; padding: 5px;')
:wikitext('[[Файл:'..tostring(uaarms)..'|45px|link=|Герб]]')
end
builder=builder:tag('td'):cssText('text-align:center; vertical-align:middle; background:'..(self.args['цвет'] or '{{цвет|Крым}}')..'; width:100%; margin-bottom: 0; padding-bottom: 0; border-bottom: 0')
:wikitext(tostring(uatext))
:done()
:done()
:done()
return builder
end
end
function ICH.new(frame, args)
if not args then
args = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:Культурное наследие Крым','Песочница/Seryo93/Культурное наследие Крым'}})
--return
end
local obj = {
frame = frame,
args = args
}
return setmetatable(obj, ICH)
end
local p = {}
function p.main(frame)
return ICH.new(frame):render()
end
return p