Discuz!X3.1插件打包

作者: 鲁智深 分类: Discuz!X 发布时间: 2015-07-20 16:09

插件打包就是将插件的代码整理为一个代码整理为一个压缩文件。插件在开发好后,就可以将它发给其他人使用了,当然我们也可以将它发布到Discuz!开放平台上去,合理的定价,定期的更新,适时的活动,都可以帮助你,用插件赚取人生的第一桶金。

插件打包参考网站

参考:http://open.discuz.net/?ac=document&page=faq

插件语言包文件创建

给插件创建语言包首先需要创建一个 data/plugindata/identifier.lang.php 文件

由于插件是提供给各个不同版本,不同编码的Discuz!X站点使用的,所以开发者应该为自己的插件创建语言包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

$scriptlang['identifier'] = array(
  'english' => 'chinese',
  ...
);

$templatelang['identifier'] = array(
  'english' => 'chinese',
  ...
);

$installlang['identifier'] = array(
  'english' => 'chinese',
  ...
);

$systemlang['identifier'] = array(
  'file' => array(
     'english' => 'chinese',
     ...
  ),
  ...
);

?>

$scriptlang 为程序脚本文件的语言包。

$templatelang 为模版文件的语言包。

$installlang 为安装、升级、卸载脚本用的语言包。

$systemlang 为系统语言包(Discuz! X3 新增)。

如果插件不涉及某些类型的语言文字,变量可忽略。

然后在插件基本设置中开启语言包选项后即可。

调用语言包

模版中调用模板文件语言包,通过 {lang identifier:english} 方式调用。

程序脚本中调用脚本文件语言包,通过 lang(‘plugin/identifier’, ‘english’) 方式调用。

安装脚本中调用安装脚本文件语言包,通过 $installlang 变量直接获取。如 $installlang[‘english’]。

系统语言包用于替换系统语言包中的某些语言条目。

参考:http://open.discuz.net/?ac=document&page=plugin_language

XML文件创建

插件开发过程中,开发者会创建模块,管理变量,插件基本信息等数据。开发是的数据是直接存储在开发者的测试环境的数据库中,所以数据需要以文件为数据载体的形式传递给其它用户,Discuz!采用的是以XML为数据载体的形式存储开发配置。

XML文件创建

XML文件创建

1、XML文件文件放置插件根目录

2、重命名为discuz_plugin_licai_SC_UTF8.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)

参考链接:http://open.discuz.net/?ac=document&page=faq_zip

安装脚本的创建

插件开发过程中,开发者大多都会创建数据表,用来存储插件配置或功能数据。这时我们就需要创建安装脚本。安装脚本在创建好后,需要将脚本名称写入到插件导出的XML文件中。这样安装插件的用户,在执行插件安装时,系统就会执行安装脚本,安装脚本中的SQL语句就会执行。

一、写入xml文件中

1
2
3
<item id="installfile"><![CDATA[install.php]]></item>//创建脚本
<item id="uninstallfile"><![CDATA[uninstall.php]]></item>//卸载脚本
<item id="upgradefile"><![CDATA[upgrade.php]]></item>//更新脚本

二、根目录写入install.php和uninstall.php

根目录文件

根目录文件

install.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

$sql = <<<EOF

CREATE TABLE IF NOT EXISTS `pre_test_db` (
  `dId` int(4) NOT NULL AUTO_INCREMENT,
  `dName` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`dId`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED AUTO_INCREMENT=1 ;

EOF
;

runquery($sql);

$finish = TRUE;

?>

卸载脚本的创建

卸载脚本,是用来移除插件安装或使用时,安装脚本产生的数据表或使用时产生的数据的。注意:强烈不建议编写DROP或TRUNCATE语句,因为这样可能会导致插件使用者丢失宝贵数据,建议卸载脚本留空最好。这样即时插件使用者反悔,数据依然会保留在插件使用者的网站中。

uninstall.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

$sql = <<<EOF

DROP TABLE pre_test_db;

EOF
;

//本段代码手动执行
//runquery($sql);

$finish = TRUE;

插件提交:http://open.discuz.net/?ac=index

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论
  • shui7777

    2015 年 7 月 29 日 11:54

    希望你的博客如这个夏天一样火热。

发表评论

电子邮件地址不会被公开。 必填项已用*标注