Модуль:Campaign

Материал из Справочника наблюдателя
Перейти к:навигация, поиск

(i)      Описание модуля[]

Вспомогательный модуль для шаблонов {{Campaign}}  и {{Область}} .

Функция Point[]

Формирует содержимое элемента данных из параметров шаблона «ХХХ» (текст), «ХХХ ссылка» (URL для использования вместе с текстом), «ХХХ вп» (наименование статьи в Википедии) и «ХХХ доп» (дополнительные сведения).

Параметры:

  • префикс группы параметров шаблона (т. е. собственно имя «ХХХ»)
  • internal — признак использования «ХХХ ссылка» (или «ХХХ», при отсутствии «ХХХ ссылка») как внутренней ссылки
  • nowiki — признак подавления ссылки на Википедию (ссылка будет сформирована только при явно заданном тексте «ХХХ вп»)
  • geo = адрес — в конце будет показана стрелка, под которой будет ссылка на карту с указанным адресом
  • link = ссылка — указанная ссылка используется вместо значения параметра шаблона «ХХХ ссылка»

Функция RegElections[]

Формирует URL обращения к ГАС «Выборы» для указанного в параметре названия региона за период, начинающийся за 15 дней до текущей даты.

Функция RegSite[]

Формирует URL главной страницы сайта ИКСРФ (без завершающего «/») для указанного в параметре названия региона:

http://www.регион.izbirkom.ru

Функция RegGAS[]

Формирует URL региональной страницы сайта ГАС «Выборы» (без завершающего «/») для указанного в параметре названия региона:

http://www.регион.vybory.izbirkom.ru/region/регион

Функция RegGASnew[]

Формирует URL региональной страницы сайта ГАС «Выборы» (без завершающего «/») для указанного в параметре названия региона:

http://www.регион.vybory.izbirkom.ru/регион

local p = {}
--[[
{{#if: {{{МР|}}} 
                   | <div style="float:right;">{{W|16px|{{{МР}}} в Википедии|вп:{{#if: {{{МР вп|}}} | {{{МР вп}}} | {{{МР|}}} }}}}</div>
                   {{#if: {{{МР ссылка|}}} | [{{{МР ссылка}}} {{{МР|}}}] | {{{МР|}}} }}<!-- {{вп | {{#if: {{{МР вп|}}} | {{{МР вп}}} | {{{МР|}}} }} }} -->
                }}
                {{#if: {{{МР доп|}}}| <p style="font-size:90%; line-height:90%;">{{{МР доп|}}}</p> }}
--]]


function p.Point (frame)
	local para = frame:getParent().args;
	local prefix = mw.text.trim(frame.args[1])
	local geo = frame.args['geo']
	local alt = frame.args['alt'] or ''
	local fixlink = frame.args['link']
	local internal 
	local nowiki
	for i, v in ipairs (frame.args) do
		local x = mw.text.trim (v)
		if v == 'nowiki' then
			nowiki = true
		elseif v == 'internal' then
			internal = true
		end
	end
	local root, wp, link, app = para [prefix] or '', para [prefix..' вп'] or '', para [prefix..' ссылка'] or '', para [prefix..' доп'] or '' 
	if root ~= '' then
		alt = root
	end	
	local res = ''
	if alt ~= '' then
		if wp ~= '-' and (not nowiki  or wp ~='') then 
			res = '<div style="float:right;">{{W|16px|' .. root .. ' в Википедии|вп:'
			if wp ~= '' then
				res = res .. wp
			else
				res = res .. root
			end
			res = res .. '}}</div>'
		end
		if geo then
			res = res .. '{{геоадрес|'
		end
		
		if fixlink then
			link = fixlink
		end
		if internal then
			if link ~= '' then
				res = res .. '[[' .. link .. '|'
			else
				res = res .. '[['
			end
			res = res .. alt .. ']]'
		elseif link ~= '' then
			res = res .. '[' .. link .. ' ' .. alt .. ']'
		else
			res = res .. root
		end
		if geo then
			res = res .. '|' .. geo .. '}}'
		end
		if app ~= '' then
			res = res .. '<p style="font-size:90%; line-height:90%;">' .. app .. '</p>'
		end
		return frame:preprocess (res)
	end
end

function lenM (m,y) 
	return ({31, 
		(function ()
			if y%4 == 0 then return 29 else return 28 end -- неверно для 2100 года :-)
		end) (), 
		31, 30, 31, 30, 31, 31, 30, 31, 30, 31}) [m]
end


function p.RegElections (frame)
	local q = mw.text.trim (frame.args [1])
	local qq = require ('Module:GAS')
	q = qq.Addr ({args={q}})
	local curt = os.date ('*t')
	curt.day = curt.day - 15
	if curt.day <= 0 then
		curt.month = curt.month - 1
		if curt.month == 0 then
			curt.month = 12
			curt.year = curt.year - 1
		end
		curt.day = curt.day + lenM (curt.month, curt.year)
	end
	-- http://www.moscow_reg.vybory.izbirkom.ru/region/moscow_reg
	--http://www.vybory.izbirkom.ru/region/izbirkom                    &urovproved=all&vidvibref=all&vibtype=all&sxemavib=all&action=search_by_calendar?s_day=1&s_month=05&s_year=2014&f_day=31&f_month=05&f_year=2014
	-- http://www.yakut.vybory.izbirkom.ru/region/yakut?start_date=01.04.2016&urovproved=all&vidvibref=all&vibtype=all&end_date=30.08.2016&sxemavib=all&action=search_by_calendar&region=14
	return 'http://www.' .. q .. '.vybory.izbirkom.ru/region/' .. q .. '?urovproved=all&vidvibref=all&vibtype=all&sxemavib=all&action=search_by_calendar'
--			.. '&s_day=' .. curt.day .. '&s_month=' .. curt.month .. '&s_year=' .. curt.year
--			.. '&f_day=' .. curt.day .. '&f_month=' .. curt.month .. '&f_year=' .. curt.year+1
			.. '&start_date=' .. curt.day .. '.' .. curt.month .. '.' .. curt.year
			.. '&end_date='   .. curt.day .. '.' .. curt.month .. '.' .. curt.year+1
end	

function p.RegSite (frame)
	local q = mw.text.trim (frame.args [1])
	local qq = require ('Module:GAS')
	q = qq.Addr ({args={q}})
	return 'http://www.' .. q .. '.izbirkom.ru'
end

function p.RegGAS (frame)
	local q = mw.text.trim (frame.args [1])
	local qq = require ('Module:GAS')
	q = qq.Addr ({args={q}})
	return 'http://www.' .. q .. '.vybory.izbirkom.ru/region/' .. q
end

function p.RegGASnew (frame)
	local q = mw.text.trim (frame.args [1])
	local qq = require ('Module:GAS')
	q = qq.Addr ({args={q}})
	return 'http://www.' .. q .. '.vybory.izbirkom.ru/' .. q
end


return p