Módulo:Responder a
Aspeto
Este módulo está na categoria sujeitos a proteção de página. Ele é um módulo de alta visibilidade em uso por um grande número de páginas, ou é transcluído muito frequentemente. Por causa do vandalismo ou erros que podem afectar muitas páginas, e mesmo edições triviais podem causar cargas substanciais nos servidores, ele está protegido de editar. |
Este módulo é usado em mais de 5 500 páginas e as alterações em seu conteúdo serão amplamente notadas. Por favor, teste as alterações na subpágina de testes deste módulo, na subpágina de testes de módulos ou na subpágina de testes em seu espaço usuário. Considere discutir mudanças na página de discussão antes de implementá-las. |
Este módulo é usado por {{Responder a}} para dar a notificação a um usuário(s) registados que você está a responder na discussão.
Uso de texto wiki
Este módulo não pode ser usado diretamente de texto wiki. Em vez disso, por favor use a predefinição {{Responder a}}.
Uso dentro de predefinições
{{#invoke:Responder a|responder a|<noinclude>exemplo=nome exemplo</noinclude>|max=número máximo de nomes}}
- O parâmetro
|exemplo=
define o nome que vai mostrar quando a predefinição é vista. Este parâmetro deve estar em volta de<noinclude>...</noinclude>
para que não seja trancluído com a predefinição parente, e a predefinição parente vai mostrar um erro se nenhum nome for fornecido. - O Parâmetro {{
|max=
define o máximo nomes que a predefinição aceita. Se não for incluído como parâmetro definido, ele assume o valor de 50 (que equivale ao número máximo de Echo que os parâmetros da predefinição vai aceitar). Se o número de nomes for excedido, a predefinição parente devolve uma mensagem de erro.
local p = {}
local function makeError(msg)
msg ='Erro em [[Predefinição:Responder a]]: ' .. msg
return mw.text.tag('strong', {['class']='error'}, msg)
end
function p.replyto(frame)
local origArgs = frame:getParent().args
local args = {}
local maxArg = 1
local usernames = 0
for k, v in pairs(origArgs) do
if type(k) == 'number' then
if mw.ustring.match(v,'%S') then
if k > maxArg then maxArg = k end
usernames = usernames + 1
local title = mw.title.new(v)
if not title then return makeError('Dados de entrada contêm carateres proibidos.') end
args[k] = title.rootText
end
elseif v == '' and k:sub(0,5) == 'label' then
args[k] = '​'
else
args[k] = v
end
end
if usernames > (tonumber(frame.args.max) or 50) then
return makeError(string.format(
'Mais de %s nomes especificados.',
tostring(frame.args.max or 50)
))
else
if usernames < 1 then
if frame.args.exemplo then args[1] = frame.args.exemplo
elseif frame.args.example then args[1] = frame.args.example
else return makeError('Nome de usuário(a) não fornecido.')
end
end
args['label1'] = args['label1'] or args['label']
args['prefix'] = args['prefix'] or args['prefixo']
local isfirst = true
local outStr = args['prefix'] or '@'
for i = 1, maxArg do
if args[i] and (((i == 1 or i == 2) or args['c'] == '') or i ~= maxArg) then
if isfirst then
isfirst = false
else
if usernames >= 2 and (args['c'] == '' or i ~= maxArg) then outStr = outStr..', ' end
end
if 1 == maxArg or i ~= maxArg then outStr = string.format(
'%s[[Usuário(a):%s|%s]]',
outStr,
args[i],
args['label'..tostring(i)] or args[i]
) end
end
if args[i] and (i == maxArg and i ~= 1) then
outStr = outStr.. ' '..(args['c'] or 'e')..string.format(' [[Usuário(a):%s|%s]]', args[i], args['label'..tostring(i)] or args[i])
end
end
outStr = outStr..(args['p'] or ':')
return mw.text.tag('span', {['class']='template-ping'}, outStr)
end
end
return p