Thanks to you davidm. It’s nice to help someway.
I find a little "bug" in the weblogin.common.inc.php file that prevent the [+surl+] placeholder to be correctly replaced.
This is the original function code
function webLoginSendNewPassword($email,$uid,$pwd,$ufn){
global $modx;
$mailto = $modx->config['mailto'];
$websignupemail_message = $modx->config['websignupemail_message'];
$emailsubject = $modx->config['emailsubject'];
$emailsender = $modx->config['emailsender'];
$site_name = $modx->config['site_name'];
$site_start = $modx->config['site_start'];
$message = sprintf($websignupemail_message, $uid, $pwd); // use old method
// replace placeholders
$message = str_replace("[+uid+]",$uid,$message);
$message = str_replace("[+pwd+]",$pwd,$message);
$message = str_replace("[+ufn+]",$ufn,$message);
$message = str_replace("[+sname+]",$site_name,$message);
$message = str_replace("[+semail+]",$emailsender,$message);
$message = str_replace("[+surl+]",dirname(PHP_SELF),$message);
if(!mail($email, $emailsubject, $message, "From: ".$emailsender."\r\n"."X-Mailer: Content Manager - PHP/".phpversion())) {
return webLoginAlert(WL_ERRONSEND.$mailto,1);
}
return true;
}
This is the line that prevent the correct replacement
$message = str_replace("[+surl+]",dirname(PHP_SELF),$message);
All you can obtain is a dot "." or something like that
For working properly it has to be substituted whith this code:
function webLoginSendNewPassword($email,$uid,$pwd,$ufn){
global $modx;
//aggiungere questa linea
global $site_url;
$mailto = $modx->config['mailto'];
$websignupemail_message = $modx->config['websignupemail_message'];
$emailsubject = $modx->config['emailsubject'];
$emailsender = $modx->config['emailsender'];
$site_name = $modx->config['site_name'];
$site_start = $modx->config['site_start'];
$message = sprintf($websignupemail_message, $uid, $pwd); // use old method
// replace placeholders
$message = str_replace("[+uid+]",$uid,$message);
$message = str_replace("[+pwd+]",$pwd,$message);
$message = str_replace("[+ufn+]",$ufn,$message);
$message = str_replace("[+sname+]",$site_name,$message);
$message = str_replace("[+semail+]",$emailsender,$message);
//modificare questa linea come segue
$message = str_replace("[+surl+]",$site_url,$message);
if(!mail($email, $emailsubject, $message, "From: ".$emailsender."\r\n"."X-Mailer: Content Manager - PHP/".phpversion())) {
return webLoginAlert(WL_ERRONSEND.$mailto,1);
}
return true;
}
These 2 lines
global $site_url;
$message = str_replace("[+surl+]",$site_url,$message);
make the [+surl+] placeholder to be replaced with the correct site url in the confirmation email template.
I’ve added these changes to the weblogin.common.inc.php file included in the zip file above. So downloading the zip file is all included.
Ciao