News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

Problema com variáveis no registo

Started by FragaCampos, May 31, 2015, 08:36:43 AM

Previous topic - Next topic

FragaCampos

Saudações.

Hoje fui fazer um registo de teste no meu fórum e quando o concluí, recebi esta mensagem:

"Obrigado por se registar no docsPT, %1$s.
Em breve, irá receber um e-mail com um endereço para efetuar a ativação da sua conta. Se não receber um e-mail dentro de pouco tempo, verifique a sua pasta de SPAM."

A mensagem foi editada por mim já há muito, mas o que me chamou a atenção foi a variável "%1$s" que não mostra o nome do utilizador.
O que se poderá estar aqui a passar?

margarett

Anexa aí o teu EmailTemplates.portuguese_pt.php ;)
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

FragaCampos


FragaCampos


margarett

Não consigo encontrar a mensagem que referes nesse ficheiro... Por exemplo, "Em breve" não é encontrado...
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

FragaCampos

Ah... também estava a achar estranho teres-me pedido esse ficheiro.
Eu quando disse "mensagem" não me referia a e-mail... só agora percebi a minha redundância. Peço desculpa. :P
Quando me referia a "mensagem" é o que aparece no navegador de internet, quando se faz o registo, e pelo que estive a ver, essa mensagem pertence ao login.portuguese_pt-utf8.php
Aqui vai ele. ;)

PS: não me recordo, mas isto cheira-me a invenção minha... Não me parece que possa haver aí uma variável nesse texto, mas não custa tentar.  ;D

margarett

Sim, é esta linha
$txt['activate_after_registration'] = 'Obrigado por se registar no docsPT, <b>%1$s</b>.<br>Em breve, irá receber um e-mail com um endereço para efetuar a ativação da sua conta.  Se não receber um e-mail dentro de pouco tempo, verifique a sua pasta de SPAM.';

A função que debita essa mensagem não passa nenhuma variável, pelo que não há nada para substituir pelo %1$s. Parto do princípio que pretendesses passar o nome de utilizador para a mensagem, não é? Mas não dá :(

Estou aqui a olhar para o código... Queres experimentar a ver se passa a dar? :)
Sources/Register.php
Encontra:
'description' => $modSettings['registration_method'] == 2 ? $txt['approval_after_registration'] : $txt['activate_after_registration']
Substitui por:
'description' => $modSettings['registration_method'] == 2 ? $txt['approval_after_registration'] : sprintf($txt['activate_after_registration'], $regOptions['username'])
Não te esqueças do backup da ordem ;)

Ou então, apaga o seguinte texto
, <b>%1$s</b>
Da linha que indiquei inicialmente, o que fará deixar de mostrar o %1$s em bold ;)
Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

FragaCampos

Perfeito.  8)

Fiz as alterações sugeridas no Register.php e funcionou tudo às mil maravilhas.

Obrigado uma vez mais!  ;)

margarett

Se forem conduzir, não bebam. Se forem beber... CHAMEM-ME!!!! :D

QuoteOver 90% of all computer problems can be traced back to the interface between the keyboard and the chair

Advertisement: