Модуль:Unsigned
Материал из Playzone Minecraft Wiki
Версия от 16:01, 8 января 2017; Ivan r (обсуждение)
Для документации этого модуля может быть создана страница Модуль:Unsigned/doc
local p = {} function base( args ) local type = args['тип'] or 'Unsigned' local typetable = {unsigned = 'неподписанная', undated = 'не содержащая дату'} --добавлено в переводе local user = args['участник'] local date = args['дата'] if date and not date:find( '%(UTC%)$' ) then date = date .. ' (UTC)' end local nowiki = '' if mw.isSubsting() then nowiki = '<nowiki/>' end local text = { '<small>— «Эта ' .. (typetable[mw.ustring.lower( type )] or 'неподписанная') .. ' [[ruwiki:ВП:Подписывайтесь на страницах обсуждения|реплика]] была добавлена', '. Подписывайте свои сообщения с помощью ~~' .. nowiki .. '~~.»</small><!-- Шаблон:' .. type .. ' -->' } if date then table.insert( text, 2, ' в ' .. date ) end if user then local userLinks if not user:find( '[^:%x%.%d]' ) and require( 'Модуль:IPAddress' ).isIP( user ) then userLinks = 'с IP [[Служебная:Вклад/' .. user .. '|' .. user .. ']] ([[Обсуждение участника:' .. user .. '|обс.]])' else userLinks = 'участником [[Участник:' .. user .. '|' .. user .. ']] ([[Обсуждение участника:' .. user .. '|обс.]] • [[Служебная:Вклад/' .. user .. '|вклад]])' end table.insert( text, 2, ' ' .. userLinks ) end return table.concat( text ) end p.unsigned = function( f ) local args = require( 'Модуль:ProcessArgs' ).norm( f.args or f ) local type = args['тип'] or 'Unsigned' local user = args['участник'] local date = args['дата'] local nocat = args['некат'] or nil local category = { '' } if mw.isSubsting() then -- Не допускать подстановку, если требуемый аргумент отсутствует if type == 'Unsigned' and not user then local dateArg = '' if date then dateArg = '||' .. date end return '{{Unsigned' .. dateArg .. '}}' elseif type == 'Undated' and not date then return '{{Undated}}' end elseif mw.title:getCurrentTitle().namespace ~= 10 and not nocat then if type == 'Unsigned' and not user then table.insert( category, '[[Категория:Неправильное использование шаблона Unsigned]]' ) elseif type == 'Undated' and not date then table.insert( category, '[[Категория:Неправильное использование шаблона Undated]]' ) end table.insert( category, '[[Категория:Страницы с требующими подстановки шаблонами]]' ) end return base( args ) .. table.concat( category ) end p.auto = function( f ) if mw.isSubsting() or mw.title:getCurrentTitle().namespace == 10 then local date = string.lower( f.args["дата"] or f["дата"] ) local args = { ['участник'] = f:preprocess( '{{safesubst:REVISIONUSER: {{safesubst:FULLPAGENAME}}}}' ), ["дата"] = f:preprocess( '{{safesubst:#timel:G:i, d xg Y|{{safesubst:REVISIONTIMESTAMP: {{safesubst:FULLPAGENAME}} }}}}' ) } if date == '1' or date == 'только' then args['тип'] = 'Undated' args['участник'] = nil elseif date == '0' or date == 'нет' then args["дата"] = nil end return base( args ) .. '<!-- Шаблон:AutoUnsigned -->' else return '<span class="error">Шаблон:AutoUnsigned необходимо использовать с подстановкой</span>[[Категория:Неправильное использование шаблона AutoUnsigned]]' end end return p