[comment]: # translation:outdated

[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]: # ({f1074788-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]: # ({/f1074788-1d438d3e})
