Модуль:Анкета: различия между версиями
Перейти к навигации
Перейти к поиску
StasR (обсуждение | вклад) Нет описания правки |
WikiSysop (обсуждение | вклад) Нет описания правки |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 3: | Строка 3: | ||
local Frame, Args | local Frame, Args | ||
local tools = require( 'Модуль:Tools' ) | local tools = require( 'Модуль:Tools' ) | ||
local coD = mw.loadData( 'Модуль:Анкета/Причины смерти' ) | local coD = mw.loadData( 'Модуль:Анкета/Причины смерти' ) | ||
Строка 45: | Строка 44: | ||
local place = Args['место'] or '' | local place = Args['место'] or '' | ||
local family = Args['в семье'] or '' | local family = Args['в семье'] or '' | ||
local addendum, comment, source = | local addendum, comment, source = | ||
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | ||
global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } ) | global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } ) | ||
return '<i></i>' | return '<i></i>' | ||
end | end | ||
Строка 78: | Строка 77: | ||
end | end | ||
local family = Args['в семье'] | local family = Args['в семье'] | ||
local addendum, comment, source = | local addendum, comment, source = | ||
Args['дополнение'], Args['сноска'], Args['источник'] | Args['дополнение'], Args['сноска'], Args['источник'] | ||
global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } ) | global.set( 'gBirth', { birthdate, place, family, addendum, comment, source } ) | ||
return '<i></i>' | return '<i></i>' | ||
end | end | ||
Строка 102: | Строка 101: | ||
end | end | ||
local cause = Args['причина'] | local cause = Args['причина'] | ||
if not cause then | if not cause then | ||
cause = '' | cause = '' | ||
end | end | ||
if not coD.causeOD[cause] then | if not coD.causeOD[cause] then | ||
return tools.errorMsg ( 'умер', | return tools.errorMsg ( 'умер', | ||
'Причина смерти должна быть указана в фиксированном формате', | 'Причина смерти должна быть указана в фиксированном формате', | ||
'См. [[Project:Причины смерти|перечень возможных значений параметра]]' ) | 'См. [[Project:Причины смерти|перечень возможных значений параметра]]' ) | ||
end | end | ||
local place = Args['место'] or '' | local place = mw.text.trim( Args['место'] or Args[2] or '' ) | ||
local addendum, comment, source = | local addendum, comment, source = | ||
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | ||
global.set( 'gDeath', { deathdate, place, cause, addendum, comment, source } ) | global.set( 'gDeath', { deathdate, place, cause, addendum, comment, source } ) | ||
return '<i></i>' | return '<i></i>' | ||
end | end | ||
Строка 124: | Строка 123: | ||
Args = frame:getParent().args | Args = frame:getParent().args | ||
local ethn = mw.ustring.lower( mw.text.trim( Args[1] or '' ) ) | local ethn = mw.ustring.lower( mw.text.trim( Args[1] or '' ) ) | ||
local addendum, comment, source = | local addendum, comment, source = | ||
Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | Args['дополнение'] or '', Args['сноска'] or '', Args['источник'] or '' | ||
if ethn ~= '' then | if ethn ~= '' then | ||
Строка 131: | Строка 130: | ||
return '<i></i>' | return '<i></i>' | ||
end | end | ||
return pp | return pp |
Текущая версия от 16:00, 16 апреля 2023
Для документации этого модуля может быть создана страница Модуль:Анкета/doc
local pp = {}
local global = mw.ext.luaglobal;
local Frame, Args
local tools = require( 'Модуль:Tools' )
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 = mw.text.trim( Args['место'] or Args[2] 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