[Beta] Beiträge neu zuordnen

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Dogidog2001
Mitglied
Beiträge: 17
Registriert: 13.04.2004 11:48
Wohnort: Bottrop

Beitrag von Dogidog2001 »

Hallo,

habe heute den Code mal etwas umgearbeitet und er sollte so funktionieren.
Einfach den Code der changeuser.php mit dem hier folgenden Code ersetzen.

Code: Alles auswählen

<?php
/***************************************************************************
 *                             Change Poster Mod
 *                          ------------------------
 *   Version              : Version 1.0-fix5 - 26.05.04
 *   Copyright            : (C) 2004 Tuxman
 *   Besonderer Dank an	  : andreasOymann von www.phpbb.de
 *   URL                  : <noch keine>
 *   eMail		  : tuxman@sumpfkuh.de
 *
 *   $Id: changeuser.php,v 1.0f4 2004/05/26 Tuxman Exp $
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

// general starting
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

// session stuff
$userdata = session_pagestart($user_ip, PAGE_CHANGEPOSTER);
init_userprefs($userdata);

// checking rights
if ($userdata['user_level'] != ADMIN) {
	message_die(GENERAL_MESSAGE, $lang['ChgP_Admin']);
}

// get params
if ( !isset($HTTP_GET_VARS[POST_POST_URL]))
{
	message_die(GENERAL_ERROR, $lang['ChgP_WrongID']);
}
else
{
	$changeid = intval($HTTP_GET_VARS[POST_POST_URL]);
}

$mode = $HTTP_GET_VARS['mode'];
$newposter = $HTTP_GET_VARS['newposter'];
$newposter = "'".$newposter."'";

// main code
if ($mode == 'start')
{
		//--------------------------------------------
		// do the SQL ;-)
		//----------------------

		$sql = "SELECT p.poster_id, u.username, pt.post_text FROM " . POSTS_TABLE . " p
				LEFT JOIN ". USERS_TABLE . " u on p.poster_id = u.user_id
				LEFT JOIN ". POSTS_TEXT_TABLE . " pt on p.post_id = pt.post_id 
				WHERE p.post_id =" . $changeid;
				
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Error reading database!');
		}

		while( $row = $db->sql_fetchrow($result) )
		{
			$changeposter_id = $row['poster_id'];
			$changeposter = $row['username'];
			$changemsg = $row['post_text'];
		}

		$db->sql_freeresult($result);

		$chgpwrote = $changeposter . ' ' . $lang['ChgP_wrote'];

		$template->assign_vars(array(
		'CHANGEID' => $changeid,
		'SUBMIT' => $lang['ChgP_Submit'],
		'ACTION' => $PHP_SELF,
		'REASSIGN_TEXT' => $changemsg,
		'REASSIGN_POSTER' => $chgpwrote,
		'REASSIGN_TITLE' => $lang['ChgP_Reassign'],
		'REASSIGN_USERNAME' => $lang['ChgP_enterUsername'])
);
}
else if ($mode == 'reassign') 
{
		//--------------------------------------------
		// do the SQL ;-)
		//----------------------

		//----------------------
		// * change poster
		//----------------------
		$sql = "SELECT * FROM " . USERS_TABLE . " WHERE username = " . $newposter ;
		if ( !($result = $db->sql_query($sql)) )
		{
			
		}
		while( $row = $db->sql_fetchrow($result) )
		{
			$newposter_id = intval($row['user_id']);
			$newuser_posts = intval($row['user_posts']) + 1;
		}
  if ($newposter_id != 0)
		{

		$sql = "SELECT p.poster_id, p.topic_id, u.user_id, u.user_posts FROM " . POSTS_TABLE . " p
				LEFT JOIN " . USERS_TABLE . " u on p.poster_id = u.user_id
				WHERE post_id = " . $changeid ; 
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['ChgP_NoUser']);
		}
		while( $row = $db->sql_fetchrow($result) )
		{
			$oldposter_id = $row['poster_id'];
			$olduser_posts = intval($row['user_posts']) - 1;
			$topic_id = intval($row['p.topic_id']);
		}

		$sql = "SELECT topic_first_post_id FROM " . TOPICS_TABLE . " 
				WHERE topic_id = " . $topic_id ; 
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Error reading topics table!');
		}
		while( $row = $db->sql_fetchrow($result) )
		{
			$topic_first_post_id = intval($row['topic_first_post_id']);
		}


		$sql = "UPDATE " . POSTS_TABLE . " SET poster_id=" . $newposter_id . " WHERE post_id =" . $changeid;
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['ChgP_WrongID']);
		}

		$sql = "UPDATE " . USERS_TABLE . " SET user_posts= " . $newuser_posts ." WHERE user_id =" . $newposter_id;
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['ChgP_Error']);
		}

		$sql = "UPDATE " . USERS_TABLE . " SET user_posts= " . $olduser_posts ." WHERE user_id =" . $oldposter_id;
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['ChgP_Error']);
		}
		
        $sql = "UPDATE " . TOPICS_TABLE . " SET topic_poster=" . $newposter_id ." WHERE topic_first_post_id =" . $changeid;
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, $lang['ChgP_Error']);
			}
     //----------------------
		// end of SQL
		//--------------------------------------------

		message_die(GENERAL_MESSAGE, $topic_first_post_id . $change_id . $oldposter_id . $newposter_id . $lang['ChgP_done']);

}
else
{
$newposter_gast_id = "-1";
$sql = "UPDATE " . POSTS_TABLE . " SET post_username =" . $newposter . ", poster_id =" . $newposter_gast_id . " WHERE post_id =" . $changeid;
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['ChgP_WrongID']);
			
		}
	
// * change topicstarter if necessary
		//----------------------
		$sql = "UPDATE " . TOPICS_TABLE . " SET topic_poster=" . $newposter_gast_id . " WHERE topic_first_post_id =" . $changeid;
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, $lang['ChgP_Error']);
			}
	message_die(GENERAL_MESSAGE, $topic_first_post_id . $change_id . $oldposter_id . $newposter_id . $lang['ChgP_done']);
		}
}
//----------------------
		

// general ending
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
'body' => 'changeuser_body.tpl')
);

$template->pparse('body'); 
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>
zusätzlich bittet der Code nun die Möglichkeit einen Beitrag von einem Mitglied auf einen Gast zu setzen so das nur der Name im Thread erscheint.
Die Modder können ja nochmal testen

Gruss

Dogidog2001
Schwarzlicht
Mitglied
Beiträge: 116
Registriert: 27.03.2003 13:49

Beitrag von Schwarzlicht »

:( hat sich gar nix geändert. Immer noch der gleiche Fehler.
The posting you specified does not exist!
Eg4power

Beitrag von Eg4power »

Ja ich habe den Mod jetzt installiert aber wie soll ich weiter vorgehen wo finde ich den mod dann im apc?
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Nicht im ACP sondern bei jedem Beitrag solltest du einen Link/ein Icon haben um den Beitrag neuzuzuordnen
Highwayman
Mitglied
Beiträge: 549
Registriert: 21.04.2005 15:52
Wohnort: Thailand
Kontaktdaten:

Beitrag von Highwayman »

Ich habe diesen Mod heute installiert und ein wenig probiert. Also nach dem Absenden kommt dann immer eine etwas erschreeckende Anzahl der geänderten Postings. So heisst es bei mir nun "2754Posting successfully reassign"! Schon etwas viel! Kann das geändert werden? Nicht das die Mitadmins erschrecken, wenn sie mal ein Posting einem weiteren User zuschreiben!
Und schön wäre es, wenn man nach dem absenden auch wieder auf den geänderten Beitrag kommt, und nicht über die Index wieder in das Post muss!
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“