Im Gegensatz zum WBB3 werden im WBB4 Forenbeiträge ignorierter Benutzer nicht mehr ausgeblendet. Da dennoch bei einigen Anwendern der Wunsch besteht, dieses Verhalten auch im WBB4 vorzufinden, habe ich es mit Hilfe zweier Templateänderungen mal "nachgerüstet".
Wir benötigen eigene Versionen der Templates
Ich werde hier nur die erforderlichen Änderungen aufzeigen. Die grundsätzliche Verwendung eigener Templates in eigenen Templategruppen und die Zuweisung der Templategruppe zum Stil setze ich als bekannt voraus.
Es müssen folgende Änderungen vorgenommen werden:
Im Template thread.tpl wird dieser Abschnitt:
durch:
[tpl=92,thread]var $collapsedPostLoader = null;
$collapsedPostLoader = new WBB.Post.CollapsedPostLoader('.wbbPostIgnored');
{if $board->getModeratorPermission('canReadDeletedPost')}
$collapsedPostLoader = new WBB.Post.CollapsedPostLoader('.wbbPostDeleted');
{/if}[/code]
ersetzt.
Im Template threadPostList.tpl ist dieser Abschnitt:
[tpl=14,threadPostList]{assign var='userProfile' value=$post->getUserProfile()}
{if ($post->isDeleted && !$thread->isDeleted) && !$showCollapsedPosts}[/code]
durch:
[tpl=14,threadPostList]{assign var='userProfile' value=$post->getUserProfile()}
{if $__wcf->getUserProfileHandler()->isIgnoredUser($userProfile->userID) && !$showCollapsedPosts && !$post->isDeleted}
<li id="post{@$post->postID}" class="marginTop">
<article class="wbbPost wbbPostIgnored message messageCollapsed jsClipboardObject{if $post->canRead()} messageCollapsedExpandable{/if}" data-object-id="{@$post->postID}" data-post-id="{@$post->postID}">
<div class="messageHeader">
<ul class="messageQuickOptions">
{if $thread->getBoard()->canEditThreads()}
<li class="jsOnly"><input type="checkbox" class="jsClipboardItem" data-object-id="{@$post->postID}" /></li>
{/if}
</ul>
<div class="box24">
{if $post->userID}
<a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="framed userLink" data-user-id="{@$post->userID}">{@$userProfile->getAvatar()->getImageTag(24)}</a>
{else}
<span class="framed">{@$userProfile->getAvatar()->getImageTag(24)}</span>
{/if}
<div>
<h1>Der Beitrag {if $post->subject} »{$post->subject}«{/if} von <a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$post->userID}">{$userProfile->username}</a> ({@$post->time|time}) wird nicht angezeigt, da Sie den Verfasser blockieren.</h1>
<small>Zum Öffnen des Beitrags klicken Sie bitte auf diese Hinweisbox.</small>
</div>
</div>
</div>
</article>
</li>
{else}
{if ($post->isDeleted && !$thread->isDeleted) && !$showCollapsedPosts}[/code]
zu ersetzen.
Als letzter Schritt muss nun noch in der vorletzten Zeile des Templates (also über dem schließenden
Wichtig ist noch der Hinweis, dass diese Templateänderung nur auf die Verwendung in einem einsprachig deutsch betriebenen Forum ausgelegt ist. Wenn jemand den Effekt in einem mehrsprachig betriebenen Forum erzielen möchte, muss er anstatt des von mir direkt verwendeten Textes eine entsprechende Sprachvariable angeben und diese dann natürlich auch in allen gewünschten Sprachen anlegen und mit Inhalt füllen.
Das Resultat der Mühen sieht dann so aus:
Und nun viel Spaß beim Ausprobieren.
Gruß norse
Wir benötigen eigene Versionen der Templates
thread.tpl
und threadPostList.tpl
.Ich werde hier nur die erforderlichen Änderungen aufzeigen. Die grundsätzliche Verwendung eigener Templates in eigenen Templategruppen und die Zuweisung der Templategruppe zum Stil setze ich als bekannt voraus.
Es müssen folgende Änderungen vorgenommen werden:
Im Template thread.tpl wird dieser Abschnitt:
durch:
[tpl=92,thread]var $collapsedPostLoader = null;
$collapsedPostLoader = new WBB.Post.CollapsedPostLoader('.wbbPostIgnored');
{if $board->getModeratorPermission('canReadDeletedPost')}
$collapsedPostLoader = new WBB.Post.CollapsedPostLoader('.wbbPostDeleted');
{/if}[/code]
ersetzt.
Im Template threadPostList.tpl ist dieser Abschnitt:
[tpl=14,threadPostList]{assign var='userProfile' value=$post->getUserProfile()}
{if ($post->isDeleted && !$thread->isDeleted) && !$showCollapsedPosts}[/code]
durch:
[tpl=14,threadPostList]{assign var='userProfile' value=$post->getUserProfile()}
{if $__wcf->getUserProfileHandler()->isIgnoredUser($userProfile->userID) && !$showCollapsedPosts && !$post->isDeleted}
<li id="post{@$post->postID}" class="marginTop">
<article class="wbbPost wbbPostIgnored message messageCollapsed jsClipboardObject{if $post->canRead()} messageCollapsedExpandable{/if}" data-object-id="{@$post->postID}" data-post-id="{@$post->postID}">
<div class="messageHeader">
<ul class="messageQuickOptions">
{if $thread->getBoard()->canEditThreads()}
<li class="jsOnly"><input type="checkbox" class="jsClipboardItem" data-object-id="{@$post->postID}" /></li>
{/if}
</ul>
<div class="box24">
{if $post->userID}
<a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="framed userLink" data-user-id="{@$post->userID}">{@$userProfile->getAvatar()->getImageTag(24)}</a>
{else}
<span class="framed">{@$userProfile->getAvatar()->getImageTag(24)}</span>
{/if}
<div>
<h1>Der Beitrag {if $post->subject} »{$post->subject}«{/if} von <a href="{link controller='User' object=$userProfile->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$post->userID}">{$userProfile->username}</a> ({@$post->time|time}) wird nicht angezeigt, da Sie den Verfasser blockieren.</h1>
<small>Zum Öffnen des Beitrags klicken Sie bitte auf diese Hinweisbox.</small>
</div>
</div>
</div>
</article>
</li>
{else}
{if ($post->isDeleted && !$thread->isDeleted) && !$showCollapsedPosts}[/code]
zu ersetzen.
Als letzter Schritt muss nun noch in der vorletzten Zeile des Templates (also über dem schließenden
{/foreach}
) ein schließendes {/if}
eingefügt werden.Wichtig ist noch der Hinweis, dass diese Templateänderung nur auf die Verwendung in einem einsprachig deutsch betriebenen Forum ausgelegt ist. Wenn jemand den Effekt in einem mehrsprachig betriebenen Forum erzielen möchte, muss er anstatt des von mir direkt verwendeten Textes eine entsprechende Sprachvariable angeben und diese dann natürlich auch in allen gewünschten Sprachen anlegen und mit Inhalt füllen.
Das Resultat der Mühen sieht dann so aus:
Und nun viel Spaß beim Ausprobieren.
Gruß norse
1.091 mal gelesen
franzis -
Der Ausschnitt im Template threadPostList.tpl schaut nun so aus:
{assign var='userProfile' value=$post->getUserProfile()}
{event name='beforePost'}
{if ($post->isDeleted && !$thread->isDeleted) && !$showCollapsedPosts}
Aber wenn man {event name='beforePost'} auch belässt, dann funktioniert es