[comment]: # aside:2

[comment]: # ({a2041013-7b40086b})

# 模块文件结构

与模块相关的所有代码都存储在 Zabbix 前端安装的 **modules** 目录内的单个目录中（例如，*zabbix/ui/modules*）。

[comment]: # ({/a2041013-7b40086b})

[comment]: # ({887796fe-dffd3e26})
### 模块文件树

````yaml
example_module_directory/ (必需)
manifest.json (必需) 元数据和操作定义。
Module.php 模块初始化和事件处理。
action/ 操作控制器文件。
SomethingView.php
SomethingCreate.php
SomethingDelete.php
data_export/
ExportAsXml.php
ExportAsExcel.php
views/ 视图文件。
example.something.view.php
example.something.delete.php
assets/ 视图中使用的任何其他文件。必须在 manifest.json 中指定。
js/ 视图中使用的 JavaScript 文件。
example.something.view.js.php
css/ 视图中使用的 CSS 文件。
example.something.css
image.png 视图中使用的图像。
example.something.file 视图中使用的任何文件。
````

[comment]: # ({/887796fe-dffd3e26})

[comment]: # ({fad37003-1d438d3e})
### 编写模块

一个示例模块的编写过程包括以下步骤（如有可用内容，点击文件或文件夹名称可查看该步骤的更多详细信息）：

1. 在 **zabbix/ui/modules/** 中为该模块创建一个新目录。
2. 添加 [manifest.json](/devel/modules/file_structure/manifest) 文件，其中包含模块元数据。
3. 创建 *[views](/devel/modules/file_structure/views)* 文件夹，并定义模块视图。
4. 创建 *[actions](/devel/modules/file_structure/actions)* 文件夹，并定义模块动作。
5. 创建 Module.php（对于仪表板小部件则为 Widget.php）文件，并定义初始化和事件处理规则。
6. 创建 *[assets](/devel/modules/file_structure/assets)* 文件夹，用于存放 JavaScript 文件（放在 *assets/js* 中）、CSS 样式（放在 *assets/css* 中）或其他附加文件。
7. 确保在 manifest.json 中指定所需的视图、动作和资源文件。
8. 在 Zabbix 前端中[注册](/devel/modules/file_structure/register)该模块并开始使用。

:::notetip
你在创建 manifest.json 文件后即可注册并启用模块。
模块启用后，只需刷新 Zabbix 前端，即可立即预览对模块文件所做的所有更改。
:::

[comment]: # ({/fad37003-1d438d3e})
