前段时间在分析插件的实现原理时,做了一个非常简单的插件做例子.我知道这个插件非常简陋,甚至不能在后台对关键字进行配置,如果想对更多关键字进行屏蔽,只能在文件中进行修改.这样操作是非常麻烦的. 所以今天我为自己的这个插件做了一个后台配置页面,让我们可以直接在后台对屏蔽的关键字进行修改和添加.大大的方便了插件的使用,看下图:
好吧,我知道这个后台页面也很简陋,但是它能实现我们需要的功能,这不就够了么.使用方法很简单,每一行添加一个关键字,然后点击那个保存按钮,这个关键字就生效了. 我们输入一个在关键字列表中存在的字符串"qwwww"...点击提交 嗯,看来我们在后台的配置生效了,请不要在意那个错别字!这真不是我的过. 这是怎么实现的呢?这才是这篇文章的关键好吧. 首先我们需要在我们的插件文件夹中新建一个文件,名称必须为插件名_setting结尾,不要问为什么要setting结尾,因为官方文档就是这么说的!然后我还另外创建了一个文件adkill_config用来保存配置信息
实现方式是在adkill_setting文件中编写后台代码,然后还要使用function plugin_setting()函数来执行保存配置的一些事情.在这里我是进行了写配置操作.代码就像这个样子: - <?php
8 h# X% r' V' H - function plugin_setting(){$ N4 Q5 u5 i; P0 Q& f
- $new_config="<?php define('ADKILLCONFIG','".$_POST['addlist']."');";
9 L8 u* I1 U1 K7 N7 h; b. Q - $fso = fopen(EMLOG_ROOT.'/content/plugins/adkill/adkill_config.php','w'); //写入替换后的配置文件# b, p# b7 ?5 F( o2 H7 F- {
- fwrite($fso,$new_config);2 U; O# T+ o) o& A7 B
- fclose($fso);
) J+ L! n$ _2 [) S# t) T$ `8 J - return 1;$ m) q* O. g( ]! X% r: S/ G
- }
" p& F# m3 z) f" F/ P; X K4 N - ?>
复制代码 这里我是照着评论邮件通知插件写的,所以变量名称有点相似(其实我不懂写插件,目前也还在学习).没有这个函数就会出错,我是看了globals文件才知道的...
然后这个函数是把textarea文本域中的字符串写入配置文件,为了防止读取时直接显示出内容来所以写进了一个常量里= =, 然后adkill文件调用这个常量转换为数组进行一一匹配,就实现了屏蔽功能了.那么,本文就先到这里吧. 附上源文件,大家一起学习! 2 J1 E( K% t# ^3 |* {' r
|