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: