Beiträge: 59
Themen: 9
Registriert seit: 15.09.2012
MyBB-Version: 1.8.22
Hallo ihr Lieben,
ich stehe mal wieder vor etwas, das ich nicht selbst gelöst bekomme. Und zwar hat das mybb 1.8.3 ja die tolle Funktion, dass man über
Konfiguration > Foreneinstellung > Profil ein Standard-Avatar für diejenigen einstellen kann, die kein Avatar haben. Das funktioniert mit einer URL, (in meinem Fall
images/.WORLD/default_avatar.png) auch sehr gut.
Allerdings wird dann in jedem einzelnen Theme/Design logischerweise das gleiche Standard-Avatar angezeigt. Was ich jetzt gerne hätte wäre, dass man in Theme A Avatar A sieht, in Theme B Avatar B und so weiter.
Probiert hab ich es schon mit folgenden drei Alternativen, die aber nicht geklappt haben:
- {$theme['imgdir']}/default_avatar.png
- {$theme}/default_avatar.png
- {theme}/default_avatar.png
Hat noch jemand eine andere Idee?
Liebe Grüße,
Shanee
Beiträge: 638
Themen: 92
Registriert seit: 31.08.2010
MyBB-Version: 1.8.11
Hi,
die Variable $theme wird da nicht ausgewertet, da diese nach der Abfrage des Pfades escaped wird.
Du müsstest dir ggf. ein Plugin bauen wo man in jedem Theme den Avatar angibt oder ähnliches.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
06.12.2014, 19:55
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2014, 19:55 von Jockl.)
Du könntest mal
dieses Plugin ausprobieren. Vielleicht funktioniert es damit.
Zitat:Hinweis 2: Das Plugin weist Gästen und Benutzern ohne Avatar automatisch im Postbit einen Standard-Avatar zu.
Beiträge: 59
Themen: 9
Registriert seit: 15.09.2012
MyBB-Version: 1.8.22
Danke ihr beiden für die rasche Antwort. Leider war das Plugin nicht das, was ich gesucht hab und die anderen Plugins, die ich bislang gefunden habe, waren alle noch für 1.6.x bzw. arbeiten auch nur mit einem Avatar für alle Themes. Aber da lässt sich sicher noch was finden
Liebe Grüße,
Shanee
Beiträge: 1.401
Themen: 25
Registriert seit: 11.10.2013
MyBB-Version: 1.8.*
07.12.2014, 13:12
(Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2014, 14:31 von SvePu.)
Du könntest mit dem Plugin "PHP in Templates" arbeiten, allerdings müsstest du die entsprechenden Templates der einzelnen Themes alle manuell anpassen.
_________________
EDIT: andere Variante (weniger aufwändig, dafür Core Eingriffe notwendig)
Anpassung der
/inc/functions.php
Suche:
PHP-Code:
function format_avatar($avatar, $dimensions = '', $max_dimensions = '')
{
global $mybb;
static $avatars;
if(!isset($avatars))
{
$avatars = array();
}
if(!$avatar)
{
// Default avatar
$avatar = $mybb->settings['useravatar'];
$dimensions = $mybb->settings['useravatardims'];
}
Ersetze den Teil durch:
PHP-Code:
function format_avatar($avatar, $dimensions = '', $max_dimensions = '')
{
global $mybb, $theme;
static $avatars;
if(!isset($avatars))
{
$avatars = array();
}
if(!$avatar)
{
// Default avatar
if (empty($mybb->settings['useravatar'])){
$avatar = $theme['imgdir']."/default_avatar.png";
} else {
$avatar = $mybb->settings['useravatar'];
}
$dimensions = $mybb->settings['useravatardims'];
}
Lösche im ACP in Einstellungen > Profil den Pfad zum Standard-Avatar, so dass das Feld leer ist und speichere die Settings.
Jetzt wird der Standard-Avatar (default_avatar.png) aus dem jeweiligen Theme Image Ordner geladen.
In der ACP Benutzer Übersicht wird der Standard-Avatar allerdings leider nicht mehr dargestellt.
Beiträge: 59
Themen: 9
Registriert seit: 15.09.2012
MyBB-Version: 1.8.22
Oh wow, vielen Dank für deine Mühe! Ich werd das im Laufe des Tages gleich mal ausprobieren
Danke!
Beiträge: 427
Themen: 45
Registriert seit: 11.08.2012
MyBB-Version: 1.8.36
04.02.2015, 13:37
(Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2015, 13:48 von melancholia.)
Das funktioniert wunderbar
Einziger Nachteil ist nun, dass in der Benutzerübersicht im ACP jeweils ein kaputtes Bild angezeigt wird. Beim Versuch, das Standardavatar auch dort angezeigt zu bekommen, bin ich leider gescheitert.
Der Teil, um den es in der
admin/modules/user/users.php gehen müsste, ist folgender:
PHP-Code:
if($user['avatar'] && my_substr($user['avatar'], 0, 7) !== 'http://' && my_substr($user['avatar'], 0, 8) !== 'https://')
{
$user['avatar'] = "../{$user['avatar']}";
}
if($view['view_type'] == "card")
{
$scaled_avatar = fetch_scaled_avatar($user, 80, 80);
}
else
{
$scaled_avatar = fetch_scaled_avatar($user, 34, 34);
}
if(!$user['avatar'])
{
$user['avatar'] = "../".$mybb->settings['useravatar'];
}
$user['view']['avatar'] = "<img src=\"".htmlspecialchars_uni($user['avatar'])."\" alt=\"\" width=\"{$scaled_avatar['width']}\" height=\"{$scaled_avatar['height']}\" />";
Weiss hier vielleicht jemand Rat?
Beiträge: 2.041
Themen: 10
Registriert seit: 28.06.2007
MyBB-Version: 1.8.x
Da du in den Settings keinen Standard-Avatar mehr eingetragen hast, müsstest du diese Zeile ändern:
PHP-Code:
$user['avatar'] = "../".$mybb->settings['useravatar'];
zB. in:
PHP-Code:
$user['avatar'] = "../images/default_avatar.png";
Beiträge: 427
Themen: 45
Registriert seit: 11.08.2012
MyBB-Version: 1.8.36
Vielen Dank
So einfach kann's manchmal sein.
Für alle, die diese kleine Änderung auch gerne vornehmen wollen - die Zeile kommt 2x in der Datei vor.