核心思路
设置会员下载权限的核心逻辑是:

- 创建一个用于“下载资源”的自定义模型:这样我们就可以为下载资源创建专门的字段,如“文件大小”、“下载次数”、“积分价格”等。
- 为该模型添加“需要会员才能下载”的字段:最常用的字段是
money(积分)或daccess(下载权限),我们这里以最灵活的money字段为例,设置下载所需的积分。 - 配置会员和积分系统:确保会员组、会员等级和积分规则都已设置好。
- 在前台模板中调用下载链接:使用 DedeCMS 的标签,根据文章是否设置了积分来显示不同的下载按钮(会员显示“下载”按钮,游客显示“登录/注册”提示)。
第一步:准备工作 - 配置会员系统
在开始之前,请确保你的会员系统已经基本配置好。
-
会员模型:
- 进入
后台->会员->会员模型。 - 确保至少有一个会员模型(通常是默认的“个人空间模型”)是“是”状态。
- 你可以在这里添加或修改会员的字段,比如添加一个“用户类型”字段来区分不同等级的会员。
- 进入
-
会员组管理:
- 进入
后台->会员->会员组管理。 - 你会看到默认的几个组,如“新注册会员”、“中级会员”、“高级会员”等。
- 你可以在这里设置每个组能享有的权限,允许投稿”、“允许评论”等。“下载资源”的权限通常不在这里直接控制,而是通过第二步的模型字段来控制,但你可以根据组别设置不同的初始积分。
- 进入
-
会员积分设置:
(图片来源网络,侵删)- 进入
后台->会员->会员积分设置。 - 这里可以设置积分规则,每日登录送积分”、“发表文章送积分”、“评论送积分”等。
- 确保你启用了“会员积分”功能,并设置了合理的获取和消费规则。
- 进入
第二步:创建“下载资源”自定义模型
这是最关键的一步,我们要创建一个专门用于发布下载内容的模型。
-
进入模型管理:
- 登录 DedeCMS 后台,点击
核心->内容模型管理。
- 登录 DedeCMS 后台,点击
-
添加新模型:
- 点击右上角的
增加一个新模型按钮。 - 模型名称:填写一个你容易识别的名称,下载资源”。
- 模型表前缀:系统会自动生成一个唯一的表前缀,如
dede_addonxx,无需修改。 - 简介:可以简单描述一下这个模型的用途。
- 列表条数:设置这个模型在列表页每页显示多少条。
- 默认:不要勾选,除非你希望所有新文章都默认使用这个模型。
- 点击
提交保存。
- 点击右上角的
-
为模型添加字段:
(图片来源网络,侵删)-
保存成功后,系统会自动跳转到该模型的字段管理页面。
-
我们需要添加一个核心字段来控制下载权限:“下载所需积分”。
-
点击
增加新字段,填写以下信息:- 字段名称:
money(这是 DedeCMS 内置的字段名,用于关联积分系统,必须填写这个) - 字段说明:
下载所需积分(这个会在后台发布文章时显示) - 字段类型:
数字(因为我们只需要输入一个数字) - 字段值:留空
- 默认值:
0(默认免费下载) - 是否显示:
是(在后台发布时显示此字段) - 是否必填:
否(可选) - 在列表页显示:
是(可选,这样在下载列表页也能看到价格) - 页显示:
是(可选,在下载详情页显示价格)
- 字段名称:
-
点击
保存。 -
(可选)你还可以添加其他实用字段,如:
- 文件大小:字段名
filesize,类型文本。 - 文件格式:字段名
filetype,类型单行文本。 - 授权说明:字段名
auth,类型多行文本。
- 文件大小:字段名
-
-
生成HTML:
- 添加完所有字段后,回到
内容模型管理主界面,找到你刚创建的“下载资源”模型,点击后面的生成HTML按钮,这一步会更新数据库结构,非常重要,请务必执行。
- 添加完所有字段后,回到
第三步:发布下载文章并设置权限
你可以开始发布需要会员权限的下载资源了。
-
进入发布页面:
- 在后台,点击
核心->普通文章发布。 - 在右上角,你会看到一个模型选择的下拉菜单,选择你刚刚创建的 “下载资源” 模型。
- 在后台,点击
-
填写文章信息:
- 像往常一样填写标题、作者、简介等基本信息。
- 中,上传你的说明文档或截图。
-
设置下载附件:
- 在编辑器下方找到 “远程保存附件” 或 “本地上传” 功能。
- 上传你的下载文件(如 .zip, .rar, .exe 等)。
- 上传成功后,文件会出现在附件列表中。勾选 这个附件,然后点击 “确定”,这样,这个附件就与这篇文章关联起来了。
-
设置会员下载权限:
- 向下滚动页面,找到你之前添加的 “下载所需积分” 字段。
- 在这个输入框中,输入一个数字,
10,这表示用户需要拥有至少10个积分才能下载这个文件。 - 如果想免费下载,就填写
0。
-
发布文章:
- 点击
发布或保存按钮即可。
- 点击
第四步:修改前台模板以显示下载按钮
后台设置好了,现在需要让前台用户能看到相应的下载界面,我们需要修改下载页的模板文件。
-
找到模板文件:
- 你的下载内容页模板通常位于
/templets/default/目录下,文件名为article_article.htm。注意:如果你使用了其他风格,请找到对应的目录和文件。
- 你的下载内容页模板通常位于
-
定位下载代码:
- 用 Dreamweaver 或其他代码编辑器打开
article_article.htm文件。 - 查找
{dede:field name='body'/}这行代码,下载附件通常是通过这个标签解析出来的。
- 用 Dreamweaver 或其他代码编辑器打开
-
添加会员判断逻辑:
- 我们需要在
{dede:field name='body'/}的前后或内部,加入 DedeCMS 的条件判断标签,来区分会员和游客。 - 找到
{dede:field name='body'/},将其用以下代码块包裹起来:
<!-- 会员开始 --> <div class="dede_asks"> <ul> <li> {dede:if get='money>0'} <!-- 如果下载需要积分 (money > 0) --> {dede:if} <strong>下载说明:</strong> <p>该资源需要 <span style="color:red; font-weight:bold;">{dede:field name='money'/}</span> 积分才能下载。</p> {dede:if} {dede:if} <!-- 如果用户已登录 --> {dede:if} <a href="/plus/download.php?aid={dede:field name='id'/}" target="_blank"> <img src="/templets/default/images/dog.gif" alt="下载资源" /> </a> <span>您当前拥有 <strong>{dede:myinfo/}</strong> 积分</span> {dede:else /} <!-- 如果用户未登录 --> <a href="javascript:;" onclick="javascript:alert('请先登录!');location.href='{dede:global.cfg_memberurl/}/login.php';"> <img src="/templets/default/images/dog.gif" alt="需要登录" /> </a> <span>请<a href="{dede:global.cfg_memberurl/}/login.php">登录</a>后下载</span> {dede:if} {dede:else /} <!-- 如果下载免费 (money = 0) --> <a href="/plus/download.php?aid={dede:field name='id'/}" target="_blank"> <img src="/templets/default/images/dog.gif" alt="免费下载" /> </a> <span>免费资源,无需积分</span> {dede:if} </li> </ul> </div> <!-- 会员结束 -->代码解释:
{dede:if get='money>0'}...{dede:if}:判断文章的money字段是否大于0,即是否需要积分。{dede:if}...{dede:else /}...{dede:if}:这是 DedeCMS 最核心的条件判断标签,判断用户是否已登录。{dede:myinfo/}:获取当前登录会员的积分信息。/plus/download.php?aid={dede:field name='id'/}:这是 DedeCMS 内置的下载处理链接,aid是文章的 ID,点击后会触发下载流程(检查积分、增加下载次数等)。onclick="javascript:alert('请先登录!');location.href='{dede:global.cfg_memberurl/}/login.php';":当游客点击时,弹出提示并跳转到登录页面。
- 我们需要在
-
更新缓存:
- 在后台首页点击右上角的
更新系统缓存按钮,确保模板修改生效。
- 在后台首页点击右上角的
第五步:测试
你可以去前台测试了:
- 以游客身份访问一篇设置了积分下载的文章,应该会看到“需要登录”的提示。
- 以会员身份登录,但积分不足,点击下载可能会被系统拦截(DedeCMS 默认有此逻辑)。
- 以拥有足够积分的会员身份登录,点击下载,应该能正常下载文件,并且你的积分会相应减少。
总结与注意事项
- 核心字段:务必使用
money字段来关联积分系统,这是最标准且稳定的方式。 - 模板标签:
{dede:if}和{dede:else /}是实现前端逻辑判断的关键,务必掌握。 - 权限控制:DedeCMS 的下载权限逻辑是:
后台设置 (money > 0)+前台模板判断 (是否登录/有无积分)+系统下载程序 (download.php) 的自动校验,这三者共同构成了完整的权限体系。 - 安全:DedeCMS 的下载程序
download.php会自动处理下载次数统计和权限验证,直接使用它即可,不要自行创建下载链接。
按照以上步骤,你就可以成功地在 DedeCMS 中实现会员下载资源的设置了,如果在操作中遇到任何问题,可以随时提出。
