理解这个目录结构是进行二次开发和模块编辑的核心,一个标准的织梦模块通常包含两大核心部分:前端文件和后端文件。

(图片来源网络,侵删)
核心目录结构概览
假设你的模块名为 mymodule,安装后,它会在系统中创建以下主要目录和文件:
/dede/ -- 后台管理目录
└── module/ -- **模块管理目录 (后端核心)**
└── mymodule/ -- **你的模块目录**
├── mymodule.module.php -- **模块入口文件 (定义模块信息)**
├── mymodule_menu.php -- **后台菜单文件**
├── mymodule_inc.php -- **模块安装/卸载/升级逻辑文件**
├── mymodule_main.php -- **后台主操作页面**
├── mymodule_add.php -- **后台添加/编辑页面**
├── mymodule_do.php -- **后台数据处理页面 (表单提交)**
├── mymodule_preview.php -- **后台预览页面 (可选)**
├── mymodule_sql/ -- **模块数据表结构文件**
│ └── install.sql -- 安装时创建的数据表SQL
├── mymodule_unit/ -- **模块单元目录 (存放可复用代码片段)**
│ └── myunit.func.php -- 单元函数文件
└── mymodule_tag.php -- **模块自定义标签文件 (可选)**
/plus/ -- 前端功能目录
└── mymodule/ -- **你的模块前端目录**
├── index.php -- **模块首页**
├── list.php -- **模块列表页**
├── view.php -- **模块内容页/详情页**
└── mymodule.php -- **模块自定义处理页面**
/include/ -- 核心类库和函数目录
└── extend.func.php -- **自定义函数文件 (常用)**
/templets/ -- 模板目录
├── default/ -- 默认风格
│ ├── module/ -- **模块模板目录**
│ │ └── mymodule/ -- **你的模块模板目录**
│ │ ├── index.htm -- 模块首页模板
│ │ ├── list.htm -- 模块列表页模板
│ │ ├── view.htm -- 模块内容页模板
│ │ └── add.htm -- 后台添加/编辑页面模板
各目录及文件详解
/dede/module/mymodule/ - 后端核心目录
这是你进行模块逻辑编辑最主要的地方。
-
mymodule.module.php(模块定义文件)- 作用: 模块的“身份证”,定义了模块的基本信息,如名称、作者、版本、功能描述等。
- : 修改
$modInfo数组中的值,如name(模块名),indexurl(模块首页链接),menu(菜单项) 等,这是让模块在后台“显示”出来的关键。
-
mymodule_menu.php(后台菜单文件)- 作用: 定义模块在后台左侧菜单栏中显示的菜单项和链接。
- : 通过
$menuinfos数组来添加菜单项,每个菜单项对应一个后台操作文件(如mymodule_main.php)。
-
mymodule_inc.php(模块安装/卸载逻辑文件)- 作用: 负责模块的安装、卸载和升级。
- :
InstallModule(): 安装模块时执行,通常用于创建数据表、写入配置等。UnInstallModule(): 卸载模块时执行,通常用于删除数据表、清除配置等。UpgradeModule(): 升级模块时执行。
-
mymodule_main.php(后台主操作页面)- 作用: 模块在后台的主界面,通常用于展示数据列表、提供管理入口等。
- : 这是PHP文件,用于查询数据库、获取数据,并将数据传递给对应的模板文件(
mymodule_main.htm)进行渲染,逻辑处理的核心。
-
mymodule_add.php(后台添加/编辑页面)- 作用: 用于显示添加新内容或编辑现有内容的表单。
- : 如果是编辑,通常会接收一个ID,从数据库中读取该ID对应的数据并填充到表单中,它本身不处理提交,只负责显示。
-
mymodule_do.php(后台数据处理页面)- 作用: 非常重要,接收来自
mymodule_add.php表单的POST数据,进行数据验证、插入数据库或更新数据库操作。 - : 这是你编写核心业务逻辑的地方,如数据校验、SQL拼接、文件上传处理等,处理完成后,通常会跳转回
mymodule_main.php。
- 作用: 非常重要,接收来自
-
mymodule_preview.php(后台预览页面)- 作用: 用于在后台预览内容发布后的效果。
- : 通常接收一个ID,读取数据并调用对应的模板(如
mymodule_view.htm)进行渲染,但显示在后台框架内。
-
mymodule_sql/(数据结构目录)- 作用: 存放模块所需的数据表创建SQL语句。
- :
install.sql文件里是标准的CREATE TABLE语句,模块安装时会自动执行。
-
mymodule_unit/(单元目录)- 作用: 存放可复用的代码片段,比如一个通用的函数、一个公共的类等。
- : 在这里创建
.php文件,编写函数,然后在其他地方通过require_once引入使用。
-
mymodule_tag.php(自定义标签文件)- 作用: 如果你的模块需要提供自定义的模板标签(如
{dede:mymodule row='10'}),就需要这个文件。 - : 定义标签的解析函数,织梦解析模板时会调用这些函数。
- 作用: 如果你的模块需要提供自定义的模板标签(如
/plus/mymodule/ - 前端功能目录
这是用户在网站前台可以看到和交互的部分。
-
index.php(模块首页)- 作用: 模块在前台的首页,通常展示模块的核心内容或列表。
- : 逻辑类似于
mymodule_main.php,查询数据库,调用模板(index.htm)进行渲染。
-
list.php(列表页)- 作用: 用于展示模块内容的列表,通常带有分页功能。
- : 处理分页参数、查询条件,调用模板(
list.htm)。
-
view.php(内容页)- 作用: 用于展示单条内容的详细信息。
- : 接收内容ID,从数据库读取完整数据,调用模板(
view.htm)进行渲染。
-
mymodule.php(自定义页面)- 作用: 提供一个额外的、独立的处理页面,用于特定的功能,如提交表单、AJAX请求等。
- : 根据需求编写独立的逻辑,不一定要绑定到模板。
/templets/default/module/mymodule/ - 模板目录
这里的文件是纯HTML+织梦标签,负责展示。
index.htm,list.htm,view.htm,add.htm等- 作用: 分别对应上面PHP文件的模板。
- : 使用HTML、CSS、JavaScript和织梦模板标签(如
{dede:field.title/},{dede:list})来构建页面布局和展示数据,你不需要在这里写PHP逻辑。
/include/extend.func.php - 全局自定义函数
- 作用: 虽然不属于模块本身,但这是你在整个系统中添加自定义函数最常用的地方。
- : 在这里写一个全局可用的函数,然后在任何模板文件(
*.htm)或PHP文件中调用它。
开发流程示例(以添加一个“产品”模块为例)
- 规划数据表: 设计
dede_mymodule_product表,包含id,title,content,pic,addtime等字段。 - 创建后端文件:
- 在
/dede/module/mymodule/下创建mymodule.module.php,定义模块信息。 - 创建
mymodule_menu.php,添加“产品管理”菜单。 - 创建
mymodule_main.php,查询dede_mymodule_product表,并将产品列表传递给mymodule_main.htm。 - 创建
mymodule_add.htm和mymodule_add.php,用于添加新产品。 - 创建
mymodule_do.php,处理添加/编辑产品的表单提交,执行INSERT或UPDATESQL。 - 创建
mymodule_sql/install.sql,包含创建dede_mymodule_product表的SQL语句。
- 在
- 创建前端文件:
- 在
/plus/mymodule/下创建index.php、list.php、view.php,分别用于展示产品首页、列表和详情。 - 在
/templets/default/module/mymodule/下创建对应的index.htm、list.htm、view.htm模板文件。
- 在
- 安装模块: 登录织梦后台,进入“模块管理 -> 上新模块”,上传你打包好的模块文件,然后安装。
通过以上结构,你可以清晰地分离逻辑、数据和表现,从而高效地编辑和开发织梦模块。
