[2.0.x] Change User Mod

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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 »

Also ich hab mir das Teil mal installiert und es funktioniert nur wurde bei mir der Text des Postings nicht angezeigt was ich jedoch mit einer einfachen änderung der Variablen hinbekommen habe.

Was ich mich hier nur frage ist wie sind die ursprünglichen Postings in den Datenbanken eingetragen?

Als Gastpostings oder als Postings von anderen vorhandenen Mitgliedern.

Falls sie als Gastpostings vorhanden sind kann der Mod ohne Erweiterung nicht funktionieren.

Da Einträge in die Datenbank gemacht werden müssen welche bei Gästen nicht vorhanden sind.

Hier mal kurz die änderung für das Problem mit den Gästen.

Code: Alles auswählen

öffne changeuser.php
------------------------------------------------------------------------
suche
------------------------------------------------------------------------
$newuser_posts = intval($row['user_posts']) + 1;
		}
------------------------------------------------------------------------
füge ein
------------------------------------------------------------------------
if ($newposter_id == true){
------------------------------------------------------------------------
suche
------------------------------------------------------------------------
message_die(GENERAL_MESSAGE, $topic_first_post_id . $change_id . $oldposter_id . $newposter_id . $lang['ChgP_done']);
------------------------------------------------------------------------
füge ein
------------------------------------------------------------------------
}
$sql = "UPDATE " . POSTS_TABLE . " SET post_username =" . $newposter . " WHERE post_id =" . $changeid;
		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, $lang['ChgP_WrongID']);
			
		}
		message_die(GENERAL_MESSAGE, $topic_first_post_id . $change_id . $oldposter_id . $newposter_id . $lang['ChgP_done']);
// * change topicstarter if necessary
		//----------------------
		if ( $topic_first_post_id == $change_id )
		{
			$sql = "UPDATE " . TOPICS_TABLE . " SET topic_poster=" . $newposter_id . " WHERE topic_id =" . $topic_id;
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, $lang['ChgP_Error']);
			}
		}
Gruss

Dogidog2001
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

jetzt funktioniert es auch ENDLICH bei mir...

doch mitlerweile ist mir aufgefallen, dass ich das gleiche problem, wie jesus habe, wobei doch eigentlich der nachfolgende code nach

Code: Alles auswählen

// * change topicstarter if necessary
dazu da wäre... oder etwa doch nicht?
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Dogidog2001
Mitglied
Beiträge: 17
Registriert: 13.04.2004 11:48
Wohnort: Bottrop

Beitrag von Dogidog2001 »

Ja sollte er auch was sagt er denn nach dem aktualiesieren?
Benutzeravatar
jesus
Mitglied
Beiträge: 24
Registriert: 01.02.2004 12:40
Wohnort: Oberbayern...
Kontaktdaten:

Beitrag von jesus »

Hallo,
Ja sollte er auch was sagt er denn nach dem aktualiesieren?
Leider das Gleiche :cry:

--
Grusss
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.

Gruss

Dogidog2001

Ps: Dank an Jesus fürs testen
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

NA ENDLICH... es funktioniert doch noch...
jetzt funktioniert es 100%ig.

AUßER, dass die Variable falsch gesetzt wurde

es muss statt

Code: Alles auswählen

'REASSIGN_TEXT' => $changemsg,
so heißen

Code: Alles auswählen

'TEXT' => $changemsg,

first poster wird geändert
user können generell geändert werden
postingzähler läuft auch mit. einwandfrei...
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Dogidog2001
Mitglied
Beiträge: 17
Registriert: 13.04.2004 11:48
Wohnort: Bottrop

Beitrag von Dogidog2001 »

[quote="Lord_Femto"]

Code: Alles auswählen

'REASSIGN_TEXT' => $changemsg,
so heißen

Code: Alles auswählen

'TEXT' => $changemsg,

Die Änderung war bei mir notwendi da er bei mir den Text nicht angezeigt hatte mt der Variablen 'REASSIGN_TEXT' klappt es bei mir.

Gruss

Dogidog2001
Jerryl
Mitglied
Beiträge: 5
Registriert: 18.06.2004 18:33

Beitrag von Jerryl »

moin moin,

mit interesse habe ich diesen Threar verfolgt weil ich dieses Mod gerne anwenden würde. Nun hab ich ihn installiert, und auch die changeuser.php geändert usw. alles nach Anleitung.

Wenn ich auf das "nicht" vorhandene Bild klicke also den Link öffnet sich bei mir ein Fenster mit einer Eingabespalte und einem winzigen unbeschrifteten Button daneben.

Egal ob ich Gast /Guest oder den Namen eines anderen Users eingebe ich bekomme immer als Anwort das das Posting nicht vorhanden ist.

Hat jemand eine Idee was ich machen könnte?

Gruss Jerryl
Benutzeravatar
jesus
Mitglied
Beiträge: 24
Registriert: 01.02.2004 12:40
Wohnort: Oberbayern...
Kontaktdaten:

Beitrag von jesus »

Hallo,

hast Du alles so installiert, wie angegeben.
Benutzt Du evtl. ein anderes Theme als subSilver?
Dann muesstest Du die Anpassungen auch im anderen Theme einfuegen.
Dann waere zumindest schon mal das Bildchen da, was nicht vorhanden ist.

--
Gruss
Jerryl
Mitglied
Beiträge: 5
Registriert: 18.06.2004 18:33

Beitrag von Jerryl »

ja benutze ich und hab das eigentlich auch aufeinander abgestimmt *g*
Aber das Bildchen is mir sowas von Egal...

Ich hab jetzt die Letzte version aus dem "Archiv" Link runtergeladen und mit dem Text von oben die Changeuser.php neu gemacht.

jetzt bekomme ich folgende Fehlermeldung:
Error reading topics table!

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2
Antworten

Zurück zu „phpBB 2.0: Mod Support“