1 {if !$commentManager|isset}{assign var='commentManager' value=$commentList->getCommentManager()}{/if}
2 {if !$commentCanAdd|isset}{assign var=commentCanAdd value=$commentManager->canAdd($commentList->objectID)}{/if}
3 {if !$commentCanModerate|isset}{assign var=commentCanModerate value=$commentManager->canModerate($commentList->objectTypeID, $commentList->objectID)}{/if}
4 {foreach from=$commentList item=comment}
5 {if $comment->isDisabled && !$commentCanModerate}
6 <div class="commentList__item">
7 <p class="info commentModerationDisabledComment">{lang}wcf.comment.moderation.disabledComment{/lang}</p>
10 <div class="commentList__item jsComment{if $__wcf->getUserProfileHandler()->isIgnoredUser($comment->userID, 2)} ignoredUserContent{/if}"
11 data-comment-id="{@$comment->commentID}"
12 {@$__wcf->getReactionHandler()->getDataAttributes('com.woltlab.wcf.comment', $comment->commentID)}
13 data-can-edit="{if $comment->isEditable()}true{else}false{/if}" data-can-delete="{if $comment->isDeletable()}true{else}false{/if}"
14 data-responses="{@$comment->responses}" data-last-response-time="{if $ignoreLastResponseTime|empty}{@$comment->getLastResponseTime()}{else}1{/if}" data-is-disabled="{@$comment->isDisabled}"
15 data-last-response-id="{if $ignoreLastResponseTime|empty}{@$comment->getLastResponseID()}{else}0{/if}"
17 <woltlab-core-comment class="comment" comment-id="{@$comment->commentID}" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
18 <div class="comment__header">
19 <div class="comment__avatar">
20 {user object=$comment->getUserProfile() type='avatar32' ariaHidden='true' tabindex='-1'}
22 <div class="comment__author" itemprop="author" itemscope itemtype="http://schema.org/Person">
24 <a href="{$comment->getUserProfile()->getLink()}" class="comment__author__link userLink" data-object-id="{@$comment->userID}" itemprop="url">
25 <span itemprop="name">{@$comment->getUserProfile()->getFormattedUsername()}</span>
28 <span itemprop="name">{$comment->username}</span>
31 <div class="comment__date">
32 <meta itemprop="datePublished" content="{@$comment->time|date:'c'}">
33 <a href="{$comment->getLink()}" class="comment__permalink">{@$comment->time|time}</a>
35 <div class="comment__status">
36 {if $comment->isDisabled}
37 <span class="badge label green comment__status--disabled">{lang}wcf.message.status.disabled{/lang}</span>
40 {if $commentManager->isContentAuthor($comment)}
41 <span class="badge label">{lang}wcf.comment.objectAuthor{/lang}</span>
44 {event name='commentStatus'}
47 <div class="comment__menu dropdown" id="commentOptions{@$comment->commentID}">
48 <button type="button" class="dropdownToggle" aria-label="{lang}wcf.global.button.more{/lang}">{icon name='ellipsis-vertical'}</button>
50 <ul class="dropdownMenu">
52 {if $comment->isDisabled && $commentCanModerate}
54 <a href="#" class="comment__option comment__option--enable">
55 {lang}wcf.comment.approve{/lang}
59 {if $commentManager->supportsReport() && $__wcf->session->getPermission('user.profile.canReportContent')}
63 data-report-content="com.woltlab.wcf.comment.comment"
64 data-object-id="{$comment->commentID}"
65 class="comment__option comment__option--report"
67 {lang}wcf.moderation.report.reportContent{/lang}
71 {if $comment->isEditable()}
73 <a href="#" class="comment__option comment__option--edit">
74 {lang}wcf.global.button.edit{/lang}
78 {if $comment->isDeletable()}
80 <a href="#" class="comment__option comment__option--delete">
81 {lang}wcf.global.button.delete{/lang}
86 {event name='commentMenuOptions'}
92 {event name='commentHeader'}
95 {event name='commentBeforeMessage'}
97 <div class="comment__message">
98 <div class="htmlContent userMessage" itemprop="text">{@$comment->getFormattedMessage()}</div>
101 {event name='commentAfterMessage'}
103 <div class="comment__footer">
104 <div class="comment__reactions">
105 {if MODULE_LIKE && $commentManager->supportsLike() && $likeData|isset}
106 {include file="reactionSummaryList" isTiny=true reactionData=$likeData[comment] objectType="com.woltlab.wcf.comment" objectID=$comment->commentID}
108 <a href="#" class="reactionSummaryList reactionSummaryListTiny" data-object-type="com.woltlab.wcf.comment" data-object-id="{$comment->commentID}" title="{lang}wcf.reactions.summary.listReactions{/lang}" style="display: none;"></a>
112 <div class="comment__buttons">
116 class="comment__button comment__button--reply button small"
118 <span>{lang}wcf.comment.button.response.add{/lang}</span>
122 {if MODULE_LIKE && $commentManager->supportsLike() && $__wcf->session->getPermission('user.like.canLike') && $comment->userID != $__wcf->user->userID}
125 class="comment__button comment__button--react jsTooltip button small {if $likeData[comment][$comment->commentID]|isset && $likeData[comment][$comment->commentID]->reactionTypeID} active{/if}"
126 title="{lang}wcf.reactions.react{/lang}"
127 data-reaction-type-id="{if $likeData[comment][$comment->commentID]|isset && $likeData[comment][$comment->commentID]->reactionTypeID}{$likeData[comment][$comment->commentID]->reactionTypeID}{else}0{/if}"
129 {icon name='face-smile'}
130 <span class="invisible">{lang}wcf.reactions.react{/lang}</span>
134 {event name='commentButtons'}
137 {event name='commentFooter'}
139 </woltlab-core-comment>
141 {if !$ignoreLastResponseTime|empty || $comment|count}
142 <div class="comment__responses">
143 <div class="commentResponseList" data-responses="{if $commentCanModerate}{@$comment->unfilteredResponses}{else}{@$comment->responses}{/if}">
144 {if $ignoreLastResponseTime|empty}{include file='commentResponseList' responseList=$comment}{/if}