Seite 1 von 2

Workshop Manual

Verfasst: Mittwoch 28. Dezember 2005, 20:35
von Dirk
Ich habe es :Bild
Ist zwar auf englisch, aber ausführlicher und besser bebildert.

Verfasst: Mittwoch 28. Dezember 2005, 21:13
von Uwe
In Jörgs Forum kanst es scannen lassen, dann wirds ins Netz gestellt...

Machen die so...

Verfasst: Dienstag 21. Februar 2006, 21:53
von Dirk
Ich denke, wir sollten die guten Ideen für uns berhalten. :gdh: :015: :042: :mobike:

Verfasst: Dienstag 21. Februar 2006, 22:53
von Uwe
Hallo Dirk, kannst du es scannen?

Verfasst: Mittwoch 22. Februar 2006, 16:01
von Ecki
Find ich nicht so gut!

Verfasst: Mittwoch 22. Februar 2006, 18:56
von Uwe
Hab schon verstanden Ecki...

Verfasst: Mittwoch 22. Februar 2006, 22:31
von Dirk
Ich kann SCannen, wieso??

Verfasst: Donnerstag 23. Februar 2006, 07:48
von Uwe
Scan ein und pack's 'nen Monat auf'n WEB-Space...
Dann haben's alle.
Den Umweg über CD/DVD kannst du dir dann sparen, haben ja alle DSL, nicht wahr?
Nimmst 5 Euro für einen Download und spendest den Rest abzüglich Eigenkosten dem Admin - wie auf anderen Foren schon üblich geworden, oder? :mrgreen:

Gruß Uwe *ironielaesstgruessen*

Verfasst: Donnerstag 23. Februar 2006, 19:03
von Dirk
Ach so ein scheiß. Müßt Ihr wieder mit dem Geld anfangen? :crazy: :dagegen:

Verfasst: Freitag 24. Februar 2006, 06:13
von Uwe
3,...2,...1...klick

Grüßchen vom Uwe

PS: Ich werd wohl doch moch mal nach einem MOD suchen müssen, womit sich die User selbst löschen können.

Verfasst: Freitag 24. Februar 2006, 09:39
von Uwe
Hab was gefunden, mal sehen, wann ich das einstricken kann...

Code: Alles auswählen

############################################################## 
## 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_english/lang_main.php
##		language/lang_english/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\" />&nbsp;&nbsp;<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_english/lang_admin.php

# 
#-----[ FIND ]---------------------------------------------- 
# 

?>

# 
#-----[ BEFORE, ADD ]---------------------------------------------- 
#

// Begin Account Self-Delete MOD
$lang['account_delete'] = 'Allows users to delete their own accounts';
// End Account Self-Delete MOD

# 
#-----[ OPEN ]---------------------------------------------- 
# 

language/lang_english/lang_main.php

# 
#-----[ FIND ]---------------------------------------------- 
# 

?>

# 
#-----[ BEFORE, ADD ]---------------------------------------------- 
#

// Begin Account Self-Delete MOD
$lang['Account_delete'] = 'Do you want to delete your account on this board?';
$lang['Account_delete_explain'] = 'Deletion of your account cannot be undone';
$lang['User_deleted'] = 'Your account has been sucessfully deleted.';
$lang['Delete_account_question'] = 'Deletion of your account will delete all personnal informations that concerns you in your profile, inside the database of this board. The messages you wrote in this board will have as post author a guest. <b>Attention !</b> all deletion can not be undone.<br /><br />Do you want to delete your account in this board?';
// 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}&nbsp;&nbsp;<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}&nbsp;&nbsp;<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 


Verfasst: Freitag 24. Februar 2006, 12:06
von Timo
Ich frag mich nur warum jemand überhaupt antwortet wenn er doch gar nicht in einem Forum Mitglied sein will. Dann soll es es doch einfach lassen.
Löschen würde ich aber keinen denn sobald das gescheit und er hat irgend wann mal was Strafbares geschrieben das ist er dafür haftbar. Also wenn löschen dann auch mit sämtlichen Beiträgen. Da sonst der Admin dafür haftbar zu machen ist.
Oder man sollte das Mitglied dann sperren was dem Löschen gleichkommt, da sein Account nicht mehr zu nutzen ist.

Gruß Timo

P.S. : Jetzt wird er wohl unter anderem Namen schreiben und lesen.

Verfasst: Freitag 24. Februar 2006, 13:09
von Uwe
Hallo Timo,

ich habe mir da mal so die einschlägigen Threads durchgelesen und bin der Meinung, dass jeder seinen Account (zumindest über den Admin) löschen lassen können soll. Dessen Beiträge auch noch zu löschen, dass ist da nicht drin. Erstens zu viel Arbeit für den Admin, zweitens werden die Threads entstellt, wenn diese Beiträge fehlen. Schliesslich hat sich entsprechende Person irgend wann ja mal angemeldet und hat mit Wissen und Willen diese Beiträge ja auch verfasst. Derjenige hätte vor Löschung seines Accounts seine Postings über die Editierfunktion auf eine Reihe Punkte (...) zurücksetzen können.
Aber es ist ja immer noch der Name, wenn auch als Gast, zum jeweiligen Beitrag vorhanden.

Gruß Uwe