dede下载地址模板如何设置?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 DEDE建站 正文
  1. 单个下载地址:文章只有一个下载文件,直接显示链接。
  2. 多个下载地址:文章提供多个下载源(如不同服务器、不同格式),需要列表展示。

下面我将详细讲解这两种情况的实现方法,并提供完整的代码示例。

dede下载地址模板
(图片来源网络,侵删)

准备工作:后台设置

在编写模板之前,请务必确保后台已经正确设置了下载字段的参数。

  1. 进入后台:登录织梦CMS后台。
  2. 找到模型:进入 [核心] -> 模型管理],选择你正在使用的模型(文章模型”)。
  3. 添加/编辑字段
    • 如果你的模型里没有下载地址字段,请点击 [增加字段]
    • 如果已有,请点击 [管理字段] 找到对应的字段(如 downloadurl)。
    • 字段名称:填写 downloadurl (这是最常用的,也可以自定义,但模板代码要对应)。
    • 字段类型:选择 多行文本不要选择“文件”或“图片”,因为我们需要的是URL地址,而不是上传文件。
    • 字段长度:根据需要设置,255
    • 数据保存格式:选择 **文本格式**
    • 字段提示:填写“请输入下载地址,多个地址请用回车(Enter)分隔。”,方便其他编辑者理解。
    • 保存

单个下载地址模板

如果你的下载模型里只填写了一个地址,或者你只想显示第一个地址,可以使用这个简单的方法。

模板代码

在你的文章模板文件(通常是 templets/default/article_article.htm)中,加入以下代码:

{dede:field name='downloadurl' runphp='yes'}
    if (@me != '') {
        @me = "<div class='download-box'><span class='label'>下载地址:</span><a href='" . @me . "' target='_blank' class='download-link'>点击下载</a></div>";
    } else {
        @me = "";
    }
{/dede:field}

代码解析

  • {dede:field name='downloadurl'}:这是调用名为 downloadurl 的字段内容。
  • runphp='yes':允许在模板中执行PHP代码。
  • if (@me != ''):判断 downloadurl 字段是否为空,如果为空,则不显示任何内容。
  • @me = "...":如果不为空,就将 @me(即字段内容)用一段HTML代码包裹起来,美化显示。
  • target='_blank':让链接在新窗口中打开,避免用户离开当前页面。

效果

如果后台填写了 https://example.com/file.zip,前台将显示为:

dede下载地址模板
(图片来源网络,侵删)
<div class="download-box">
    <span class="label">下载地址:</span>
    <a href="https://example.com/file.zip" target="_blank" class="download-link">点击下载</a>
</div>

多个下载地址模板(推荐)

这是最常用且最灵活的方式,用户在后台用回车分隔多个下载地址,前台会自动解析成列表。

模板代码

在你的文章模板文件中,加入以下代码:

{dede:field name='downloadurl' runphp='yes'}
    if (@me != '') {
        // 1. 将回车符替换为特定的分隔符,如 ||||
        $urls = str_replace("\r\n", "||||", @me);
        // 2. 按分隔符分割字符串,得到一个数组
        $url_array = explode("||||", $urls);
        // 3. 开始构建HTML
        $html = '<div class="download-list">';
        $html .= '<h3>下载地址</h3>';
        $html .= '<ul>';
        // 4. 遍历数组,为每个地址生成一个列表项
        foreach ($url_array as $key => $url) {
            if (trim($url) != '') { // 确保地址不为空
                $key_num = $key + 1; // 下载序号从1开始
                $html .= "<li><span class='num'>{$key_num}.</span><a href='" . trim($url) . "' target='_blank' class='url'>{$url}</a></li>";
            }
        }
        $html .= '</ul>';
        $html .= '</div>';
        // 5. 将最终生成的HTML赋值给 @me,以便在模板中显示
        @me = $html;
    } else {
        @me = ""; // 如果字段为空,则不显示任何内容
    }
{/dede:field}

代码解析

  1. str_replace("\r\n", "||||", @me):织梦后台用回车换行来分隔多个地址,\r\n 就是回车换行的代码,我们先把它替换成一个不常用的字符串 ,方便下一步分割。
  2. explode("||||", $urls):使用 explode 函数,按照 这个分隔符,把一整段字符串切割成一个数组(['https://a.com/file.zip', 'https://b.com/file.zip'])。
  3. foreach ($url_array as $key => $url):遍历这个数组。
  4. trim($url):在循环中,使用 trim() 函数清除每个地址前后的空格,避免用户误输入空格导致链接失效。
  5. @me = $html:将循环中拼接好的HTML代码最终赋值给 @me,模板引擎会将其输出。

效果

如果后台填写了如下内容:

https://server1.com/file.zip
https://server2.com/file.zip

前台将显示为:

dede下载地址模板
(图片来源网络,侵删)
<div class="download-list">
    <h3>下载地址</h3>
    <ul>
        <li>
            <span class="num">1.</span>
            <a href="https://server1.com/file.zip" target="_blank" class="url">https://server1.com/file.zip</a>
        </li>
        <li>
            <span class="num">2.</span>
            <a href="https://server2.com/file.zip" target="_blank" class="url">https://server2.com/file.zip</a>
        </li>
    </ul>
</div>

CSS 样式建议

为了让下载地址更美观,你可以在你的CSS文件(如 /templets/default/style/dedecms.css)中添加以下样式:

/* 下载地址容器 */
.download-box, .download-list {
    margin: 20px 0;
    padding: 15px;
    border: 1px solid #e5e5e5;
    background-color: #f9f9f9;
    border-radius: 4px;
}
/* 下载地址列表标题 */
.download-list h3 {
    margin: 0 0 10px 0;
    padding-bottom: 8px;
    border-bottom: 1px dashed #ccc;
    font-size: 16px;
    color: #333;
}
/* 下载地址列表 */
.download-list ul {
    list-style-type: none;
    padding-left: 0;
    margin: 0;
}
.download-list li {
    margin-bottom: 8px;
    line-height: 1.6;
}
/* 下载序号 */
.download-list .num {
    display: inline-block;
    width: 20px;
    height: 20px;
    line-height: 20px;
    text-align: center;
    background-color: #007bff;
    color: #fff;
    border-radius: 50%;
    margin-right: 10px;
    font-size: 12px;
}
/* 下载链接 */
.download-list .url, .download-link {
    color: #007bff;
    text-decoration: none;
    word-break: break-all; /* 防止长链接撑破布局 */
}
.download-list .url:hover, .download-link:hover {
    text-decoration: underline;
}
/* 标签样式 */
.download-box .label {
    font-weight: bold;
    margin-right: 10px;
}
  • 后台设置:将下载字段设置为“多行文本”类型。
  • 单个地址:使用简单的 if 判断和HTML包裹即可。
  • 多个地址:使用 str_replace + explode + foreach 的组合,这是处理此类问题的标准模板代码。
  • 美化:通过添加CSS类和样式,让下载区域在页面上更醒目、更美观。

希望这份详细的教程能帮助你完美地实现织梦CMS的下载地址功能!

-- 展开阅读全文 --
头像
大一C语言课程设计题目有哪些常见类型?
« 上一篇 04-27
dede分页标题如何修改?
下一篇 » 04-27

相关文章

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

目录[+]