Z-BlogPHP主题模板的评论输出(comment.php)主要在“评论者的回复”上有点绕头,其他的还是比较简单的。我们先做一个简单的评论输出。
Markup
<ul id="cmt{$comment.ID}"> <li> <img src="{$comment.Author.Avatar}"/> <span class="commentname"><a href="{$comment.Author.HomePage}" rel="nofollow" target="_blank">{$comment.Author.StaticName}</a></span> <br/> <small>发布于{$comment.Time()}</small> </li> <li>{$comment.Content}</li></ul>
这里我们直接用 <ul>
做的外框。其中的 #cmt{$comment.ID}
是为了我们做锚文本和回复用的。
输出实现的内容如下。这代码展示了评论者的头像、评论者名称,评论时间和评论内容。其中,评论者名称上做了一个外链接,所以我们加了 rel和target
两个属性。
这里的“回复该评论”我们要实现一个功能:当评论者点击回复上一评论时,自动在这条评论的下面一行加上一条评论。并且,实现一定的缩进。
其实,我们熟悉 <ul>
架构的人应该明白,这就是采用的是 <ul>
里面套 <ul>
的形式。那么我们也就可以采用comment.php模版里面套comment.php的方法来实现这一功能。考虑到可能会出现多条评论,所以我们再加上一个 foreach
命令,整理下代码就变成:
Markup
<ul id="cmt{$comment.ID}"> <li> <img src="{$comment.Author.Avatar}"/> <span class="commentname"><a href="{$comment.Author.HomePage}" rel="nofollow" target="_blank">{$comment.Author.StaticName}</a></span> <br/> <small> 发布于{$comment.Time()} <span> <a href="#comment" onclick="RevertComment('{$comment.ID}')">回复该评论</a> </span> </small> </li> <li>{$comment.Content} {foreach $comment.Comments as $comment}<!-- 嵌套模版 --> {template:comment} {/foreach} </li></ul>