在网站运营中,用户评论是构建社区、获取反馈和提升内容互动性的重要元素。对于使用安企CMS(AnQiCMS)来搭建和管理网站的朋友们来说,高效地展示用户评论并管理其审核状态,是确保网站内容质量和用户体验的关键一环。好在AnQiCMS为此提供了非常灵活和实用的功能。

如何在页面上显示用户评论列表

要在您的网站上展示用户提交的评论,您会用到AnQiCMS强大的模板标签系统,特别是commentList标签。这个标签能够帮助我们轻松地从数据库中检索评论数据,并按照我们希望的方式在前端页面上呈现出来。

通常,评论是与特定的文章或产品等内容关联的。因此,在使用commentList标签时,我们需要指定评论所属的内容ID。例如,如果您想在一篇文章的详情页下方显示评论,可以使用archiveId参数来传递当前文章的ID。这个文章ID可以通过archiveDetail标签轻松获取到,比如archive.Id

您还可以通过type参数来控制评论列表的显示方式。当您只需要获取一定数量的最新评论(比如侧边栏展示),可以将type设置为"list",并通过limit参数限制显示数量。如果是在评论区域需要完整的评论列表和分页功能,则将type设置为"page"

下面是一个基本的评论列表代码示例,它会获取当前文章的最新5条评论:

{# 假设我们正在一个文章详情页,archive.Id代表当前文章的ID #}
{% commentList comments with archiveId=archive.Id type="list" limit="5" %}
    {% for item in comments %}
        <div>
            <strong>{{ item.UserName }}</strong> 发表于 {{ stampToDate(item.CreatedTime, "2006-01-02 15:04") }}
            <p>{{ item.Content }}</p>
        </div>
    {% empty %}
        <p>目前还没有评论。</p>
    {% endfor %}
{% endcommentList %}

在这段代码中,item.UserName显示评论者的昵称,item.Content是评论的具体内容,而item.CreatedTime则是评论提交的时间戳。为了让时间显示得更友好,我们使用了stampToDate过滤器,将其格式化为常见的日期时间格式。{% empty %}标签则是在没有评论时显示一段提示信息。

处理评论的审核状态

用户提交评论后,通常会有一个审核流程。AnQiCMS内置了评论审核机制,每条评论都有一个Status字段来表示其审核状态。通常,Status = 1表示评论已通过审核并可以公开显示,而Status = 0则表示评论正在审核中或未通过审核。

在前端显示评论列表时,我们应该根据Status字段来决定如何呈现。对于处于审核中的评论,我们可以选择不显示其完整内容,或者显示一个“审核中”的提示,以确保网站内容的合规性。

将审核状态逻辑整合到评论列表中,示例如下:

”`twig {% commentList comments with archiveId=archive.Id type=“list” limit=“5” %}

{% for item in comments %}
    <div class="comment-item">
        <div class="comment-meta">
            <strong>
                {% if item.Status == 1 %}
                    {{ item.UserName }}
                {% else %}
                    {# 评论审核中,只显示部分用户名或匿名处理 #}
                    审核中:{{ item.UserName|truncatechars:6 }}
                {% endif %}
            </strong> 发表于 {{ stampToDate(item.CreatedTime, "2006-01-02 15:04") }}
        </div>

        {# 处理回复评论的显示 #}
        {% if item.Parent %}
            <blockquote class="reply-blockquote">
                {% if item.Parent.Status == 1 %}
                    回复 <strong>{{ item.Parent.UserName }}</strong>: {{ item.Parent.Content|truncatechars:100 }}
                {% else %}
                    回复 <strong>审核中用户</strong>: <i>该回复正在审核中。</i>
                {% endif %}