- 后台管理:如何方便地上传和管理下载文件。
- 前台展示:如何创建一个页面来展示这些文件列表,并实现下载功能。
下面我将为你提供一个非常详细、完整且实用的教程,从后台设置到前台模板制作,一步步教你完成。

(图片来源网络,侵删)
第一步:后台准备工作(创建下载模型和栏目)
这是最关键的一步,一个良好的后台结构是前台完美展示的基础。
创建一个专门的内容模型(推荐)
为了更灵活地管理下载文件,我们建议创建一个名为“下载软件”或“资源下载”的独立内容模型。
-
登录DedeCMS后台。
-
进入 [核心] -> [内容模型管理] -> [添加新模型]。
(图片来源网络,侵删) -
模型名称:填写
下载软件或资源下载。 -
模型表前缀:使用默认的
dede_即可,系统会自动生成一个新表,如dede_addonsoft。 -
简介:简单描述一下这个模型是做什么的。
-
模型字段:这是重点,我们需要添加几个核心字段。
(图片来源网络,侵删)- 添加字段 -> 选择“单行文本”:
- 字段名称:
softsize(小写,不要用空格) - 字段说明:
文件大小 - 前台调用:
{field:softsize}
- 字段名称:
- 添加字段 -> 选择“单行文本”:
- 字段名称:
softauthor - 字段说明:
作者 - 前台调用:
{field:softauthor}
- 字段名称:
- 添加字段 -> 选择“文件上传”:
- 字段名称:
softlinks(这是核心!) - 字段说明:
下载地址 - 最大值长度:根据你的需求设置,
255。 - 前台调用:
{field:softlinks}
- 字段名称:
- 添加字段 -> 选择“编辑器”:
- 字段名称:
softintro - 字段说明:
软件介绍 - 前台调用:
{field:softintro}
- 字段名称:
- 添加字段 -> 选择“单行文本”:
-
点击 [保存],模型创建成功后,系统会提示你更新系统缓存,请务必点击“更新”。
创建下载栏目
- 进入 [核心] -> [栏目管理]。
- 点击 [增加顶级栏目]。
- 栏目名称:填写
资源下载。 - 栏目类型:选择
频道封面。 - 模型:选择你刚刚创建的模型,
下载软件。 - 列表模板:先留空,等下我们创建模板文件后再填写。
- 保存。
在下载栏目中添加下载文件
- 进入 [核心] -> [批量维护] -> [内容维护]。
- 在左侧的“选择栏目”中,点击你刚才创建的
资源下载栏目。 - 点击右上角的 ] 按钮。
- 在发布页面,你会看到你自定义的字段,如“文件大小”、“作者”、“下载地址”等。
- 填写文章标题、发布时间等基本信息。
- 填写自定义字段:
- 文件大小:
25 MB。 - 作者:
Adobe Inc.。 - 下载地址:这是最关键的一步!
- 点击上传按钮,在弹出的窗口中上传你的文件。
- 上传成功后,文件路径会自动填入。请务必确保文件上传到了
/uploads/目录下。 - 你也可以手动输入一个有效的URL。
- 软件介绍:在编辑器中填写详细的软件介绍。
- 文件大小:
- 点击 [发布] 保存。
重复此步骤,添加多个下载文件,你的后台数据就准备好了。
第二步:创建下载列表页模板
模板是前台展示的“皮肤”,我们需要创建一个列表模板和一个文章详情模板。
创建列表模板 (list_download.htm)
这个模板用于展示文件列表。
- 在DedeCMS后台,进入 [模板] -> [默认模板管理]。
- 找到你当前使用的模板目录(通常是
default)。 - 点击 [增加模板]。
- 模板名称:
list_download(必须和栏目设置的列表模板名称一致)。 - 模板类型:选择
list_article。 - :将下面的代码复制进去。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/} - {dede:field.title/}</title>
<meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
<meta name="keywords" content="{dede:field.keywords/}" />
<link rel="stylesheet" href="/templets/default/style/base.css">
<link rel="stylesheet" href="/templets/default/style/style.css">
</head>
<body>
{dede:include filename="head.htm"/}
<div class="w960 clear">
<div class="pleft">
<div class="main">
<div class="title">
<h2>{dede:field.title/}</h2>
<div class="position"><a href='/'>首页</a> > {dede:field name='position'/}</div>
</div>
<!-- 文件列表开始 -->
<div class="listbox">
<ul class="e6">
{dede:list pagesize='10'}
<li class="list">
<span class="tit"><a href="[field:arcurl/]">[field:title/]</a></span>
<span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
<span class="size">[field:softsize/]</span>
<span class="view"><a href="[field:arcurl/]">下载</a></span>
</li>
{/dede:list}
</ul>
</div>
<!-- 文件列表结束 -->
<!-- 分页开始 -->
<div class="dede_pages">
<ul class="pagelist">
{dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
</ul>
</div>
<!-- 分页结束 -->
</div>
</div>
{dede:include filename="right.htm"/}
</div>
{dede:include filename="footer.htm"/}
</body>
</html>
代码解释:
{dede:list pagesize='10'}:循环调用栏目下的文章,每页显示10条。[field:arcurl/]:文章的详情页链接。[field:title/]。[field:pubdate ...]:发布日期,MyDate是DedeCMS的日期格式化函数。[field:softsize/]:调用我们自定义的“文件大小”字段。{dede:pagelist ...}:调用分页代码。
创建文章详情模板 (article_download.htm)
当用户点击列表中的某个文件时,会跳转到这个详情页。
- 同样在 [模板] -> [默认模板管理] 中。
- 点击 [增加模板]。
- 模板名称:
article_download。 - 模板类型:选择
article_article。 - :将下面的代码复制进去。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/} - {dede:field.title/}</title>
<meta name="description" content="{dede:field.description function='html2text(@me)'/}" />
<meta name="keywords" content="{dede:field.keywords/}" />
<link rel="stylesheet" href="/templets/default/style/base.css">
<link rel="stylesheet" href="/templets/default/style/style.css">
</head>
<body>
{dede:include filename="head.htm"/}
<div class="w960 clear">
<div class="pleft">
<div class="main">
<div class="title">
<h2>{dede:field.title/}</h2>
<div class="position"><a href='/'>首页</a> > {dede:field name='position'/}</div>
</div>
<!-- 文件详情开始 -->
<div class="article-content">
<div class="article-info">
<span>作者:{dede:field.softauthor/}</span>
<span>大小:{dede:field.softsize/}</span>
<span>发布时间:{dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/}</span>
<span>浏览次数:<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field.id/}&mid={dede:field name='mid'/}" type='text/javascript' language="javascript"></script>次</span>
</div>
<div class="article-text">
{dede:field.body/}
</div>
<!-- 下载按钮开始 -->
<div class="down-box">
<div class="down-title">下载地址</div>
<div class="down-list">
{dede:field name='softlinks' runphp='yes'}
if(@me <> ''){
$downlinks = explode("\r\n", trim(@me));
$dnums = count($downlinks);
for($i=0; $i < $dnums; $i++){
if($downlinks[$i] != ''){
list($servername, $url) = explode('|', $downlinks[$i]);
if($servername == '') $servername = "下载地址".$i;
echo "<div class='down-item'><span class='server'>".$servername."</span><a href='".$url."' target='_blank' class='down-btn'>下载</a></div>";
}
}
}
{/dede:field}
</div>
</div>
<!-- 下载按钮结束 -->
</div>
<!-- 文件详情结束 -->
</div>
</div>
{dede:include filename="right.htm"/}
</div>
{dede:include filename="footer.htm"/}
</body>
</html>
代码解释:
{dede:field.softauthor/}、{dede:field.softsize/}:调用自定义的作者和大小字段。{dede:field.body/}:调用文章正文,也就是你填写的“软件介绍”。- PHP代码块:这是实现多下载地址的核心。
{dede:field name='softlinks' runphp='yes'}:获取softlinks,并启用PHP解析。explode("\r\n", trim(@me)):将你在后台填写的下载地址(每行一个)按换行符分割成一个数组。list($servername, $url) = explode('|', $downlinks[$i]):将每一行地址(如服务器名称|http://...)按 分割成服务器名和真实URL。echo "...":循环输出下载按钮的HTML代码,每个按钮链接到对应的URL。
绑定模板到栏目
- 进入 [核心] -> [栏目管理]。
- 点击你之前创建的
资源下载栏目。 - 在 “列表模板选项” 中,选择你创建的
list_download。 - 在 模板选项” 中,选择你创建的
article_download。 - 点击 [保存]。
第三步:发布与测试
- 更新缓存:在后台首页点击 [系统] -> [一键更新网站] -> 更新缓存。
- 生成栏目/列表页:在 [一键更新网站] 中,选择“更新栏目HTML”和“更新栏目-列表页HTML”。
- 生成文章页:在 [一键更新网站] 中,选择“更新所有HTML”。
- 前台访问:你就可以在前台访问你的
资源下载栏目了,应该能看到一个美观的文件列表,点击文件标题或“下载”链接,会进入详情页,详情页会显示软件介绍和下载按钮。
进阶与优化建议
- 增加下载次数统计:在
article_download.htm模板的下载按钮上,可以加上一个点击统计的链接,而不是直接跳转到文件,这需要一个简单的PHP文件来处理点击和跳转,同时更新数据库中的下载次数。 - 增加文件校验信息:在详情页增加文件的MD5或SHA1值,方便用户校验文件完整性。
- 美化样式:根据你的网站主题,修改CSS样式,让下载列表和下载按钮更美观。
- 使用子栏目分类:如果你的下载文件很多,可以在
资源下载栏目下创建多个子栏目,如“办公软件”、“设计软件”、“驱动程序”等,实现更精细的分类管理。
通过以上步骤,你就可以成功地在DedeCMS中制作一个功能完善、易于管理的下载文件列表了。
