plik
przyp.php
Kod:
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
if($userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, 'potrzebny admin');
}
$step = intval($_GET['step']);
echo '<span style="font: Verdana 15px;">Emaile przypominające dla nieaktywnych użytkowników</span><br /><span style="font: Verdana 13px;">Krok ' . ($step+1) . ' z 2</span><br /><br /><br />';
if($step == 0)
{
$sql = "SELECT user_id, username, user_regdate, user_email FROM " . USERS_TABLE . " WHERE user_active=0 AND user_id<>-1 ORDER BY user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'error', '', __LINE__, __FILE__, $sql);
}
$total = $db->sql_numrows($result);
echo 'Wykryto <span style="font-weight:bold;">' . $total . '</span> nieaktywnych użytkowników<br /><br />';
echo '<table style="border: 1px solid black; width: 500px;"><tr><td>User_id</td><td>Username</td><td>Email</td><td>Data rejestracji</td></tr>';
while($row = $db->sql_fetchrow($result))
{
echo '<tr><td>' . $row['user_id'] . '</td><td>' . $row['username'] . '</td><td>' . $row['user_email'] . '</td><td>' . create_date($board_config['default_dateformat'], $row['user_regdate'], $board_config['board_timezone']) . '</td></tr>';
}
echo '</table>';
echo '<br /><br /><a href="?step=1">Wyślij emaile</a>';
}
elseif($step == 1)
{
$unhtml_specialchars_match = array('#>#', '#<#', '#"#', '#&#');
$unhtml_specialchars_replace = array('>', '<', '"', '&');
$script_name = preg_replace('/^\/?(.*?)\/?$/', '\1', trim($board_config['script_path']));
$script_name = ( $script_name != '' ) ? $script_name . '/profile.'.$phpEx : 'profile.'.$phpEx;
$server_name = trim($board_config['server_name']);
$server_protocol = ( $board_config['cookie_secure'] ) ? 'https://' : 'http://';
$server_port = ( $board_config['server_port'] <> 80 ) ? ':' . trim($board_config['server_port']) . '/' : '/';
$server_url = $server_protocol . $server_name . $server_port . $script_name;
$sql = "SELECT user_id, username, user_regdate, user_email, user_actkey FROM " . USERS_TABLE . " WHERE user_active=0 AND user_id<>-1 ORDER BY user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'error', '', __LINE__, __FILE__, $sql);
}
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
while($row = $db->sql_fetchrow($result))
{
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
$emailer->use_template('przypomnienie', 'polish');
$emailer->email_address($row['user_email']);
$emailer->set_subject('Przypomnienie');
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $row['username']), 0, 25)),
'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '',
'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $row['user_id'] . '&act_key=' . $row['user_actkey'])
);
$emailer->send();
$emailer->reset();
echo '<br />Wysłano email do usera ' . $row['username'] . '<br />';
}
}
?>
plik
languages/lang_polish/email/przypomnienie.tplKod:
Subject: Aktywuj swoje konto!
Witaj {USERNAME},
Na ten adres email na "{SITENAME}" zostało zarejestrowane konto, jednak nigdy nie zostało aktywowane. Aby aktywować Twoje konto musisz klikn±ć poniższy odno¶nik:
{U_ACTIVATE}
{EMAIL_SIG}
tpl możesz sobie zmienić
testowałem to jednak tylko z jednym nieaktywnym użytkownikiem. Jeśli będzie zbyt duża emaili to się podzieli się na kilka partii.
Autor postu otrzymał pochwałę
AIFM [1%] - kiedyś powstanie