Discuz教程网

Discuz X 插件制作教程(四) ------ 发布插件(作者:monkee)

[复制链接]
authicon 09927306 发表于 2011-1-6 18:22:39 | 显示全部楼层 |阅读模式
本帖最后由 09927306 于 2011-1-6 18:33 编辑

    我终于写出了自己的一个伟大的插件,我希望别人也能使用这个插件!我想发布这个插件,我该如何做呢?    面对问题
    然而我们刚刚写完了一个插件,但是我们所要面临的问题才刚刚开始,我们需要考虑的内容很多,这些内容包括:
    1. 我使用的语言编码方式是UTF8,我希望那些使用GBK的站长也能使用我的插件
    2. 我可能会使用到数据库来建立我需要使用的表,我该如何建立
    3. 我怎么描述出我的使用条例或者安装条例
    4. 我怎么为我的插件进行插件描述
    5. 我的插件发布在哪里,是否需要收费
    天啊,我头都大了!我根本没有想过这个问题!如此多的问题迎面而来,我该如何解决?嘿嘿,这个时候就是体现我自己价值的时刻了,我们来慢慢的讲解吧!
    语言编码
    要解决语言编码的问题比较的麻烦,首先我们要确保我们所有程序里面没有出现中文字符,其次我们需要新建一个文件:data/plugindata/mtest.lang.php这个文件,写入内容为:
  1. <?php

  2. $scriptlang[\'mtest\'] = array(

  3. \'enable\' => \'启用\',

  4. );

  5. $templatelang[\'mtest\'] = array(

  6. );

  7. ?>
复制代码

然后,在你自己的程序使用前,使用:
  1. $mlang=$scriptlang[\'mtest\'];
复制代码

来调用一下,这样,$mlang这个数组里存放的就是你要使用的内容了。
    接下来,我们要做不同的对应的语言编码的xml文件了。


    我相信你一定看到导出这个按钮了,然后就是一个XML文件,把它存放到你的插件目录下面,如果您不愿意做多语言编码的插件,那么就可以直接打包插件目录为rar格式,您的插件已经完成。这里,我们还有GBK的站长需要,因此我们需要进行转码。首先我们对我们的这个:discuz_plugin_mtest.xml文件进行改名,改名为:discuz_plugin_mtest_SC_UTF8.xml ,这里:SC表示简体中文 UTF8表示UTF8编码方式,然后使用编码转换工具,经这个XML文件转码后,重命名为对应的名字,放在这个目录下即可。编码转换工具我推荐 ConvertZ 这个工具,可以在网上搜索一下。至此,我们的转换工作就做完了!
    使用数据库
    我需要使用数据库,我的插件需要新建一个数据表怎么办?
    还记得我们刚才导出的那个XML文件么?我们需要修改这个XML文件的内容来实现我们的操作了。我们需要在
  1. <item id="DATA"></item>
复制代码

中加上如下代码:
  1. [indent]<item id="installfile"><![CDATA[install.php]]></item>[/indent][indent]<item id="uninstallfile"><![CDATA[uninstall.php]]></item>[/indent]
复制代码

上述代码分别表示:安装|卸载插件时会运行的文件,这两个文件都放在插件目录下即可,以下是一个示例:
<?php
/*
        mguide for DISCUZ X 1.0
        editor: monkee
        version:1.0
*/
if(!defined(\'IN_DISCUZ\')) {
        exit(\'Access Denied\');
}
$sql = <<<EOF
DROP TABLE IF EXISTS CDB_TABLE_SETTING;
CREATE TABLE CDB_TABLE_SETTING(
  `key` varchar(20) not null primary key,
  `value` text
) ENGINE=MYISAM DEFAULT CHARSET=DCHARSET;
EOF;


$sql=str_replace(array(\'CDB_TABLE_SETTING\',\'DCHARSET\'),array(DB::table(\'mguide_setting\'),$_G[\'charset\']==\'utf-8\'?\'utf8\'_G[\'charset\']),$sql);

foreach(explode(\';\',$sql) as $item){
        if(!empty($item))
                DB::query($item);
}

$finish = TRUE;
?>

    具体可参考:网游发号 的install.php这个文件。    使用条例和插件描述
    呵呵,这个嘛请参考:http://www.bbsapp.com/PluginDevloper/ 人家已经写得很清楚了!
    插件发布
    插件发布到本站就可以。
    到此,插件制作教程到此结束,更高级的应用,欢迎您加入“Discuz!X1 开发与研究”或 QQ 群“12893286”一起探讨 Discuz! X 开发中您遇到的问题。

插件制作教程系列:
Discuz!X 插件制作教程(一) ------ 网站基本数据
Discuz!X 插件制作教程(二) ------ 管理中心  
Discuz!X 插件制作教程(三) ------ 页面嵌入 & 导航  
Discuz!X 插件制作教程(四) ------ 发布插件







上一篇:Discuz X 插件制作教程(三) ------ 页面嵌入 &amp; 导航(作者:monkee)
下一篇:PHP IP地址和十进制数字互转
authicon  楼主| 09927306 发表于 2011-1-6 18:35:25 | 显示全部楼层
感谢作者:monkee 制作了这个教程
authicon 风中徜徉 发表于 2011-5-14 03:59:33 | 显示全部楼层
楼主威武
authicon 卡卡猫 发表于 2011-5-16 21:59:40 | 显示全部楼层
看一下啊,嘻嘻
authicon lakelouise 发表于 2011-5-21 12:00:01 | 显示全部楼层
感谢分享  收下了·····
authicon lilac_yao 发表于 2011-5-21 19:59:44 | 显示全部楼层
看一下啊,嘻嘻
authicon 蓝色天空k 发表于 2011-5-23 10:59:40 | 显示全部楼层
哈哈  收了你
authicon Cute宝贝儿 发表于 2011-5-26 20:59:30 | 显示全部楼层
哦哦,发财了啊,看到好东西啦
authicon melody0721 发表于 2011-6-17 06:01:21 | 显示全部楼层
喜欢喜欢喜欢
authicon mjz 发表于 2011-6-20 04:00:56 | 显示全部楼层
继续来索要
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 03:17

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表