SiteFactory 5.0(通常指 DedeCMS 的企业版或类似架构的建站系统)的模板系统是其核心功能之一,它允许用户通过修改模板文件来改变网站的外观和布局,而无需接触复杂的 PHP 代码,这个系统主要基于 HTML + 自定义标签 的模式。

下面我将从几个方面为您全面解析 SiteFactory 5.0 的模板:
模板的核心概念
理解以下几个关键概念是掌握 SiteFactory 5.0 模板的基础:
-
模板文件
- 本质:通常是
.htm后缀的 HTML 文件,但文件内部包含了大量由系统定义的自定义标签。 - 作用:定义网站某个页面(如首页、列表页、内容页)的静态结构和样式。
- 存放位置:通常位于网站根目录下的
/templets/文件夹中,首页模板可能是/templets/default/index.htm。
- 本质:通常是
-
自定义标签
(图片来源网络,侵删)- 本质:SiteFactory 系统定义的特殊代码,形如
{dede:标签名 属性='值'}。 - 作用:这些标签在用户访问网站时,会被后台的 PHP 程序解析,并替换成从数据库中动态获取的实际内容(如文章标题、图片、正文等)。
- 优点:实现了“内容”与“表现”的分离,内容存储在数据库,模板负责展示,修改模板不影响内容,更新内容不需要改模板。
- 本质:SiteFactory 系统定义的特殊代码,形如
-
模板引擎
- 本质:SiteFactory 后台的一套 PHP 程序。
- 作用:负责解析模板文件中的自定义标签,从数据库读取对应的数据,然后将数据填充到标签位置,最终生成完整的 HTML 页面并发送给用户的浏览器。
-
变量
- 形如
{dede:field.name/}或{dede:global.cfg_webname/},用于显示单一的信息,如网站名称、栏目描述等。
- 形如
模板文件的组织结构
一个典型的 SiteFactory 网站,其模板文件会按照页面类型进行组织,结构如下:
/templets/
└── default/ # 默认模板文件夹,可以自定义名称
├── index.htm # 首页模板
├── list.htm # 列表页模板 (新闻列表、产品列表)
├── article.htm # 文章内容页模板
├── search.htm # 搜索结果页模板
├── feedback.htm # 留言板页面模板
├── user/ # 用户中心相关模板
│ ├── login.htm
│ ├── reg.htm
│ └── ...
└── style/ # 样式文件
├── css/ # CSS 文件夹
│ └── default.css
└── images/ # 图片资源文件夹
说明:

default是默认的模板文件夹名,你可以在后台创建多个不同的模板文件夹(如red,blue,mobile),实现多主题切换。- 当系统需要生成某个页面时,会自动去对应的模板文件夹里寻找同名的
.htm文件,访问“新闻”栏目,系统会调用/templets/default/list.htm模板。
常用自定义标签详解
掌握常用标签是修改模板的关键。
全局标签 (Global Tags)
通常用于显示网站的全局配置信息,放在模板的任何位置。
{dede:global.cfg_webname/}:网站名称{dede:global.cfg_weburl/}:网站网址{dede:global.cfg_powerby/}:版权信息{dede:global.cfg_keywords/}:网站关键词
首页标签 (Index Tags)
主要用于首页模板,循环调用指定栏目或内容。
-
顶级栏目循环:
{dede:channel type='top' row='8'} <a href="[field:typelink/]">[field:typename/]</a> {/dede:channel}type='top':只调用顶级栏目。row='8':调用 8 个栏目。[field:typelink/]:栏目链接。[field:typename/]:栏目名称。
-
内容推荐/头条循环 (arclist 标签): 这是首页最核心的标签,用于调用文章列表。
{dede:arclist row='4' titlelen='20' typeid='1' orderby='pubdate'} <li> <a href="[field:arcurl/]">[field:title/]</a> <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span> </li> {dede:arclist}row='4':调用 4 篇文章。titlelen='20'长度限制为 20 个字符。typeid='1':只调用 ID 为 1 的栏目及其子栏目的文章,不填则调用所有。orderby='pubdate':按发布时间排序。[field:arcurl/]:文章链接。[field:title/]。[field:pubdate .../]:发布日期,function="MyDate('Y-m-d', @me)"是一个格式化函数,将时间戳转为年-月-日格式。
列表页标签 (List Tags)
用于 list.htm 模板,显示一个栏目下的所有文章列表。
- 循环:
{dede:list pagesize='20'} <li> <a href="[field:arcurl/]">[field:title/]</a> <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span> </li> {/dede:list} - 分页标签:
<div class="page"> {dede:pagelist listsize='5' listitem='index,pre,next,end,pageno'} </div>listsize='5':显示 5 个页码按钮。listitem='...':定义要显示的分页元素。
内容页标签 (Article Tags)
用于 article.htm 模板,显示单篇文章的详细内容。
- :
{dede:field.title/} - :
{dede:field.body/} - 发布时间:
{dede:field.pubdate function="MyDate('Y-m-d', @me)"/} - 文章来源:
{dede:field.source/} - 作者:
{dede:field.writer/} - 点击量:
{dede:field.click/} - 上下页导航:
<a href="{dede:prenext get='pre'/}">上一篇</a> <a href="{dede:prenext get='next'/}">下一篇</a>
如何修改和使用模板
修改模板的基本步骤
-
准备工作:
- 备份:在修改任何文件之前,务必备份你的网站数据库和模板文件,这是最重要的习惯!
- 本地环境:建议在本地搭建一个测试环境(如使用 XAMPP、WAMP 或 Docker)进行修改和测试,确认无误后再部署到服务器。
-
下载模板文件:
- 通过 FTP 或服务器文件管理器,将
/templets/default/文件夹中的.htm文件下载到本地。
- 通过 FTP 或服务器文件管理器,将
-
编辑模板文件:
- 使用专业的代码编辑器(如 VS Code, Sublime Text, Dreamweaver)打开
.htm文件。 - HTML/CSS 修改:修改
<html>,<head>,<body>等标签,调整页面布局、颜色、字体等。 - 标签调整:根据需要,修改或增删自定义标签,调整其属性(如
row,typeid等)。
- 使用专业的代码编辑器(如 VS Code, Sublime Text, Dreamweaver)打开
-
上传模板文件:
- 将修改好的
.htm文件通过 FTP 或文件管理器上传回服务器的/templets/default/目录,覆盖原文件。
- 将修改好的
-
更新网站缓存:
登录 SiteFactory 后台,找到“系统” -> “一键更新网站”或“更新缓存”等选项,点击执行,这一步是让系统重新解析你的模板文件,生成新的静态页面。
-
检查效果:
清理浏览器缓存,访问你的网站,查看修改是否生效。
创建一个简单的自定义模板示例
假设我们要创建一个极简的首页模板:
-
创建文件夹:在
/templets/下创建一个名为my_simple_theme的文件夹。 -
创建模板文件:在
my_simple_theme文件夹下创建index.htm文件。 -
编写代码:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>{dede:global.cfg_webname/}</title> <meta name="keywords" content="{dede:global.cfg_keywords/}" /> <meta name="description" content="{dede:global.cfg_description/}" /> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 20px; background-color: #f4f4f4; } .container { max-width: 800px; margin: 0 auto; background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.1); } h1 { color: #333; } .news-list { list-style: none; padding: 0; } .news-list li { border-bottom: 1px solid #eee; padding: 10px 0; } .news-list a { text-decoration: none; color: #0066cc; } .news-list a:hover { text-decoration: underline; } .news-meta { font-size: 12px; color: #999; } </style> </head> <body> <div class="container"> <h1>{dede:global.cfg_webname/}</h1> <ul class="news-list"> {dede:arclist row='10' titlelen='30' orderby='pubdate'} <li> <a href="[field:arcurl/]">[field:title/]</a> <span class="news-meta"> - [field:pubdate function="MyDate('Y-m-d', @me)"]</span> </li> {/dede:arclist} </ul> </div> </body> </html> -
后台设置:
- 登录 SiteFactory 后台,进入“模板”管理。
- 选择你刚才创建的
my_simple_theme模板,并设置为“默认模板”。 - 执行“一键更新网站”。
-
查看结果:访问你的网站首页,就会看到一个简洁的文章列表页面。
注意事项与进阶技巧
- 不要删除或修改不认识的标签:如果你不确定某个标签的作用,最好不要动它,否则可能导致页面显示错误。
- 利用浏览器开发者工具:当页面样式错乱时,使用浏览器的“检查”功能(F12)可以快速定位到 HTML 元素和对应的 CSS 样式,非常有助于调试。
- 模板标签的官方文档:寻找 SiteFactory 或 DedeCMS 的官方文档,那里有最完整、最权威的标签列表和用法说明。
- JavaScript 和 CSS 路径:在模板中引入 CSS 和 JS 文件时,建议使用绝对路径(如
/templets/default/style.css)或 SiteFactory 提供的路径变量,以确保路径正确。 - 性能优化:首页模板尽量避免使用复杂的循环和过多的调用,以免影响网站加载速度,可以考虑使用“首页生成HTML”功能,将首页生成为静态文件。
希望这份详细的指南能帮助您理解和使用 SiteFactory 5.0 的模板系统!如果您有更具体的问题,比如某个特定标签的用法或某个布局的实现,可以随时提出。
