php discuz插件开发

页面嵌入demo

问题1.discuz后台没有设计新插件!
解决方案:在config\config_global.php 最下面添加 $_config[‘plugindeveloper’] = 2; 刷新后台应用即可

问题2.怎么知道discuz在那些点设置了钩子呢?
设置完成1后 工具->清理缓存 然后刷新下页面就出现好多 类似string global_usernav_extra1的东西 这就是锚点,也是插件可以利用的点。

好了下面开始做插件:
后台 ->应用 ->设计新插件
1.jpeg

提交后 请在插件管理中 启用即可
然后点击 设计
就会进入如下图所示
2.jpeg

接着
3.jpeg

在source/plugin下新建一个文件夹,文件夹的名称要和所要创建的插件的标识符相同。
然后在创建的文件夹下面 创建您需要的文件。如下图 我在模块里面定义了 页面嵌入的 test1类文件,则需要在插件文件夹中新建一个test1.class.php的文件爱你
下面是需要注意的东西。
4.jpeg

test1.class.php中 文件的上部分 是discuz的引入部分,而下面的类名必须要和插件的名称一致。
之后在类中书写function函数。这里需要注意的是:只有function的的名称与 外面相应位置显示的名称一致的时候 才会在相应页面中的相应位置中运行。
在每次新增加或者修改文件 则尽量刷新下缓存文件
5.jpeg

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

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

导航demo

首先,我们需要在设计模块里面增加一个导航栏
7.jpeg

有了它,我们就可以写:mtest.inc.php这个文件了,不过我们似乎还需要一点点模板的支持,那么我们在这个文件夹下,新建一个文件夹:template,然后在它的下面新建一个文件:mtest.htm,内容如下:

{template common/header}
<p>HELLO,WORLD!!!!</p>
{template common/footer}
 
在mtest.inc.php这个文件里,我们写入:
<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
include template("mtest:mtest");
?>

然后,更新一下缓存,然后刷新一下站点首页,看看有什么效果?
8.jpeg

9.jpeg

导航栏
10.jpeg

管理中心demo

11.jpeg

12.jpeg

启用即可看到效果,不过真正的文件必须在source/plugin/标识符/ 这个文件夹下面。
13.jpeg

Potato2.inc.php:

<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
showtips($templatelang['sitemap']['sitemap_tips']);
showformheader('plugins&operation=config&do='.$pluginid.'&identifier=msign&pmod=admincp');
showtableheader();
showsetting('启用', 'signsetting[enable]');
showsetting('关闭提示','signsetting[disable_info]','','textarea');
showsubmit('submit');
showtablefooter();
showformfooter();
?>

扩展

功能1:让插件有安装和反安装能力
在插件目录下添加install.php和uninstall.php
[php] view plaincopy

<?php  
if(!defined('IN_DISCUZ')) {  
    exit('Access Denied');  
}    
//各种安装操作  
$sql = "show tables";  
runquery($sql);  
//或  
DB::query($sql);  
  
  
$finish = TRUE;  
  
?>  
[php] view plaincopy
<?php  
if(!defined('IN_DISCUZ')) {  
    exit('Access Denied');  
}   
 
//各种反安装操作,恢复安装时的修改  
$sql = "show tables";  
runquery($sql);  
//或  
DB::query($sql);  
  
  
$finish = TRUE;  
  
?>  

然后到设计页面导出一份xml插件配置文件
将导出的xml文件放到插件目录下
现在到后台就可以发现安装/卸载功能可以用了

功能2:想在打开所有页面时都自动运行一段PHP代码 和 在特定的脚本里嵌入钩子
[php] view plaincopy

<?php  
if(!defined('IN_DISCUZ')) {  
    exit('Access Denied');  
}   
class plugin_demo {  
    function __construct(){      
    }  
    //全局钩子  
    function common(){  
        global $_G;  
        if($_G['uid']){  
            //经验值加1点  
        }  
    }  
    function global_footer(){  
        return '<script>alert("插件我来了")</script>';  
    }      
}  
/** 
 * 只有运行member.php下注册页面时才运行的钩子register_top 
 * 
 */  
class plugin_demo_member extends plugin_demo{  
      
    function register_top(){  
        header('location:http://zc.qq.com/chs/index.html'); //引导用户去注册QQ号  
        exit;  
    }  
} 
 

网站的基本数据

在DX的这个框架中,我们会经常用到一些使用的数据,这些数据包括:系统常量、全局变量、系统调用 ,首先我们从系统常量说起

系统常量
DX里面对一些常量做了自己的定义,接下来的表格列举了,更多的变量可以使用附录里的代码获得。

常量名说明
DISCUZ_ROOT网站的根目录
TIMESTAMP程序执行的时间戳
CHARSET程序的语言编码类型
IS_ROBOT是否是机器访问
FORMHASHHASH值

全局变量
DX的全局变量事实上全部压缩到了一个变量: G 里 面 , 接 下 来 的 表 格 列 举 了 常 用 的 _G里面,接下来的表格列举了常用的 G_G数据内部的变量,更多的变量可以使用附录里的代码获得。

常量名说明
uid用户UID
username用户名
groupid用户组ID
clientip用户IP地址
charset语言编码
siteurl网站地址
config网站基本配置,这是一个数组
setting网站基本设置,这是一个数组

系统调用 系统调用里面,恐怕最重要的调用要数DB这个静态对象了。这是一个数据库的静态对象,对其的使用也是经常用到的,其方法包括:

常量名说明
DB::table()增加了pre的数据库表名
DB::delete()删除表中数据
DB::insert()向表中插入数据
DB::update()更新表中数据
DB::fetch()配合DB::query来实现数据资源数据的获取
DB::query()执行一条数据库语句
DB::fetch_first()获取结果集的第一条记录

另外,系统的一些其它的系统调用,包括:获取用户信息、插入帖子等内容,都可以在:souce/function/ 文件夹下找到对应的文件来查看。 好了,经常用到的数据内容就在上面的列表里面了,附录提供了一些查看全部内容的代码!下一篇将会介绍如何编写 管理中心 插件!

附录:

查看全部常量:

<?php
require_once './source/class/class_core.php';
require_once './source/function/function_home.php';
$discuz = & discuz_core::instance();
$discuz->init();
print_r(get_defined_constants());
?>

查看$_G变量中内容

<?php
require_once './source/class/class_core.php';
require_once './source/function/function_home.php';
$discuz = & discuz_core::instance();
$discuz->init();
print_r($_G);
?>

请关注我的订阅号

订阅号.png

PHP & MySQL无需编程轻松创建数据库网站 网站开发相关插件下载 声明:以下插件均搜集于网上,完全免费提供给所有网友使用。如想用于商业用途,请与插件开发者联系,以免引起不必要的法律纠纷。 Object 对象插件 Preload Images with Status Bar and 1.1.0 Download 点击下载 预载图片,有进度显示,完成以后跳转到新页面,只支持静态页。 History Navigation.mxp Download 点击下载 插入一个可设置前进、后退和刷新的按钮。 Sound 2.21.mxp Download 点击下载 插入一个声音可设置循环数。 Online Html Editor.mxp Download 点击下载 创建一个“Html”在线编辑器。 Cheese Master Suite.mxp Download 点击下载 插入雪花等网页特效。 Flash Image.mxp Download 点击下载 当鼠标经过图片上面的时候,图片会慢慢变的清晰。 Date Stamp.mxp Download 点击下载 显示最后更新日期。 Cheese Master Suite-Bouncy Balls.mxp Download 点击下载 插入一个可以跟随鼠标运动的图片。 CN Insert Greeting.mxp Download 点击下载 为你创建在早、中、晚不同时段出现不同的问候语。 Expandable Outlines.mxp Download 点击下载 建立一个目录树样式的导航菜单。 Flash Text.mxp Download 点击下载 使文字象打字效果一样显示。 Letterbox Frameset.mxp Download 点击下载 创建一个中间的框架总是居于浏览器窗口正中位置 Auto Copyright.mxp Download 点击下载 插入一个自动更新时间的版权符号。 Marquee.mxp Download 点击下载 插入一条滚动的文字,并且可以设置它滚动的方向。 Background that Fit.mxp Download 点击下载 把一张图片作为背景铺满整个浏览器,可随浏览大小的变化自动调整。 URL into layer.mxp Download 点击下载 在你的网页里面插入一个层,并且在这个层里面导入另一个页面的URL。 Transition.mxp 设置网页背景转换效果 Save Password Login form.mxp Download 点击下载 保留登陆的姓名和密码,并且可以为其设置保留时间。 Scrolling Status Bar.mxp Download 点击下载 在浏览器的地址栏里逐条显示信息。 Count up.mxp Download 点击下载 当一个访客浏览你的网页时,看该访客在你的网页上停留多长时间。 Alternating Row Colors.mxp Download 点击下载 设置表格的背景色,使之以交互的颜色来区分表格的行。 Go Back or Forward.mxp Download 点击下载 该插件的功能相当于浏览器工具栏标准按钮上的“前进”和“后退”。 IE5.5 Custom Scrollbars.mxp Download 点击下载 用来改变IE浏览器滚动条的颜色的 Command 命令插件 Auto Default Form Field.mxp Download 点击下载 可设置自动清除表单文本参数。 Style switcher Lite.mxp Download 点击下载 早晚载入不同的样式。 IE Link Scrubber.mxp Download 点击下载 消除链接的虚线框。 Advanced Random Images.mxp Download 点击下载 随机显示图片。 Page Transitions.mxp Download 点击下载 设置页面的转场效果。 dHTML Scrollable Area.mxp Download 点击下载 插入一个可以手动的滚动看板 Random Rollover.mxp Download 点击下载 在同样大小的主图片下面可以设置多幅随机翻转的图片。 Move Window.mxp Download 点击下载 设置浏览器窗口在屏幕上显示的位置。 Resize Window.mxp Download 点击下载 设置浏览器窗口的大小。 Show New.mxp Download 点击下载 设置图片在页面中显示的时间,超过设置的时间该图片将不再显示。 HotKey Jump.mxp Download 点击下载 创建热键跳转,按键盘上的一个你设置好的键就会转到另一页。 Set IE Scrollbars.mxp Download 点击下载 设置“IE”滚动条的显示和隐藏。 Float Image.mxp Download 点击下载 在页面中插入一个倒处飘浮的图片。 No Way Back.mxp Download 点击下载 在页面中插入一组禁止后退的代码。 Right Click Menu Builder.mxp Download 点击下载 设置鼠标右键的菜单。 Number Column.mxp Download 点击下载 为表格添加序号,不支持动态表格。 Live clock.mxp Download 点击下载 为我们插入一个动态的时钟。 Kaosweaver PHP Upload.mxp Download 点击下载 把图片上传到你的网站。 PHP Date and time.mxp Download 点击下载 该插件的功能比较强大,你可以用它来自由的设置时间格式。 Banner Image Builder.mxp Download 点击下载 创建交替显示的图片,并且可以为每一张图片设置链接指向。 Behavior 行为插件 Popup Link 1.4.3.mxp Download 点击下载 打开浏览器的窗口,可设置尺寸并定位显示位置。 Length validator 1.2.0.mxp Download 点击下载 限制文本域输入的字符数。 Swap Flash.mxp Download 点击下载 像轮换图片一样轮换Flash动画,注意:要先点选页面中的Flash。 Random Links 1.2.3.mxp Download 点击下载 随机载入网页。 FX Password Generator 1.0.2.mxp Download 点击下载 在文本域里生成密码。 check form.mxp Download 点击下载 检查表单行为。 Submit Form.mxp Download 点击下载 当你在下拉菜单中选择一项条件后会自动转向另一页。 Form Auto Clear.mxp Download 点击下载 自动清除文本域里面的默认文字。 Linecraft Highlight-Restore Form.mxp Download 点击下载 当鼠标点击或离开一个表单元素时,改变其背景和文字颜色。 Typewriter.mxp Download 点击下载 在层里面设置一行文字,该文字以打字的效果出现。 List Menu Rewrite.mxp Download 点击下载 使一个下拉菜单与另一个下拉菜单相关联。 Random URL.mxp Download 点击下载 使一组URL随机显示。 Toggle Checkboxes.mxp Download 点击下载 检查多选框。 Float Layer.mxp Download 点击下载 定位层的横向流动,不管浏览器横向大小怎样变化,该层均不会改变位置。 Popup Message.mxp Download 点击下载 在“提交”按钮上添加注释。 Compare Fields.mxp Download 点击下载 对比两个表单的内容是否相同,多用于密码验证。 Fade Link.mxp Download 点击下载 使链接的颜色缓慢改变,是一种柔和的转变效果。 Dynamic Styler.mxp Download 点击下载 动态改变页面的背景颜色。 Fluid Browser Window.mxp Download 点击下载 设置浏览器窗口由小到大动态打开。 Pagetime.mxp Download 点击下载 设置在什么时间载入什么页面。 Just-So Picture Window.mxp Download 点击下载 设置一幅图片在新窗口中打开,点击任何部位就可以关闭这个窗口。 Layer Transitions.mxp Download 点击下载 设置层的转换效果的,与前面介绍的页面转换效果类似。 Persistent Layers.mxp Download 点击下载 使层固定在浏览器中的某个位置,不管页面滚动,都会保持在原来位置不变。 Server Behavior 服务器行为插件 Send Email PHP.mxp Download 点击下载 发送“Email” Make Hyperlink.mxp Download 点击下载 使细节页面的网址自动俱备超链接功能。 FX DWLCounter 1.1.1.mxp Download 点击下载 制造下载计数器。 FX PHP Missing Tools.mxp Download 点击下载 制造详细页。 FX PHP UserAuthent 1.3.0.mxp Download 点击下载 制造登入和登出。 PHP Upload.mxp Download 点击下载 上传一个文件到服务器。 PHP Login.mxp Download 点击下载 是可以设置“Sessions”的登陆插件。 Newline Blank php.mxp Download 点击下载 保留上传文件的换行和空格。 Insert Retrieve ID PHP.mxp Download 点击下载 插入一个可以找回的“ID”。 FX PHP Sessions12.mxp Download 点击下载 设置“Sessions”。 FX PHP Cookies11.mxp Download 点击下载 设置“Cookies”。 Horizontal Looper PHP.mxp Download 点击下载 可以设置记录集横向显示。 Alternate Row Colors.mxp Download 点击下载 设置动态背景交替颜色,还可以设置当鼠标经过时改变颜色。 Navigation Builder.mxp Download 点击下载 设置类似“prev | 1 | 2 | 3 | 4 | next的导航栏。 Random Region.mxp Download 点击下载 随机显示记录,当你刷新一次页面就重新显示一个记录。 Visit counter.mxp Download 点击下载 为你创建一个网页计数器,可以防止刷新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值