Seite 3 von 6
Verfasst: 05.06.2004 13:07
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
Verfasst: 05.06.2004 22:41
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
dazu da wäre... oder etwa doch nicht?
Verfasst: 06.06.2004 07:22
von Dogidog2001
Ja sollte er auch was sagt er denn nach dem aktualiesieren?
Verfasst: 06.06.2004 09:32
von jesus
Hallo,
Ja sollte er auch was sagt er denn nach dem aktualiesieren?
Leider das Gleiche
--
Grusss
Verfasst: 06.06.2004 14:14
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
Verfasst: 06.06.2004 15:12
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
so heißen
first poster wird geändert
user können generell geändert werden
postingzähler läuft auch mit. einwandfrei...
Verfasst: 06.06.2004 15:25
von Dogidog2001
[quote="Lord_Femto"]
so heißen
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
Verfasst: 18.06.2004 18:40
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
Verfasst: 18.06.2004 18:55
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
Verfasst: 18.06.2004 18:59
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