第一步:开启插件开发模式

config\config_global.php文件里设置

$_config['plugindeveloper'] = 1;

如果没有这个变量就自己添加上去。

第二步:添加插件

1、登录论坛后台 → 插件 →  设计新插件

 2、填写插件信息,根据自已的插件需要来写,唯一标识符建议不要用大写字母,需要区分字符的话可以使用下划线。

 3、点击“提交”后,继续跳转到插件详情设置,按照要求填写插件描述信息

 点击“提交”按钮后,如果提示“插件目录不合法”,可能是你目录名有大写字母,改成小写即可

4、 到source/plugin/下打开yuanbaopay目录(这个目录是上面设定的,没有的话就自己创建这个目录),在yuanbaopay目录里创建yuanbaopay.class.php文件(文件名就是上面填写的唯一标识符),内容如下:

<?php
/**
 *	[元宝支付插件] (C)2022 Powered by 美奇软件开发工作室
 *	Version: 1.0
 *	Date: 2022-7-29 16:55
 */
if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

class plugin_yuanbaoPay {
    function __construct(){    
    }
    
    /*方法名为钩子名称,钩子在哪里,这个就会显示在那个位置上*/
    function global_usernav_extra3() {
		return'<span><a href="plugin.php?id=yuanbaopay:pay" style="display:block;float:right;margin:3px; width:77px; height:22px; background:url(source/plugin/yuanbaopay/template/images/recharge.png) no-repeat center center;"></a></span>';
	}
}
?>

注意:类名是 plugin_文件名,global_usernav_extra3()表示会显示在用户导航菜单里,如下:

如何查看discuz!各个位置的钩子? 

1、在config\config_global.php文件里设置 $_config['plugindeveloper'] = 2;

2、超级管理员登录后台 → 工具  → 更新缓存 →  更新全部缓存

3、打开网站首页,刷新页面就会看到很多钩子

第三步:设计插件

1、登录论坛后台 → 插件 →  选择“设计”我们刚才创建 (添加)的插件

 2、 在设计页面里点“模块”,添加一个新的模块,模块类型为“页面嵌入 - 普通版”,程序模块填写yuanbaopay,就是我们前面创建的类

 这样就可以显示出来了。

第四步:发布插件

 如果想将插件发布到discuz应用市场,需要先申请成为开发者,登录Discuz!开放平台,申请认证,认证通过后就可以发布应用了。提示信息_Discuz!开放平台 - Discuz!应用中心https://open.dismall.com/

1、应用插件想兼容编码(GBK和UTF-8),那么在设计插件时,需要启用插件语言包:

 2、启用插件语言包的前提是,需要在论坛网站的data/plugindata/目录下,新建一个以插件标识符为命名的.lang.php文件 ,比如我的是yuanbaopay.lang.php,代码如下:

<?php
if(!defined('IN_DISCUZ')) {
	exit('Access Denied');
}
/** 程序脚本文件的语言包
 * 程序脚本中调用脚本文件语言包,通过 lang('plugin/identifier', 'name') 方式调用
*/
$scriptlang['yuanbaopay'] = array(
    'month' => '月',
    'year' => '年',
    'alipay' => '支付宝',
    'weixin' => '微信支付',,
);
/** 模版文件的语言包
 * 模版中调用模板文件语言包,通过 {lang identifier:name} 方式调用
*/
$templatelang['yuanbaopay'] = array(
    'order_money' => '充值金额',
    'order_addtime' => '订单时间',
    'order_endtime' => '付款时间',
    'order_paytype' => '付款方式',
    'order_status' => '付款状态',
    'order_remarks' => '备注',
);
/** 安装、升级、卸载脚本用的语言包
 * 通过 $installlang 变量直接获取,如 $installlang['name']
*/
$installlang['yuanbaopay'] = array(
);

调用插件语言的方法,我已经在备注里写明了。

3、当我们导出xml配置文件时,会自动导出插件语言,供安装插件时使用。

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐