如何织梦多个文本并保存为HTML数据?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 织梦建站 正文
  1. 在织梦CMS中,将多个“文本字段”的内容保存为一个完整的HTML页面。 (最常见的需求)
  2. 通过织梦CMS,将多个文本内容分别保存为独立的HTML文件。

我将针对这两种情况,为您提供详细的、可操作的解决方案。

织梦多个 文本保存html数据
(图片来源网络,侵删)

将多个文本字段合并成一个HTML页面(最常用)

这是最常见的需求,比如制作一个产品详情页、文章详情页或一个自定义的单页,页面上有多个部分,每个部分对应一个后台的文本编辑器字段。

核心思路

  1. 创建数据表:在数据库中为你的内容模型增加多个字段,用于存储不同的文本内容。
  2. 修改后台模板:在后台的内容编辑界面,为这些新字段添加对应的输入框。
  3. 修改前台模板:在前台显示页面,调用这些新字段的内容,并用HTML标签将它们组织起来,形成一个完整的页面。

详细操作步骤(以添加“产品特性”和“产品规格”为例)

第1步:为内容模型增加字段

  1. 登录织梦DedeCMS后台。
  2. 进入【核心】 -> 【内容模型管理】。
  3. 找到你想要修改的内容模型(文章模型”或“产品模型”),点击其后面的【管理字段】。
  4. 点击【添加新字段】。
  5. 添加第一个字段(产品特性”)
    • 字段名teatures (英文,不含空格)
    • 产品特性 (前台和后台显示的名称)
    • 字段类型编辑器 (这是关键,可以让你用富文本编辑器,插入图片、格式等)
    • 是否为必填项:根据需要选择。
    • 保存
  6. 添加第二个字段(产品规格”)
    • 重复步骤4-5,创建一个名为 specs为“产品规格”的编辑器字段。
  7. 更新缓存:添加完字段后,系统会提示你“更新表结构成功”,请务必点击后台右上角的【系统】 -> 【一键更新网站】 -> 【更新所有】,让新字段在后台生效。

第2步:修改后台内容编辑模板 (可选但推荐)

默认情况下,新字段会出现在编辑界面的下方,你可以通过修改模板来调整它们的布局。

  1. 进入【模板】 -> 【默认模板管理】
  2. 找到并打开你的内容模型对应的编辑模板,通常是 article_add.htm (文章添加) 或 article_edit.htm (文章编辑)。
  3. 在模板文件中,你会看到类似 {dede:field.body/} 的代码,在其下方,你可以手动添加新字段的调用标签,
    <tr>
      <td height="24" colspan="2" bgcolor="#f5f5f5"><strong>产品特性</strong></td>
    </tr>
    <tr>
      <td height="24" colspan="2">{dede:field.teatures/}</td>
    </tr>
    <tr>
      <td height="24" colspan="2" bgcolor="#f5f5f5"><strong>产品规格</strong></td>
    </tr>
    <tr>
      <td height="24" colspan="2">{dede:field.specs/}</td>
    </tr>
  4. 保存模板,现在你去后台编辑文章,就会看到按照你自定义布局排列的“产品特性”和“产品规格”编辑器了。

第3步:修改前台内容显示模板

这是最关键的一步,决定了前台如何展示这些数据。

  1. 进入【模板】 -> 【默认模板管理】

    织梦多个 文本保存html数据
    (图片来源网络,侵删)
  2. 找到并打开你的内容详情页模板,通常是 article_article.htm

  3. 在模板中,你需要用HTML结构来组织这些字段,假设你的页面布局如下:

    • 标题:{dede:field.title/}
    • 缩略图:{dede:field.litpic/}
    • 内容A (产品特性){dede:field.teatures/}
    • 内容B (产品规格){dede:field.specs/}
    • {dede:field.body/}
  4. 修改 article_article.htm 文件,将这些内容用 <div> 或其他标签包裹起来,形成一个结构化的HTML页面。

    <article class="product-detail">
      <h1>{dede:field.title/}</h1>
      <img src="{dede:field.litpic/}" alt="{dede:field.title/}">
      <section class="features">
        <h2>产品特性</h2>
        {dede:field.teatures/}
      </section>
      <section class="specs">
        <h2>产品规格</h2>
        {dede:field.specs/}
      </section>
      <section class="description">
        <h2>产品详情</h2>
        {dede:field.body/}
      </section>
    </article>
  5. 保存模板,当你访问一篇包含了“产品特性”和“产品规格”内容的文章时,前台就会按照你设计的HTML结构来展示它们,浏览器查看源代码,你会发现这就是一个完整的、由多个文本内容组成的HTML页面。

    织梦多个 文本保存html数据
    (图片来源网络,侵删)

将多个文本内容分别保存为独立的HTML文件

这个需求相对少见,通常用于生成静态文件、API导出或特定格式的文档,织梦本身的核心机制是“一篇文章一个HTML文件”,但我们可以通过二次开发或特定脚本来实现。

方法A:使用织梦的“批量生成HTML”功能(伪实现)

织梦的“一键更新”或“批量生成”功能,本质上是重新生成所有已存在内容的静态HTML文件,它不会为你的新字段(如 teatures, specs)创建新的独立文件,但它会确保包含这些新字段的页面被正确更新。

这个方法不能“分别保存”,但能确保你的多字段内容所在的页面是最新的。

方法B:编写自定义PHP脚本(真正的解决方案)

如果你确实需要为每个文本字段生成一个独立的HTML文件,你需要写一个PHP脚本。

核心思路:

  1. 连接数据库。
  2. 查询出你需要处理的文章数据。
  3. 循环每一篇文章,为每个你想要的字段(如 teatures, body)创建一个独立的HTML内容。
  4. 将这个HTML内容写入到服务器的一个指定目录中,文件名可以是 文章ID_字段名.html

示例代码(需要一定的PHP基础):

<?php
// 引入织梦的配置文件,确保数据库连接正常
// 假设你的脚本放在网站根目录下
require_once (dirname(__FILE__) . "/include/common.inc.php");
// 定义要生成HTML的字段数组
$fields_to_generate = array('body', 'teatures', 'specs');
// 定义生成文件的存放目录
$output_dir = dirname(__FILE__) . '/generated_html/';
if (!is_dir($output_dir)) {
    mkdir($output_dir, 0777, true);
}
// 查询所有文章 (可以根据需要添加 where 条件)
$dsql->SetQuery("SELECT id, title FROM `#@__archives`");
$dsql->Execute();
while ($row = $dsql->GetArray()) {
    $article_id = $row['id'];
    $article_title = $row['title'];
    // 查询这篇文章的详细字段内容
    $detail_query = "SELECT body, teatures, specs FROM `#@__addonarticle` WHERE aid = '$article_id'";
    $detail_row = $dsql->GetOne($detail_query);
    if ($detail_row) {
        // 循环每个需要生成的字段
        foreach ($fields_to_generate as $field) {
            $content = $detail_row[$field];
            // 如果内容为空,则跳过
            if (empty($content)) {
                continue;
            }
            // 创建一个简单的HTML页面结构
            $html_content = <<<HTML
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">{$article_title} - {$field}</title>
</head>
<body>
    <h1>{$article_title} - {$field}</h1>
    <div class="content">
        {$content}
    </div>
</body>
</html>
HTML;
            // 定义输出文件名
            $filename = $output_dir . $article_id . '_' . $field . '.html';
            // 将HTML内容写入文件
            file_put_contents($filename, $html_content);
            echo "已生成: " . $filename . "<br>";
        }
    }
}
echo "所有文件生成完毕!";
?>

如何使用这个脚本:

  1. 将上述代码保存为一个PHP文件,generate_html.php
  2. 通过FTP将它上传到你的织梦网站根目录。
  3. 在浏览器中访问 http://你的域名/generate_html.php
  4. 脚本会运行,并在网站根目录下创建一个 generated_html 文件夹,里面会包含类似 1_body.html, 1_teatures.html, 2_body.html 等独立文件。
需求 推荐方案 优点 缺点
将多个文本内容合并成一个页面展示 场景一:修改模型字段和前台模板 官方标准做法,稳定、易于维护,符合CMS设计理念 需要理解织梦的模板和模型机制
将多个文本内容分别保存为独立HTML文件 场景二:编写自定义PHP脚本 功能强大,高度灵活,可实现任何自定义逻辑 需要PHP编程能力,不属于织梦常规操作,维护成本高

对于绝大多数用户来说,场景一的解决方案是正确且唯一的答案,请根据您的具体需求选择合适的方法。

-- 展开阅读全文 --
头像
织梦DedeCMS安全工具有何检测能力?
« 上一篇 2025-12-15
织梦模板如何安装jQuery?
下一篇 » 2025-12-16

相关文章

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

目录[+]