<xf:macro name="post" arg-post="!" arg-thread="!">
<xf:css src="message.less" />
<xf:set var="$isIgnored" value="{{ $post.isIgnored() }}" />
<article class="message message--post js-post js-inlineModContainer {{ $isIgnored ? 'is-ignored' : '' }} {{ $post.isUnread() ? ' is-unread' : '' }}"
data-author="{{ $post.User.username ?: $post.username }}"
data-content="post-{$post.post_id}"
id="js-post-{$post.post_id}">
<span class="u-anchorTarget" id="post-{$post.post_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info" arg-user="{$post.User}"
arg-fallbackName="{$post.username}"/>
</div>
<div class="message-cell message-cell--main">
<div class="message-main js-quickEditTarget">
<header class="message-attribution message-attribution--split">
<div class="message-attribution-main">
<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" class="u-concealed"
rel="nofollow">
<xf:date time="{$post.post_date}"/>
</a>
</div>
<ul class="message-attribution-opposite message-attribution-opposite--list">
<xf:if is="$post.isUnread()">
<li><span class="message-newIndicator">{{ phrase('new') }}</span></li>
</xf:if>
<li>
<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}"
data-xf-init="share-tooltip" data-href="{{ link('posts/share', $post) }}"
rel="nofollow">
<xf:fa icon="fa-share-alt"/>
</a>
</li>
<xf:if contentcheck="true">
<li>
<xf:contentcheck>
<xf:macro template="bookmark_macros" name="link"
arg-content="{$post}"
arg-class="bookmarkLink--highlightable"
arg-confirmUrl="{{ link('posts/bookmark', $post) }}"
arg-showText="{{ false }}"/>
</xf:contentcheck>
</li>
</xf:if>
<xf:if is="!$hidePosition">
<li>
<a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" rel="nofollow">
#{{ number($post.position + 1) }}
</a>
</li>
</xf:if>
</ul>
</header>
<div class="message-content js-messageContent">
<xf:if is="$post.message_state == 'deleted'">
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$post.DeletionLog}" />
</div>
<xf:elseif is="$post.message_state == 'moderated'" />
<div class="messageNotice messageNotice--moderated">
{{ phrase('this_message_is_awaiting_moderator_approval_and_is_invisible_to_normal') }}
</div>
</xf:if>
<xf:if is="$post.warning_message">
<div class="messageNotice messageNotice--warning">
{$post.warning_message}
</div>
</xf:if>
<xf:if is="$isIgnored">
<div class="messageNotice messageNotice--ignored">
{{ phrase('you_are_ignoring_content_by_this_member') }}
<xf:showignored />
</div>
</xf:if>
<div class="message-userContent lbContainer js-lbContainer {{ $isIgnored ? 'is-ignored' : '' }}"
data-lb-id="post-{$post.post_id}"
data-lb-caption-desc="{{ $post.User ? $post.User.username : $post.username }} · {{ date_time($post.post_date) }}">
<xf:if is="$post.isFirstPost()">
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="threads"
arg-group="before"
arg-onlyInclude="{$thread.Forum.field_cache}"
arg-set="{$thread.custom_fields}"
arg-wrapperClass="message-fields message-fields--before" />
</xf:if>
<article class="message-body js-selectToQuote">
<xf:ad position="post_above_content" arg-post="{$post}" />
{{ bb_code($post.message, 'post', $post) }}
<div class="js-selectToQuoteEnd"> </div>
<xf:ad position="post_below_content" arg-post="{$post}" />
</article>
<xf:if is="$post.isFirstPost()">
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="threads"
arg-group="after"
arg-onlyInclude="{$thread.Forum.field_cache}"
arg-set="{$thread.custom_fields}"
arg-wrapperClass="message-fields message-fields--after" />
</xf:if>
<xf:if is="$post.attach_count">
<xf:macro template="message_macros" name="attachments"
arg-attachments="{$post.Attachments}"
arg-message="{$post}"
arg-canView="{{ $thread.canViewAttachments() }}" />
</xf:if>
</div>
<xf:if is="$post.last_edit_date">
<div class="message-lastEdit">
<xf:if is="$post.user_id == $post.last_edit_user_id">
{{ phrase('last_edited:') }} <xf:date time="{$post.last_edit_date}" />
<xf:else />
{{ phrase('last_edited_by_moderator:') }} <xf:date time="{$post.last_edit_date}" />
</xf:if>
</div>
</xf:if>
<xf:macro template="message_macros" name="signature" arg-user="{$post.User}" />
</div>
<footer class="message-footer">
<xf:if contentcheck="true">
<div class="message-actionBar actionBar">
<xf:contentcheck>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<xf:react content="{$post}" link="posts/react" list="< .js-post | .js-reactionsList" />
<xf:if is="$thread.canReply()">
<xf:set var="$quoteLink">{{ link('threads/reply', $thread, {'quote': $post.post_id}) }}</xf:set>
<xf:if is="$xf.options.multiQuote">
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--mq u-jsOnly js-multiQuote"
title="{{ phrase('toggle_multi_quote_tooltip')|for_attr }}"
data-message-id="{$post.post_id}"
data-mq-action="add">{{ phrase('quote') }}</a>
</xf:if>
<a href="{$quoteLink}"
class="actionBar-action actionBar-action--reply"
title="{{ phrase('reply_quoting_this_message')|for_attr }}"
data-xf-click="quote"
data-quote-href="{{ link('posts/quote', $post) }}">{{ phrase('reply') }}</a>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--internal">
<xf:contentcheck>
<xf:if is="$post.canUseInlineModeration()">
<span class="actionBar-action actionBar-action--inlineMod">
<xf:checkbox standalone="true">
<xf:option value="{$post.post_id}" class="js-inlineModToggle"
data-xf-init="tooltip"
title="{{ phrase('select_for_moderation') }}"
label="{{ phrase('select_for_moderation') }}"
hiddenlabel="true" />
</xf:checkbox>
</span>
</xf:if>
<xf:if is="$post.canReport()">
<a href="{{ link('posts/report', $post) }}"
class="actionBar-action actionBar-action--report"
data-xf-click="overlay">{{ phrase('report_verb') }}</a>
</xf:if>
<xf:set var="$hasActionBarMenu" value="{{ false }}" />
<xf:if is="$post.canEdit()">
<xf:js src="xf/message.js" min="1" />
<a href="{{ link('posts/edit', $post) }}"
class="actionBar-action actionBar-action--edit actionBar-action--menuItem"
data-xf-click="quick-edit"
data-editor-target="#js-post-{$post.post_id} .js-quickEditTarget"
data-menu-closer="true">{{ phrase('edit') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.edit_count && $post.canViewHistory()">
<a href="{{ link('posts/history', $post) }}"
class="actionBar-action actionBar-action--history actionBar-action--menuItem"
data-xf-click="toggle"
data-target="#js-post-{$post.post_id} .js-historyTarget"
data-menu-closer="true">{{ phrase('history') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.canDelete('soft')">
<a href="{{ link('posts/delete', $post) }}"
class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('delete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.message_state == 'deleted' AND $post.canUndelete()">
<a href="{{ link('posts/undelete', $post) }}"
class="actionBar-action actionBar-action--undelete actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('undelete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.canCleanSpam()">
<a href="{{ link('spam-cleaner', $post) }}"
class="actionBar-action actionBar-action--spam actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('spam') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$xf.visitor.canViewIps() && $post.ip_id">
<a href="{{ link('posts/ip', $post) }}"
class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('ip') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$post.canWarn()">
<a href="{{ link('posts/warn', $post) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
<xf:elseif is="$post.warning_id && $xf.visitor.canViewWarnings()" />
<a href="{{ link('warnings', {'warning_id': $post.warning_id}) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('view_warning') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$hasActionBarMenu">
<a class="actionBar-action actionBar-action--menuTrigger"
data-xf-click="menu"
title="{{ phrase('more_options')|for_attr }}"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">•••</a>
<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<div class="js-menuBuilderTarget"></div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<div class="reactionsBar js-reactionsList {{ $post.reactions ? 'is-active' : '' }}">
<xf:reactions content="{$post}" link="posts/reactions" />
</div>
<div class="js-historyTarget message-historyTarget toggleTarget" data-href="trigger-href"></div>
</footer>
</div>
</div>
{$extraAfterMessage|raw}
</div>
</article>
<xf:ad position="post_below_container" arg-post="{$post}" />
</xf:macro>
<xf:macro name="post_deleted" arg-post="!" arg-thread="!">
<xf:css src="message.less" />
<div class="message message--deleted message--post{{ $post.isIgnored() ? ' is-ignored' : '' }}{{ $post.isUnread() ? ' is-unread' : '' }} js-post js-inlineModContainer"
data-author="{{ $post.User.username ?: $post.username }}"
data-content="post-{$post.post_id}">
<span class="u-anchorTarget" id="post-{$post.post_id}"></span>
<div class="message-inner">
<div class="message-cell message-cell--user">
<xf:macro template="message_macros" name="user_info" arg-user="{$post.User}" arg-fallbackName="{$post.username}" />
</div>
<div class="message-cell message-cell--main">
<div class="message-attribution">
<ul class="listInline listInline--bullet message-attribution-main">
<li><a href="{{ link('threads/post', $thread, {'post_id': $post.post_id}) }}" class="u-concealed" rel="nofollow"><xf:date time="{$post.post_date}" /></a></li>
<li><xf:username user="{$post.User}" defaultname="{$post.username}" class="u-concealed" /></li>
</ul>
</div>
<div class="messageNotice messageNotice--deleted">
<xf:macro template="deletion_macros" name="notice" arg-log="{$post.DeletionLog}" />
<a href="{{ link('posts/show', $post) }}" class="u-jsOnly" data-xf-click="inserter" data-replace="[data-content=post-{$post.post_id}]">{{ phrase('show...') }}</a>
<xf:if is="$post.canUseInlineModeration()">
<span style="display: none">
<!-- this can be actioned on the full post -->
<xf:checkbox standalone="true">
<xf:option value="{$post.post_id}" class="js-inlineModToggle"
hiddenlabel="true" />
</xf:checkbox>
</span>
</xf:if>
</div>
</div>
</div>
</div>
<xf:ad position="post_below_container" arg-post="{$post}" />
</xf:macro>