帝国CMS二次开发终极指南
帝国CMS是一款功能强大、灵活度高的PHP网站管理系统,其二次开发能力是其核心优势之一,允许开发者根据业务需求进行深度定制。

本教程将分为以下几个部分:
- 第一部分:准备工作与环境搭建
- 第二部分:核心概念与工作原理
- 第三部分:基础二次开发实战
- 修改网站标题和底部信息
- 调用栏目列表和文章列表
- 自定义一个简单的页面模板
- 第四部分:核心功能模块开发
- 开发一个新的数据表(模型)
- 为新模型制作前台列表页和内容页模板
- 开发一个简单的表单提交功能(如留言、投稿)
- 第五部分:高级开发技巧
- 自定义函数库
- 使用钩子函数
- 开发管理功能
- 第六部分:实用资源与最佳实践
第一部分:准备工作与环境搭建
在开始之前,你需要一个可以运行的环境。
-
本地服务器环境:
- 推荐使用集成环境包,如
phpStudy(Windows) 或MAMP(macOS)。 - 确保环境满足帝国CMS要求:PHP版本 (建议7.0-7.4)、MySQL版本 (建议5.6+)。
- 推荐使用集成环境包,如
-
下载帝国CMS:
(图片来源网络,侵删)- 访问帝国CMS官方网站 (
https://www.phome.net/) 下载最新稳定版。 - 下载后解压到你本地服务器的网站根目录(如
phpStudy的WWW目录)。
- 访问帝国CMS官方网站 (
-
安装帝国CMS:
- 在浏览器中访问
http://你的域名/install/。 - 按照安装向导进行操作,填写数据库信息、管理员账号等。
- 安装完成后,登录后台
http://你的域名/e/admin/。
- 在浏览器中访问
-
代码编辑器:
- 推荐使用
VS Code或PhpStorm,它们对PHP和模板语法有很好的支持。
- 推荐使用
-
开发心态:
- 模仿与学习:帝国CMS的灵活性体现在模板和标签上,先学会模仿现有网站的效果,再进行修改和创新。
- 备份!备份!备份!:在修改任何文件或数据库之前,务必备份你的网站和数据库,这是最重要的习惯。
第二部分:核心概念与工作原理
理解了这些,你才能知道代码该写在哪里,标签该如何使用。

-
目录结构:
/e/:核心程序目录。不要轻易修改里面的文件。/data/:数据目录,存放缓存、配置文件等。/d/:附件(文件)目录,上传的图片、文档等会存放在这里。/skin/:前台模板目录,你所有的页面样式和布局都在这里。/e/admin/:后台管理目录。/user/:会员中心目录。
-
模板引擎 (
.html文件):- 帝国CMS的前台页面是HTML文件,但它使用了一套自己的模板引擎语法。
- 这些HTML文件存放在
/skin/目录下,按栏目ID或专题ID组织。 - 模板通过特定的“标签”来调用数据,实现动态化。
-
模板标签 (核心中的核心):
- 这是帝国CMS的精髓,类似于其他CMS的“短代码”或“函数调用”。
- 格式:
<!--栏目名-->标签内容<!--栏目名--> - 常用标签:
<!--list.var1-->模板,循环显示文章。<!--info.title-->页模板,显示文章标题。<!--showclass-->:显示栏目导航。<!--page-->:显示分页。
- 你可以在后台的“模板” -> “管理模板” -> “管理标签”中看到所有内置标签,并了解其用法。
-
数据模型:
- 帝国CMS的核心是“模型”,系统默认有“新闻”、“下载”、“图片”等模型。
- 每个模型都对应一个数据表,用于存储不同类型的内容。
- 你也可以在后台“系统” -> “数据表管理”中创建自己的数据模型(数据表)。
第三部分:基础二次开发实战
让我们从最简单的修改开始。
实战1:修改网站标题和底部信息
这是最常见的需求,完全在后台操作,无需写代码。
-
修改网站标题:
- 登录后台,进入“系统” -> “系统参数设置” -> “基本参数”。
- 在“网站名称”和“网站标题”中输入你的网站标题。
-
修改底部版权信息:
- 这个信息通常在模板文件中,路径为
/skin/你的模板名称/index/。 - 找到
footer.html文件(或者其他包含底部信息的模板文件,如index.html)。 - 用编辑器打开它,找到类似
© 2025 Your Website. All Rights Reserved.的文字,直接修改即可。
- 这个信息通常在模板文件中,路径为
实战2:调用栏目列表和文章列表
假设我们要在首页显示“公司新闻”栏目的文章列表。
-
找到首页模板:
- 路径:
/skin/你的模板名称/index/index.html。
- 路径:
-
使用列表标签:
- 在帝国CMS后台,进入“模板” -> “管理模板” -> “管理标签”。
- 点击“增加标签”,选择“列表类标签”。
- 标签名称:填写一个你记得的名字,如
首页新闻列表。 - 数据表:选择你存放新闻的表,通常是
phome_ecms_news(新闻模型)。 - 显示条数:
10。 - 操作类型:选择“按栏目”。
- 栏目ID:选择“公司新闻”这个栏目的ID。
- 排序:按“发布时间”降序。
- 模板:点击“选择模板文件”,选择一个列表内容模板,
list.var1,这个模板定义了每条新闻的显示样式。 - 保存标签。
-
在首页模板中调用标签:
- 打开
index.html,在你希望显示新闻列表的位置,插入你刚刚创建的标签:[!--首页新闻列表--]
[!--标签名--]是调用标签的标准格式。
- 打开
-
更新首页:
回到后台首页,点击“更新首页”,选择“更新所有栏目”,然后执行。
你的首页就会显示“公司新闻”栏目的最新10篇文章了。
实战3:自定义一个简单的页面模板
比如创建一个“关于我们”的独立页面。
-
创建页面模板文件:
- 在
/skin/你的模板名称/目录下新建一个文件夹,about。 - 在
about文件夹里新建一个HTML文件,about.html。 - 在
about.html中编写你的HTML内容,<!DOCTYPE html> <html> <head> <title>关于我们 - 我的网站</title> </head> <body> <h1>关于我们</h1> <p>这里是公司的详细介绍...</p> </body> </html>
- 在
-
在后台创建页面:
- 登录后台,进入“栏目” -> “增加栏目”。
- 栏目名称:填写“关于我们”。
- 栏目属性:选择“最终栏目”。
- 绑定到模板:在“栏目页模板”和“内容页模板”中,选择你刚刚创建的
/skin/你的模板名称/about/about.html。 - 提交。
-
访问页面:
- 现在你可以通过“栏目” -> “管理栏目”找到“关于我们”栏目,点击“生成HTML”或直接访问其地址(如
http://你的域名/about/)来查看页面。
- 现在你可以通过“栏目” -> “管理栏目”找到“关于我们”栏目,点击“生成HTML”或直接访问其地址(如
第四部分:核心功能模块开发
这是二次开发中最有价值的一部分,教你如何扩展网站功能。
实战4:开发一个新的数据表(模型)
假设我们要做一个“产品展示”功能。
-
创建数据表:
- 进入后台“系统” -> “数据表管理” -> “管理数据表”。
- 点击“增加数据表”,选择“创建数据表(从表结构)”。
- 表前缀:保持默认
phome_ecms_。 - 表名:输入
product。 - 数据表说明:输入“产品信息”。
- 点击“提交”。
- 系统会创建一个空表
phome_ecms_product。
-
添加字段:
- 在“数据表管理”列表中,找到你刚创建的“产品信息”,点击“管理字段”。
- 点击“增加字段”,添加必要的字段:
title(标题):VARCHAR(255), 。pic(图片):VARCHAR(255),图片地址。price(价格):VARCHAR(50),产品价格。content(内容):TEXT,详细介绍(这是系统默认的内容字段)。
- 每个字段都需要填写“字段名”、“数据类型”、“字段说明”等。
-
创建模型:
- 进入后台“系统” -> “数据表管理” -> “管理模型”。
- 点击“增加模型”,选择“信息模型”。
- 模型名称:产品。
- 数据表:选择你刚创建的
phome_ecms_product。 - 主表字段:选择
title。 - 列表页模板:选择一个列表模板(如
list.var1)。 - 内容页模板:选择一个内容模板(如
show.html)。 - 提交。
-
创建栏目:
- 和之前一样,进入“栏目”管理,创建一个“产品展示”栏目。
- 在“绑定模型”中选择你刚创建的“产品”模型。
- 注意:这个栏目必须是“最终栏目”,因为我们创建了内容模型。
-
:
现在你可以进入“内容” -> “添加信息”,选择“产品展示”栏目,填写产品信息并发布了。
实战5:为新模型制作前台模板
现在我们需要在首页显示“产品展示”栏目下的产品。
-
复制并修改列表模板:
- 找到
/skin/你的模板名称/下的列表模板文件,list.var1。 - 复制一份,重命名为
product.list.var1。 - 打开
product.list.var1,修改其内容,使其适合显示产品。<li> <a href="[!--titleurl--]"><img src="[!--pic--]" alt="[!--title--]"></a> <h3><a href="[!--titleurl--]">[!--title--]</a></h3> <p>价格:[!--price--]</p> </li>[!--titleurl--]:文章链接。[!--pic--]:图片字段。[!--title--]字段。[!--price--]:我们自定义的价格字段。
- 找到
-
在首页调用产品列表:
- 进入后台“模板” -> “管理标签” -> “增加标签”。
- 标签名称:首页产品列表。
- 数据表:选择
phome_ecms_product。 - 显示条数:
6。 - 操作类型:选择“按栏目”,并选择“产品展示”栏目。
- 模板:选择你刚刚创建的
product.list.var1。 - 保存标签。
-
在首页模板中插入标签:
- 打开
index.html,在合适位置插入[!--首页产品列表--]。
- 打开
-
更新:
更新首页和“产品展示”栏目页,即可看到效果。
第五部分:高级开发技巧
当你熟悉了基础后,可以尝试这些更高级的技巧。
-
自定义函数库 (
e/class/userfun.php):- 当你需要在多个模板中重复使用一段复杂的PHP代码时,可以把它写成函数。
- 打开
/e/class/userfun.php文件(如果不存在就创建一个)。 - 在里面添加你的PHP函数,
// 截取字符串并添加省略号 function my_sub($str, $len) { returnesub($str, $len); } - 在模板中这样调用:
<?=my_sub($r[title], 20)?>。$r是当前记录的数据数组。
-
使用钩子函数 (
e/class/hookfun.php):- 钩子允许你在系统执行某个特定操作(如发布文章、删除文章)前后,执行你自己的PHP代码。
- 这对于复杂的业务逻辑非常有用,比如发布文章时自动发送邮件、自动生成缩略图等。
- 你需要在
/e/class/hookfun.php中定义特定函数名的函数,函数名规则请查阅官方文档。
-
开发管理功能 (进阶):
- 如果你想在后台为你的新模型添加一个自定义的管理功能(比如批量导入产品),你需要修改后台程序文件。
- 这通常涉及修改
/e/admin/目录下的PHP文件。 - 警告:这是风险最高的操作,需要你对PHP和帝国CMS的后台结构有深入了解。务必先在本地测试,并做好备份。
第六部分:实用资源与最佳实践
-
官方文档:
帝国CMS官方网站有最权威的文档和视频教程,是学习的首选资源。
-
社区与论坛:
- 帝国CMS官方论坛 (
bbs.phome.net) 是你解决问题、交流经验的好地方,很多问题都能搜索到答案。
- 帝国CMS官方论坛 (
-
最佳实践:
- 模板分离:将公共部分(如头部
header.html、底部footer.html)分离出来,用<!--#include file="header.html"-->方式引入,便于维护。 - 使用缓存:合理使用帝国CMS的缓存功能,可以大大提高网站访问速度。
- 安全第一:对用户输入进行过滤和验证,防止SQL注入等安全漏洞,不要信任任何来自前端的数据。
- 版本控制:如果你对代码进行较大修改,建议使用
Git等版本控制工具管理你的代码,而不是直接在服务器上修改。
- 模板分离:将公共部分(如头部
帝国CMS的二次开发是一个循序渐进的过程,从修改模板标签开始,逐步理解其数据模型和模板引擎的工作原理,然后尝试创建自己的数据模型和模板,最后再挑战自定义函数和钩子。
最重要的建议:多看、多练、多备份。 拆解你喜欢的网站,看看它是如何实现的,然后动手尝试复现,祝你在帝国CMS二次开发的世界里探索愉快!
