Модуль:Анкета: различия между версиями
Перейти к навигации
Перейти к поиску
StasR (обсуждение | вклад) Нет описания правки |
StasR (обсуждение | вклад) Нет описания правки |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 27: | Строка 27: | ||
--[[------------------------------------------------------------------------]]-- | --[[------------------------------------------------------------------------]]-- | ||
pp['Род'] = function ( frame ) | pp['Род старый'] = function ( frame ) | ||
Frame = frame | Frame = frame | ||
Args = frame:getParent().args | Args = frame:getParent().args | ||
Строка 52: | Строка 52: | ||
--[[------------------------------------------------------------------------]]-- | --[[------------------------------------------------------------------------]]-- | ||
pp['Род | pp['Род'] = function ( frame ) | ||
-- Frame = frame | |||
local Args, tmp = tools.checkargs( frame:getParent().args, | local Args, tmp = tools.checkargs( frame:getParent().args, | ||
{ '', ['место'] = | { '', true, ['место'] = true, ['в семье'] = '', | ||
['дополнение'] = '', ['сноска'] = '', ['источник'] = '', } ) | ['дополнение'] = '', ['сноска'] = '', ['источник'] = '', } ) | ||
if not Args then | if not Args then | ||
return tools.errorMsg ( 'род', tmp ) | return tools.errorMsg ( 'род', 'Неизвестный параметр «' .. tmp .. '»' ) | ||
end | |||
if Args[2] and Args['место'] then | |||
return tools.errorMsg ( 'род', 'Нельзя одновременно указывать и 2-й параметр, и параметр «место»' ) | |||
end | end | ||
local place = Args['место'] or Args[2] or '' | |||
local errorDateAdvice = 'Используйте формат даты ' | local errorDateAdvice = 'Используйте формат даты ' | ||
.. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или ' | .. '«<var>ЧЧ</var>.<var>ММ</var>.<var>ГГГГ</var>» или ' | ||
Строка 73: | Строка 77: | ||
end | end | ||
end | end | ||
local family = Args['в семье'] | local family = Args['в семье'] | ||
local addendum, comment, source = | local addendum, comment, source = | ||
Строка 128: | Строка 131: | ||
return '<i></i>' | return '<i></i>' | ||
end | end | ||
return pp | return pp |
Версия от 14:13, 3 марта 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
local Args, tmp = tools.checkargs( frame:getParent().args,
{ '', true, ['место'] = true, ['в семье'] = '',
['дополнение'] = '', ['сноска'] = '', ['источник'] = '', } )
if not Args then
return tools.errorMsg ( 'род', 'Неизвестный параметр «' .. tmp .. '»' )
end
if Args[2] and Args['место'] then
return tools.errorMsg ( 'род', 'Нельзя одновременно указывать и 2-й параметр, и параметр «место»' )
end
local place = Args['место'] or Args[2] or ''
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 family = Args['в семье']
local addendum, comment, source =
Args['дополнение'], Args['сноска'], Args['источник']
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
return pp