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

sitefactory 5.0 模板
(图片来源网络,侵删)

下面我将从几个方面为您全面解析 SiteFactory 5.0 的模板:


模板的核心概念

理解以下几个关键概念是掌握 SiteFactory 5.0 模板的基础:

  1. 模板文件

    • 本质:通常是 .htm 后缀的 HTML 文件,但文件内部包含了大量由系统定义的自定义标签
    • 作用:定义网站某个页面(如首页、列表页、内容页)的静态结构和样式。
    • 存放位置:通常位于网站根目录下的 /templets/ 文件夹中,首页模板可能是 /templets/default/index.htm
  2. 自定义标签

    sitefactory 5.0 模板
    (图片来源网络,侵删)
    • 本质:SiteFactory 系统定义的特殊代码,形如 {dede:标签名 属性='值'}
    • 作用:这些标签在用户访问网站时,会被后台的 PHP 程序解析,并替换成从数据库中动态获取的实际内容(如文章标题、图片、正文等)。
    • 优点:实现了“内容”与“表现”的分离,内容存储在数据库,模板负责展示,修改模板不影响内容,更新内容不需要改模板。
  3. 模板引擎

    • 本质:SiteFactory 后台的一套 PHP 程序。
    • 作用:负责解析模板文件中的自定义标签,从数据库读取对应的数据,然后将数据填充到标签位置,最终生成完整的 HTML 页面并发送给用户的浏览器。
  4. 变量

    • 形如 {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/         # 图片资源文件夹

说明

sitefactory 5.0 模板
(图片来源网络,侵删)
  • 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>

如何修改和使用模板

修改模板的基本步骤

  1. 准备工作

    • 备份:在修改任何文件之前,务必备份你的网站数据库和模板文件,这是最重要的习惯!
    • 本地环境:建议在本地搭建一个测试环境(如使用 XAMPP、WAMP 或 Docker)进行修改和测试,确认无误后再部署到服务器。
  2. 下载模板文件

    • 通过 FTP 或服务器文件管理器,将 /templets/default/ 文件夹中的 .htm 文件下载到本地。
  3. 编辑模板文件

    • 使用专业的代码编辑器(如 VS Code, Sublime Text, Dreamweaver)打开 .htm 文件。
    • HTML/CSS 修改:修改 <html>, <head>, <body> 等标签,调整页面布局、颜色、字体等。
    • 标签调整:根据需要,修改或增删自定义标签,调整其属性(如 row, typeid 等)。
  4. 上传模板文件

    • 将修改好的 .htm 文件通过 FTP 或文件管理器上传回服务器的 /templets/default/ 目录,覆盖原文件。
  5. 更新网站缓存

    登录 SiteFactory 后台,找到“系统” -> “一键更新网站”或“更新缓存”等选项,点击执行,这一步是让系统重新解析你的模板文件,生成新的静态页面。

  6. 检查效果

    清理浏览器缓存,访问你的网站,查看修改是否生效。

创建一个简单的自定义模板示例

假设我们要创建一个极简的首页模板:

  1. 创建文件夹:在 /templets/ 下创建一个名为 my_simple_theme 的文件夹。

  2. 创建模板文件:在 my_simple_theme 文件夹下创建 index.htm 文件。

  3. 编写代码

    <!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>
  4. 后台设置

    • 登录 SiteFactory 后台,进入“模板”管理。
    • 选择你刚才创建的 my_simple_theme 模板,并设置为“默认模板”。
    • 执行“一键更新网站”。
  5. 查看结果:访问你的网站首页,就会看到一个简洁的文章列表页面。


注意事项与进阶技巧

  1. 不要删除或修改不认识的标签:如果你不确定某个标签的作用,最好不要动它,否则可能导致页面显示错误。
  2. 利用浏览器开发者工具:当页面样式错乱时,使用浏览器的“检查”功能(F12)可以快速定位到 HTML 元素和对应的 CSS 样式,非常有助于调试。
  3. 模板标签的官方文档:寻找 SiteFactory 或 DedeCMS 的官方文档,那里有最完整、最权威的标签列表和用法说明。
  4. JavaScript 和 CSS 路径:在模板中引入 CSS 和 JS 文件时,建议使用绝对路径(如 /templets/default/style.css)或 SiteFactory 提供的路径变量,以确保路径正确。
  5. 性能优化:首页模板尽量避免使用复杂的循环和过多的调用,以免影响网站加载速度,可以考虑使用“首页生成HTML”功能,将首页生成为静态文件。

希望这份详细的指南能帮助您理解和使用 SiteFactory 5.0 的模板系统!如果您有更具体的问题,比如某个特定标签的用法或某个布局的实现,可以随时提出。