Seite 1 von 2

Who is Online in andere Datei geschoben

Verfasst: 09.02.2007 20:16
von Richi2
Also ich habe das Who is Online in eine andere Datei geschoben, von index_body.tpl in den overall_header.tpl.

Jetzt ist es so, dass das Who is Online auf der Startseite funktioniert, aber nicht wenn ich in ein Beitrag oder so reingehe! (Also das who is online bleibt immer stehen!)
In welchen Datein muss ich was ändern?

Danke

Verfasst: 09.02.2007 20:35
von gn#36
Ich denke du musst nur mit dem folgenden Code genau dasselbe tun:

Code: Alles auswählen

define('SHOW_ONLINE', true);
Befindet sich in der index.php und muss dann (da show_online ja überall gebraucht wird) in die page_header.php im includesverzeichnis. Vielleicht funktioniert es sauberer mit dem Folgenden im page_header.php

Code: Alles auswählen

if(!defined('SHOW_ONLINE'))
{
define('SHOW_ONLINE', true);
}
Auf diese Weise gibt es keine Fehlermeldungen durch Doppeldefinitionen.
Einfach ziemlich am Anfang einfügen dürfte reichen (z.B. nach

Code: Alles auswählen

if ( !defined('IN_PHPBB') )
{
	die("Hacking attempt");
}

define('HEADER_INC', TRUE);
)

Verfasst: 09.02.2007 20:41
von Richi2
danke ich werds ausprobieren!

MFG

Verfasst: 09.02.2007 21:10
von Richi2
also diese art von code klappt an den stellen nicht!

gibt es noch andere varianten das einzustellen?

MFG

Richard

Verfasst: 09.02.2007 21:55
von gn#36
Blöd, ich dachte die Zuweisung der generierten Variablen würde ebenfalls im Page_header gemacht...
Du benötigst noch diesen Code:

Code: Alles auswählen

$template->assign_vars(array(
		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
		'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
		'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'), 

		'FORUM_IMG' => $images['forum'],
		'FORUM_NEW_IMG' => $images['forum_new'],
		'FORUM_LOCKED_IMG' => $images['forum_locked'],

		'L_FORUM' => $lang['Forum'],
		'L_TOPICS' => $lang['Topics'],
		'L_REPLIES' => $lang['Replies'],
		'L_VIEWS' => $lang['Views'],
		'L_POSTS' => $lang['Posts'],
		'L_LASTPOST' => $lang['Last_Post'], 
		'L_NO_NEW_POSTS' => $lang['No_new_posts'],
		'L_NEW_POSTS' => $lang['New_posts'],
		'L_NO_NEW_POSTS_LOCKED' => $lang['No_new_posts_locked'], 
		'L_NEW_POSTS_LOCKED' => $lang['New_posts_locked'], 
		'L_ONLINE_EXPLAIN' => $lang['Online_explain'], 

		'L_MODERATOR' => $lang['Moderators'], 
		'L_FORUM_LOCKED' => $lang['Forum_is_locked'],
		'L_MARK_FORUMS_READ' => $lang['Mark_all_forums'], 

		'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
	);
Der muss VOR das hier in der page_header.php

Code: Alles auswählen

}

//
// Obtain number of new private messages
// if user is logged in
//
Diese Änderung natürlich zusätzlich zum oben geposteten

Verfasst: 09.02.2007 22:17
von Richi2
tja, es klappt trotzdem nicht! :cry:

hast du vllt noch einen vorschlag?

ich will das aber unbeingt hinbekommen!

MFG

Verfasst: 10.02.2007 15:44
von gn#36
Das nächste mal sollte ich mich damit wohl eingehender beschäftigen. Direkt oberhalb des zuletzt eingefügten Codes muss noch das hier hin:

Code: Alles auswählen

	//
// If you don't use these stats on your index you may want to consider
// removing them
//
$total_posts = get_db_stat('postcount');
$total_users = get_db_stat('usercount');
$newest_userdata = get_db_stat('newestuser');
$newest_user = $newest_userdata['username'];
$newest_uid = $newest_userdata['user_id'];

if( $total_posts == 0 )
{
	$l_total_post_s = $lang['Posted_articles_zero_total'];
}
else if( $total_posts == 1 )
{
	$l_total_post_s = $lang['Posted_article_total'];
}
else
{
	$l_total_post_s = $lang['Posted_articles_total'];
}

if( $total_users == 0 )
{
	$l_total_user_s = $lang['Registered_users_zero_total'];
}
else if( $total_users == 1 )
{
	$l_total_user_s = $lang['Registered_user_total'];
}
else
{
	$l_total_user_s = $lang['Registered_users_total'];
}
	
Das habe ich getestet und es funktioniert. Außerdem war in meinem ersten Post bei dem if(!defined()) ein Syntaxfehler durch eine fehlende Klammer.

Verfasst: 11.02.2007 10:25
von Richi2
und wo ist da der fehler, bei (!define... ?

schreib den nochmal hin bitte!

MFG

Richard

Verfasst: 11.02.2007 12:34
von gn#36
Ist inzwischen korrigiert.
Am Ende fehlte eine schließende Klammer. Das dürfte dann aber - wenn es bei dir auch noch falsch ist - mit einem Parse Error quittiert werden. Sollte das nicht der Fall sein ist alles ok.
if(!defined('SHOW_ONLINE'))
{
define('SHOW_ONLINE', true);
}

Verfasst: 11.02.2007 13:02
von Richi2
also vielen dank!

es hat geklappt!

danke vielmals

MFG

Richard