• SanDev.pro
  •  › 
  • Datalife Engine
  •  › 
  • Симпатичный шаблон письма восстановления пароля
Симпатичный шаблон письма восстановления пароля для DLE

Симпатичный шаблон письма восстановления пароля

Симпатичный шаблон письма восстановления пароля

Сделал тут на досуге шаблон письма восстановления пароля и решил поделиться им с вами :)
Письмо примет следующий вид:
Симпатичный шаблон письма восстановления пароля


Установка
В папке с шаблоном создать папку email и в ней файл lostpassword.tpl с содержимым:


Открыть файл engine/modules/lostpassword.php
Для DLE 10.6 и младше
Найти строку (вторую):
$mail = new dle_mail( $config );

Заменить на:
$mail = new dle_mail( $config, true );


Найти и удалить строки:
			$row = $db->super_query( "SELECT template FROM " . PREFIX . "_email where name='lost_mail' LIMIT 0,1" );
			
			$row['template'] = stripslashes( $row['template'] );


Найти и строки:
			$row['template'] = str_replace( "{%username%}", $lostname, $row['template'] );
			$row['template'] = str_replace( "{%lostlink%}", $link, $row['template'] );
			$row['template'] = str_replace( "{%ip%}", $_SERVER['REMOTE_ADDR'], $row['template'] );
			
			$mail->send( $lostmail, $lang['lost_subj'], $row['template'] );


Заменить на:
			$tpl->load_template("email/lostpassword.tpl");
			$tpl->set('{login}', $lostname);
			$tpl->set('{site-link}', "<a href=\"{$config['http_home_url']}\">{$config['http_home_url']}</a>" );
			$tpl->set('{lost-link}', $lostlink );
			$tpl->set('{ip-link}', $iplink );
			$tpl->set('{ip}', get_ip());
			$tpl->compile('email_lostpassword');
			$tpl->clear();

			$mail->send( $lostmail, $lang['lost_subj'], $tpl->result['email_lostpassword'] );


Для DLE 11 и старше
Найти и удалить строки:
			$row = $db->super_query( "SELECT * FROM " . PREFIX . "_email where name='lost_mail' LIMIT 0,1" );
			$mail = new dle_mail( $config, $row['use_html'] );
			
			$row['template'] = stripslashes( $row['template'] );


Ниже найти строки:
			if( $row['use_html'] ) {
				$link = $lang['lost_password']."<br />".$lostlink."<br /><br />".$lang['lost_ip']."<br />".$iplink;
			} else {
				$link = $lang['lost_password']."\n".$lostlink."\n\n".$lang['lost_ip']."\n".$iplink;
			}
			
			$db->query( "DELETE FROM " . USERPREFIX . "_lostdb WHERE lostname='$userid'" );
			
			$db->query( "INSERT INTO " . USERPREFIX . "_lostdb (lostname, lostid) values ('$userid', '$lostid')" );
			
			$row['template'] = str_replace( "{%username%}", $lostname, $row['template'] );
			$row['template'] = str_replace( "{%lostlink%}", $link, $row['template'] );
			$row['template'] = str_replace( "{%ip%}", get_ip(), $row['template'] );
			
			$mail->send( $lostmail, $lang['lost_subj'], $row['template'] );

Заменить на:
			$mail = new dle_mail( $config, true );
			$tpl->load_template("email/lostpassword.tpl");
			$tpl->set('{login}', $row['name']);
			$tpl->set('{site-link}', "<a href=\"$slink\">$slink</a>" );
			$tpl->set('{lost-link}', $lostlink );
			$tpl->set('{ip-link}', $iplink );
			$tpl->set('{ip}', get_ip());
			$tpl->compile('email_lostpassword');
			$tpl->clear();

			$mail->send( $lostmail, $lang['lost_subj'], $tpl->result['email_lostpassword'] );


Версия DLE: пожалуй любая, кроме совсем уж древних
Автор: Sander

Благодарности принимаю на кошельки:
R181268656057
Z753504041409

С уважением,
Олег Александрович a.k.a. Sander
Комментарии: (5)
  1. foto
    Посетитель 5 марта 2017 15:52 #
    а для чего нужны Шаблоны E-Mail сообщений? Там же вроде хтмл работает, зачем ковыряться в коде непонял
    0
    1. foto
      Администратор 5 марта 2017 16:45 #
      Как минимум, тег {%lostlink%} выводит просто две строки текста с адресами для восстановления пароля и сброса IP. Причем не каждый почтовый клиент способен преобразовать адреса в ссылку.
      Ну и соответственно никак невозможно сделать такую же большую зеленую кнопку.
      В лучшем случае будет просто 2 текстовые строки в виде ссылок.
      +1
  2. foto
    Клиент 2 апреля 2017 16:02 #
    При спробі відновити пароль, на пошту приходить лист, але коли натискаю "відновити пароль", з'являється наступне повідомлення "Користувач з таким іменем не надавав запит відновлення пароля, або це посилання уже застаріло."
    І так кожен раз.
    0
  3. foto
    Гость 6 февраля 2018 16:18 #
    установил как описано, не работает...
    0
  4. foto
    Гость 25 июня 2018 00:52 #
    Не работает на DLE 12
    0
Добавить комментарий
  • Логин
  • E-mail (не обязательно)
Повторите рисунок:
antibot
© Sander-Development. 2009-2018.
При копировании, ссылка на источник обязательна.