使用 {dede:member} 标签来获取会员信息,并通过 totalmoney 这个字段来获取会员的总消费金额(在 DedeCMS 中,金币和金钱通常用同一个字段 totalmoney 表示)。

下面我将为你详细讲解几种常见的调用场景和方法。
在会员个人中心页面显示当前会员的消费金币
这是最常见的需求,在会员的资料页面或主页上,显示他/她自己消费的金币总额。
找到模板文件
会员个人中心的模板文件通常位于 /templets/member/ 目录下,与消费金币相关的页面可能是:

space.htm或index.php(会员主页)profile.php(基本资料页面)- 其他你可能自定义的页面。
使用标签调用
在需要显示消费金币的位置,直接使用以下标签代码:
{dede:memberinfos}
<p>我的消费金币:<strong>[field:totalmoney/]</strong> 枚</p>
{/dede:memberinfos}
代码解析:
{dede:memberinfos}:这是一个专门用于获取当前登录会员信息的标签,它不需要任何参数,会自动获取当前会话中会员的数据。[field:totalmoney/]:这是标签内的字段调用。totalmoney是 DedeCMS 会员数据表 (dede_member) 中存储会员总消费金额(或总金币)的字段。枚:这是单位,你可以根据需要修改,个”、“元”等。
完整示例 (在会员主页 space.htm 中):

假设你希望在会员主页显示昵称和消费金币,可以找到相关位置,修改为:
<div class="user-info">
<h2>欢迎,[field:uname/]</h2>
<p>注册时间:[field:jointime function="MyDate('Y-m-d H:i:s',@me)"/]</p>
<p>消费金币:<strong>[field:totalmoney/]</strong> 枚</p>
<p>当前金币:<strong>[field:money/]</strong> 枚</p>
</div>
注意:
[field:money/]是会员当前账户余额的金币数。[field:totalmoney/]是会员自注册以来所有消费记录的总和,这两个值是不同的。
在任意页面(如文章页、列表页)调用指定会员的消费金币
如果你想在一个非会员中心的页面(比如某篇文章的作者信息栏)显示该作者(会员)的消费金币,你需要先知道该会员的 ID (mid)。
方法:在文章内容页调用当前文章作者的消费金币
页模板 ( 代码解析: 方法:在列表页或自定义页面调用指定会员的消费金币 如果你知道一个固定的会员 ID(ID 为 10 的会员),可以直接写死: 如果你是在循环中(比如调用某个会员列表),可以这样用: 如果你想做一个“土豪榜”或“消费排行榜”,显示消费金币最多的前 N 名会员。 这需要用到 编写 SQL 语句 我们需要从 在模板中使用 将上述 SQL 语句放入模板标签中,并循环输出。 代码解析: 重要注意事项: 希望这份详细的指南能帮助你成功在 DedeCMS 中调用消费金币信息!article_article.htm) 中,可以使用 {dede:field} 标签获取文章作者的 ID,然后将其传递给 {dede:memberinfos}
{dede:memberinfos mid='[field:mid/]'}
<p>作者:[field:uname/]</p>
<p>作者消费金币:<strong>[field:totalmoney/]</strong> 枚</p>
{/dede:memberinfos}
mid='[field:mid/]':这是关键。[field:mid/] 会获取当前文章的作者会员 ID,然后将其作为 mid 参数传递给 {dede:memberinfos} 标签,从而精确获取到该作者的信息。{dede:memberinfos mid='10'}
<p>会员ID为10的消费金币:<strong>[field:totalmoney/]</strong> 枚</p>
{/dede:memberinfos}
{dede:arclist typeid='1' row='5'}
{dede:memberinfos mid='[field:mid/]'}
<p>文章《[field:title/]》的作者消费了 [field:totalmoney/] 枚金币。</p>
{/dede:memberinfos}
{/dede:arclist}
调用全站消费金币总额排行榜
{dede:sql} 标签直接执行 SQL 查询。dede_member 表中按 totalmoney 字段降序排列,并限制条数。SELECT m.mid, m.uname, m.totalmoney, m.face
FROM dede_member m
ORDER BY m.totalmoney DESC
LIMIT 0, 10
SELECT m.mid, m.uname, m.totalmoney, m.face:选择我们需要的字段(会员ID, 用户名, 总消费, 头像)。FROM dede_member m:从会员表查询,并给它一个别名 m。ORDER BY m.totalmoney DESC:按总消费金额降序排列(从高到低)。LIMIT 0, 10:从第 0 条开始,取 10 条数据(即前 10 名)。{dede:sql}<h3>消费金币排行榜 TOP 10</h3>
<ol>
{dede:sql sql='SELECT m.mid, m.uname, m.totalmoney, m.face FROM dede_member m ORDER BY m.totalmoney DESC LIMIT 0, 10'}
<li>
<img src="[field:face function="ifempty('@me', '/member/images/defaultpic.gif')"/]" alt="[field:uname/]" />
<span class="rank-name">[field:uname/]</span>
<span class="rank-coin">[field:totalmoney/] 枚</span>
</li>
{/dede:sql}
</ol>
{dede:sql sql='...'}:执行自定义的 SQL 查询。[field:face/]:会员头像,这里我用了一个 function="ifempty(...)" 来处理没有头像的情况,显示默认头像。[field:uname/]:会员用户名。[field:totalmoney/]:该会员的消费金币总额。<ol> 和 <li> 用于构建有序的列表样式。
总结与注意事项
场景
核心标签
关键点
当前会员自身消费
{dede:memberinfos}无需参数,直接调用
[field:totalmoney/]
指定会员消费
{dede:memberinfos mid='...'}通过
mid 参数指定会员ID,mid 可来自 [field:mid/]
消费排行榜
{dede:sql}编写 SQL 查询,按
totalmoney DESC 排序,LIMIT 限制数量
totalmoney,绝大多数版本都是,但以防万一,可以去 dede_member 表里看一下。{dede:sql} 标签时,确保你的 SQL 语句是安全的,不要直接将用户输入拼接到 SQL 中,以防 SQL 注入,上面的例子中,mid 是由系统自身提供的,相对安全。
