dede下载页面模板如何制作?

99ANYc3cd6
预计阅读时长 33 分钟
位置: 首页 DEDE建站 正文

制作一个下载页面模板,通常需要用到 DedeCMS 的几个核心功能:

dede下载页面模板
(图片来源网络,侵删)
  1. 自定义模型:创建一个专门用于下载资源的模型,而不是直接使用默认的“文章模型”。
  2. 自定义字段:在下载模型中添加必要的字段,如下载地址、文件大小、授权方式、解压密码等。
  3. 模板制作:编写一个独立的模板文件来展示这些自定义字段。
  4. 栏目设置:创建一个专门的下载栏目,并关联这个自定义模板。

下面是详细的步骤和代码示例。


第一步:创建自定义模型(最核心的一步)

这是制作下载页面的基础,我们需要一个比普通文章更复杂的模型来存放下载信息。

  1. 登录后台:进入 DedeCMS 后台管理。

  2. 找到模型管理:在左侧菜单栏,依次点击 核心 -> 内容模型管理

    dede下载页面模板
    (图片来源网络,侵删)
  3. 添加新模型:点击右上角的 增加新模型 按钮。

  4. 填写模型信息

    • 模型名称:填写 下载资源下载
    • 表前缀:保持默认的 dede_ 即可。
    • 名称规则:可以自定义,{typedir}/{aid}.html
    • 列表项数:设置列表每页显示的文章数量。
    • 简介长度:设置下载列表页中描述的长度。
    • 图片目录:存放相关图片的目录,保持默认即可。
    • 附件目录:存放相关附件的目录,保持默认即可。
    • 其他选项:根据需要选择,例如是否启用评论等。
  5. 添加自定义字段:这是最关键的一步,在添加完模型基本信息后,点击 保存,系统会跳转到字段管理界面。

    • 批量添加字段:点击 批量增加字段 可以快速添加常用字段。
    • 手动添加字段:点击 增加新字段 可以更精细地控制每个字段。

建议添加的下载字段如下:

dede下载页面模板
(图片来源网络,侵删)
字段名 字段标识 字段类型 字段说明
下载地址 downloadurl 多文本/编辑器 用于填写下载链接,可以是多个。
文件大小 filesize 单行文本 显示文件大小,如 "12.5MB"。
授权方式 license 单行文本/下拉 如 "免费"、"VIP专享"、"商业授权"等。
解压密码 password 单行文本 如果需要,填写解压密码。
软件截图 images 图片集 用于展示软件的预览图。
运行环境 environment 多行文本 如 "Windows 10 / 11, .NET Framework 4.5"。
更新时间 updatetime 时间日期 记录文件最后更新时间。

添加字段示例(以“下载地址”为例):

  • 字段名称:下载地址
  • 字段标识downloadurl (必须为英文小写,不能有空格)
  • 字段类型:选择 多文本编辑器,选择编辑器可以更方便地填写和修改链接。
  • 默认值:留空。
  • 数据校验:根据需要设置,例如是否为必填。
  • 显示在发布页:选择“是”。
  • 前台显示:选择“是”。

添加完所有需要的字段后,点击 保存,你的自定义“下载”模型就创建完成了。


第二步:创建下载栏目

  1. 进入后台 频道管理 -> 栏目管理
  2. 点击 增加顶级栏目
  3. 栏目信息
    • 栏目名称:填写 资源下载
    • 栏目目录:填写 download (这个会生成在网站的根目录下,如 http://yourdomain.com/download/)。
    • 栏目类型:选择 外部链接内部栏目,如果是内部栏目,需要选择你刚创建的 下载 模型。
    • 选择模型:如果选择了内部栏目,务必在这里选择你创建的 下载 模型。
    • 列表模板:稍后我们会创建,可以先留空或选择一个默认的。
    • 文章模板这是关键! 我们需要一个独立的页面来展示单个下载项的详细信息,先留空,等模板创建后再回来设置。

第三步:制作下载页面模板

现在我们来制作两个模板:

  1. 列表页模板 (download_list.htm):用于显示下载资源的列表。
  2. 内容页/详情页模板 (download_article.htm):用于显示单个下载资源的详细信息。

列表页模板 (download_list.htm)

这个模板和普通文章列表模板类似,但通常会显示文件大小、授权方式等额外信息。

代码示例 (/templets/default/download_list.htm):

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
    <meta name="description" content="{dede:field.description function='html2text(@me)'/}">
    <link rel="stylesheet" href="/templets/style/style.css">
</head>
<body>
    {dede:include filename="head.htm"/}
    <div class="main">
        <div class="path">
            <a href="/">首页</a> > <a href="{dede:field name='typeurl'/}">{dede:field.typename/}</a>
        </div>
        <div class="download-list">
            <h2>{dede:field.typename/}</h2>
            {dede:list pagesize='10' titlelen='40'}
            <div class="download-item">
                <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
                <p class="desc">[field:description function='cn_substr(@me, 100)'/]...</p>
                <div class="info">
                    <span class="file-size">文件大小:[field:filesize/]</span>
                    <span class="license">授权方式:[field:license/]</span>
                    <span class="date">更新时间:[field:updatetime function='GetDateMK(@me)'/]</span>
                </div>
            </div>
            {/dede:list}
            <div class="page">
                {dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'}
                </div>
        </div>
    </div>
    {dede:include filename="footer.htm"/}
</body>
</html>

说明

  • {dede:list}:循环输出列表内容。
  • [field:filesize/][field:license/] 等是我们在第一步中添加的自定义字段,可以直接在这里调用。
  • [field:arcurl/] 是文章的链接。

详情页模板 (download_article.htm)

这是最重要的模板,用于展示单个下载资源的所有信息。

代码示例 (/templets/default/download_article.htm):

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
    <meta name="description" content="{dede:field.description function='html2text(@me)'/}">
    <link rel="stylesheet" href="/templets/style/style.css">
</head>
<body>
    {dede:include filename="head.htm"/}
    <div class="main">
        <div class="path">
            <a href="/">首页</a> > <a href="{dede:type typeid='0' row='1'}[field:typelink/]{/dede:type}">{dede:field.typename/}</a>
        </div>
        <div class="download-detail">
            <h1>{dede:field.title/}</h1>
            <div class="meta-info">
                <span>文件大小:{dede:field.filesize/}</span>
                <span>授权方式:{dede:field.license/}</span>
                <span>更新时间:{dede:field.updatetime function='GetDateMK(@me)'/}</span>
                {dede:field.password runphp='yes'}
                if(@me) echo '<span>解压密码:<strong>'.@me.'</strong></span>';
                {/dede:field.password}
            </div>
            <!-- 软件截图 -->
            {dede:field.images runphp='yes'}
                $images = @me;
                if($images != ''){
                    $images_array = explode(',', $images);
                    echo '<div class="screenshots"><h3>软件截图</h3>';
                    foreach($images_array as $img){
                        echo '<img src="'.$img.'" alt="软件截图">';
                    }
                    echo '</div>';
                }
            {/dede:field.images}
            <!-- 运行环境 -->
            {dede:field.environment runphp='yes'}
                $env = @me;
                if($env != ''){
                    echo '<div class="environment"><h3>运行环境</h3><p>'.$env.'</p></div>';
                }
            {/dede:field.environment}
            <!-- 下载地址 -->
            <div class="download-links">
                <h3>下载地址</h3>
                {dede:field.downloadurl runphp='yes'}
                    $urls = @me;
                    if($urls != ''){
                        $urls_array = explode("\n", $urls);
                        echo '<ul>';
                        foreach($urls_array as $url){
                            if(trim($url) != ''){
                                // 可以在这里增加一些美化或统计点击的功能
                                echo '<li><a href="'.$url.'" target="_blank" rel="noopener noreferrer">点击下载</a></li>';
                            }
                        }
                        echo '</ul>';
                    }
                {/dede:field.downloadurl}
            </div>
            <!-- 文章正文 -->
            <div class="content">
                {dede:field.body/}
            </div>
            <!-- 上下篇 -->
            <div class="prenext">
                <p>上一篇:{dede:prenext get='pre'/}</p>
                <p>下一篇:{dede:prenext get='next'/}</p>
            </div>
            <!-- 下载说明/评论等 -->
            {dede:include filename='phpcms/feedback.htm'/}
        </div>
    </div>
    {dede:include filename="footer.htm"/}
</body>
</html>

说明

  • {dede:field.xxx/}:直接调用我们创建的自定义字段。
  • runphp='yes':这是 PHP 代码块,非常强大,用于处理复杂的字段内容,
    • 将图片集(逗号分隔的字符串)转换成 <img>
    • 将多行文本(换行符分隔)转换成 <li> 列表。
    • 条件判断,比如只有存在“解压密码”时才显示。
  • [field:body/]:调用文章的正文内容,你也可以在这里添加使用说明、功能介绍等。

第四步:关联模板并测试

  1. 返回栏目管理:进入后台 频道管理 -> 栏目管理
  2. 编辑下载栏目:找到你创建的 资源下载 栏目,点击后面的 修改
  3. 设置模板
    • 列表模板:选择你刚刚创建的 download_list.htm
    • 文章模板:选择你刚刚创建的 download_article.htm
  4. 保存
  5. :去 内容管理 -> ,你应该能看到一个新的模型选择界面,选择你创建的 下载 模型,然后填写你添加的自定义字段并发布。
  6. 前台访问
    • 访问你的下载栏目列表页:http://yourdomain.com/download/,检查列表模板是否正常显示。
    • 点击其中一篇文章,访问详情页:http://yourdomain.com/download/1.html,检查详情页模板是否正确展示了所有自定义字段。

高级技巧与注意事项

  • 防盗链:如果你希望用户必须从你的网站下载,而不是直接复制链接,你需要配置服务器的防盗链功能(如 Nginx 或 Apache 的 rewrite 规则),并使用 DedeCMS 的 附件管理 功能来上传文件,然后在模板中使用 {dede:field.fileurl/} 来调用,而不是直接填写外部链接。
  • 下载统计:如果你需要统计每个下载地址的点击次数,可以在 download_article.htm 模板中,将下载链接指向一个专门的统计脚本(如 count.php?id=文章ID),该脚本在数据库中更新点击次数后,再 header 跳转到真正的下载地址。
  • 样式美化:上面的模板是纯 HTML 结构,你需要配合 CSS 样式表 (style.css) 来美化页面,让下载列表和详情页看起来更专业、更易用。
  • 移动端适配:确保你的模板是响应式的,或者在移动端有专门的模板,以提供良好的用户体验。

通过以上四个步骤,你就可以在 DedeCMS 中创建一个功能完善、专业的下载页面模板了。

-- 展开阅读全文 --
头像
dede为何无法生成文档?
« 上一篇 04-06
织梦cms入口文件是什么?如何找到?
下一篇 » 04-06

相关文章

取消
微信二维码
支付宝二维码