##############################################################
## MOD Title:		Post move instead deleting
## MOD Author: oxpus < webmaster@oxpus.de > (Karsten Ude) http://www.oxpus.de
## MOD Description:	This mod will move posts to a hidden forum instead deleting them by an user or mod.
##			The admin can alltimes delete and mods if they are allowed to, too.
## MOD Version:		1.0.1
##
## Installation Level:	Intermediate
## Installation Time:	5-10 min
## Files To Edit:	7
##			admin/admin_boards.php
##			includes/functions_post.php
##			language/lang_english/lang_admin.php
##			language/lang_english/lang_main.php
##			language/lang_german/lang_admin.php
##			language/lang_german/lang_main.php
##			templates/subSilver/admin/board_config_body.tpl
## Included Files:	n/a
##############################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ 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 MODs not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
##############################################################
## Author Notes:
##
## Upload the file
## 		db_update.php
## to your phpbb root directory and run this with your browser.
## This file will do all nessassary changes in the database for you.
## After using this file, please delete it to avoid errors.
##
##############################################################
## MOD History:
##
##   2005-06-17 - Version 1.0.1
##	- FIX little bug in functions_post.php. Reinstall the part for this file.
##
##   2005-02-26 - Version 1.0.0
##	- First release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
admin/admin_board.php

#
#-----[ FIND ]------------------------------------------
#
$namechange_yes = ( $new['allow_namechange'] ) ? "checked=\"checked\"" : "";
$namechange_no = ( !$new['allow_namechange'] ) ? "checked=\"checked\"" : "";

#
#-----[ AFTER, ADD ]------------------------------------------
#
$mod_allow_delete_post_yes = ( $new['mod_allow_delete_post'] ) ? "checked=\"checked\"" : "";
$mod_allow_delete_post_no = ( !$new['mod_allow_delete_post'] ) ? "checked=\"checked\"" : "";

#
#-----[ FIND ]------------------------------------------
#
	"L_RESET" => $lang['Reset'], 

#
#-----[ AFTER, ADD ]------------------------------------------
#
	"L_DELETE_POST_FORUM" => $lang['Delete_post_forum'],
	"L_DELETE_POST_FORUM_EXPLAIN" => $lang['Delete_post_forum_explain'],
	"L_MOD_ALLOW_DELETE_POST" => $lang['Mod_allow_delete_post'],
	"L_MOD_ALLOW_DELETE_POST_EXPLAIN" => $lang['Mod_allow_delete_post_explain'],
	"DELETE_POST_FORUM" => $new['delete_post_forum'],
	"MOD_ALLOW_DELETE_POST_YES" => $mod_allow_delete_post_yes,
	"MOD_ALLOW_DELETE_POST_NO" => $mod_allow_delete_post_no,

#
#-----[ OPEN ]------------------------------------------
#
includes/functions_post.php

#
#-----[ FIND ]------------------------------------------
#
function delete_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id)
{
	global $board_config, $lang, $db, $phpbb_root_path, $phpEx;
	global $userdata, $user_ip;

#
#-----[ AFTER, ADD ]------------------------------------------
#
	if (intval($board_config['delete_post_forum']) != 0)
	{
		$sql = "SELECT * FROM " . FORUMS_TABLE . "
			WHERE forum_id = " . $board_config['delete_post_forum'];
		if (!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
		}
		$forum_count = $db->sql_numrows($result);
		$db->sql_freeresult($result);

		$forum_check = ($forum_count != 0) ? TRUE : 0;
	}
	else
	{
		$forum_check = 0;
	}

#
#-----[ FIND ]------------------------------------------
#
	if ($mode != 'poll_delete')
	{
		include($phpbb_root_path . 'includes/functions_search.'.$phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
		if ($userdata['user_level'] == ADMIN || ($userdata['user_level'] == MOD && $board_config['mod_allow_delete_post'] == 1))
		{

#
#-----[ FIND ]------------------------------------------
#
		$sql = "DELETE FROM " . POSTS_TEXT_TABLE . "
			WHERE post_id = $post_id";
		if (!$db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
		}

#
#-----[ AFTER, ADD ]------------------------------------------
#
		}
		else if ($post_data['first_post'] == '' && $forum_check == TRUE)
		{
			$sql = "INSERT INTO " . TOPICS_TABLE . "
				(forum_id, topic_title, topic_poster, topic_time, topic_views, topic_replies, topic_status, topic_vote, topic_type, topic_first_post_id, topic_last_post_id, topic_moved_id)
				VALUES (".$board_config['delete_post_forum'].", '".sprintf($lang['Deleted_post_from_topic'], $topic_id)."', ".$post_data['poster_id'].", ".time().", 0, 0, ".TOPIC_UNLOCKED.", 0, ".POST_NORMAL.", $post_id, $post_id, 0)";
			if (!$db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
			}
			$new_topic_id = $db->sql_nextid();

			$sql = "UPDATE " . POSTS_TABLE . "
				SET topic_id = $new_topic_id, forum_id = ".$board_config['delete_post_forum']."
				WHERE post_id = $post_id";
			if (!$db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
			}
		}			

#
#-----[ FIND ]------------------------------------------
#
				$sql = "DELETE FROM " . TOPICS_TABLE . "
					WHERE topic_id = $topic_id
						OR topic_moved_id = $topic_id";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
				}

#
#-----[ REPLACE WITH ]------------------------------------------
#
				if ($userdata['user_level'] == ADMIN || ($userdata['user_level'] == MOD && $board_config['mod_allow_delete_post'] == 1))
				{
					$sql = "DELETE FROM " . TOPICS_TABLE . "
						WHERE topic_id = $topic_id
							OR topic_moved_id = $topic_id";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
					}
				}
				else if ($forum_check == TRUE)
				{
					$sql = "UPDATE " . TOPICS_TABLE . "
						SET forum_id = " . $board_config['delete_post_forum'] . "
						WHERE topic_id = $topic_id";
					if (!$db->sql_query($sql))
					{
						message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
					}

					$sql = "UPDATE " . POSTS_TABLE . "
						SET forum_id = " . $board_config['delete_post_forum'] . "
						WHERE topic_id = $topic_id";
					if ( !$db->sql_query($sql) )
					{
						message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
					}
				}

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php

#
#-----[ FIND ]------------------------------------------
#
?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['Delete_post_forum'] = 'Forum for deleted posts';
$lang['Delete_post_forum_explain'] = 'This forum will content all posts a user or mod (next option!) have deleted. Enter 0 or nothing at this field to disable this function.';
$lang['Mod_allow_delete_post'] = 'Allow Moderators to delete posts';
$lang['Mod_allow_delete_post_explain'] = 'To allow Moderators to delete posts instead moving them say YES to this option. The forum permissions to delete posts will not be changed by this function!';

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['Deleted_post_from_topic'] = 'Deleted post from Topic-ID %s';

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php

#
#-----[ FIND ]------------------------------------------
#
?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['Delete_post_forum'] = 'Forum fr gelschte Beitrge';
$lang['Delete_post_forum_explain'] = 'Dieses Forum beinhaltet alle Beitrge die ein User oder Mod (siehe nchste Option!) gelscht hat. Gib 0 ein oder lass dieses Feld leer, wenn Du diese Funktion abschalten willst.';
$lang['Mod_allow_delete_post'] = 'Erlaube Moderatoren Beitrge zu lschen';
$lang['Mod_allow_delete_post_explain'] = 'Um Moderatoren zu erlauben, Beitrge zu lschen, anstelle diese zu verschieben, whle hier JA. Die Foren Berechtigungen zum Lschen werden mit dieser Funktion nicht gendert!';

#
#-----[ OPEN ]------------------------------------------
#
language/lang_german/lang_main.php

#
#-----[ FIND ]------------------------------------------
#
?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['Deleted_post_from_topic'] = 'Gelschter Beitrag von Topic-ID %s';

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl

#
#-----[ FIND ]------------------------------------------
#
	<tr>
		<td class="row1">{L_ENABLE_PRUNE}</td>
		<td class="row2"><input type="radio" name="prune_enable" value="1" {PRUNE_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="prune_enable" value="0" {PRUNE_NO} /> {L_NO}</td>
	</tr>

#
#-----[ AFTER, ADD ]------------------------------------------
#
	<tr>
		<td class="row1">{L_DELETE_POST_FORUM}<br /><span class="gensmall">{L_DELETE_POST_FORUM_EXPLAIN}</span></td>
		<td class="row2"><input type="text" class="post" name="delete_post_forum" size="4" maxlength="4" value="{DELETE_POST_FORUM}" /></td>
	</tr>
	<tr>
		<td class="row1">{L_MOD_ALLOW_DELETE_POST}<br /><span class="gensmall">{L_MOD_ALLOW_DELETE_POST_EXPLAIN}</span></td>
		<td class="row2"><input type="radio" name="mod_allow_delete_post" value="1" {MOD_ALLOW_DELETE_POST_YES} /> {L_YES}&nbsp;&nbsp;<input type="radio" name="mod_allow_delete_post" value="0" {MOD_ALLOW_DELETE_POST_NO} /> {L_NO}</td>
	</tr>


#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
