Страница 14 из 14
Re: Мод Admin Userlist
Добавлено: 22.12.2008 10:42
Stass
Обнаружена неприятная особенность. Если на форуме стоит активация юзеров админом, и с помощью этого мода активировать юзеров, то письмо об активации юзеру не приходит (конкретно даже не создается)
Re: Мод Admin Userlist
Добавлено: 22.12.2008 11:01
Поручик
Да, не создаётся. Потому что нет соответствующего кода.
Добавлено спустя 21 минуту 50 секунд:
Попробуй. Код между этих строк в admin_userlist.php
Код: Выделить всё
case 'activate':
Заменяемый код
................
................
case 'group':
заменить на этот
Код: Выделить всё
//
// activate or deactivate the seleted users
//
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
$i = 0;
while( $i < count($user_ids) )
{
$user_id = intval($user_ids[$i]);
$sql = "SELECT user_active, user_lang, user_email, username FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user information', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$new_status = ( $row['user_active'] ) ? 0 : 1;
$sql = "UPDATE " . USERS_TABLE . "
SET user_active = '$new_status'
WHERE user_id = $user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user status', '', __LINE__, __FILE__, $sql);
}
if ($new_status == 1)
{
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
$emailer->use_template('admin_welcome_activated', $row['user_lang']);
$emailer->email_address($row['user_email']);
$emailer->set_subject($lang['Account_activated_subject']);
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'USERNAME' => $row['username'],
'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
);
$emailer->send();
$emailer->reset();
}
unset($user_id);
$i++;
}
$message = $lang['User_status_updated'] . "<br /><br />" . sprintf($lang['Click_return_userlist'], "<a href=\"" . append_sid("admin_userlist.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
message_die(GENERAL_MESSAGE, $message);
break;
Re: Мод Admin Userlist
Добавлено: 10.02.2009 10:28
Stass
Небольшое добавление к моду. При удалении пользователя(ей) отсылается ему(им) письмо на e-mail с соответствующим текстом.
1. Нужно создать файл user_delete.tpl в language/lang_russian/email такого содержания:
Код: Выделить всё
Subject: Ваша учётная запись удалена
Charset: windows-1251
Здравствуйте, {USERNAME}.
Ваша учётная запись удалена с форума {SITENAME}.
{EMAIL_SIG}
2. Отредактировать файл admin/admin_userlist.php
Код: Выделить всё
После строк:
// delete users
$i = 0;
Вставить:
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
Заменить строку:
$sql = "SELECT u.username, g.group_id
Этой строкой:
$sql = "SELECT u.username, g.group_id, user_email
Перед строками:
$sql = "DELETE FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
Вставить:
//---------------------------------------------
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
$emailer->use_template('user_delete', $row['user_lang']);
$emailer->email_address($row['user_email']);
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'USERNAME' => $row['username'],
'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
);
$emailer->send();
$emailer->reset();
//----------------------------------------------
Проверил на локалхосте. Ставить сразу на Ваш форум не рекомендую, еще не все протестил. Так что прошу сильно ногами не бить, если что не правильно