DedeCMS(织梦内容管理系统)的模板制作,虽然现在市面上有很多现成的模板,但作为初学者(菜鸟),理解模板的原理和标签用法是最重要的。

dedecms 菜鸟教程模板
(图片来源网络,侵删)

⚠️ 重要提示: DedeCMS 目前已商业收费,且由于历史久远,代码安全性相对现代框架(如 Laravel、ThinkPHP)较弱。建议仅用于本地学习或内部系统,不建议直接用于暴露在公网的生产环境,除非你非常懂得如何修补安全漏洞。

以下是一份为您准备的 DedeCMS 模板制作菜鸟教程


第一部分:模板文件在哪里?

DedeCMS 的模板文件通常存放在网站根目录下的 /templets/ 文件夹中。

  1. 默认模板路径: /templets/default/
  2. 文件后缀: DedeCMS 的模板文件通常以 .htm 虽然也可以用 .html,但系统默认识别 .htm)。

核心文件说明:

dedecms 菜鸟教程模板
(图片来源网络,侵删)
  • index.htm —— 首页模板
  • list_article.htm —— 文章列表页模板 (栏目页)
  • article_article.htm —— 页模板 (详情页)
  • head.htm —— 头部公共模板 (包含导航、CSS引用)
  • footer.htm —— 底部公共模板 (包含版权信息)

第二部分:必须掌握的核心标签

DedeCMS 使用特定的标签来动态调用数据库里的内容,标签通常写在 花括号内。

全局公共标签

在任何模板文件中都可以使用。

  • 获取站点根路径: {dede:global.cfg_cmsurl/}
    • 用途:生成链接时使用,<a href="{dede:global.cfg_cmsurl/}/about.html">关于我们</a>
  • 获取模板路径: {dede:global.cfg_templets_skin/}
    • 用途:引入 CSS、JS 或图片。<link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/style.css">
  • 引入公共文件:
    • {dede:include filename="head.htm"/} (引入头部)
    • {dede:include filename="footer.htm"/} (引入底部)

导航栏调用

通常用在 head.htm 中。

<ul>
  {dede:channel type='top' row='8' currentstyle="<li class='on'><a href='~typelink~'>~typename~</a></li>"}
     <li><a href='[field:typeurl/]'>[field:typename/]</a></li>
  {/dede:channel}
</ul>
  • type='top':调用顶级栏目。
  • row='8':调用 8 条数据。

文章列表调用

这是最常用的标签,用于首页调用新闻、产品,或者列表页展示文章。

dedecms 菜鸟教程模板
(图片来源网络,侵删)
<ul>
  {dede:arclist row='10' titlelen='30' typeid='1' orderby='pubdate'}
     <li>
        <span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        <a href="[field:arcurl/]">[field:title/]</a>
     </li>
  {/dede:arclist}
</ul>
  • row='10':调用 10 条,len='30'`:标题长度限制 30 个字符。
  • typeid='1':指定栏目 ID(可以在后台看到)。
  • orderby='pubdate':按发布时间排序。
  • [field:arcurl/]:文章链接。
  • [field:title/]
  • [field:litpic/]:文章缩略图地址(如果有)。

内容页专用标签

只能用在 article_article.htm 等内容页模板中。

  • {dede:field.title/}
  • {dede:field.body/}
  • 发布时间: {dede:field.pubdate function="MyDate('Y-m-d H:i:s',@me)"/}
  • 来源: {dede:field.source/}
  • 作者: {dede:field.writer/}
  • 当前栏目名: {dede:field.typename/}

第三部分:从零制作一个简单模板的步骤

假设你要把一个静态的 HTML 页面变成 DedeCMS 模板:

  1. 准备工作:

    • /templets/ 下新建一个文件夹,mytemp
    • 将你的静态 HTML 文件(index.html)、CSS 文件夹、JS 文件夹、Images 文件夹全部复制进去。
    • index.html 重命名为 index.htm
  2. 修改路径(关键):

    • 打开 index.htm,将所有的 src="images/xxx.jpg"href="css/xxx.css" 修改为 DedeCMS 标签格式。
    • 修改前: <link rel="stylesheet" href="css/style.css">
    • 修改后: <link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/css/style.css">
  3. 拆分结构:

    • 为了方便维护,将 index.htm 的头部代码(导航部分)剪切出来,新建一个 head.htm 粘贴进去。
    • 将底部代码(版权部分)剪切出来,新建一个 footer.htm 粘贴进去。
    • index.htm 被剪切的位置分别填入:
      • {dede:include filename="head.htm"/}
      • {dede:include filename="footer.htm"/}
    • 找到原本静态显示新闻列表的地方,删除多余的 <li>,只留一个,然后用 {dede:arclist ...}...{/dede:arclist} 包裹起来。
    • 把静态的文字替换成 [field:title/] 等标签。
  4. 后台设置:

    • 登录 DedeCMS 后台 -> 系统 -> 系统基本参数 -> 站点设置 -> 模板默认风格:改为 mytemp
    • 生成 -> 更新主页 HTML -> 选择“动态浏览”或者重新生成静态文件。

第四部分:常见问题 (FAQ)

Q: 为什么我改了模板,前台没变化? A: DedeCMS 默认是生成静态 HTML 的,修改模板后,必须去后台点击 “生成” -> “更新主页 HTML”“更新栏目 HTML” 才能看到效果。

Q: 如何调用缩略图? A: 在 {dede:arclist} 标签内使用 [field:litpic/],如果文章没有图,想显示默认图,可以使用 [field:litpic runphp='yes']if(@me==''){@me='/images/default.gif';}[/field:litpic]

Q: 哪里找现成的模板? A: 可以在 A5 源码、懒人图库等网站搜索“DedeCMS 模板”,下载后解压到 templets 目录,然后在后台修改“模板默认风格”即可。

对于菜鸟来说,最快的学习方法是:

  1. 下载一个默认的 DedeCMS 安装包。
  2. 打开 /templets/default/index.htm
  3. 对照着网页显示的效果,看代码里的标签是怎么写的。
  4. 边改边生成,看报错信息。

祝你学习顺利!