Модуль:UrbanSetting

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Документация

Этот модуль вызывается из шаблона Вгородскихусловиях.

local p = {}

function p.GetUrbanSetting(frame)
    local Args =  frame:getParent().args
    if Args[1] == nil then return "Введите викифицированное название населённого пункта городского типа" end
	local District = Args['МО'] or frame.args[1]
    local UrbanPopulation = 0
    local DistrictPopulation = frame:expandTemplate{ title = "Население", args={District, "ч"}}
	UrbanSettingStr= 'В городских условиях ('
	UrbanSettingStr2 = '{{ formatnum: {{ #expr: ( ( '
	for key, val in pairs(Args) do
		if key ~= 'МО' then 
			if key > 1 then 
				UrbanSettingStr = UrbanSettingStr .. ', '
				UrbanSettingStr2 = UrbanSettingStr2 .. ' + ' 
			end
			UrbanSettingStr = UrbanSettingStr .. string.gsub(mw.text.trim(val),' *%(.+', '')
			UrbanPopulation = UrbanPopulation + frame:expandTemplate{ title = "Население", args={mw.text.trim(val), "ч"}}	
		end
	end
	UrbanSettingStr = UrbanSettingStr .. ') проживают ' .. string.gsub(string.format("%.2f", UrbanPopulation * 100 / DistrictPopulation),'%.',',') .. ' % населения '
	if string.find (District, 'район') then UrbanSettingStr = UrbanSettingStr .. 'района.'
		elseif string.find (District, '[Гг]ородской округ') then UrbanSettingStr = UrbanSettingStr .. 'городского округа.'
		elseif string.find (District, '[Мм]униципальный округ') then UrbanSettingStr = UrbanSettingStr .. 'муниципального округа.'
		elseif string.find (District, ' округ') then UrbanSettingStr = UrbanSettingStr .. 'округа.'
		elseif string.find (District, '[Гг]ородское поселение') then UrbanSettingStr = UrbanSettingStr .. 'городского поселения.'
		else UrbanSettingStr = UrbanSettingStr .. 'муниципального образования.'
	end

    return UrbanSettingStr
end
return p