> ## Documentation Index
> Fetch the complete documentation index at: https://discuz.p.cafe/llms.txt
> Use this file to discover all available pages before exploring further.

# 插件接口

## **概述**

使用管理员账号登录 Discuz! 管理中心，在顶部菜单将可以看到"插件"菜单。"插件列表"列出了所有已安装的插件，是控制插件打开与否、设计插件模块、菜单、参数和使用权限的地方。

开始编写一个新插件，请首先打开 config/config\_global.php 文件，在文件结尾添加以下代码开启插件设计者模式。

```
$_config['plugindeveloper'] = 1;
```

在插件管理中选择"设计新插件"，填写插件名称，例如设置为"虚拟银行插件"。惟一标识符用于在后续的插件模块中调用本插件，不可与现有插件重复，命名规则限制与 PHP 变量命名相同。例如制作此插件的公司叫做 Comsenz Inc.，插件名称是"虚拟银行插件"，惟一标识符可设置为"comsenz\_virtual\_bank"。最后在 source/plugin/ 目录中创建与唯一标识符同名的目录名。

> 在插件管理中添加插件后，仅仅是增加了一条插件记录，后面还需要很多相关的设计和设置。在列表中选择插件的"详情"进入插件的详细设置。

## **插件模块**

插件模块分为程序链接、扩展项目和程序脚本 3 类：

### **程序链接**

* **主导航项目：** 可在主导航栏增加一个菜单项，可自主指派菜单链接的 URL，也可以调用插件的一个模块，模块文件名指派为 source/plugin/插件目录/[插件模块名.inc](http://插件模块名.inc).php"。
* **主导航项目 - 插件菜单：** 可在主导航栏的插件子菜单中增加一个菜单项。
* **顶部导航项目、底部导航项目、快捷导航项目、家园导航项目：** 可在各个导航中增加一个菜单项。

### **扩展项目**

* **个人设置：** 可在个人设置中增加一个菜单项。
* **个人设置 - 个人资料：** 可在个人设置的个人资料页上部增加一个菜单项。
* **个人设置 - 积分：** 可在个人设置的积分页上部增加一个菜单项。
* **站点帮助：** 可在站点帮助中增加一个菜单项。
* **我的帖子：** 可在我的帖子中增加一个菜单项。
* **门户管理：** 可在门户管理面板上部增加一个菜单项。
* **论坛管理 - 基本：** 可在前台论坛管理面板侧边上部增加一个菜单项。
* **论坛管理 - 工具：** 可在前台论坛管理面板侧边下部增加一个菜单项。
* **管理中心：** 可在后台插件栏目中为此插件增添一个管理模块。
* **管理中心 - 列表链接：** 可在后台插件列表页增添一个远程链接。(Discuz! X3.1 新增)

### **程序脚本**

* **页面嵌入 - 普通版：** 设置一个包含页面嵌入脚本的模块，该模块用于在普通电脑访问的页面显示。模块文件名指派为 source/plugin/插件目录/插件模块名.class.php"。
* **页面嵌入 - 手机版：** 设置一个包含页面嵌入脚本的模块，该模块用于在手机访问的页面显示。
* **特殊主题：** 设置一个特殊主题脚本的模块，模块文件名指派为 source/plugin/插件目录/插件模块名.class.php"。

### **模块权限设置**

您可以为每个模块设置不同的使用等级，例如设置为"超级版主"，则超级版主及更高的管理者可以使用此模块。

### **扩展项目模块说明**

扩展项目模块可以在社区的特定位置扩展出新的功能，通常用于扩展新的设置项目。项目的脚本文件以 .inc.php 结尾（如 [test.inc](http://test.inc).php），模版为固定文件名，位于插件目录的 template/ 子目录中，文件名与脚本名同名（如 test），扩展名为htm或php。

在新插件内核中，通过 plugin.php 方式访问的插件可直接通过 `plugin.php?id=xxx:yyy` 方式调用而无需再在后台定义为普通脚本模块，只要 source/plugin/xxx/[yyy.inc](http://yyy.inc).php 文件存在即可。如果 xxx 和 yyy 同名，可直接通过 plugin.php?id=xxx 方式访问。

## **插件变量配置**

插件接口中提供了一个通用的插件配置管理程序，在大多数情况下可实现插件的参数配置，省却了插件开发者自行编写后台管理模块的麻烦。通常情况下，应优先使用通用插件配置管理程序来实现插件的参数配置，只有在通用程序确实无法实现时，才自行编写后台管理模块。

输入配置名称和配置变量名、选择合适的配置类型后，即可为此插件增加一个配置变量。点"详情"可以编辑此配置变量的更多信息。为了方便插件程序调用使用者配置好的参数，配置变量同样被存放在了缓存文件中。

> **注意：** 您只有在插件管理中将插件设置为"可用"，以上设置才能生效。
