Discuz 插件开发

首先开启开发者模式,在config\config_global.php 最下面添加

$_config['plugindeveloper'] = 2;

刷新后台应用即可.这时在前台论坛页就出现好多类似string global_usernav_extra的东西这就是锚点,也是插件可以利用的点,描点分全局嵌入点和脚本嵌入点,脚本嵌入点写到全局嵌入点类无效

设置完成后.工具->清理缓存

 

后台 ->应用 ->设计新插件

 

 

插件模块开发

<?php
/**
 *  plugin_  普通版脚本中的类名以 plugin_ 开头。手机版脚本中的类名以 mobileplugin_ 开头。
 *  identifier 插件的唯一标识符,在插件设置中设置。
 *  CURSCRIPT 嵌入点位于的脚本名,如 forum.php 为 forum。
 */
if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

//全局嵌入点类(必须存在)
class plugin_identifier {
}

//脚本嵌入点类
class plugin_identifier_CURSCRIPT extends plugin_identifier {
}


 

在source/plugin下新建一个文件夹,文件夹的名称要和所要创建的插件的标识符(test)相同。

 

然后在创建的文件夹下面创建您需要的文件。如下图 我在模块里面定义了  页面嵌入的 test1类文件,则需要在插件文件夹中新建一个test1.class.php的文件,下面是需要注意的东西:test1.class.php中 文件的上部分 是discuz的引入部分,而下面的类名必须要和插件的名称一致

之后在类中书写function函数。这里需要注意的是:只有function的的名称与 外面相应位置显示的名称一致的时候 才会在相应页面中的相应位置中运行。在每次新增加或者修改文件 则尽量刷新下缓存文件

到此插件已经开发完成,现在需要启用插件(如果在设计插件时已开启可以忽略)

 

在前台的相应页面刷新后 就会出现我们刚才做的简单的示例。

 

这里需要注意的是,如果需要在指定位置进行运算的话,进行页面输出的时候尽量不要使用echo 或者var_dump进行输出,因为这样会输出到最顶部,也就是网页的外围部分上。而使用return则会在指定的地方进行输出。值得注意的是,在编写插件的时候,如果确实要输出的话,先按照1步骤后,看下前台所需的页面上有没有。到此,简单的discuz的插件就开发完毕了。

点击导出按钮后导出文件XML文件放在当前插件文件夹的根目录下,直接打包插件目录为rar格式直接的发布给别人就可以正常的使用了。

 

让插件有安装和反安装能力

在导出的XML中加入

	<item id="installfile"><![CDATA[install.php]]></item>
	<item id="uninstallfile"><![CDATA[uninstall.php]]></item>
</item>

上述代码分别表示:安装|卸载插件时会运行的文件,在插件目录下添加install.php和uninstall.php

<?php
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;
runquery($sql);   //或DB::query($sql);

$finish = TRUE;
?>

 

 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值