Discuz!应用中心下载的插件的每个文件每个目录的分析解析
1、版本及文件包分类[*]分支版本:
分支版本是指您应用的多个共存版本,如 “免费版”、“收费版”、“**** GBK”、“**** UTF8”、“**** PHP≤5.2”、“**** PHP≥5.3”。文件包结构请阅读下方的 “3、文件包结构”。分支版本的文件包将通过站点的 Discuz! 管理中心在线安装。
[*]扩展组件:
扩展组件是指您应用的部分文件,其中不能包含应用的安装脚本 (如插件和模板的安装 XML),通过组件可以让您的应用实现模块化发布,如提供 “免费版 + 收费模块”、“试用版 + 正式版模块”。文件包结构请阅读下方的 “3、文件包结构”。扩展组件的文件包将通过站点的 Discuz! 管理中心在线安装,但只有安装过分支版本的站点才可安装扩展组件。
[*]下载资料:
下载资料是指您可提供给站长直接下载的文件,其中不能包含应用的源码,通过资料可以向站长提供说明书、图片源文件、素材、DIY 配置、分类信息配置等文件。文件包结构不限制。下载资料的文件包站长可直接下载。
2、基本要求及安全规范请详阅《Discuz! 应用中心应用审核规范》[以下内容仅限分支版本和扩展组件文件包]
3、文件包结构
[*]插件类型的应用基准目录为 /source/plugin/(插件目录)
模板类型的应用基准目录为 /template/(模板目录)
扩展类型的应用基准目录为 /(根目录)
[*]压缩包中的根文件夹有且只有一个文件夹,文件夹名和插件标识(模板标识、扩展标识)相同,在此文件夹中存放应用的全部文件。简单来说,应用的打包您只需对基准目录下的您的应用目录点击鼠标右键选择压缩即可。
[*]对于上传的插件,平台将提供自动编码转换服务。您只需在上传的压缩包中包含简体 GBK 版本的 discuz_plugin_pluginid.xml 文件,那么在插件审核通过并上线后,平台会自动对下载的安装包中生成以下文件:扩展组件类的文件包和分支版本类的文件包结构相同,唯一区别就是禁止携带插件或风格的安装脚本 xml 文件。
[*]discuz_plugin_pluginid_SC_GBK.xml (简体 GBK)
[*]discuz_plugin_pluginid_SC_UTF8.xml (简体 UTF8)
[*]discuz_plugin_pluginid_TC_UTF8.xml (繁体 UTF8)
[*]discuz_plugin_pluginid_TC_BIG5.xml (繁体 BIG5)
如果您不希望平台为您转换编码,请不要在上传的压缩包中包含 discuz_plugin_pluginid.xml 文件,直接包含带编码后缀的 discuz_plugin_pluginid_*.xml 文件即可。[*]
[*]下载资料类的文件包结构不限制,但不允许携带应用源码。
4、动态变量上传的文件中可通过加入以下动态变量,此变量将在站长安装应用时自动替换成相应的值。
变量标识(系统变量)含义
{ADDONVAR:SN}序列号,应用版本和网站绑定的唯一识别码
{ADDONVAR:RevisionID}应用版本的 ID
{ADDONVAR:RevisionDateline}应用版本的发布时间
{ADDONVAR:SiteUrl}站点 URL
{ADDONVAR:ClientUrl}客户端 URL
{ADDONVAR:SiteID}站点 ID
{ADDONVAR:QQID}站点绑定的 QQID(非 QQ 号,只有绑定的站点有值)
{ADDONVAR:MyKey}自定义动态变量(添加方法见下面的 “应用发布配置文件”)
{ADDONVAR:MD5(***)}以上值的 MD5,自定义组合(*** 为以上值的名称,用逗号分隔)
5、应用发布配置文件应用发布配置文件的文件名为 config.xml,位于压缩包中的根目录,此文件非必需。配置文件的格式如下: <?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<item id="Title"><!]></item>
<item id="Data">
<item id="设置项 1">
设置项 1 内容 ...
</item>
<item id="设置项 2">
设置项 2 内容 ...
</item>
...
</item>
</root>
设置项有如下内容:var: 自定义动态变量
用于扩展自定义动态变量,即 {ADDONVAR:MyKey} 的项目,格式如下: <item id="var">
<item id="MyKey1"><!]></item>
<item id="MyKey2"><!]></item>
...
</item>
设置项变量含义
MyKey变量名必须由字母、数字及下划线组成,且不能使用系统变量
MyValue变量返回值内容不限制。如果返回值为一个网址,表示变量返回值为 API 返回的内容,API 将在每次应用安装时被调用。调用时,所有系统变量将通过 POST 方式提交给 API
zend: Zend 加密请求
请求开放平台协助加密指定的 PHP 脚本。如果您的开发者身份无此权限请不要包含此配置项,模板的主体文件不支持 Zend 加密。格式如下: <item id="zend">
<item id="method"><!]></item>
<item id="expires"><!]></item>
<item id="files"><!]></item>
</item>
设置项变量含义
method开放平台使用的加密方式
zendenc52: 表示使用 PHP≤5.2 的方式加密
zendenc53: 表示使用 PHP≥5.3 的方式加密
expires加密脚本的使用有效期,单位为天,从审核通过后的日期开始计时。省略或 0 表示脚本永久有效
obfuscation代码混淆级别。省略或 0 表示不混淆(慎用此功能,请在本地测试好后再上传)
files需要加密的脚本列表,每行写一个脚本名称,如 “myrepeats.class.php”、“table/table_myrepeats.php”。包含动态变量的脚本不可被加密
language: 附属语言包 New!
请求开放平台使用自动编码转换服务转换指定的 PHP 脚本,只负责转换一个 PHP 脚本,此脚本中的汉字必须是简体 GBK 编码。脚本将在应用审核通过并上线后被删除,并会自动对此生成以下文件:
[*]language.php (指定的 PHP 脚本,审核后将被删除)
[*]language.SC_GBK.php (简体 GBK)
[*]language.SC_UTF8.php (简体 UTF8)
[*]language.TC_UTF8.php (繁体 UTF8)
[*]language.TC_BIG5.php (繁体 BIG5)
格式如下: <item id="language"><!]></item>
友情提示:Discuz! X2.5 开始可用 currentlang() 函数获取网站 Discuz! 的语言编码,如下: $language = 'language.'.currentlang().'.php';
在Discuz!插件开发中,文件包的结构和内容是非常重要的,它们直接影响到插件的安装、运行和维护。以下是对Discuz!插件文件包结构的详细解析:
### 1. 版本及文件包分类
- **分支版本**:这是指插件的多个共存版本,如免费版、收费版、不同编码版本(GBK、UTF8)等。这些版本的文件包结构需要遵循特定的规则,以便通过Discuz!管理中心在线安装。
- **扩展组件**:这些是插件的部分文件,不包含安装脚本(如XML文件)。扩展组件允许插件实现模块化发布,例如提供免费版加收费模块的组合。
- **下载资料**:这些文件不包含插件源码,但可以包括说明书、图片源文件、素材等。站长可以直接下载这些资料。
### 2. 文件包结构
- **插件类型**:基准目录为`/source/plugin/`,插件目录下的所有文件都应放在一个与插件标识同名的文件夹中。
- **模板类型**:基准目录为`/template/`,模板文件应放在与模板标识同名的文件夹中。
- **扩展类型**:基准目录为根目录`/`,扩展文件应放在与扩展标识同名的文件夹中。
### 3. 动态变量
在插件文件中可以使用动态变量,这些变量在插件安装时会被自动替换为相应的值。例如:
- `{ADDONVAR:SN}`:序列号,应用版本和网站绑定的唯一识别码。
- `{ADDONVAR:SiteUrl}`:站点URL。
- `{ADDONVAR:MD5(***)}`:生成指定值的MD5哈希。
### 4. 应用发布配置文件
配置文件`config.xml`位于压缩包的根目录,用于定义自定义动态变量、Zend加密请求等。例如:
<config>
<var>
<MyKey>MyValue</MyKey>
</var>
<zend>
<method>zendenc53</method>
<expires>365</expires>
<files>
<file>myrepeats.class.php</file>
</files>
</zend>
</config>
### 5. 附属语言包
对于需要支持多语言的插件,可以使用附属语言包。插件中的汉字必须是简体GBK编码,平台会自动生成不同编码版本的语言文件。
### 示例
假设你有一个插件标识为`myplugin`,其文件包结构可能如下:
myplugin/
├── source/
│ └── plugin/
│ └── myplugin/
│ ├── discuz_plugin_myplugin.xml
│ ├── myplugin.class.php
│ └── language/
│ └── lang_custom.php
├── template/
│ └── myplugin/
│ └── myplugin.htm
└── config.xml
在这个结构中,`discuz_plugin_myplugin.xml`是插件的安装脚本,`myplugin.class.php`是插件的主要逻辑文件,`lang_custom.php`是语言文件,`config.xml`是配置文件。
通过遵循这些结构和规范,你可以确保你的Discuz!插件能够顺利安装和运行,同时也能方便地进行维护和更新。如果你有更多具体问题或需要进一步的帮助,请随时联系DZ插件网的技术支持团队。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]