Seite 1 von 3

Problem mit Header und get_user_avatar!

Verfasst: 31.07.2008 21:46
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.

Ich würde dazu gerne noch das Avatar des jeweiligen Benutzers einfügen.

Dazu habe ich im template "overall_header.html" folgendes stehen:

Code: Alles auswählen

<td width="140" rowspan="2" align="left"><!-- IF AVATAR -->{AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF --></td>
                    <td width="253">
Dann habe ich mir aus der ucp_profile.php folgendes rausgesucht:

Code: Alles auswählen

$template->assign_vars(array(
					'AVATAR'		=> get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height'])
				));
Füge ich diesen Code unter dem page_header in der index.php ein, funktioniert auch alles, allerdings muss ich das auch bei allen anderen Dateien im root Verzeichnis tun. (außer bei common, config, cron und style.php).

Bei einigen funktioniert das auch, bei anderen, sowie auch bei ucp.php kriege ich eine fehlermeldung, sobald ich eine Unterseite aufrufe. (bei ucp.php z.B. das Tab "Profil").

Jetzt meine Frage:
Wie kriege ich es hin, das ich im Header das Avatar auf allen Seiten angezeigt kriege?

Nachtrag: Wie krieg ich das ganze auch mit dem Benutzernamen hin?

Ich würde mich um eine Antwort freuen.

Vielen Dank schon einmal.

Verfasst: 01.08.2008 21:59
von alexanderzwei
Sorry für Doppelpost,
mache ich wirklich ungerne, aber kann mir wirklich keiner helfen?

Es ist wichtig, das ich das ganze bald fertig programmiert habe, da wir auf das neue Board umziehen wollen von einem Board, das bei foren-city gehostet wird.
Da dies bald passieren kann, muss ich fertig werden.
Und es steht noch ein wenig Arbeit an, allerdings komme ich nicht weiter, wenn ich das Problem nicht behoben habe.

Wenn mir jemand helfen kann, bitte ich darum, sich bei mir zu melden.

Ich bedanke mich schon einmal im voraus und hoffe das sich mir einer erbarmt. ;)

Re: Problem mit Header und get_user_avatar!

Verfasst: 02.08.2008 11:46
von easygo
alexanderzwei hat geschrieben:Dann habe ich mir aus der ucp_profile.php folgendes rausgesucht:

Code: Alles auswählen

$template->assign_vars(array(
					'AVATAR'		=> get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height'])
				));
Würd die Zeile in die functions.php setzen und das assign umbenennen (also statt AVATAR z.B. USERBOX_AVATAR),
Na ja, und der beste Platz für dein Vorhaben ist vermutlich das schon vorhandene array:

Code: Alles auswählen

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(

Re: Problem mit Header und get_user_avatar!

Verfasst: 02.08.2008 11:54
von alexanderzwei
easygo hat geschrieben:
alexanderzwei hat geschrieben:Dann habe ich mir aus der ucp_profile.php folgendes rausgesucht:

Code: Alles auswählen

$template->assign_vars(array(
					'AVATAR'		=> get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height'])
				));
Würd die Zeile in die functions.php setzen und das assign umbenennen (also statt AVATAR z.B. USERBOX_AVATAR),
Na ja, und der beste Platz für dein Vorhaben ist vermutlich das schon vorhandene array:

Code: Alles auswählen

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
Okay, danke für deinen Tipp.

Ich probier das ganze mal aus.^^
Melde mich dann gleich wieder.

EDIT: Auf der Startseite funktioniert das alles auch, allerdings nicht auf anderen Seiten.

Code: Alles auswählen

'USERBOX_USERNAME'	  => $user->data['username'],
		'WELCOME_BACK'		  => 'Willkommen zurück,',
hingegen funktioniert überall hervorrangend.

Das ganze sieht jetzt so aus: (functions.php)

Code: Alles auswählen

$template->assign_vars(array(
	
		// Userbox Start
		
		'USERBOX_AVATAR'      => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
		'USERBOX_USERNAME'	  => $user->data['username'],
		'WELCOME_BACK'		  => 'Willkommen zurück,',
		
		// Userbox End

...
overall_header.html:

Code: Alles auswählen

<!-- IF AVATAR -->{USERBOX_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF -->
EDIT2: Nehme ich das IF aus dem Template raus, funktioniert es überall. Wieso das?

Weiß jemand, wieso das Avatar nur auf der Startseite geht?

Re: Problem mit Header und get_user_avatar!

Verfasst: 02.08.2008 12:38
von easygo
alexanderzwei hat geschrieben:overall_header.html:

Code: Alles auswählen

<!-- IF AVATAR -->{USERBOX_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF -->
EDIT2: Nehme ich das IF aus dem Template raus, funktioniert es überall. Wieso das?
Muss jetzt natürlich heißen ::

Code: Alles auswählen

<!-- IF USERBOX_AVATAR -->{USERBOX_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF -->

Re: Problem mit Header und get_user_avatar!

Verfasst: 02.08.2008 12:53
von alexanderzwei
easygo hat geschrieben:
alexanderzwei hat geschrieben:overall_header.html:

Code: Alles auswählen

<!-- IF AVATAR -->{USERBOX_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF -->
EDIT2: Nehme ich das IF aus dem Template raus, funktioniert es überall. Wieso das?
Muss jetzt natürlich heißen ::

Code: Alles auswählen

<!-- IF USERBOX_AVATAR -->{USERBOX_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif" alt="" /><!-- ENDIF -->
Ach lol.
Ich bin ja auch blöd. :D

Solche Fehler kann ich hassen.

Danke nochmals. Ich bin gerade am weiterprogrammieren.

Allerdings ein neues Problem.

Auf manchen Seiten, wie z.B. die Erweiterte Suche, oder auch im UCP unter "Profil" folgender Fehler:

Fatal error: Call to undefined function get_user_avatar() in /var/www/web75/html/includes/functions.php on line 3476

Re: Problem mit Header und get_user_avatar!

Verfasst: 02.08.2008 13:19
von easygo
alexanderzwei hat geschrieben:Auf manchen Seiten, wie z.B. die Erweiterte Suche, oder auch im UCP unter "Profil" folgender Fehler:

Fatal error: Call to undefined function get_user_avatar() in /var/www/web75/html/includes/functions.php on line 3476
UCP würd ich dann erstmal komplett ausklammern (mangels Ideen)

Als Beispiel so ::

<!-- IF not S_IN_UCP -->

...

<!-- ENDIF -->

und der search.php die Funktion an die Hand geben.

Code: Alles auswählen

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
direkt unter ::

Code: Alles auswählen

include($phpbb_root_path . 'common.' . $phpEx);
____________________

Aber na ja, am besten und einfachsten wärs wohl, die common.php zu erweitern. Such mal dort nach ::

Code: Alles auswählen

require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
und setz die folgende Zeile drunter ::

Code: Alles auswählen

require($phpbb_root_path . 'includes/functions_display.' . $phpEx);

Verfasst: 02.08.2008 13:41
von alexanderzwei
Danke für die Antwort.

hab das in die search.php eingefügt und es geht.

Im UCP fehlte die Zeile.

Ich habe diese jetzt auch hinzugefügt, und es geht überall außer bei den Privaten Nachrichten.
Das mit der common.php war gut gedacht, aber ich schätze, das funktioniert nicht.

In beiden Fällen:
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

Da der Persönliche Bereich so oder so das beinhaltet, was in der Userbox steht, denke ich mal, das ich die Userbox im UCP deaktiviere.

EDIT: Auch wenn ich die Userbox deaktiviere, kommt der Fehler

Fatal error: Call to undefined function get_user_avatar() in /var/www/web75/html/includes/functions.php on line 3476

trotzdem.

Verfasst: 02.08.2008 13:58
von igorw
Versuch das:

Code: Alles auswählen

require($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Mit folgendem zu ersetzen:

Code: Alles auswählen

require_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);

Verfasst: 02.08.2008 14:14
von alexanderzwei
eviL<3 hat geschrieben:Versuch das:

Code: Alles auswählen

require($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Mit folgendem zu ersetzen:

Code: Alles auswählen

require_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Auch das scheint leider nicht zu klappen.

Der Fehler ist nach wie vor..