유용한 팁
xe는 댓글의 배치가 대댓글인 경우 어느 댓글에 대한 대댓글인지 알 수 없게 배치가 된다.
이를 해결 하기위해 댓글과 대댓글의 방향을 다르게 하는 등 어려 가지 방법을 사용해 보았으나 사용자에게 댓글 배치에 대한 설명이 필요하는 등 좋은 UX를 확보하기가 어려웠다.
그래서 결국 화면에 표시되는 컨텐츠가 늘어 나지만 댓글 번호를 활용하기로 했다.
- 댓글 번호는 comment_srl을 사용한다. : {$comment->comment_srl}
- 게시글에 대한 댓글은 댓글 번호만 출력한다.
- 대댓글은 parent_srl을 구하여 어떤 댓글에 대한 대댓글인지 표시한다. : $comment->parent_srl
- parent_srl의 닉네임을 구한다. :
{@
$oComment = &getModel('comment');
$comment_parent = $oComment->getComment($comment->parent_srl);
}
{$comment_parent->getNickName()}
완성된 코드는 다음과 같다.
<div class="author">
<a cond="!$comment->member_srl && $comment->homepage" href="{$comment->getHomepageUrl()}">{$comment->getNickName()}</a>
<strong cond="!$comment->member_srl && !$comment->homepage">{$comment->getNickName()}</strong>
<a cond="$comment->member_srl" href="#popup_menu_area" class="member_{$comment->member_srl}" onclick="return false">{$comment->getNickName()}</a>
<span class="time">{getTimeGap($comment->get('regdate'))}</span>
<span class="has-text-info"> ({$comment->comment_srl})</span>
<!--@if($comment->parent_srl !== 0)-->
{@
$oComment = &getModel('comment');
$comment_parent = $oComment->getComment($comment->parent_srl);
}
<p class="who-comment has-text-info">{$comment_parent->getNickName()}({$comment->parent_srl}) 에 대한 댓글</p>
<!--@end-->
</div>
comment_srl이 백만,천만단위가 되면 너무 길어지므로 끝에서 2~3자리만 표시하도록 한다.
아래와 같이 출력된다.