dede 多个文章模板下载

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 DEDE建站 正文
  1. 为不同的栏目或文章指定不同的文章内容模板(静态HTML模板),这是 DedeCMS 的核心功能,通过模板规则实现,用户访问文章时,网站会根据规则调用对应的模板生成页面。
  2. 提供一个下载链接,让用户可以下载文章内容为不同的文件格式(如 Word、PDF、TXT),这是通过二次开发或插件实现的功能。

下面我将分别对这两种方式进行详细说明。

dede 多个文章模板下载
(图片来源网络,侵删)

为不同栏目/文章使用不同的文章模板(DedeCMS原生功能)

这是最常见的需求,也是 DedeCMS 强大的模板系统的一部分,你可以让“新闻”栏目用一种样式,“产品”栏目用另一种样式。

实现步骤:

准备多个模板文件

在你模板目录(通常是 /templets/default/ 或你自定义的目录)下,创建多个文章内容模板文件。

  • article_news.htm (用于新闻文章)
  • article_product.htm (用于产品文章)
  • article_download.htm (用于下载类文章)
  • article_default.htm (默认模板)

每个模板文件里,你可以编写完全不同的 HTML 结构和样式,但必须包含 DedeCMS 的核心标签来调用文章内容,

dede 多个文章模板下载
(图片来源网络,侵删)
{dede:field.title/}
{dede:field.pubdate function='MyDate("Y-m-d H:i:s",@me)'/}
{dede:field.body/}

设置栏目使用指定模板

这是最关键的一步,你需要在后台为每个栏目指定一个默认的文章内容模板。

  1. 登录 DedeCMS 后台。
  2. 进入【核心】 -> 【栏目管理】。
  3. 点击你想要设置模板的栏目名称(公司新闻”)。
  4. 在栏目编辑页面,找到 “高级选项” 并展开它。
  5. “文章列表模板”模板” 这两个选项中,选择你刚才创建好的模板文件(article_news.htm)。
  6. 保存更改。

效果: 只要是在这个“公司新闻”栏目下发布的文章,默认都会调用 article_news.htm 这个模板来显示页面。

覆盖栏目的模板设置(针对单篇文章)

dede 多个文章模板下载
(图片来源网络,侵删)

如果你想发布一篇文章,让它不使用栏目的默认模板,而是使用一个特殊的模板,可以这样做:

  1. 进入【核心】 -> 【所有档案】。
  2. 找到并点击你想要修改的那篇文章,进入编辑模式。
  3. 在文章编辑页面,点击右上角的 “高级参数” 按钮。
  4. 在弹出的窗口中,找到 “选择模板” 选项。
  5. 从下拉菜单中选择一个你准备好的、不同于栏目默认的模板文件(article_special.htm)。
  6. 点击“确定”并保存文章。

效果: 这篇特定的文章将会使用你选择的 article_special.htm 模板来显示,而它所在栏目的其他文章仍然使用栏目的默认模板。


提供文章下载链接(Word, PDF, TXT 等)

这个功能 DedeCMS 本身不直接提供,需要通过二次开发(修改程序文件)或安装现成的插件来实现,这里我为你介绍两种主流的实现方法。

方法 A:安装现成插件(推荐,最简单)

网上有很多优秀的 DedeCMS 文档下载插件,你可以直接下载安装。

  • 搜索关键词: DedeCMS 文档下载插件DedeCMS word/pdf导出插件
  • 知名插件示例: DedeCMSDowndedecms文章下载插件 等。

通用安装步骤(以典型插件为例):

  1. 下载插件: 从可靠的网站下载插件压缩包。
  2. 上传文件: 解压压缩包,按照说明将文件上传到你的网站 DedeCMS 程序目录的对应位置(/include//dede/ 等)。
  3. 运行安装程序: 在浏览器中访问插件自带的安装脚本(http://你的网站.com/dede/install_down.php)。
  4. 配置插件: 在后台管理界面,找到新增加的菜单(通常在“核心”或“插件”分类下),配置下载按钮的样式、支持的文件类型、下载积分/权限等。
  5. 调用标签: 在你的文章内容模板(如 article_article.htm)中,使用插件提供的标签来生成下载链接。

模板调用示例(假设插件标签为 {dede:downlink/}):

<article>
    <h1>{dede:field.title/}</h1>
    <div class="content">
        {dede:field.body/}
    </div>
    <!-- 在这里插入下载按钮 -->
    <div class="download-area">
        <h3>下载本文档</h3>
        {dede:downlink/}
    </div>
</article>

优点: 简单快捷,无需懂代码。 缺点: 可能与你的 DedeCMS 版本不兼容,或存在安全风险,选择需谨慎。

方法 B:手动二次开发(灵活,但需要一定技术)

如果你想完全控制下载功能,可以自己动手修改代码,这里以实现“下载为 TXT 文本文件”为例,因为它相对简单。

目标: 在文章页面上添加一个“下载为 TXT”的按钮,点击后下载当前文章的纯文本内容。

实现步骤:

第1步:修改文章模板 模板(/templets/default/article_article.htm)中,添加一个下载链接。

<a href="{dede:field name='phpurl'/}/download.php?aid={dede:field.id/}" target="_blank">下载为 TXT 文件</a>

第2步:创建下载处理文件

在你的网站根目录下创建一个名为 download.php 的文件,并粘贴以下代码:

<?php
/**
 * DedeCMS 文章下载为TXT
 */
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once DEDEINC."/arc.archives.class.php";
// 获取文章ID
$aid = isset($aid) && is_numeric($aid) ? $aid : 0;
if($aid == 0) {
    die('文章ID错误');
}
// 实例化文章类
$arc = new Archives($aid);
// 获取文章内容
$field = $arc->dsql->GetOne("SELECT title, body FROM `#@__archives` WHERE id='$aid'");
if(empty($field)) {
    die('文章不存在');
}
// 获取文章标题和内容
$title = $field['title'];
$body = $field['body'];
// 去除HTML标签,只保留纯文本
$content = strip_tags($body);
// 设置响应头,告诉浏览器这是一个文件下载
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=" . urlencode($title) . ".txt");
header("Content-Length: " . strlen($content));
echo $content;
exit();
?>

代码解释:

  1. require_once ...:引入 DedeCMS 的核心文件,确保可以正常使用系统函数。
  2. new Archives($aid):创建一个文章对象,这是 DedeCMS 处理文章的标准方式。
  3. strip_tags($body):这是 PHP 的内置函数,用于去除字符串中的所有 HTML 和 PHP 标签,只留下纯文本。
  4. header(...):这部分非常重要,它告诉浏览器不要直接显示内容,而是将其作为附件下载,并指定了下载的文件名。
  5. echo $content:输出处理后的纯文本内容。

效果: 当用户访问一篇文章页面并点击“下载为 TXT 文件”链接时,浏览器会直接下载一个包含该文章纯文本内容的 .txt 文件。


需求 实现方式 优点 缺点 适用场景
多个文章显示模板 DedeCMS原生模板规则 无需编程,功能强大稳定,官方支持 需要手动创建和管理多个模板文件 网站不同栏目/文章需要不同展示风格时
下载 方式二A:安装插件 简单快速,功能丰富(支持Word/PDF) 可能不兼容或有安全风险,依赖第三方 需要快速实现文档下载功能,且对定制要求不高
下载 方式二B:手动二次开发 完全可控,灵活,无安全风险 需要一定的 PHP/HTML 知识,开发耗时 对下载功能有特殊要求,或追求代码纯净和安全时

根据你的具体需求,选择最适合你的方案即可,对于大多数用户来说,方式一 是必须掌握的,而 方式二 则根据你的技术能力和项目需求来选择。

-- 展开阅读全文 --
头像
dede手机站绑定域名,如何正确操作?
« 上一篇 02-15
C语言中void究竟是什么意思?
下一篇 » 02-15

相关文章

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

目录[+]