Seite 1 von 1

Updateanleitung von phpBB 2.0.17 auf 2.0.18

Verfasst: So 30.Okt, 2005 17:51
von volker58
gibt wieder mal arbeit, hat einer schon ne anleitung dafür gefunden?

Verfasst: So 30.Okt, 2005 18:28
von AmigaLink

Verfasst: So 30.Okt, 2005 19:19
von volker58
ach du sch.....


kann das mal einer in deutsch erklären was sein muß und was man nicht unbedingt braucht?

http://www.phpbb.com/phpBB/viewtopic.php?f=14&t=336756

kann leider kein englisch

Verfasst: So 30.Okt, 2005 19:20
von karstenkurt
Und da treten bei mir massenhaft Probleme auf
Folgende Anweisungen kann ich nicht umsetzen

Code: Alles auswählen

privmsg.php
#
#-----[ FIND ]---------------------------------------------
#
			$privmsg_subject = $privmsg_message = '';

#
#-----[ REPLACE WITH ]---------------------------------------------
#
			$privmsg_subject = $privmsg_message = $to_username = '';

viewtopic.php
#
#-----[ FIND ]---------------------------------------------
#
			$user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig);
		}

		if ( $bbcode_uid != '' )
		{
			$message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
		}
	}

#
#-----[ REPLACE WITH ]---------------------------------------------
#
		$user_sig = ($board_config['allow_bbcode']) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace("/\:$user_sig_bbcode_uid/si", '', $user_sig);
	}

	if ($bbcode_uid != '')
	{
		$message = ($board_config['allow_bbcode']) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $message);
	}

admin_ug_auth.php
#
#-----[ FIND ]---------------------------------------------
#
	if( count($name) )
	{
		$t_usergroup_list = $t_pending_list = '';

#
#-----[ REPLACE WITH ]---------------------------------------------
#
	$t_usergroup_list = $t_pending_list = '';
	if( count($name) )
	{

function_validate.php
#
#-----[ FIND ]---------------------------------------------
# NOTE --- Removing trailing whitespaces
#
	$username = phpbb_clean_username($username);
	
	$sql = "SELECT username 
		FROM " . USERS_TABLE . " 

#
#-----[ REPLACE WITH ]---------------------------------------------
#
	$username = phpbb_clean_username($username);

	$sql = "SELECT username 
		FROM " . USERS_TABLE . "

session.php (CTracker)
#
#-----[ FIND ]---------------------------------------------
#
	$current_time = time();
	$expiry_time = $current_time - $board_config['session_length'];

	//
	// Try and pull the last time stored in a cookie, if it exists
	//
	$sql = "SELECT * 
		FROM " . USERS_TABLE . " 
		WHERE user_id = $user_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Could not obtain lastvisit data from user table', '', __LINE__, __FILE__, $sql);
	}

	$userdata = $db->sql_fetchrow($result);

	if ( $user_id != ANONYMOUS )
	{
		$auto_login_key = $userdata['user_password'];

		if ( $auto_create )
		{
			if ( isset($sessiondata['autologinid']) && $userdata['user_active'] )
			{
				// We have to login automagically
				if( $sessiondata['autologinid'] === $auto_login_key )
				{
					// autologinid matches password
					$login = 1;
					$enable_autologin = 1;
				}
				else
				{
					// No match; don't login, set as anonymous user
					$login = 0; 
					$enable_autologin = 0; 
					$user_id = $userdata['user_id'] = ANONYMOUS;
				
					$sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS;
					$result = $db->sql_query($sql);
					$userdata = $db->sql_fetchrow($result);
					$db->sql_freeresult($result);
				}
			}
			else
			{
				// Autologin is not set. Don't login, set as anonymous user
				$login = 0;
				$enable_autologin = 0;
				$user_id = $userdata['user_id'] = ANONYMOUS;

				$sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS;
				$result = $db->sql_query($sql);
				$userdata = $db->sql_fetchrow($result);
				$db->sql_freeresult($result);
			}
		}
		else
		{
			$login = 1;
		}
	}
	else
	{
		$login = 0;
		$enable_autologin = 0;
	}

#
#-----[ REPLACE WITH ]---------------------------------------------
#
	$current_time = time();

	//
	// Are auto-logins allowed?
	// If allow_autologin is not set or is true then they are
	// (same behaviour as old 2.0.x session code)
	//
	if (isset($board_config['allow_autologin']) && !$board_config['allow_autologin'])
	{
		$enable_autologin = $sessiondata['autologinid'] = false;
	}

	// 
	// First off attempt to join with the autologin value if we have one
	// If not, just use the user_id value
	//
	$userdata = array();

	if ($user_id != ANONYMOUS)
	{
		if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '' && $user_id)
		{
			$sql = 'SELECT u.* 
				FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k
				WHERE u.user_id = ' . (int) $user_id . "
					AND u.user_active = 1
					AND k.user_id = u.user_id
					AND k.key_id = '" . md5($sessiondata['autologinid']) . "'";
			if (!($result = $db->sql_query($sql)))
			{
				message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
			}

			$userdata = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);
		
			$enable_autologin = $login = 1;
		}
		else if (!$auto_create)
		{
			$sessiondata['autologinid'] = '';
			$sessiondata['userid'] = $user_id;

			$sql = 'SELECT *
				FROM ' . USERS_TABLE . '
				WHERE user_id = ' . (int) $user_id . '
					AND user_active = 1';
			if (!($result = $db->sql_query($sql)))
			{
				message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
			}

			$userdata = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);

			$login = 1;
		}
	}

	//
	// At this point either $userdata should be populated or
	// one of the below is true
	// * Key didn't match one in the DB
	// * User does not exist
	// * User is inactive
	//
	if (!sizeof($userdata) || !is_array($userdata) || !$userdata)
	{
		$sessiondata['autologinid'] = '';
		$sessiondata['userid'] = $user_id = ANONYMOUS;
		$enable_autologin = $login = 0;

		$sql = 'SELECT *
			FROM ' . USERS_TABLE . '
			WHERE user_id = ' . (int) $user_id;
		if (!($result = $db->sql_query($sql)))
		{
			message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
		}

		$userdata = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);
	}


usercp_activate.php
#
#-----[ OPEN ]---------------------------------------------
#
includes/usercp_activate.php

#
#-----[ FIND ]---------------------------------------------
#
		if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $userdata['user_level'] != ADMIN)
		{
			message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
		}

#
#-----[ REPLACE WITH ]---------------------------------------------
#
		if (intval($board_config['require_activation']) == USER_ACTIVATION_ADMIN && $row['user_newpasswd'] == '')
		{
			if (!$userdata['session_logged_in'])
			{
				redirect(append_sid('login.' . $phpEx . '?redirect=profile.' . $phpEx . '&mode=activate&' . POST_USERS_URL . '=' . $row['user_id'] . '&act_key=' . trim($HTTP_GET_VARS['act_key'])));
			}
			else if ($userdata['user_level'] != ADMIN)
			{
				message_die(GENERAL_MESSAGE, $lang['Not_Authorised']);
			}
		}
index_body.tpl
#
#
# NOTE --- The following action is related to the new autologin option (it can be disabled from the ACP).
#
#-----[ FIND ]---------------------------------------------
#
		     {L_AUTO_LOGIN} 
		<input class="text" type="checkbox" name="autologin" />

#
#-----[ BEFORE, ADD ]---------------------------------------------
#
		<!-- BEGIN switch_allow_autologin -->

#
#-----[ AFTER, ADD ]---------------------------------------------
#
		<!-- END switch_allow_autologin -->

#
#-----[ OPEN ]---------------------------------------------
# NOTE --- Remember to do this for all your installed styles!
#
templates/subSilver/admin/forum_admin_body.tpl

#
#
# NOTE --- The following action fixes a bug in the subSilver template
#
#-----[ FIND ]---------------------------------------------
#
		<td class="catRight" align="center" valign="middle"><span class="gen">&nbsp</span></td>

#
#-----[ REPLACE WITH ]---------------------------------------------
#
		<td class="catRight" align="center" valign="middle"><span class="gen">&nbsp;</span></td>
Kann mir jemand helfen?
Hab die betroffenen Dateien mal angehägt. In der Session.php macht mir der CTracker einen Strich durch die Rechnung! Bei den anderen?

Danke im voraus!

Verfasst: Mo 31.Okt, 2005 10:28
von tom10
Betreffs dem Cbacktracker hab ich auch einen Thread verfasst.Hier lang.

Verfasst: Mo 31.Okt, 2005 10:55
von oxpus
@karstenkurt
Mir scheint, hast Du das letzte/vorletzte Update nicht gemacht.
In der privmsg.php kannst Du daher die angegebene Stelle nicht finden!

Die viewtopic.php und function_validate.php fehlen im Anhang ;)

index_body.tpl ist nicht zu ändern, da kein Login mehr enthalten ist.
Die forum_admin_body.tpl auch nicht, da der Fehler bereits durch einen Teil des Categories Hierarchy MOD ersetzt wurde.

Die sessions.php erstmal mit Vorsicht geniessen! Ich weiß noch nicht genau, ob der Cracker Tracker dort an der richtigen Stelle eingefügt wurde.

@tom10
Habe ich gesehen. Wie eben erwähnt: Cback sollte sich das dort mal anschauen.

Verfasst: Mo 31.Okt, 2005 11:04
von karstenkurt
Ich werd das 17er Update nochmal überprüfen.

viewtopic hab ich selber hinbekommen, hab da noch den Signature Control drin gehabt :)

Verfasst: Mo 31.Okt, 2005 11:06
von oxpus
Deine functions_validate.php ist okay. Hier gings nur im Leerzeichen anstelle Tabs vor den angegebene Zeilen.
Bei Deiner Datei sind das schon Tabs.

Verfasst: Mo 31.Okt, 2005 11:07
von karstenkurt
ok. Werde allerdings warten bis cback durch ist. Dann mach ich alles auf einmal.
Edit:
So, hab das 2.0.17 draufgemacht (das fehlte tatsächlich noch ;) ) Es ergeben sich jetzt aber immer noch 1-5 Fragen.
index.php

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
	{

#
#-----[ REPLACE WITH ]---------------------------------------------
#
	if ($userdata['session_logged_in'])
	{
		// 60 days limit
		if ($userdata['user_lastvisit'] < (time() - 5184000))
		{
			$userdata['user_lastvisit'] = time() - 5184000;
		}
und search.php

Code: Alles auswählen

ORDER BY c.cat_id, f.forum_order";

#
#-----[ REPLACE WITH ]---------------------------------------------
#
	ORDER BY c.cat_order, f.forum_order";
und admin/admin_ug_auth.php

Code: Alles auswählen

#
#-----[ FIND ]---------------------------------------------
#
			$sql = "SELECT * 
				FROM " . FORUMS_TABLE . " f
				ORDER BY forum_order";

#
#-----[ REPLACE WITH ]---------------------------------------------
#
			$sql = 'SELECT f.* 
				FROM ' . FORUMS_TABLE . ' f, ' . CATEGORIES_TABLE . ' c
				WHERE f.cat_id = c.cat_id
				ORDER BY c.cat_order, f.forum_order';
sind alle durch den CH-Mod auskommentiert und das ist auch sicher richtig so?
In der Viewtopic.php

Code: Alles auswählen

	$user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $user_sig);
		}

		if ( $bbcode_uid != '' )
		{
			$message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
		}
	}
kommen recht häufig vor. Vielleicht kannst Du da mal nen Blick drauf werfen. Häng die mal an. (Vielleicht ist da auch der Fehler für mein anderes Problem zu finden?)

Verfasst: Do 03.Nov, 2005 15:47
von oxpus
search.php und admin_ug_auth.php brauchst Du nicht anpassen.
Diese Stellen wurden durch den Categories Hierarchy MOD ersetzt.

In der index.php ist die erste Stelle zu finden, die nach der letzten "Fundstelle" abgehend zu suchen ist. Wenn vorher nichts verändert wurde, dann die erste Stelle vom Dateianfang an suchen!

Und ändere in der viewtopic.php alle Stellen ab, wenn diese gleich sind.

Verfasst: Do 03.Nov, 2005 16:56
von karstenkurt
Hab gerade beim Posten festgestellt, das folgende Stelle nach dem Update einen SQL-Fehler bringt.
suche:

Code: Alles auswählen

$topic_type = ( !empty($HTTP_POST_VARS['topictype']) ) ? intval($HTTP_POST_VARS['topictype']) : POST_NORMAL;
ersetze

Code: Alles auswählen

$topic_type = ( in_array($topic_type, array(POST_NORMAL, POST_STICKY, POST_ANNOUNCE)) ) ? $topic_type : POST_NORMAL;
Wenn ich den "alten" Zustand wiederherstelle, klappt alles?

Verfasst: Do 03.Nov, 2005 17:25
von oxpus
Nicht ersetzen, danach einfügen!

Verfasst: Do 03.Nov, 2005 19:29
von volker58
habe nun auch mal angefangen das up zu machen. nun bin ich schon bei einer fehlermeldung
phpBB : Critical Error

Error clearing session table

DEBUG MODE

SQL Error : 1146 Table 'orgi.sessions_table' doesn't exist

DELETE FROM SESSIONS_TABLE WHERE session_logged_in = 0;

Line : 190
File : sessions.php
wo könnte ich da müll gebaut haben?

Verfasst: Do 03.Nov, 2005 20:10
von oxpus
Du wirst in der constants die neue Tabelle nicht nur hinzugefügt, sondern auch die Definition der Session-Tabelle damit überschrieben haben.
Schau da nochmal rein.

Verfasst: Do 03.Nov, 2005 20:21
von volker58
oh ich hirni, danke

Verfasst: Do 03.Nov, 2005 20:47
von karstenkurt
Ja, na klar, "AFTER, ADD".

Verfasst: Fr 04.Nov, 2005 06:54
von volker58
habe da noch eine kleine frage, warum soll eigendlich aus den templates das class="post" raus?
soll ich das überall raushauen?

Verfasst: Fr 04.Nov, 2005 07:56
von oxpus
Nein nicht überall. Es kommt auf den Feldtyp an und hier passte es eben nicht so recht...

Verfasst: Fr 04.Nov, 2005 10:07
von karstenkurt
[quote="oxpus - Do 03.Nov, 2005 17:25";p="47428"]Nicht ersetzen, danach einfügen![/quote]

Wenn ich die Änderung durchführe, funktioniert aber Dein Global-Topic-Mod nicht mehr, wenn ichs weglasse, dann schon. Also, werd ich diese Zeile wohl weglassen, so wichtig schaut die für mich Laien nicht aus. Nur schauen, ob der Topic-Type in einem Array ist, sonst Normal zurückliefern.

Oder man passt das Array an

Code: Alles auswählen

$topic_type = ( in_array($topic_type, array(POST_NORMAL, POST_STICKY, POST_ANNOUNCE,POST_GLOBAL_TOPIC,POST_GLOBAL_ANNOUNCE)) ) ? $topic_type : POST_NORMAL;
Dann gehts auch wieder. Sprich etwas gegen die Anpassung?

Verfasst: Fr 04.Nov, 2005 10:21
von oxpus
Nein, das ist genau das, was auch in der neuen Fassung meines MODs so drinnen steht ;)

Verfasst: Fr 04.Nov, 2005 10:23
von karstenkurt
Dannbin ich ja ein Fuchs ^o

Verfasst: Fr 04.Nov, 2005 10:26
von oxpus
Frei nach dem Motto:

OXPUS.de animiert und weckt Ideen :D