1. Home
  2. Forum
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Mitgliedersuche
  4. Filebase
  5. Sonstiges
    1. FAQ
    2. Projekte
  • Anmelden
  • Registrieren
  • Suche
Wie mache ich was?
  • Alles
  • Wie mache ich was?
  • Artikel
  • Seiten
  • Dateien
  • Forum
  • FAQ
  • Erweiterte Suche
  1. simon-dev
  2. Artikel
  3. WoltLab
  4. Wie mache ich was?

HowTo: Benutzerprofilfeld mit Bild in der MessageSidebar

  • Simon
  • 26. April 2022 um 09:47
  • 2.761 Mal gelesen

Zuletzt wurde ich gefragt, wie man ein Benutzerprofilfeld mit einem Bild in der MessageSidebar eines mit der WoltLab Suite betriebenes Forum erstellen kann. Dies kommt unter anderem in meinem Projekt "ScumWorld.de" zum Einsatz.

Inhaltsverzeichnis [VerbergenAnzeigen]
  1. CSS anlegen
  2. PHP Klasse hinterlegen
  3. Tooltip mobil?
  4. Mögliche Probleme & Ursachen

In der letzten Zeit ist hier nicht viel passiert. Privat bin ich momentan einfach ziemlich eingebunden, was die Arbeiten an neuen und auch weiterentwickelten Plugins erschwert. Doch möchte ich heute zeigen, wie man ein Benutzerprofilfeld mit einem Bild in der MessageSidebar einfügt. Dabei wird auf den Feldtyp "select" zugegriffen, wo es verschiedene Auswahloptionen gibt, die von euch festgelegt werden sollten. Außerdem wird eine PHP-Klasse hinterlegt, die die Ausgabe regelt.

CSS anlegen

Die jeweiligen Logos habe ich als Sprite mit diesem Generator zusammengefügt:

Neuerungen in WoltLab Suite 6.2: Grid & List Views - WoltLab®
Mit diesem Blog-Artikel beginnt unsere Artikel-Serie, in der wir in den nächsten Wochen die wichtigsten Neuerungen und Verbesserungen in WoltLab Suite 6.2…
www.woltlab.com

Dieser unterstützt allerdings nur maximal 20 Bilder, deswegen hier eine Alternative, die das Gleiche tut:

https://spritegen.website-performance.org/

Dort muss dann lediglich in der CSS Datei (die unter "style" liegen muss) der Pfad angepasst sowie eine CSS Class Prefix (im Code-Beispiel unten ist dies "logo") hinterlegen werden.

PHP Klasse hinterlegen

Die PHP-Klasse muss unter lib\system\option\user eingefügt werden:

PHP
<?php
namespace wcf\system\option\user;
use wcf\data\user\option\UserOption;
use wcf\data\user\User;
use wcf\util\StringUtil;


class LOGOOptionOutput implements IUserOptionOutput {
/**
* @see    \wcf\system\option\user\IUserOptionOutput::getOutput()
*/
public function getOutput(User $user, UserOption $option, $value) {
if (empty($value)) return '';


return '<span class="logo logo-'.$value.' jsTooltip logo" title="'.$value.'"></span>';
}
}
Alles anzeigen

Entsprechende "LOGO" bzw. "logo" müssen dann noch angepasst werden, je nachdem, wie CSS und Tooltip benannt werden.

Tooltip mobil?

Da gibt es wohl widersprüchliche Aussagen drüber. Wer natürlich darauf verzichten möchte und lieber eine kleine Beschreibung (die dann dauerhaft sichtbar wäre) hinterlegen will, kann das auch gerne tun. Zum Beispiel dann einfach hinter dem schließenden span-Tag folgendes einfügen und den Tooltip Part aus dem obigen Code entfernen:

HTML
<small>DEINE BESCHREIBUNG</small>

Mögliche Probleme & Ursachen

Da hier und da doch der eine oder andere User von euch Probleme mit der Einbindung dessen hat, hier ein paar Ursachen und ggf. auch ihre Behebung:

  • Mein Bild wird nicht im Profilfeld angezeigt:
    • Die CSS-Datei liegt nicht im Verzeichnis /style/
    • Pfad in der CSS-Datei stimmt nicht (muss manuell überprüft werden und ist im Code ganz oben deklariert: background-image: url('../images/logo.png');)
    • Im ACP muss unter Nachrichten -> Seitenleiste -> Ausgewählte Profilfelder der Autoren anzeigen das Profilfeld ausgewählt werden

Sollte es da noch offene Fragen geben, gerne her damit. :)

  • Nächster Artikel HowTo: Social Media Slideout 2.0.0

Kategorien

  1. Allgemein 28
  2. WoltLab 23
  3. Plugin-Releases 11
  4. Empfehlungen 2
  5. Tipps & Tricks 8
  6. Wie mache ich was? 2
  7. Server-Administration 4
  8. Technikecke 1
  9. Gaming 5
  10. Sonstiges (Blog) 2
  11. Filter zurücksetzen
  1. Datenschutzerklärung
  2. Impressum
  • Facebook
  • Twitter / X
  • Github
Community-Software: WoltLab Suite™