Hey, I've noticed that when a new user registers and clicks the link in their welcome email to validate their address, they get re-directed to the sign up page, but with no message telling them that it was validated successfully. Is this something that I must add to my theme? Or something that I may have removed originally from the default theme? Or is it something that was not part of this script? Thanks.
Is there a difference then in your theme to the default? I don't think so if you look and haven't changed it? Find out where $validateurl is defined by searching on your core files. What does it say?
I have found $validateurl in only two files. The validate.tpl of the html email template and the text email template and none in the php files. But if I add text under the $validateurl since it is an email I would tend to think that it will only display the message in the email itself and not once the user clicks on the url and gets redirected to the login page? Unless a message can be temporarily added on top of the login page or just simply re-directed to a new page with the message and then allowing the user to click to be re-directed or re-directed automatically after a certain amount of time. emails/html/validate.tpl PHP: {assign var='subject' value=$smarty.const.MAIL_VALIDATE_SUBJ}{include file="emails/html/mail_header.tpl"}<h2>{$smarty.const.MAIL_VALIDATE_SUBJ}</h2><p>{$smarty.const.EMAIL_HI} {$firstname},</p><p>{$smarty.const.MAIL_VALIDATE_MSG}<br><a href="{$validateurl}">{$validateurl}</a>{include file="emails/html/mail_footer.tpl"}
I think you need to search again. It is in a core file. Otherwise it could not be assigned via a template.
Not quite sure what the $validateurl has to do with what you are asking about at all. When the user clicks on the validation link it should be going to the login page. In your login.tpl page you should have code just above the form portion of the template file like this: Code: {if $msg<>""} <div class="blueerror"> {$msg} If the user got there by clicking on the validation link the message variable $msg should contain the text string assigned to 'LANG_USER_LOGIN_SUCCESS_VALIDATION' in your language file. Which should show directly above the login form on the page.
The link is produced by validateurl in the email template. This is used by register.php , it sends the person to the url defined by that variable. $vars['validateurl'] = URLS . '/login.php?code=' . $this->_confirmCode; //build the url for validation If it is not doing that and you do not have that code then something is wrong your script. Mine goes to the login page.
Perhaps I am misunderstanding the post then. I thought when reading it, that it was validating, but the issue was they weren't getting a notification that the validation was successful. What I posted is what controls that message. If the issue is that the validation link isn't working than the $validateurl would be the key to the issue. If that is not what the issue is and I misread, than my sincere apologies.
Not sure now - why the apologies - I have probably misread it. Is the problem that the you are not getting the correct page after hitting the link or is it that they are not getting the correct message. If the former it is the validateurl that is not being set for some reason, if the latter as Mike says it is in the template userlogin.tpl {if $msg<>""} <div class="blueerror"> {$msg} </div> In older versions it was this {if $msg<>""} {if $msg <> $smarty.const.LANG_USER_LOGIN_SUCCESS_VALIDATION} <div class="blueerror"> {$msg} </div> {else} <div class="success"> {$msg} </div> {/if} {/if} check you template userlogin.tpl . I think you may have an old version now which needs updating. Just replace the code or test with the default template. Seems like you upgraded but did not upgrade the template.
This is what I was looking for, my template file was outdated, so I replaced the old code with the new and it works now. Thanks for the help guys.
You were right Mike in effect. The login file in the default template has changed. So much pain with e-junkie. You ill get the joke.