Beiträge bestimmter Benutzergruppen optisch hervorheben

  • WBB 4

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

Inspiriert von dieser Anfrage im WoltLab-Community-Forum hier mal wieder eine kleine Anleitung:

Heute geht es darum, im WBB4 Beiträge von bestimmten Benutzergruppen (hier konkret: Teammitgliedern) optisch von den Beiträgen anderer Benutzer abzuheben. Zu diesem Zweck habe ich zunächst eine eigene Version des Templates threadPostList erstellt (bzw. in meinem Fall die bereits wegen des Ausblendens der Beiträge erstellte Version aufgerufen). Im nächsten Schritt wird dann Zeile 43 des Originals:

Smarty-Template: 43

  1. <article class="wbbPost message messageSidebarOrientation{@$__wcf->getStyleHandler()->getStyle()->getVariable('messageSidebarOrientation')|ucfirst} dividers jsClipboardObject jsMessage{if $thread->isDeleted || $post->isDeleted} messageDeleted{/if}{if $thread->isDisabled || $post->isDisabled} messageDisabled{/if}"


durch folgende Zeile ersetzt:

Smarty-Template: 43

  1. <article class="wbbPost {assign var="groupIDs" value=$userProfile->getGroupIDs()}{if 4|in_array:$groupIDs}adminPost teamPost{/if} {if 5|in_array:$groupIDs}moderatorPost teamPost{/if} {if 6|in_array:$groupIDs}supermoderatorPost teamPost{/if} message messageSidebarOrientation{@$__wcf->getStyleHandler()->getStyle()->getVariable('messageSidebarOrientation')|ucfirst} dividers jsClipboardObject jsMessage{if $thread->isDeleted || $post->isDeleted} messageDeleted{/if}{if $thread->isDisabled || $post->isDisabled} messageDisabled{/if}"


Die Änderung bewirkt, dass dem Beitrag zwei zusätzliche Klassen verliehen werden, wenn er von einem Moderator (.moderatorPost), einem Supermoderator (.supermoderatorPost) oder einem Administrator (.adminPost) erstellt wurde. Zusätzlich zu den bereits genannten Klassen erhält jeder Beitrag, der von einem Mitglied dieser drei Gruppen geschrieben wurde, eine weitere Klasse (.teamPost).

Der Rest ist dann reines CSS. Wichtig ist noch, dass die CSS-Deklarationen in hierarchischer Reihenfolge eingetragen werden, also zunächst alle Angaben für .teamPost (hier können Deklarationen erstellt werden, die für alle drei Gruppen einheitlich gelten sollen), danach dann .moderatorPost, .supermoderatorPost und last not least .adminPost mit jeweils eigenen Deklarationen. So ist sichergestellt, dass bei Doppelmitgliedschaften in den Gruppen die Deklarationen für die jeweils "ranghöhere" Gruppe berücksichtigt werden und eigene Einstellungen für eine Gruppe ggf. die Teameinstellungen überschreiben.

Hier noch mal einige CSS-Beispiele, mit denen ich getestet hatte:

CSS-Quellcode

  1. .teamPost .messageContent {background-color:grey !important;}
  2. .teamPost .messageText {color:blue;}
  3. .teamPost .messageContent h1 {color:orange !important;}
  4. .adminPost .messageContent {background-color:green !important;}
  5. .adminPost .messageText {color:red;}
  6. .adminPost .messageText a {color:red;}
  7. .adminPost .messageContent h1 {color:yellow !important;}
  8. .adminPost > div:not(messageContent) {background-color:cyan;}


Und nun lasst Eurer Phantasie und Kreativität bei der Gestaltung der Teambeiträge einfach freien Lauf. Mit den richtigen Deklarationen ist nahezu alles möglich.




Gruß norse
Über den Autor
Keine Angabe

1.962 mal gelesen

Kommentare 7

  • Nanum -

    Funktioniert nach wie vor.

  • sofix -

    Wäre das auch mit dem neuen WSC möglich?

  • Panzerde -

    Sonst noch mal dazu gesagt gute arbeit

    Norse freut mich immer wieder etwas von dir zu lernen/ oder zu verwenden

  • Panzerde -

    Kann man auch die Shoutbox mit einbeziehen?.

    Zum Thema Thread würde das gehen das wenn ein Administrator etwas schreibt der Hintergrund sich verändert

  • Shorty -

    Funktioniert im wBB 4.1 ohne Probleme dort ist es nur in Zeile 54

  • DragonGun -

    Danke! Sehr nice! Auf sowas hab ich nur gewartet! :)

  • Qvip -

    Vielen Dank. Sehr schönes Tutorial, werde ich bestimmt brauchen wenn ich auf 4.1 wechsel ;)