Seite 2 von 3

Verfasst: 02.08.2008 14:19
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);

Verfasst: 02.08.2008 14:29
von alexanderzwei
Mit "alle" meinst du, das man das in allen Dateien machen muss, wo die functions_display eigenbunden wurde?

Verfasst: 02.08.2008 14:38
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

Verfasst: 02.08.2008 14:40
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

Verfasst: 02.08.2008 15:04
von easygo
Ja, dann s.o.

Verfasst: 02.08.2008 15:08
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..

Verfasst: 02.08.2008 16:25
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. :)

Verfasst: 02.08.2008 16:30
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.

Verfasst: 02.08.2008 16:44
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); 
	}

Verfasst: 02.08.2008 17:00
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