Seite 1 von 2

Verschieben statt löschen

Verfasst: 29.10.2005 20:46
von emily
Gibt es die Möglichkeit, das die Moderatoren Beiträge nur verschieben können, statt löschen, das sie praktisch keine LöschBerechtigung haben? Im ACP bin ich nicht fündig geworden!

Danke schon mal!

Verfasst: 29.10.2005 21:13
von Markus67
Hi ...

dafür gibts einen MOD :wink:
Move Post Instead of Deleting
Moves posts to a specified forum if a user or (if set) moderator wants to "delete" them.

Markus

Verfasst: 29.10.2005 23:59
von kazwo
Ich würd jedoch den Archive-Mod von S2B empfehlen, da er auch Threads verschiebt, statt sie zu löschen...

Der Post Move Instead of Deleting verschiebt nur einzelne Beiträge. Themen sind dann ganz weg...

Verfasst: 31.10.2005 18:14
von SophiaM
Hallo,

habe mir den Mod jetzt auch eingebaut und alles nach Anweisung gemacht. Irgendwie sehe ich aber im ACP nichts neues und wenn ich einen Beitrag lösche wird er auch ganz normal gelöscht.
Wo kann ich denn einstellen, in welches Archiv der Beitrag verschoben werden soll und nicht gelöscht?
Ich weiß, ist jetzt eine saublöde Frage aber stehe gerade auf dem Schlauch sorry :oops:

Verfasst: 31.10.2005 21:37
von Markus67
Hi ...

Code: Alles auswählen

## MOD Description: Dieser MOD erweitert das phpBB um ein Löscharchiv, in dem gelöschte Beiträge/Themen
##                  auch nach dem Löschen aufbewahrt werden können. Beiträge aus dem gleichen Thema werden
##                  in einem Thema gruppiert. Außerdem können die archivierten Beiträge/Themen mit zwei Klicks
##                  wiederhergestellt werden. Das Löschverhalten (Löschen|Archivieren) kann in jedem Forum
##                  separat eingestellt werden.
Einstellmöglichkeiten solltest du unter
Adminbereich -> Allgemein -> Konfiguration .. und
Adminbereich -> Forum -> Einstellungen finden

Markus

Verfasst: 31.10.2005 22:17
von Paninaro
Markus67 hat geschrieben:dafür gibts einen MOD :wink:
Move Post Instead of Deleting
Moves posts to a specified forum if a user or (if set) moderator wants to "delete" them.
Den habe ich soeben eingebaut aber ich konnte keine Veränderungen feststellen. Außerdem sind da ein paar Fehler in der Anleitung.

Code: Alles auswählen

#-----[ 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

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)) && $forum_check == TRUE)
		{

#
#-----[ 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'] == '')
		{
			$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 ]------------------------------------------
#
				$forum_update_sql .= ', forum_topics = forum_topics - 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);
				}

#
#-----[ REPLACE WITH ]------------------------------------------
#
				if (($userdata['user_level'] == ADMIN || ($userdata['user_level'] == MOD && $board_config['mod_allow_delete_post'] == 1)) && $forum_check == TRUE)
				{
					$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
				{
					$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 ]------------------------------------------
#
?>

#
#-----[ FIND ]------------------------------------------
#
$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 für gelöschte Beiträge';
$lang['Delete_post_forum_explain'] = 'Dieses Forum beinhaltet alle Beiträge die ein User oder Mod (siehe nächste Option!) gelöscht hat. Gib 0 ein oder lass dieses Feld leer, wenn Du diese Funktion abschalten willst.';
$lang['Mod_allow_delete_post'] = 'Erlaube Moderatoren Beiträge zu löschen';
$lang['Mod_allow_delete_post_explain'] = 'Um Moderatoren zu erlauben, Beiträge zu löschen, anstelle diese zu verschieben, wähle hier JA. Die Foren Berechtigungen zum Löschen werden mit dieser Funktion nicht geändert!';

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

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

#
#-----[ FIND ]------------------------------------------
#
$lang['Deleted_post_from_topic'] = 'Gelöschter 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 ]------------------------------------------

Verfasst: 31.10.2005 22:59
von Paninaro
Also das habe ich jetzt in der lang_german eingefügt

Code: Alles auswählen

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

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

#
#-----[ BEFORE, ADD ]------------------------------------------
#
$lang['Delete_post_forum'] = 'Forum für gelöschte Beiträge';
$lang['Delete_post_forum_explain'] = 'Dieses Forum beinhaltet alle Beiträge die ein User oder Mod (siehe nächste Option!) gelöscht hat. Gib 0 ein oder lass dieses Feld leer, wenn Du diese Funktion abschalten willst.';
$lang['Mod_allow_delete_post'] = 'Erlaube Moderatoren Beiträge zu löschen';
$lang['Mod_allow_delete_post_explain'] = 'Um Moderatoren zu erlauben, Beiträge zu löschen, anstelle diese zu verschieben, wähle hier JA. Die Foren Berechtigungen zum Löschen werden mit dieser Funktion nicht geändert!';
Und den Code habe ich vor dem ?> eingefügt, obwohl da FIND steht.

Code: Alles auswählen

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

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

#
#-----[ FIND ]------------------------------------------
#
$lang['Deleted_post_from_topic'] = 'Gelöschter Beitrag von Topic-ID %s';
Aber wie gesagt, das Forum bleibt unverändert.

Verfasst: 31.10.2005 23:02
von Markus67
Hi ...

Hast du denn ein zusätzliches Forum angelegt in welches die Beiträge "verschoben" werden?

Viele Veränderungen wirst du da auch nicht feststellen ... log dich mal als Moderator ein .. erstelle einen Testbeitrag und lösche den dann ... was passiert?

Nicht als Admin ... da darfst du ja weiterhin löschen :wink:

Markus

Verfasst: 31.10.2005 23:03
von Paninaro
Mache ich, ich dachte nur daran?
Markus67 hat geschrieben:Hi ...

Code: Alles auswählen

## MOD Description: Dieser MOD erweitert das phpBB um ein Löscharchiv, in dem gelöschte Beiträge/Themen
##                  auch nach dem Löschen aufbewahrt werden können. Beiträge aus dem gleichen Thema werden
##                  in einem Thema gruppiert. Außerdem können die archivierten Beiträge/Themen mit zwei Klicks
##                  wiederhergestellt werden. Das Löschverhalten (Löschen|Archivieren) kann in jedem Forum
##                  separat eingestellt werden.
Einstellmöglichkeiten solltest du unter
Adminbereich -> Allgemein -> Konfiguration .. und
Adminbereich -> Forum -> Einstellungen finden

Markus

Verfasst: 31.10.2005 23:05
von Markus67
nenso hat geschrieben:Mache ich, ich dachte nur daran?
Markus67 hat geschrieben:Hi ...

Code: Alles auswählen

## MOD Description: Dieser MOD erweitert das phpBB um ein Löscharchiv, in dem gelöschte Beiträge/Themen
##                  auch nach dem Löschen aufbewahrt werden können. Beiträge aus dem gleichen Thema werden
##                  in einem Thema gruppiert. Außerdem können die archivierten Beiträge/Themen mit zwei Klicks
##                  wiederhergestellt werden. Das Löschverhalten (Löschen|Archivieren) kann in jedem Forum
##                  separat eingestellt werden.
Einstellmöglichkeiten solltest du unter
Adminbereich -> Allgemein -> Konfiguration .. und
Adminbereich -> Forum -> Einstellungen finden

Markus
sorry ... das hätte ich dazuschreiben sollen ... das betrifft den Archiv MOD ... also andere Baustelle :wink:

Markus