Der MOD funktioniert ja so, das man einstellen kann, ob der Benutzer bei hinzufügen zu einer Benutzergruppe mittels admin_users.php eine Mail erhalten soll oder nicht. Das E-Mail-Template hierzu listet zudem die bestehenden Mitgliedschaften auf.
Meine Idee war nun, das ganze auch auf das Löschen einer Mail auszuweiten ohne den MOD zu stark zu verändern (dafür kann ich zu wenig, hehe). Netter weise arbeitet der MOD mit klaren Variablen für den Fall einer Hinzufügung und E-Mail, sodass dies nicht schwer zu übertragen war.
Folgende Änderungen sind nötig:
In der lang_admin.php die Übeersetzung in der Zeile $lang['Email_notification'] in
Code: Alles auswählen
$lang['Email_notification'] = 'Benutzer per E-Mail benachrichtigen, falls hier seine Gruppen-Mitgliedschaft geändert wurde';Das Template current_groups.tpl in 2 Dateien ändern: current_groups_add.tpl und current_groups_del.tpl und nach Inhaltsänderung neu hochladen (altes Template wird nicht mehr gebraucht):
ADD-Inhalt
Code: Alles auswählen
Subject: Sie wurden zu einer oder mehreren Benutzergruppe(n) auf "{SITENAME}" hinzugefügt!
Charset: iso-8859-1
Hallo,
Sie wurden zu einer oder mehreren Benutzergruppe(n) auf "{SITENAME}" hinzugefügt.
Diese Aktion wurde durch einen Administrator auf "{SITENAME}" durchgeführt.
Falls Sie Fragen haben, kontaktieren Sie bitte einen Administrator auf "{SITENAME}".
Sie sind nun Mitglied folgender Gruppen:
{GROUP_NAMES}
{EMAIL_SIG}Code: Alles auswählen
Subject: Sie wurden aus einer oder mehreren Benutzergruppe(n) auf "{SITENAME}" entfernt!
Charset: iso-8859-1
Hallo,
Sie wurden aus einer oder mehreren Benutzergruppe(n) auf "{SITENAME}" entfernt.
Diese Aktion wurde durch einen Administrator auf "{SITENAME}" durchgeführt.
Falls Sie Fragen haben, kontaktieren Sie bitte einen Administrator auf "{SITENAME}".
Sie sind nun Mitglied folgender Gruppen:
{GROUP_NAMES}
{EMAIL_SIG}Unter
Code: Alles auswählen
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE user_id = " . $row['user_id'] . "
AND group_id = $group_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not add delete user from group marked \'NO\'', '', __LINE__, __FILE__, $sql);
}Code: Alles auswählen
$temp_count = 2;Code: Alles auswählen
$emailer->use_template('current_groups', $user_lang);Code: Alles auswählen
$emailer->use_template('current_groups_add', $user_lang);Code: Alles auswählen
$emailer->set_subject($lang['Group_added']);
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'GROUP_NAMES' => $group_name,
'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
);
$emailer->send();
$emailer->reset();
}Code: Alles auswählen
// now, find out if user has been deleted from any groups and the admin wants a notification email sent out
if( $temp_count == 2 && $email_notification == 1 )
{
// the following code is adapted from code in groupsp.php
// Email the user and tell him what groups he is now in
$group_name = '';
$sql = "SELECT g.group_name, u.username, u.user_email, u.user_lang
FROM " . GROUPS_TABLE . " g, " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
WHERE u.user_id = $user_id
AND ug.user_id = u.user_id
AND g.group_id = ug.group_id
AND ug.user_pending = 0";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get group information', '', __LINE__, __FILE__, $group_sql);
}
$row = $db->sql_fetchrow($result);
$username = $row['username'];
$user_email = $row['user_email'];
$user_lang = $row['user_lang'];
$group_name = $row['group_name'];
while ( $row = $db->sql_fetchrow($result) )
{
$group_name = $group_name . "\n" . $row['group_name'];
}
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
$emailer = new emailer($board_config['smtp_delivery']);
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
$emailer->use_template('current_groups_del', $user_lang);
$emailer->email_address($user_email);
$emailer->set_subject($lang['Group_added']);
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'GROUP_NAMES' => $group_name,
'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '')
);
$emailer->send();
$emailer->reset();
}