Farbige Benutzernamen im WBB 4.0

  • WBB 4

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

Hier mal eine etwas ältere Anleitung, die vor dem Erscheinen des entsprechenden Plugins für das WBB 4.0 geschrieben wurde. Im WBB 4.1 gehört dieser Effekt mittlerweile zum Standardumfang. Vielleicht kann ja noch jemand davon in irgendeiner Art profitieren.

Heute befassen wir uns mit einer Frage aus dem WoltLab-Community-Forum nach der farbigen Darstellung von Benutzernamen in Beiträgen, auf Profilseiten und in der Mitgliederliste.

Hierzu ist es grundsätzlich erforderlich, eigene Versionen der Templates messageSidebar, user und userInformationHeadline anzulegen.

Mein Beispielcode zielt darauf ab, Mitglieder der Gruppe 4 (Administratoren) in rot, Mitglieder der Gruppe 7 (beliebige selbsterstellte Gruppe) in blau und Mitglieder der Gruppe 3 (registrierte Benutzer) in grün anzeigen zu lassen. Neben der Farbe lassen sich natürlich auch andere Formatierungen zuweisen, so dass Eurer Phantasie eigentlich keine Grenzen gesetzt sind.

Beginnen wir mit den Änderungen für die Beitragsseitenleiste im Template messageSidebar:

Das Original:

Smarty-Template: 24

  1. <span itemprop="name">{$username}</span>


wird zu:

Smarty-Template: 24

  1. <span {assign var="groupIDs" value=$userProfile->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if} {if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if} itemprop="name">{$username}</span>


Im nächsten Schritt wird für die Profilseite (Template user)aus:

Smarty-Template: 109

  1. <h1>{$user->username}{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h1>


die geänderte Version:

Smarty-Template: 109

  1. <h1><span {assign var="groupIDs" value=$user->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if} {if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if}>{$user->username}</span>{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h1>


Zum guten Schluss dann noch die Mitgliederliste (Template userInformationHeadline)mit folgender Änderung:

Smarty-Template: 2

  1. <h3><a href="{link controller='User' object=$user}{/link}">{$user->username}</a>{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h3>


wird zu:

Smarty-Template: 2

  1. <h3><a {assign var="groupIDs" value=$user->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if}{if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if}href="{link controller='User' object=$user}{/link}">{$user->username}</a>{if MODULE_USER_RANK && $user->getUserTitle()} <span class="badge userTitleBadge{if $user->getRank() && $user->getRank()->cssClassName} {@$user->getRank()->cssClassName}{/if}">{$user->getUserTitle()}</span>{/if}</h3>



Als letzter Hinweis sei noch gesagt, dass die Reihenfolge der angegebenen Deklarationen (zuerst Administratoren, dann weitere Gruppen je nach "Gewichtung" und zum Schluss Registrierte Benutzer) unbedingt eingehalten werden muss.

Und nun wie immer viel Spaß beim Ausprobieren.

Hier noch einige Ergänzungen, die ich auf Nachfrage erarbeitet habe:

Autor des letzten Beitrags (Template boardNodeList) in der Forenübersichtsseite:

Smarty-Template: 61

  1. <a {assign var="groupIDs" value=$boardNode->getLastPost()->getUserProfile()->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if} {if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if}href="{link controller='User' id=$boardNode->getLastPost()->lastPosterID title=$boardNode->getLastPost()->lastPoster}{/link}" class="userLink" data-user-id="{@$boardNode->getLastPost()->lastPosterID}">{$boardNode->getLastPost()->lastPoster}</a>


Seitenleistenbox "Letzte Beiträge" (dahboardBoxLatestPosts)

Smarty-Template: 10

  1. <small>{if $latestPost->lastPosterID}<a {assign var="groupIDs" value=$latestPost->getLastPosterProfile()->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if} {if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if}href="{link controller='User' object=$latestPost->getLastPosterProfile()->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$latestPost->getLastPosterProfile()->userID}">{$latestPost->lastPoster}</a>{else}{$latestPost->lastPoster}{/if} - {@$latestPost->lastPostTime|time}</small>


Letzte Aktivitäten Seitenleistenbox (dahboardBoxRecentActivitySidebar):

Smarty-Template: 7

  1. <h3><a {assign var="groupIDs" value=$event->getUserProfile()->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if} {if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if}href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a><small> - {@$event->time|time}</small></h3>


Seitenleistenbox "Angemeldet als" (dashboardBoxSignedInAs):

Smarty-Template: 9

  1. <h3><a {assign var="groupIDs" value=$__wcf->user->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if}{if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if}href="{link controller='User' object=$__wcf->user}{/link}">{$__wcf->user->username}</a></h3>


Letzte Aktivitäten im Dashboard (recentActivityListItem):

Smarty-Template: 8

  1. <h3><a {assign var="groupIDs" value=$event->getUserProfile()->getGroupIDs()}{if 4|in_array:$groupIDs}style="color:red;"{/if} {if 7|in_array:$groupIDs}style="color:blue;"{/if}{if 3|in_array:$groupIDs}style="color:green;"{/if}href="{link controller='User' object=$event->getUserProfile()}{/link}" class="userLink" data-user-id="{@$event->getUserProfile()->userID}">{$event->getUserProfile()->username}</a><small> - {@$event->time|time}</small></h3>





Gruß norse
Über den Autor
Keine Angabe

1.828 mal gelesen

Kommentare 0

Es wurden keine Einträge gefunden.