Problem #2 mit Header - diesmal mit der Statistik

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Problem #2 mit Header - diesmal mit der Statistik

Beitrag von alexanderzwei »

Hallo zusammen,

ich programmiere gerade für ein phpBB3 Board eine Userbox in dem alle Infos zum User im Header angezeigt werden. Also Username, PNs, ACP und alles andere wichtige.

Jetzt möchte ich die Statistik nach etwa folgenden Format einfügen:

Besucher online: 1
Davon 1 Registrierte, 0 Unsichtbare und 0 Gäste.


Aber auch hier tut sich das Problem auf, das auf einigen Seiten das ganze nicht angezeigt wird. Dann steht dort nur:

Besucher online:
Davon Registrierte, Unsichtbare und Gäste.

Diese Seiten wären z.B.: UCP, Wer ist online? und das Loginfeld für den ACP.
Das scheinen genau die Seiten zu sein, bei denen die functions.php nicht integriert ist. Die nötige Funktion scheint sich wohl in der functions.php zu befinden.

Ich habe es schon mit mehreren Sachen probiert zu lösen, wie etwa:

functions.php

Code: Alles auswählen

if (!function_exists('obtain_guest_count($forum_id = 0)'))
	   {
	   	  include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
	   }
	if (!function_exists('obtain_users_online($forum_id = 0)'))
	   {
	   	  include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
	   }
	if (!function_exists('obtain_users_online_string($forum_id = 0)'))
	   {
	   	  include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
	   }
Oder in der ucp.php bzw. in den anderen Dateien

Code: Alles auswählen

include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
Allerdings kommt, wenn ich versuche, die functions_display zu includen,
immer ein Fehler.
Fatal error: Cannot redeclare display_forums() (previously declared in /var/www/web75/html/includes/functions_display.php:22) in /var/www/web75/html/includes/functions_display.php on line 459

Vielleicht hat ja jemand von euch eine Idee und kennst sich mit der Forensoftware phpBB3 besser aus als ich. Mit phpBB3 hab ich mich noch nie so intensiv befasst, wie jetzt, deswegen komm ich wohl auch nicht immer alleine weiter.

Wenn ihr mir helfen könntet, wäre ich euch sehr dankbar, denn ansonsten schaff ich das ganze wohl nicht mehr.

Ich bedanke mich schonmal im voraus und verbleibe

mit freundlichen Grüßen,
Alexander P.
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Sry für Doppelpost!

Weiß keiner eine Lösung?

Wenn mir jemand helfen kann, dann würde ich mich sehr freuen, wenn wenn derjenige mir ein paar Tipps geben kann.

Ich bedanke mich schonmal im voraus.

Grüße,
Alex
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Cannot redeclare display_forums() --> Diese Funktion wurde bereits definiert.

Workaround:

benutze anstelle von include ( xxxx ) ---> include_once ( xxxx )

Lesestoff: http://de2.php.net/manual/de/function.include-once.php
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Dr.Death hat geschrieben:Cannot redeclare display_forums() --> Diese Funktion wurde bereits definiert.

Workaround:

benutze anstelle von include ( xxxx ) ---> include_once ( xxxx )

Lesestoff: http://de2.php.net/manual/de/function.include-once.php
Habe ich schon versucht, funktioniert aber nicht.
Es wird zwar kein Fehler mehr angezeigt, allerdings bleiben die Zahlen weg...
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Dann stell doch mal Deinen Code als TXT Datei bereit....
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Ok, bitte:

overall_header.html
functions.php
(ab Zeile 3470)
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Hat jemand schon eine Lösung?

Wenn ja, würde ich mich freuen, wenn mir jemand helfen könnte.

Vielen Dank schon einmal!

Grüße,
Alex
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

in der function.php sollte es so aussehen:

Code: Alles auswählen

/* Userbox Start */

	if (!function_exists('get_user_avatar')) 
	{ 
		include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
	}

	$total_posts	= $config['num_posts'];
	$total_topics	= $config['num_topics'];
	$total_users	= $config['num_users'];

	$rank_title = $rank_img = '';
	get_user_rank($user->data['user_rank'], $user->data['user_posts'], $rank_title, $rank_img, $rank_img_src);

	$userbox_online_users = 'Besucher online: <b>'.$online_users['total_online'].'</b><br>';
	$userbox_online_users .= 'Davon '.$online_users['visible_online'].' Registrierte';

	if ($config['load_online_guests'])
	{
			$userbox_online_users .= ', '.$online_users['hidden_online'].' Unsichtbare';
		$userbox_online_users .= ' und '.$online_users['guests_online'].' Gäste.';
	} 
	else 
	{
		$userbox_online_users .= ' und '.$online_users['hidden_online'].' Unsichtbare.';
	}
	   
/* Userbox End */
Was aber noch absolut schlecht ist: Hardcodierte Sprache ;-(

Da solltest Du noch dran arbeiten.
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Dr.Death hat geschrieben: Was aber noch absolut schlecht ist: Hardcodierte Sprache ;-(

Da solltest Du noch dran arbeiten.
Danke für deinen Tipp.
Ich weiß zwar nicht, was du mit "Hardcodierte Sprache" genau meinst, aber ich bin halt kein Experte.
Ich wollte mich mal dran versuchen, um mich weiterzubilden.
In den nächsten 2 Jahren werde ich aber besser werden, da ich jetzt auf der FOS bin.

Trotz alledem weiß ich noch nicht, wie ich das Problem in den Griff kriege..
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hardcodierte Sprache:

Code: Alles auswählen

$userbox_online_users .= ' und '.$online_users['guests_online'].' Gäste.';
Mit Sprachvariablen:

Code: Alles auswählen

$userbox_online_users .= $user->lang['AND']. ' ' . $online_users['guests_online'] . ' ' . $user->lang['GUESTS'];
Dies ist nur ein Beispiel. Besser ist in diesem fall mit sprintf(); zu arbeiten
Antworten

Zurück zu „[3.0.x] Mod Support“