S.T.A.L.K.E.R. Wiki

We've Moved! Just as Gamepedia has joined forces with Fandom, this wiki had joined forces with our Fandom equivalent. The wiki has been archived and we ask that readers and editors move to the now combined wiki on Fandom. Click to go to the new wiki.

ПОДРОБНЕЕ

S.T.A.L.K.E.R. Wiki
Advertisement

Для документации этого модуля может быть создана страница Модуль: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%)$' ) and not date:find( '%(MSK%)$' ) then
		date = date .. ' (UTC)'
	end
	local nowiki = ''
	if mw.isSubsting() then
		nowiki = '<nowiki/>'
	end
	local text = {
		'<small>—&nbsp;Эта [[ruwiki:ВП:ПОД|' .. (typetable[mw.ustring.lower( type )] or 'неподписанная') .. ']] реплика была добавлена',
		'. Подписывайте свои сообщения с помощью ~~' .. 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
Advertisement