如何在模板中显示用户分组详情、用户头像、用户名等个人信息?

在网站运营中,为用户提供个性化的体验、增强社区互动感,以及清晰展示不同用户群体的权益,是提升用户粘性和网站价值的关键。AnQiCMS作为一个功能强大的内容管理系统,提供了灵活的模板标签,让我们可以轻松地在前端页面显示用户的个人信息(如用户名、头像)以及他们所属的用户分组详情。

本文将深入探讨如何利用AnQiCMS的模板标签,实现这些动态信息的展示,帮助您构建更具吸引力和交互性的网站。


一、获取与展示用户个人信息

在AnQiCMS的模板体系中,userDetail标签是获取用户个人信息的利器。无论您想在用户个人中心页面、文章作者信息旁,还是评论区展示用户信息,这个标签都能派上用场。

userDetail标签的基本用法是:{% userDetail 变量名称 with name="字段名称" id="用户ID" %}。其中,id参数是必需的,它指定了您想要查询的特定用户。

1. 显示用户名和头像

用户名和头像是最常见的个人信息展示元素。假设我们想要显示用户ID为123的用户名和头像:

{% set userId = 123 %} {# 假设这是您要展示的特定用户ID #}

{% userDetail userInfo with id=userId %}
{% if userInfo %}
    <div class="user-profile">
        <img src="{{ userInfo.AvatarURL }}" alt="{{ userInfo.UserName }}的头像" class="user-avatar">
        <span class="user-name">{{ userInfo.UserName }}</span>
    </div>
{% else %}
    <span class="guest-name">匿名用户</span>
{% endif %}

在上面的例子中:

  • 我们首先通过{% set userId = 123 %}设定了一个要查询的用户ID。在实际应用中,这个userId可能来自当前文章的作者ID、评论的发布者ID,或者通过URL参数获取。
  • {% userDetail userInfo with id=userId %}将用户ID为userId的详细信息赋值给userInfo变量。
  • userInfo.AvatarURL会显示用户的头像图片地址。如果您需要全尺寸的头像,可以使用userInfo.FullAvatarURL
  • userInfo.UserName则直接输出用户的昵称。
  • 我们还添加了一个{% if userInfo %}判断,以防该用户不存在,可以显示“匿名用户”或其他备用信息,确保页面稳健性。

2. 获取更多用户详情

userDetail标签支持多种个人信息字段的获取,让您可以根据需要丰富展示内容:

  • userInfo.RealName: 用户的真实姓名。
  • userInfo.Introduce: 用户的个人介绍。
  • userInfo.Email: 用户的邮箱地址。
  • userInfo.Phone: 用户的手机号码。
  • userInfo.Link: 用户个人主页的链接(如果系统有提供)。
  • userInfo.LastLogin: 用户最近登录的时间戳,需要通过stampToDate格式化。

例如,在个人中心页面展示用户更详细的信息:

{% set currentUserId = 456 %} {# 假设这是当前登录用户的ID #}

{% userDetail profileInfo with id=currentUserId %}
{% if profileInfo %}
    <div class="user-detail-card">
        <h2>{{ profileInfo.UserName }} 的个人资料</h2>
        <img src="{{ profileInfo.FullAvatarURL }}" alt="{{ profileInfo.UserName }}的头像" class="profile-avatar large">
        <p>真实姓名: {{ profileInfo.RealName }}</p>
        <p>邮箱: {{ profileInfo.Email }}</p>
        <p>联系电话: {{ profileInfo.Phone }}</p>
        <p>个人简介: {{ profileInfo.Introduce }}</p>
        <p>最近登录: {{ stampToDate(profileInfo.LastLogin, "2006-01-02 15:04") }}</p>
        <a href="{{ profileInfo.Link }}" class="user-homepage-link">访问我的主页</a>
    </div>
{% else %}
    <p>抱歉,未找到该用户的信息。</p>
{% endif %}

二、展示用户分组详情

AnQiCMS支持用户分组管理,不同的用户分组可能代表不同的会员等级或权限。userGroupDetail标签允许我们展示这些分组的详细信息。

userGroupDetail标签的用法是:{% userGroupDetail 变量名称 with name="字段名称" id="用户组ID" %}{% userGroupDetail 变量名称 with name="字段名称" level="用户组等级" %}。您需要提供id(用户组的唯一标识)或level(用户组的等级),两者选其一。

1. 显示用户所属分组的名称

通常我们会先获取用户的GroupId,然后用这个ID去查询用户组的详情。以下是一个将两者结合的例子:

”`twig {% set userId = 123 %} {# 再次假设这是要查询的用户ID #}

{% userDetail userWithGroupInfo with id=userId %} {% if userWithGroupInfo %}

<div class="user-badge">
    <img src="{{ userWithGroupInfo.AvatarURL }}" alt="{{ userWithGroupInfo.UserName }}的头像" class="small-avatar">
    <span class="username">{{ userWithGroupInfo.UserName }}</span>

    {% userGroupDetail groupDetails with id=userWithGroupInfo.GroupId %}
    {% if groupDetails %}
        <span class="group-title">{{ groupDetails.Title }}</span>
        <span class="group-level">LV.{{ groupDetails.Level }}</span>
        {% if groupDetails.Description %}
            <span class="group-description