“模板管理程序”不仅仅是一个简单的文件列表,它是一个集文件管理、代码编辑、模板引擎调用于一体的综合工具。

dedecms 后台 模板管理程序
(图片来源网络,侵删)

核心概念:在理解“模板管理”前,你需要知道什么?

在深入了解后台操作前,必须先理解 DedeCMS 的工作原理,否则模板管理会变得非常混乱。

  1. 模板 vs. HTML

    • 普通 HTML 网页:是静态的,内容写死在文件里。
    • DedeCMS 模板:是带有特定标记的 HTML 文件,这些标记(如 {dede:arclist})是 DedeCMS 的模板引擎(php.lib.php)能够识别的指令,当用户访问网站时,DedeCMS 会读取模板文件,解析这些标记,并用数据库中的实际内容替换它们,最终生成一个完整的 HTML 页面返回给浏览器。
  2. 模板文件存放位置

    • 所有前台模板文件都存放在 /templets/ 目录下。
    • /templets/ 目录下通常会有一个默认的文件夹,default/,这就是默认模板。
    • 你可以创建自己的模板文件夹,mytheme/,来制作和切换不同的网站风格。
  3. 模板中的核心标记

    dedecms 后台 模板管理程序
    (图片来源网络,侵删)
    • {dede:include file='head.htm' /}:包含其他模板文件,如头部、底部,这是模块化开发的关键。
    • {dede:arclist}:用于调用文章列表,是列表页的核心。
    • {dede:field}:用于调用单个文档的字段,如标题 (title (body)、发布时间 (pubdate) 等,是内容页的核心。
    • {dede:channel}:用于调用栏目列表。
    • {dede:global}:用于调用全局变量,如网站名称 (cfg_webname)。

后台模板管理入口与主界面

  1. 登录后台:使用你的管理员账号登录 DedeCMS 后台。

  2. 找到入口

    • 在左侧菜单栏中,找到 【模板】 -> 【模板管理】
    • 或者,在某些版本中,可能直接是 【模板】 -> 【默认模板管理】,这两个入口功能基本一致,后者通常会直接定位到默认模板。
  3. 主界面解析: 进入模板管理后,你会看到一个文件列表界面,通常包含以下信息列:

    • 模板名称:显示模板文件的名称,如 index.htm
    • 模板标识:这是非常重要的一个字段!它将模板文件和系统中的某个页面关联起来。index.htm 的模板标识通常是 indexarticle_article.htm 的是 article_article,系统在生成页面时,就是根据这个标识来找到对应的模板文件的。
    • 模板类型:如“首页”、“列表页”、“内容页”、“封面页”等。
    • 默认:显示该模板是否是其类型下的默认模板。
    • 禁用:可以禁用某个模板,使其不被系统调用。
    • 操作:提供对模板文件的管理操作,如 [可视化] / [代码] / [设为默认] / [禁用] / [删除]

核心功能详解

模板编辑

这是最常用的功能,系统提供了两种编辑模式:

  • [代码] 编辑

    • 是什么:一个带语法高亮的代码编辑器(通常是 ACE Editor 或类似的),你可以在这里直接编写和修改 HTML、CSS、JavaScript 以及 DedeCMS 的模板标记。
    • 何时使用
      • 从零开始制作一个全新的模板。
      • 需要进行复杂的、精细化的代码调整。
      • 修改 CSS 样式或 JavaScript 脚本。
    • 优点:功能强大,自由度高。
    • 缺点:需要具备一定的代码基础。
  • [可视化] 编辑

    • 是什么:一个所见即所得的编辑器,类似于一个简化的网页版 Dreamweaver,你可以在一个模拟的浏览器窗口中直接拖拽元素、修改文本样式。
    • 何时使用
      • 快速调整布局、颜色、字体等。
      • 不熟悉代码,希望更直观地操作。
      • 进行简单的图文排版。
    • 优点:直观易用,无需代码基础。
    • 缺点:功能受限,对于复杂的模板标记和逻辑无法处理,有时生成的代码可能不够“干净”。

操作建议:对于大部分修改,可以先在 [可视化] 中进行宏观调整,然后切换到 [代码] 模式进行细节修正和优化。

模板更新 / 生成

这是 DedeCMS 模板流程中最关键的一步!

  • 为什么需要更新?

    • 你在后台修改了模板文件并保存。
    • 你在后台添加、删除或修改了文章、栏目等数据。
    • 这些修改并不会立即反映到你的网站上(因为访问者看到的是之前生成的静态 HTML 文件)。
    • 你需要通过“生成”功能,让 DedeCMS 重新读取最新的模板最新的数据,来生成新的 HTML 文件。
  • 如何更新?

    • 在模板管理列表页,找到你修改过的模板文件,点击其右侧的 [生成] 按钮。
    • 更推荐在后台首页或 【生成】 菜单下进行批量生成。
      • 一键更新网站:会更新所有设置了“使用动态页”的页面。
      • 更新栏目HTML:重新生成所有栏目列表页。
      • 更新文档HTML:重新生成所有文章内容页。
      • 更新首页HTML:重新生成网站首页。

黄金法则任何对模板文件的修改,最终都必须通过“生成”才能在前台看到效果。

设置默认模板

一个网站可以有多个模板风格,你可以为“产品中心”栏目制作一个 product_list.htm 模板,为“新闻资讯”制作一个 news_list.htm 模板。

  • 如何设置?
    • 在模板管理列表中,找到你想要设为默认的模板文件。
    • 点击其右侧的 [设为默认] 按钮。
  • 效果
    • 对于首页:设为默认后,网站访问首页时就会调用这个模板。
    • 对于列表页/内容页:这个“默认”指的是该类型模板的全局默认,你还可以在 【模板】 -> 【模板默认文件设置】 中,为特定栏目指定不同的模板文件,实现“一个网站,多个风格”。

模板导入/导出

  • 导出模板:可以将你制作好的整个模板文件夹打包下载,方便备份或分享给他人。
  • 导入模板:可以上传别人制作好的模板包,快速更换网站风格。
  • 操作位置:通常在 【模板】 -> 【导入/导出模板】 菜单下。

最佳实践与常见问题

最佳实践

  1. 修改前备份:在修改任何核心模板文件(如 index.htm, head.htm)之前,务必备份原始文件,可以重命名为 index.htm.bak
  2. 使用子模板:不要直接修改 /templets/default/ 里的默认模板,复制整个 default 文件夹,重命名(如 mytheme),然后在后台 【系统】 -> 【系统基本参数】 -> 【核心设置】 中,将默认模板目录改为 mytheme,这样,未来官方升级时,你的自定义模板不会被覆盖。
  3. 模块化开发:多使用 {dede:include} 标签,将页头 (header.htm)、页脚 (footer.htm)、导航 (nav.htm) 等公共部分拆分成独立文件,这样修改时只需改一个文件,然后重新生成即可。
  4. 善用注释:在复杂的模板代码中,添加 <!-- 这是注释 --> 来解释代码的功能,方便日后维护。

常见问题与解决

  1. 问题:我修改了模板文件,但前台网站没有变化。

    • 原因:忘记点击 [生成] 按钮。
    • 解决:去后台的 【生成】 菜单,重新生成对应的页面。
  2. 问题:生成页面时提示“模板文件不存在”或“无法打开模板文件”。

    • 原因
      • 文件路径或文件名写错了。
      • 模板文件的权限不足(通常是 755 或 644)。
      • 模板文件编码格式不正确(应为 UTF-8 无 BOM 格式)。
    • 解决:检查文件名、路径,通过 FTP 修改文件权限,并用代码编辑器(如 VS Code, Sublime Text)将文件另存为 UTF-8 无 BOM 格式。
  3. 问题:网站首页显示混乱,或者部分内容不显示。

    • 原因:模板标记写错或遗漏。{dede:arclist} 标签缺少必要的属性(如 typeid),或者 {dede:field.title/} 写成了 {dede:field.titile/}(拼写错误)。
    • 解决:切换到 [代码] 编辑模式,仔细检查模板标记的拼写和语法,可以参考官方默认模板的写法。

DedeCMS 的后台模板管理是一个功能强大但需要理解其底层逻辑的工具,核心流程就是:

制作/修改模板文件 -> 后台生成页面 -> 前台查看效果

掌握好这个流程,并遵循“备份、使用子模板、模块化”等最佳实践,你就能自如地管理和定制你的 DedeCMS 网站。