Модуль:ПлощадьРегионы/Год
Внешний вид
Для документации этого модуля может быть создана страница Модуль:ПлощадьРегионы/Год/doc
require('Module:No globals')
local Base = {'Россия', 'Российская Федерация', 'Центральный федеральный округ', 'Белгородская область', 'Брянская область', 'Владимирская область', 'Воронежская область', 'Ивановская область', 'Калужская область', 'Костромская область', 'Население Курской области', 'Курская область', 'Липецкая область', 'Москва', 'город Москва', 'Московская область', 'Орловская область', 'Рязанская область', 'Смоленская область', 'Тамбовская область', 'Тверская область', 'Тульская область', 'Ярославская область', 'Северо-Западный федеральный округ', 'Архангельская область', 'Ненецкий автономный округ', 'Архангельская область без Ненецкого автономного округа', 'Вологодская область', 'Калининградская область', 'Республика Карелия', 'Карелия', 'Республика Коми', 'Ленинградская область', 'Мурманская область', 'Новгородская область', 'Псковская область', 'Санкт-Петербург', 'город Санкт-Петербург', 'Южный федеральный округ', 'Адыгея', 'Республика Адыгея', 'Астраханская область', 'Волгоградская область', 'Калмыкия', 'Республика Калмыкия', 'Краснодарский край', 'Ростовская область', 'Дагестан', 'Республика Дагестан', 'Ингушетия', 'Республика Ингушетия', 'Кабардино-Балкария', 'Кабардино-Балкарская Республика', 'Карачаево-Черкесия', 'Карачаево-Черкесская Республика', 'Северная Осетия', 'Республика Северная Осетия - Алания', 'Ставропольский край', 'Чечня', 'Чеченская Республика', 'Приволжский федеральный округ', 'Башкортостан', 'Республика Башкортостан', 'Кировская область', 'Марий Эл', 'Республика Марий Эл', 'Мордовия', 'Республика Мордовия', 'Нижегородская область', 'Оренбургская область', 'Пензенская область', 'Самарская область', 'Саратовская область', 'Татарстан', 'Республика Татарстан', 'Удмуртия', 'Удмуртская Республика', 'Ульяновская область', 'Чувашия', 'Чувашская Республика', 'Уральский федеральный округ', 'Курганская область', 'Свердловская область', 'Тюменская область', 'Ханты-Мансийский автономный округ — Югра', 'Ханты-Мансийский автономный округ - Югра', 'Ямало-Ненецкий автономный округ', 'Тюменская область без автономных округов', 'Челябинская область', 'Сибирский федеральный округ', 'Республика Алтай', 'Алтайский край', 'Бурятия', 'Республика Бурятия', 'Иркутская область', 'Кемеровская область', 'Красноярский край', 'Новосибирская область', 'Омская область', 'Томская область', 'Тыва', 'Республика Тыва', 'Хакасия', 'Республика Хакасия', 'Дальневосточный федеральный округ', 'Амурская область', 'Еврейская автономная область', 'Магаданская область', 'Приморский край', 'Якутия', 'Республика Саха (Якутия)', 'Сахалинская область', 'Хабаровский край', 'Чукотский автономный округ'}
local Base2010 = {'Северо-Кавказский федеральный округ', 'Забайкальский край'}
local Base2015 = {'Севастополь', 'город Севастополь', 'Республика Крым'}
local Base2006_2007 = {'Коми-Пермяцкий автономный округ', 'Коми-Пермяцкий округ', 'Таймырский Долгано-Ненецкий район', 'Таймырский (Долгано-Ненецкий) автономный округ', 'Таймырский автономный округ', 'Эвенкийский район', 'Эвенкийский автономный округ', 'Красноярский край без автономных округов', 'Пермская область без Коми-Пермяцкого автономного округа', 'Пермская область'}
local Base2006_2008 = {'Усть-Ордынский Бурятский автономный округ', 'Иркутская область без Усть-Ордынского Бурятского автономного округа', 'Камчатская область', 'Корякский автономный округ', 'Камчатская область без Корякского автономного округа'}
local Base2006_2009 = {'Читинская область ', 'Агинский Бурятский автономный округ', 'Читинская область без Агинского Бурятского автономного округа'}
local Yearconvert = {
--существующие регионы или их группы (объявляются выше)
['Base'] = {-- сама РФ, а также подавляющее большинство субъектов
[2006]=1,
[2007]=2,
[2008]=3,
[2009]=4,
[2010]=5,
[2011]=6,
[2012]=7,
[2013]=8,
[2014]=9,
[2015]=10,
[2016]=11,
[2017]=12,
[2018]=13,
[2019]=14,
},
['Пермский край'] = {
[2007]=1,
[2008]=2,
[2009]=3,
[2010]=4,
[2011]=5,
[2012]=6,
[2013]=7,
[2014]=8,
[2015]=9,
[2016]=10,
[2017]=11,
[2018]=12,
[2019]=13,
},
['Камчатский край'] = {
[2009]=1,
[2010]=2,
[2011]=3,
[2012]=4,
[2013]=5,
[2014]=6,
[2015]=7,
[2016]=8,
[2017]=9,
[2018]=10,
[2019]=11,
},
['Base2010'] = {--СКФО и Забайкальский край
[2010]=1,
[2011]=2,
[2012]=3,
[2013]=4,
[2014]=5,
[2015]=6,
[2016]=7,
[2017]=8,
[2018]=9,
[2019]=10,
},
['Base2015'] = {--Республика Крым и Севастополь
[2015]=1,
[2016]=2,
[2017]=3,
[2018]=4,
[2019]=5,
},
-- упразднённые регионы или группы
['Base2006_2007'] = {-- Коми-Пермяцкий автономный округ, Таймырский (Долгано-Ненецкий) автономный округ, Эвенкийский автономный округ, Красноярский край без автономных округов, Пермская область, Пермская область без Коми-Пермяцкого автономного округа
[2006]=1,
[2007]=2,
},
['Base2006_2008'] = {-- Усть-Ордынский Бурятский автономный округ, Иркутская область без Усть-Ордынского Бурятского автономного округа, Корякский автономный округ, Камчатская область, Камчатская область без Корякского автономного округа
[2006]=1,
[2007]=2,
[2008]=3,
},
['Base2006_2009'] = {--Агинский Бурятский автономный округ, Читинская область и Читинская область без Агинского Бурятского автономного округа
[2006]=1,
[2007]=2,
[2008]=3,
[2009]=4,
},
['Крымский федеральный округ'] = {
[2015]=1,
[2016]=2,
},
}
local Yearconv = {}
Yearconv.__index = Yearconv
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
function Yearconv:render()
local fallback = self.args['макс'] or self.args['3']
if (self.args['1'] or self.args['2'])==('' or nil) then
return fallback
else
local regpass = self.args['1']
if table.contains(Base, regpass) then regpass='Base'
elseif table.contains(Base2010, regpass) then regpass = 'Base2010'
elseif table.contains(Base2015, regpass) then regpass='Base2015'
elseif table.contains(Base2006_2007, regpass) then regpass='Base2006_2007'
elseif table.contains(Base2006_2008, regpass) then regpass='Base2006_2008'
elseif table.contains(Base2006_2009, regpass) then regpass = 'Base2006_2009' end
local getarg
if Yearconvert[regpass] and Yearconvert[regpass][self.args['2']] then
getarg = Yearconvert[regpass][self.args['2']]
else
getarg = fallback
end
return getarg
end
end
function Yearconv.new(frame, args)
if not args then
args = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:ПлощадьРегионы/Год', 'Template:ПлощадьРегионы'}})
--return
end
local obj = {
frame = frame,
args = args
}
return setmetatable(obj, Yearconv)
end
local p = {}
function p.main(frame)
return Yearconv.new(frame):render()
end
return p