Модуль:КПСС: различия между версиями

Материал из Кадровый состав НКВД 1935-1939
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
local pp = {}
local pp = {}
local global = mw.ext.luaglobal;
global = mw.ext.luaglobal
local tools = require( 'Модуль:Tools' )
tools = require( 'Модуль:Tools' )
global.strict( true )
global.strict( true )


Строка 17: Строка 17:
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
local Args = tools.args( frame:getParent().args )
local Args, err = tools.checkargs( frame:getParent().args,
local gKPSS = global.get( 'gKPSS' ) or {}
{ true, ['кандидат'] = true, ['член'] = true, ['выбыл'] = true,
['дополнение'] = true, ['сноска'] = true, ['источник'] = true, } )
if not Args then
return tools.errorMsg( 'КПСС', 'Непредусмотренный параметр ' .. err, errorDateAdvice )
end
local tmp = flag[mw.ustring.lower(  Args[1] or ''  )]
local tmp = flag[mw.ustring.lower(  Args[1] or ''  )]
if not tmp then
if not tmp then
Строка 46: Строка 50:
KPSS['дополнение'], KPSS['сноска'], KPSS['источник'] =  
KPSS['дополнение'], KPSS['сноска'], KPSS['источник'] =  
Args['дополнение'], Args['сноска'], Args['источник']
Args['дополнение'], Args['сноска'], Args['источник']
table.insert( gKPSS, KPSS )
global.add( 'gKPSS', KPSS )
global.set( 'gKPSS', gKPSS )
return '<i></i>'
return '<i></i>'
end
end


return pp
return pp
--[===[
--[[------------------------------------------------------------------------]]--
pp['КПСС'] = function ( frame )
Frame = frame
Args = frame:getParent().args
local flag = { [''] = 0, ['нет'] = -1, ['б/п'] = -1,
['кандидат'] = 1, ['член'] = 2, ['да'] = 2, }
local errorAdvice = 'Используйте формат {{ КПСС | кандидат = <var>дата</var> | '
.. 'член = <var>дата</var> | выбыл = <var>дата</var> | '
.. 'дополнение = <var>текст</var> | сноска =  <var>текст</var> | '
.. 'источник = <var>текст</var> }}. Дата выбытия указывается, если '
.. 'последующего восстановления в партии не было. Используйте формат '
.. '{{ КПСС | нет / да / кандидат }} для лиц, никогда не состоявших '
.. 'в партии / для коммунистов, о которых нет никаких других данных.'
local errorDateAdvice = 'Используйте формат даты '
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
if global.get( 'gKPSS' ) then
return tools.errorMsg( 'КПСС', 'Повторное использование шаблона «КПСС»' )
end
local tmp = flag[mw.ustring.lower( mw.text.trim( Args[1] or '' ) )]
if not tmp then
return tools.errorMsg( 'КПСС', 'Некорректное значение параметра', errorAdvice )
end
local gKPSS = { ['флаг'] = tmp }
local dates = { 'кандидат', 'член', 'выбыл' }
for i, x in ipairs( dates ) do
if ( Args[x] or '' ) ~= '' then
tmp = tools.parseDate( Args[x], 1898 )
if not tmp then
return tools.errorMsg( 'КПСС',
'Ошибка в записи даты «' .. x .. '»', errorDateAdvice )
end
gKPSS[x] = tmp
end
end
gKPSS['дополнение'], gKPSS['сноска'], gKPSS['источник'] =
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
global.set( 'gKPSS', gKPSS )
return '<i></i>'
end
--]===]

Версия от 16:13, 25 января 2018

Для документации этого модуля может быть создана страница Модуль:КПСС/doc

local pp = {}
global = mw.ext.luaglobal
tools = require( 'Модуль:Tools' )
global.strict( true )

pp.Main = function ( frame )
	local flag = { [''] = 0, ['нет'] = -1, ['б/п'] = -1, 
		['кандидат'] = 1, ['член'] = 2, ['да'] = 2, }
	local errorAdvice = 'Используйте формат {{ КПСС | кандидат = <var>дата</var> | '
		.. 'член = <var>дата</var> | выбыл = <var>дата</var> | '
		.. 'дополнение = <var>текст</var> | сноска =  <var>текст</var> | '
		.. 'источник = <var>текст</var> }}. Дата выбытия указывается, если '
		.. 'последующего восстановления в партии не было. Используйте формат '
		.. '{{ КПСС | нет / да / кандидат }} для лиц, никогда не состоявших '
		.. 'в партии / для коммунистов, о которых нет никаких других данных.'
	local errorDateAdvice = 'Используйте формат даты '
		.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
		.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
	local Args, err = tools.checkargs( frame:getParent().args,
		{ true, ['кандидат'] = true, ['член'] = true, ['выбыл'] = true, 
			['дополнение'] = true, ['сноска'] = true, ['источник'] = true, } )
	if not Args then
		return tools.errorMsg( 'КПСС', 'Непредусмотренный параметр ' .. err, errorDateAdvice )
	end
	local tmp = flag[mw.ustring.lower(  Args[1] or ''  )]
	if not tmp then
		tmp = tools.parseDate( Args[1], 1898 )
		if not tmp then
			return tools.errorMsg( 'КПСС', 'Некорректное значение параметра', errorAdvice )
		end
		Args['член'] = Args[1]
	end
	local KPSS = { ['флаг'] = tmp }
	local dates = { 'кандидат', 'член', 'выбыл' }
	for i, x in ipairs( dates ) do
		if Args[x] then
			tmp = tools.parseDate( Args[x], 1898 )
			if not tmp then
				return tools.errorMsg( 'КПСС', 
					'Ошибка в записи даты «' .. x .. '»', errorDateAdvice )
			end
			KPSS[x] = tmp
		end
	end
	if ( KPSS['флаг'] or 0 ) == 0 then
		if not KPSS['член'] and KPSS['кандидат'] then
			KPSS['флаг'] = flag['кандидат']
		end
	end
	KPSS['дополнение'], KPSS['сноска'], KPSS['источник'] = 
		Args['дополнение'], Args['сноска'], Args['источник']
	global.add( 'gKPSS', KPSS )
	return '<i></i>'
end

return pp