Отправляем email юзеру при удалении его аккаунта

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Stass
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 1 месяц
Откуда: у тебя пистолет и деньги?

Отправляем email юзеру при удалении его аккаунта

Сообщение Stass »

у меня есть необходимость в данной возможности, и сделал я вот что:
1. создал файл user_deleted.txt в language/ru/email примерно такого содержания:

Код: Выделить всё

Subject: Ваша учётная запись была удалена

Здравствуйте, {USERNAME}.

Ваша учётная запись на конференции «{SITENAME}» была удалена, бла-бла-бла. Вы можете связаться с администратором конференции для уточнения подробностей по адресу:

{CONTACT_EMAIL}

{EMAIL_SIG}
2. в файле includes/acp/acp_users.php после строк (примерно 194я)

Код: Выделить всё

if (confirm_box(true))
						{
вставляю

Код: Выделить всё

if ($config['email_enable'])
							{
								include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
								$email_template = 'user_deleted';
								$messenger = new messenger(false);

								$messenger->template($email_template, $user_row['user_lang']);

								$messenger->to($user_row['user_email'], $user_row['username']);

								$messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);
								$messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);
								$messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);
								$messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);

								$messenger->assign_vars(array(
									'USERNAME'		=> htmlspecialchars_decode($user_row['username']),
									'CONTACT_EMAIL' => $config['board_contact'],
								));

								$messenger->send(NOTIFY_EMAIL);
							}
В результате должно получиться что при удалении пользователя из "Обзора" в админском разделе (там где чекбокс "удалить пользователя") ему отправится вышеописанный email.
Пробовал все это дело на локалхосте на денвере, вроде отсылается, но через раз. закономерности пока не нашел. И не повлияет ли эта модификация на отправку письма об активации (на форуме стоит активация админом) если буду активировать юзера из "Обзора", т.е. из acp_users.php?
Аватара пользователя
Stass
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 1 месяц
Откуда: у тебя пистолет и деньги?

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение Stass »

похоже гуру в эту ветку не заглядывают...
Аватара пользователя
Stass
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 1 месяц
Откуда: у тебя пистолет и деньги?

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение Stass »

up
Аватара пользователя
Stass
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 1 месяц
Откуда: у тебя пистолет и деньги?

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение Stass »

up
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 9 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение nissin »

я бы перенёс отправку е-майл после строки:

Код: Выделить всё

							user_delete($delete_type, $user_id, $user_row['username']);
На активацию не повлияет.
Аватара пользователя
Stass
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 1 месяц
Откуда: у тебя пистолет и деньги?

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение Stass »

nissin писал(а):я бы перенёс отправку е-майл после строки
а в таком случае не получится что мы сначала удалим пользователя, а потом будем отправлять e-mail? т.е. отправлять уже будет некому
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2229
Стаж: 18 лет 9 месяцев
Откуда: Астана
Благодарил (а): 7 раз
Поблагодарили: 344 раза

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение nissin »

Не получится.
Данные сохранятся в $user_row.
Аватара пользователя
Stass
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 1 месяц
Откуда: у тебя пистолет и деньги?

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение Stass »

nissin
ок. спасибо за помощь!
Drims
phpBB 1.2.0
Сообщения: 11
Стаж: 16 лет 11 месяцев

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение Drims »

Проверил, работает хорошо! Доволен :) За что и спасибо.
Аватара пользователя
Stass
phpBB 1.4.2
Сообщения: 56
Стаж: 18 лет 1 месяц
Откуда: у тебя пистолет и деньги?

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение Stass »

Так. чтобы все завершить и доделать до конца нужно еще отредактировать и файл includes/acp/acp_inactive.php
135я строка. заменяем

Код: Выделить всё

foreach ($mark as $user_id)
							{
								user_delete('retain', $user_id, $user_affected[$user_id]);
							}
на

Код: Выделить всё

// *Email deleted user* start
							include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);

							$messenger = new messenger();
							// *Email deleted user* end
							foreach ($mark as $user_id)
							{
								// *Email deleted user* start
								$messenger->template('user_deleted', $user_row['user_lang']);

								$messenger->to($user_row['user_email'], $user_row['username']);

								$messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);
								$messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);
								$messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);
								$messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);

								$messenger->assign_vars(array(
									'USERNAME'		=> htmlspecialchars_decode($user_row['username']),
									'CONTACT_EMAIL' => $config['board_contact'],
								));
								$messenger->send(NOTIFY_EMAIL);
								// *Email deleted user* end
								
								user_delete('retain', $user_id, $user_affected[$user_id]);
							}
							
							// *Email deleted user* start
							$messenger->save_queue();
							// *Email deleted user* end
Теперь все по-людски.
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Отправляем email юзеру при удалении его аккаунта

Сообщение romeo_piter »

При использовании этой доработки при удалении неактивированных пользователей из админки (пользователи и группы ----- неактивированные пользователи ) вылетает ошибочка:

[phpBB Debug] PHP Notice: in file /includes/acp/acp_inactive.php on line ***: Undefined variable: user_row

Кто использует, есть такое?

Вернуться в «Для авторов (phpBB 3.0.x)»