Problem mit Header und get_user_avatar!

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
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

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);
An sich kein schlechter Vorschlag, nur leider wird die common.php
immer vor functions_display.php eingebunden. Von daher..

Um den Fehler zu verhindern, müsste man wohl alle Vorkommen von

Code: Alles auswählen

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
entweder auskommentieren oder ersetzen durch ::

Code: Alles auswählen

include_once($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Mit "alle" meinst du, das man das in allen Dateien machen muss, wo die functions_display eigenbunden wurde?
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Ja schon, aber versuch erstmal folgendes in der common.php

FIND

Code: Alles auswählen

require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
AFTER, ADD

Code: Alles auswählen

if (!function_exists('get_user_avatar'))
{
	include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
}
Ich hoffe, es hilft! Bis die Tage / easy
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Wieder der gleiche 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 ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Ja, dann s.o.
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

EDIT:

Ich habe was mit Google gefunden:

Klick mich!
Da hatte wohl jemand das gleiche Problem, und da hat wohl jemand eine Lösung gepostet.
Ich probiere das mal aus.

EDIT 2:

Es scheint zu funktionieren.
Laut der Lösung in dem oben geposteten Beitrag hab ich folgendes gemacht:

functions.php

FIND

Code: Alles auswählen

$template->assign_vars(array(
ADD AFTER:

Code: Alles auswählen

// Userbox Start
'USERBOX_AVATAR'      => get_userbox_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
// Userbox End
FIND ADD BEFORE:

Code: Alles auswählen

/*
* Userbox Avatar Start
*/

function get_userbox_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USERBOX_AVATAR')
{
    global $user, $config, $phpbb_root_path, $phpEx;

    if (empty($avatar) || !$avatar_type)
    {
        return '';
    }

    $avatar_img = '';

    switch ($avatar_type)
    {
        case AVATAR_UPLOAD:
            $avatar_img = $phpbb_root_path . "download/file.$phpEx?avatar=";
        break;

        case AVATAR_GALLERY:
            $avatar_img = $phpbb_root_path . $config['avatar_gallery_path'] . '/';
        break;
    }

    $avatar_img .= $avatar;
    return '<img src="' . $avatar_img . '" width="' . $avatar_width . '" height="' . $avatar_height . '" alt="' . ((!empty($user->lang[$alt])) ? $user->lang[$alt] : $alt) . '" />';
} 
/*
* Userbox Avatar End
*/
Weiß jemand, wie man den Rank (Titel und Bild) anzeigen lassen kann?
In den Dateien des phpBB hab ich noch nichts gefunden..
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
igorw
Mitglied
Beiträge: 107
Registriert: 02.08.2008 13:04
Wohnort: Winterthur

Beitrag von igorw »

easygo, dein einwand ist korrekt, deine alternative ist jedoch meinem vorschlag gleichwertig. Ausser dem verringerten memoryverbrauch.

Ich würde den include (mit function_exists) in die page_header() funktion einbinden, es ist unwarscheinlich dass nach dem page_header() aufruf noch ein include der datei vorkommt.

Meiner meinung nach wäre das eine elegantere lösung als die mit der neuen funktion. :)
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

eviL<3 hat geschrieben:easygo, dein einwand ist korrekt, deine alternative ist jedoch meinem vorschlag gleichwertig. Ausser dem verringerten memoryverbrauch.

Ich würde den include (mit function_exists) in die page_header() funktion einbinden, es ist unwarscheinlich dass nach dem page_header() aufruf noch ein include der datei vorkommt.

Meiner meinung nach wäre das eine elegantere lösung als die mit der neuen funktion. :)
Danke für eure Hilfe.
Also das ganze funktioniert und das Problem mit den Rängen hab ich auch hingekriegt.

Ich verstehe nicht ganz wie du das meinst.
Wie würdest du das ganze einbinden?

Momentan sind Ränge und Avatar mit einer neuen Funktion eingebaut.
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

eviL<3 hat geschrieben:easygo, dein einwand ist korrekt, deine alternative ist jedoch meinem vorschlag gleichwertig. Ausser dem verringerten memoryverbrauch.

Ich würde den include (mit function_exists) in die page_header() funktion einbinden, es ist unwarscheinlich dass nach dem page_header() aufruf noch ein include der datei vorkommt.

Meiner meinung nach wäre das eine elegantere lösung als die mit der neuen funktion. :)
Stimmt, das sollte den Versuch wert sein. Such mal in der functions.php nach ::

Code: Alles auswählen

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
und setz den folgenden Code oben drüber.

Code: Alles auswählen

	if (!function_exists('get_user_avatar')) 
	{ 
	   include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
	}
Benutzeravatar
alexanderzwei
Mitglied
Beiträge: 173
Registriert: 04.11.2004 17:06
Wohnort: Oberursel (Taunus)
Kontaktdaten:

Beitrag von alexanderzwei »

Vielen, vielen Dank nochmals für eure Hilfe, was würde ich nur ohne euch tun?! :grin:

Auch das scheint zu funktionieren.
Bei Avatar und auch bei dem Rang.

Ihr habt wahrscheinlich recht.

Diese Lösung ist nicht so Memorylastig...

Das ganze sieht jetzt so aus: (nur in functions.php etwas geändert:)

Code: Alles auswählen

// Userbox Start

	if (!function_exists('get_user_avatar')) 
	   { 
		  include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
	   }
	if (!function_exists('get_user_rank')) 
	   { 
		  include($phpbb_root_path . 'includes/functions_display.' . $phpEx); 
	   }
	// Userbox End

	// The following assigns all _common_ variables that may be used at any point in a template.
		
		$user->add_lang('mods/geomap');
		
		$rank_title = $rank_img = '';
      	get_user_rank($user->data['user_rank'], $user->data['user_posts'], $rank_title, $rank_img, $rank_img_src);
		
	$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']),
		'WELCOME_BACK'		  => 'Willkommen zurück, <b>'. $user->data['username'].'</b>!',
		'USERBOX_RANK_IMG'	  => $rank_img,
		'USERBOX_RANK_TITLE'  => $rank_title,
		
		// Userbox End
Vielleicht ist das Leben ja ein Integer. Wenn man negativ genug denkt, wirds irgendwann positiv..
Antworten

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