Модуль:Анкета: различия между версиями
Перейти к навигации
Перейти к поиску
StasR (обсуждение | вклад) Нет описания правки |
StasR (обсуждение | вклад) Нет описания правки |
||
Строка 45: | Строка 45: | ||
local place = Args['место'] or '' | local place = Args['место'] or '' | ||
local family = Args['в семье'] or '' | local family = Args['в семье'] or '' | ||
local addendum, comment, source = | |||
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | |||
global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } ) | |||
return '<i></i>' | |||
end | |||
--[[------------------------------------------------------------------------]]-- | |||
pp['Род$'] = function ( frame ) | |||
Frame = frame | |||
Args = tools.checkargs( frame:getParent().args, | |||
{ '', ['место'] = '', ['в семье'] = '', | |||
['дополнение'] = '', ['сноска'] = '', ['источник'] = '', } ) | |||
local errorDateAdvice = 'Используйте формат даты ' | |||
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или ' | |||
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»' | |||
if global.get( 'gBirth' ) then | |||
return tools.errorMsg ( 'род', 'Повторное использование шаблона' ) | |||
end | |||
local birthdate = Args[1] | |||
if birthdate ~= '' then | |||
birthdate = tools.parseDate( birthdate, 1850 ) | |||
if not birthdate then | |||
return tools.errorMsg( 'род', 'Ошибка в записи даты', errorDateAdvice ) | |||
end | |||
end | |||
local place = Args['место'] | |||
local family = Args['в семье'] | |||
local addendum, comment, source = | local addendum, comment, source = | ||
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' |
Версия от 11:28, 28 февраля 2017
Для документации этого модуля может быть создана страница Модуль:Анкета/doc
local pp = {}
local global = mw.ext.luaglobal;
local Frame, Args
local tools = require( 'Модуль:Tools' )
global.strict( true )
local coD = mw.loadData( 'Модуль:Анкета/Причины смерти' )
--[[------------------------------------------------------------------------]]--
pp['Пол'] = function ( frame )
Frame = frame
Args = frame:getParent().args
local gender = mw.text.trim( Args[1] or '' )
gender = mw.ustring.lower( mw.ustring.sub( gender, 1, 1 ) )
if gender == 'м' then
gender = 1
elseif gender == 'ж' then
gender = 2
else
return tools.errorMsg( 'Пол', 'Такого пола нет', 'Бывает только «м» или «ж»' )
end
global.set( 'gGender', gender )
return '<i></i>'
end
--[[------------------------------------------------------------------------]]--
pp['Род'] = function ( frame )
Frame = frame
Args = frame:getParent().args
local errorDateAdvice = 'Используйте формат даты '
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
if global.get( 'gBirth' ) then
return tools.errorMsg ( 'род', 'Повторное использование шаблона' )
end
local birthdate = mw.text.trim( Args[1] or '' )
if birthdate ~= '' then
birthdate = tools.parseDate( birthdate, 1850 )
if not birthdate then
return tools.errorMsg( 'род', 'Ошибка в записи даты', errorDateAdvice )
end
end
local place = Args['место'] or ''
local family = Args['в семье'] or ''
local addendum, comment, source =
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } )
return '<i></i>'
end
--[[------------------------------------------------------------------------]]--
pp['Род$'] = function ( frame )
Frame = frame
Args = tools.checkargs( frame:getParent().args,
{ '', ['место'] = '', ['в семье'] = '',
['дополнение'] = '', ['сноска'] = '', ['источник'] = '', } )
local errorDateAdvice = 'Используйте формат даты '
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
if global.get( 'gBirth' ) then
return tools.errorMsg ( 'род', 'Повторное использование шаблона' )
end
local birthdate = Args[1]
if birthdate ~= '' then
birthdate = tools.parseDate( birthdate, 1850 )
if not birthdate then
return tools.errorMsg( 'род', 'Ошибка в записи даты', errorDateAdvice )
end
end
local place = Args['место']
local family = Args['в семье']
local addendum, comment, source =
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } )
return '<i></i>'
end
--[[------------------------------------------------------------------------]]--
pp['Умер'] = function ( frame )
Frame = frame
Args = frame:getParent().args
local errorDateAdvice = 'Используйте формат даты '
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или '
.. '«<var>ММ</var>.<var>ГГГГ</var>» или «<var>ГГГГ</var>»'
if global.get( 'gDead' ) then
return tools.errorMsg ( 'умер', 'Повторное использование шаблона' )
end
local deathdate = mw.text.trim( Args[1] or '' )
if deathdate ~= '' then
deathdate = tools.parseDate( deathdate, 1900 )
if not deathdate then
return tools.errorMsg( 'умер', 'Ошибка в записи даты', errorDateAdvice )
end
end
local cause = Args['причина']
if not cause then
cause = ''
end
if not coD.causeOD[cause] then
return tools.errorMsg ( 'умер',
'Причина смерти должна быть указана в фиксированном формате',
'См. [[Project:Причины смерти|перечень возможных значений параметра]]' )
end
local place = Args['место'] or ''
local addendum, comment, source =
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
global.set( 'gDeath', { deathdate, place, cause, addendum, comment, source } )
return '<i></i>'
end
--[[------------------------------------------------------------------------]]--
pp['Национальность'] = function ( frame )
Frame = frame
Args = frame:getParent().args
local ethn = mw.ustring.lower( mw.text.trim( Args[1] or '' ) )
local addendum, comment, source =
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
if ethn ~= '' then
global.set( 'gEthn', { ethn, addendum, comment, source } )
end
return '<i></i>'
end
--[====[
--[[------------------------------------------------------------------------]]--
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
--[[------------------------------------------------------------------------]]--
pp['ВЛКСМ'] = function ( frame )
Frame = frame
Args = frame:getParent().args
local flag = { [''] = 0, ['нет'] = -1, ['б/п'] = -1,
['член'] = 2, ['да'] = 2, }
local errorAdvice = 'Используйте формат {{ ВЛКСМ | '
.. 'член = <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( 'gVLKSM' ) 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 gVLKSM = { ['флаг'] = tmp }
local dates = { 'член', 'выбыл' }
for i, x in ipairs( dates ) do
if ( Args[x] or '' ) ~= '' then
tmp = tools.parseDate( Args[x], 1900 )
if not tmp then
return tools.errorMsg( 'ВЛКСМ',
'Ошибка в записи даты «' .. x .. '»', errorDateAdvice )
end
gVLKSM[x] = tmp
end
end
gVLKSM['дополнение'], gVLKSM['сноска'], gVLKSM['источник'] =
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
global.set( 'gVLKSM', gVLKSM )
return '<i></i>'
end
--[[------------------------------------------------------------------------]]--
pp['Инопартийность'] = function ( frame )
Frame = frame
Args = frame:getParent().args
local gBund = mw.text.trim( Args[1] or '' )
if global.get( 'gBund' ) then
return tools.errorMsg( 'Инопартийность',
'Повторное использование шаблона «Инопартийность»' )
end
local addendum, comment, source =
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or ''
if gBund ~= '' then
global.set( 'gBund', { gBund, addendum, comment, source } )
end
return '<i></i>'
end
--]====]
return pp