kunnen jullie eens kijken of het een beetje klopt?
Code: Selecteer alles
##############################################################
## MOD Title : Account Self-Delete
## MOD Author: Poupoune < poupoune@phpbb-fr.com > (N/A) http://php-tools.org/poupoune/
##
## MOD Description : This MOD allows users to delete their own account on your board.
## This feature can be desactivated in the ACP.
##
## MOD Version : 1.0.0
##
## Installation Level : Easy
## Installation Time : 5 minute(s)
## Files To Edit : 5
## admin/admin_board.php
## includes/usercp_register.php
## language/lang_dutch/lang_main.php
## language/lang_dutch/lang_admin.php
## templates/subSilver/admin/board_config_body.tpl
## templates/subSilver/profile_add_body.tpl
## Included Files : 0
##
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/
##############################################################
## Author Notes :
##
##############################################################
## MOD History :
##
## 10-08-2004 - Version 1.0.0
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ SQL ]----------------------------------------------
#
INSERT INTO `phpbb_config` VALUES ('account_delete', '1');
#
#-----[ OPEN ]----------------------------------------------
#
admin/admin_board.php
#
#-----[ FIND ]----------------------------------------------
#
$disable_board_yes = ( $new['board_disable'] ) ? "checked=\"checked\"" : "";
$disable_board_no = ( !$new['board_disable'] ) ? "checked=\"checked\"" : "";
#
#-----[ AFTER, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
$account_delete_yes = ( $new['account_delete'] ) ? "checked=\"checked\"" : "";
$account_delete_no = ( !$new['account_delete'] ) ? "checked=\"checked\"" : "";
// End Account Self-Delete MOD
#
#-----[ FIND ]----------------------------------------------
#
"L_DISABLE_BOARD_EXPLAIN" => $lang['Board_disable_explain'],
#
#-----[ AFTER, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
"L_ACCOUNT_DELETE" => $lang['account_delete'],
// End Account Self-Delete MOD
#
#-----[ FIND ]----------------------------------------------
#
"S_DISABLE_BOARD_NO" => $disable_board_no,
#
#-----[ AFTER, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
"S_ACCOUNT_DELETE_YES" => $account_delete_yes,
"S_ACCOUNT_DELETE_NO" => $account_delete_no,
// End Account Self-Delete MOD
#
#-----[ OPEN ]----------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]----------------------------------------------
#
$strip_var_list = array(
#
#-----[ BEFORE, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
if( $HTTP_POST_VARS['deleteuser'] )
{
$message = "<form action=\"". append_sid("profile.$phpEx?mode=editprofile") ."\" method=\"post\">". $lang['Delete_account_question'] ."<br /><br /><input type=\"submit\" name=\"delete_confirm\" value=\"". $lang['Yes'] ."\" class=\"mainoption\" /> <input type=\"submit\" name=\"delete_cancel\" value=\"". $lang['No'] ."\" class=\"liteoption\" /><input type=\"hidden\" name=\"user_id\" value=\"$user_id\" /></form>";
message_die(GENERAL_MESSAGE, $message);
}
// End Account Self-Delete MOD
#
#-----[ FIND ]----------------------------------------------
#
//
// Let's make sure the user isn't logged in while registering,
// and ensure that they were trying to register a second time
// (Prevents double registrations)
//
#
#-----[ BEFORE, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD ** Code from admin/admin_users.php
if( isset($HTTP_POST_VARS['delete_confirm']) )
{
$user_id = intval( $HTTP_POST_VARS['user_id'] );
$sql = "SELECT g.group_id
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = $user_id
AND g.group_id = ug.group_id
AND g.group_single_user = 1";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain group information for this user', '', __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$sql = "UPDATE " . POSTS_TABLE . "
SET poster_id = " . DELETED . ", post_username = '$username'
WHERE poster_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update posts for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_poster = " . DELETED . "
WHERE topic_poster = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update topics for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "UPDATE " . VOTE_USERS_TABLE . "
SET vote_user_id = " . DELETED . "
WHERE vote_user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update votes for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "SELECT group_id
FROM " . GROUPS_TABLE . "
WHERE group_moderator = $user_id";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not select groups where user was moderator', '', __LINE__, __FILE__, $sql);
}
while ( $row_group = $db->sql_fetchrow($result) )
{
$group_moderator[] = $row_group['group_id'];
}
if ( count($group_moderator) )
{
$update_moderator_id = implode(', ', $group_moderator);
$sql = "UPDATE " . GROUPS_TABLE . "
SET group_moderator = " . $userdata['user_id'] . "
WHERE group_moderator IN ($update_moderator_id)";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update group moderators', '', __LINE__, __FILE__, $sql);
}
}
$sql = "DELETE FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE user_id = $user_id";
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user from user_group table', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . GROUPS_TABLE . "
WHERE group_id = " . $row['group_id'];
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
WHERE group_id = " . $row['group_id'];
if( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete group for this user', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
WHERE user_id = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . BANLIST_TABLE . "
WHERE ban_userid = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql);
}
$sql = "SELECT privmsgs_id
FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_from_userid = $user_id
OR privmsgs_to_userid = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql);
}
// This little bit of code directly from the private messaging section.
while ( $row_privmsgs = $db->sql_fetchrow($result) )
{
$mark_list[] = $row_privmsgs['privmsgs_id'];
}
if ( count($mark_list) )
{
$delete_sql_id = implode(', ', $mark_list);
$delete_text_sql = "DELETE FROM " . PRIVMSGS_TEXT_TABLE . "
WHERE privmsgs_text_id IN ($delete_sql_id)";
$delete_sql = "DELETE FROM " . PRIVMSGS_TABLE . "
WHERE privmsgs_id IN ($delete_sql_id)";
if ( !$db->sql_query($delete_sql) )
{
message_die(GENERAL_ERROR, 'Could not delete private message info', '', __LINE__, __FILE__, $delete_sql);
}
if ( !$db->sql_query($delete_text_sql) )
{
message_die(GENERAL_ERROR, 'Could not delete private message text', '', __LINE__, __FILE__, $delete_text_sql);
}
}
$message = $lang['User_deleted'] . '<br /><br />' . sprintf($lang['Click_return_userprofile'], '<a href="' . append_sid("profile.$phpEx?mode=editprofile") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
// End Account Self-Delete MOD
#
#-----[ FIND ]----------------------------------------------
#
'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'],
#
#-----[ AFTER, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
'L_ACCOUNT_DELETE' => $lang['Account_delete'],
'L_DELETE_ACCOUNT_EXPLAIN' => $lang['Account_delete_explain'],
// End Account Self-Delete MOD
#
#-----[ FIND ]----------------------------------------------
#
if ( $mode != 'register' )
{
#
#-----[ AFTER, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
if( $board_config['account_delete'] )
{
$template->assign_block_vars('account_delete_block', array() );
}
// End Account Self-Delete MOD
#
#-----[ OPEN ]----------------------------------------------
#
language/lang_dutch/lang_admin.php
#
#-----[ FIND ]----------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
$lang['account_delete'] = 'Stelt gebruikers in staat om hun eigen registratie te verwijderen';
// End Account Self-Delete MOD
#
#-----[ OPEN ]----------------------------------------------
#
language/lang_dutch/lang_main.php
#
#-----[ FIND ]----------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]----------------------------------------------
#
// Begin Account Self-Delete MOD
$lang['Account_delete'] = 'Wil je je registratie op dit forum verwijderen?';
$lang['Account_delete_explain'] = 'Verwijdering van je registratie kan niet ongedaan gemaakt worden';
$lang['User_deleted'] = 'Je registratie is succesvol verwijdert..';
$lang['Delete_account_question'] = 'Bij verwijdering van je registratie zal al jou persoonlijke informatie in je profiel verwijdert worden. De berichten die je geschreven hebt worden getoond als zijn ze door een gast geplaatst. <b>Let op !</b> Verwijdering kan niet ongedaan worden gemaakt.<br /><br />Wil je je registratie op dit forum verwijderen?';
// End Account Self-Delete MOD
#
#-----[ OPEN ]----------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl
#
#-----[ FIND ]----------------------------------------------
#
<tr>
<td class="row1">{L_ALLOW_NAME_CHANGE}</td>
<td class="row2"><input type="radio" name="allow_namechange" value="1" {NAMECHANGE_YES} /> {L_YES} <input type="radio" name="allow_namechange" value="0" {NAMECHANGE_NO} /> {L_NO}</td>
</tr>
#
#-----[ AFTER, ADD ]----------------------------------------------
#
<tr>
<td class="row1">{L_ACCOUNT_DELETE}</td>
<td class="row2"><input type="radio" name="account_delete" value="1" {S_ACCOUNT_DELETE_YES} /> {L_YES} <input type="radio" name="account_delete" value="0" {S_ACCOUNT_DELETE_NO} /> {L_NO}</td>
</tr>
#
#-----[ OPEN ]----------------------------------------------
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND ]----------------------------------------------
#
<!-- Visual Confirmation -->
#
#-----[ BEFORE, ADD ]----------------------------------------------
#
<!-- BEGIN account_delete_block -->
<tr>
<td class="row1"><span class="gen">{L_ACCOUNT_DELETE}</span></td>
<td class="row2">
<input type="checkbox" name="deleteuser">
<span class="gensmall">{L_DELETE_ACCOUNT_EXPLAIN}</span></td>
</tr>
<!-- END account_delete_block -->
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM