Seite 1 von 2

Stop Bumping MOD und POST MOVE INSTEAD DELETING MOD

Verfasst: 23.07.2006 19:36
von Pingu625
Hi!
Pingu625 hat geschrieben:Hi!

Gibt es einen Mod mit dem ich mehrere Beiträge vom ein und selben User (z.B. bei Bumping) zu einem einzigen zusammenführen kann?
BEISPIEL:
User1 hat 3-mal auf seinen eigenen Beitrag gepostet. Jedesmal mit neuen Infos.
Moderator1 möchte nun alle 3 Beiträge zu einem vereinen.
mfg Pingu
MichaZ hat geschrieben:Hier gibt es etwas tolles zur Vorsorge. :wink:
Zu dem anderem Problem > Du willst die Beiträge ja sicher noch behalten von diesem User. Versuch mal jenes hier...
Pingu625 hat geschrieben:Hi!

Ich habe das 2. jetzt mal installiert. In der Boardconfig habe ich ausgewählt:
Mods können nicht löschen JA
Forum für gel. Beiträge: 3

Das Forum 3 ist ein gesperrtes Forum, das Mülleimer heißt.

Nun logge ich mich als Moderator ein und lösche einen Beitrag mit dem Adminpanel.
Danach ist dieser aber wirklich gelöscht und nicht verschoben... Warum?
MichaZ hat geschrieben:Entschudligung, dass es so lang gedauert hat, aber ich war eben zu doof zu. ^^

Hast Du die db_update.php ausgeführt?
Ich hatte es vergessen und wollt schon sagen, dass die Mod nicht funktioniert, aber sie funktioniert.

Hast Du die richtigen Einstellungen?
Automatisches löschen aktivieren > Nein
Forum für gelöschte Beiträge > Nummer des Forums
Erlaube Moderatoren Beiträge zu löschen > Nein
Pingu625 hat geschrieben:SQL wurde ausgeführt ;)

Für was ist denn eigentlich automatisches löschen?
Ich habe sie mal auf aus gestellt...
Auch habe ich das Forum entsperrt.

Lösche ich jedoch als Moderator nun einen Beitrag, dann ist dieser komplett weg :-? , warum?

Übrigens: Der BumpingMOD funktioniert auch nicht :-?
In den Foreneinstellungen bleibt immer NEIN aktiviert. Wenn ich das Bumpingverbot immer einschalte (boardconfig auf ja) kann ich auch immer noch auf meine eigenen Beiträge antworten...

Kannst du mir helfen?

mfg Pingu
Jetzt führe ich das ganze mal hier weiter...

Könnt ihr mir helfen?

mfg Pingu

Verfasst: 23.07.2006 20:55
von oxpus
Ich kann dazu nur sagen:
Schau Dir die Installationen nochmal genau an.
Es sind durch andere MODs diverse Stellen in den Scripten nicht sofort erkennbar, daher ist hier genaues Arbeiten nötig, um die MODs fehlerfrei ans Arbeiten zu bringen.

Und BTW:
Von welchen Topics hast Du zitiert?
Ich denke, es sieht hier kein Admin/Moderator gerne, wenn Themen auf diese Weise gebumpt werden ;)

Verfasst: 24.07.2006 04:32
von Michael Zacher
@oxpus: Klickst Du hier.

@Pingu: Hier gehört das Thema meiner bescheidenen Meinung nach auch hin.

Verfasst: 24.07.2006 10:05
von Pingu625
@Michaz:

Das ist ja auch der Grund, warum ich alles zitiert habe ;)

Denn die Modsuche wurde zu einer Supportanfrage ;)

mfg Pingu

PS: Ich schau mal in der functions_post nach ;)

PPS: Ich habe den kompletten stop_bumping MOD nochmal durchgegangen. Kein Fehler drin. Und gefunden habe ich auch alles direkt.

Verfasst: 24.07.2006 17:48
von Pingu625
Hi!

So ich habe auch den anderen Mod mal nachgeprüft.
Den neuen Beitrag habe ich zur Übersichtlichkeit gemacht ;)

Und dabei fand ich folgendes:

Code: Alles auswählen

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;

         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;
	}

	if ($mode != 'poll_delete')
	{
		include($phpbb_root_path . 'includes/functions_search.'.$phpEx);

                 include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);

		if ($userdata['user_level'] == ADMIN || ($userdata['user_level'] == MOD && $board_config['mod_allow_delete_post'] == 1))
		{

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

		$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);
		}

		if ($post_data['last_post'])
		{
			if ($post_data['first_post'])
			{
				$forum_update_sql .= ', forum_topics = forum_topics - 1';
                                 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);
					}

					sync('topic', $topic_id);
					sync('forum', $board_config['delete_post_forum']);
				}
                         }
		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);
			}

			sync('topic', $new_topic_id);
			sync('forum', $board_config['delete_post_forum']);
		}

				$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
					WHERE topic_id = $topic_id";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Error in deleting post', '', __LINE__, __FILE__, $sql);
				}
			}
		}

		remove_search_post($post_id);
	}

	if ($mode == 'poll_delete' || ($mode == 'delete' && $post_data['first_post'] && $post_data['last_post']) && $post_data['has_poll'] && $post_data['edit_poll'])
	{
		$sql = "DELETE FROM " . VOTE_DESC_TABLE . "
			WHERE topic_id = $topic_id";
		if (!$db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql);
		}

		$sql = "DELETE FROM " . VOTE_RESULTS_TABLE . "
			WHERE vote_id = $poll_id";
		if (!$db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql);
		}

		$sql = "DELETE FROM " . VOTE_USERS_TABLE . "
			WHERE vote_id = $poll_id";
		if (!$db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, 'Error in deleting poll', '', __LINE__, __FILE__, $sql);
		}
	}

	if ($mode == 'delete' && $post_data['first_post'] && $post_data['last_post'])
	{
		$meta = '<meta http-equiv="refresh" content="3;url=' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $forum_id) . '">';
		$message = $lang['Deleted'] . '<br />' . $cash_message;
	}
	else
	{
		$meta = '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . '=' . $topic_id) . '">';
		$message = (($mode == 'poll_delete') ? $lang['Poll_delete'] : $lang['Deleted']) . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
	}

	$message .=  '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');

	return;
}
Nun sind an dieser Stelle beide Modifikationen zusammen zu finden. Da stellt sich natürlich die Frage, ob die Kombination stimmt :o

mfg Pingu

Verfasst: 24.07.2006 21:28
von oxpus
Wenn Du die Datei mal verlinken würdest, wäre es einfacher ;)

KB:datei

Verfasst: 25.07.2006 18:09
von Pingu625
Wie du meinst:
Die Funktions_Post als TXT

Pingu

Verfasst: 25.07.2006 23:52
von oxpus
Ja, falsch eingebaut.

Verfasst: 27.07.2006 11:03
von Pingu625
So! Nun habe ich die verbesserte Datei hochgeladen, aber es funktioniert immer noch nicht :(
Ich kann als Moderator (trotz einstellungen in der Boardconfig) immer noch löschen, ohne das der Beitrag verschoben wird und ich kann immer noch auf meine Beiträge antworten...

An welcher Datei könnte es noch liegen?

Verfasst: 27.07.2006 12:12
von oxpus
Zunächst einmal habe ich hier nur das Löschen für den Moderator in angriff genommen. Eins nach dem anderen.
Also:
Hast Du im ACP verboten, daß der Moderator löschen kann oder das erlaubt?
Mit dem gleichen Code in der von mir korrigierten Datei kann ich auf meinem Board als Moderator nicht löschen, sondern nur verschieben...