public function renderItem(Comment $comment, $depth = 0)
{
$text = $comment->getFormatted('text');
$cite = $comment->getFormatted('cite');
$gravatar = '';
if ($this->options['useGravatar']) {
$imgUrl = $comment->gravatar($this->options['useGravatar'], $this->options['useGravatarImageset']);
if ($imgUrl) {
$gravatar = "\n\t\t<img class='CommentGravatar' src='{$imgUrl}' alt='{$cite}' />";
}
}
$website = '';
if ($comment->website) {
$website = $comment->getFormatted('website');
}
if ($website) {
$cite = "<a href='{$website}' rel='nofollow' target='_blank'>{$cite}</a>";
}
$created = wireDate($this->options['dateFormat'], $comment->created);
if (empty($this->options['commentHeader'])) {
$header = "<span class='CommentCite'>{$cite}</span> <small class='CommentCreated'>{$created}</small> ";
if ($this->options['useStars']) {
$header .= $this->renderStars($comment);
}
if ($this->options['useVotes']) {
$header .= $this->renderVotes($comment);
}
} else {
$header = str_replace(array('{cite}', '{created}'), array($cite, $created), $this->options['commentHeader']);
if (strpos($header, '{votes}') !== false) {
$header = str_replace('{votes}', $this->renderVotes($comment), $header);
}
if (strpos($header, '{stars}') !== false) {
$header = str_replace('{stars}', $this->renderStars($comment), $header);
}
}
$liClass = '';
$replies = $this->options['depth'] > 0 ? $this->renderList($comment->id, $depth + 1) : '';
if ($replies) {
$liClass .= ' CommentHasReplies';
}
if ($comment->status == Comment::statusPending) {
$liClass .= ' CommentStatusPending';
} else {
if ($comment->status == Comment::statusSpam) {
$liClass .= ' CommentStatusSpam';
}
}
$out = "\n\t<li id='Comment{$comment->id}' class='CommentListItem{$liClass}' data-comment='{$comment->id}'>" . $gravatar . "\n\t\t<p class='CommentHeader'>{$header}</p>" . "\n\t\t<div class='CommentText'>" . "\n\t\t\t<p>{$text}</p>" . "\n\t\t</div>";
if ($this->options['usePermalink']) {
$permalink = $comment->getPage()->httpUrl;
$urlSegmentStr = $this->wire('input')->urlSegmentStr;
if ($urlSegmentStr) {
$permalink .= rtrim($permalink, '/') . $urlSegmentStr . '/';
}
$permalink .= '#Comment' . $comment->id;
$permalink = "<a class='CommentActionPermalink' href='{$permalink}'>" . $this->_('Permalink') . "</a>";
} else {
$permalink = '';
}
if ($this->options['depth'] > 0 && $depth < $this->options['depth']) {
$out .= "\n\t\t<div class='CommentFooter'>" . "\n\t\t\t<p class='CommentAction'>" . "\n\t\t\t\t<a class='CommentActionReply' data-comment-id='{$comment->id}' href='#Comment{$comment->id}'>" . $this->options['replyLabel'] . "</a> " . ($permalink ? "\n\t\t\t\t{$permalink}" : "") . "\n\t\t\t</p>" . "\n\t\t</div>";
if ($replies) {
$out .= $replies;
}
} else {
$out .= "\n\t\t<div class='CommentFooter'></div>";
}
$out .= "\n\t</li>";
return $out;
}