1.认识doAction 挂载点函数+ I9 @# ^' `% [) ~* V' l4 `8 J9 v
插件挂载点函数是系统预设在各个页面的插件接口,系统在执行到挂载点时会自动执行挂载到上面的插件函数.该函数在emlog的系统function.base.php中定义.该函数有一个固定的参数表示该挂载点的名称,而后的其他参数参数可以依次传入.传入的参数可以给插件函数使用,当然也可以不使用.# l) ?1 ?. Y0 X3 U
2.认识addAction 插件挂载函数' N Q! m: h4 b2 [ b4 S7 J& H
该挂载函数在插件文件中使用,可以实现将插件中的函数挂载到插件挂载点中让doAction函数执行,实现插件功能.该插件有两个参数,一个为挂载点名称(必须为系统中已经预先设置好的名字),一个为要挂载的函数.也就是要执行的函数.
! O5 k: Y3 B4 }, C' C. F$ C; ~在制作插件的实际过程中我们只需要用addAction('系统预设挂载点','插件中的函数')就可以实现插件的功能,在插件函数中可以使用挂载点传入的参数.例如你想做一个屏蔽广告评论的插件.可以使用doAction('comment_post')发表评论前的挂载点.然后在插件中使用addAction('comment_post', 'adshielding');: y: b4 T+ I* t; ^* B9 t; ]
然后写一个方法0 O' ?! Y$ P( ^! [
function adshielding(){# ?; Y8 A, O* v2 ~; F: H
$adkill_string = addslashes(trim($_POST['comment']));% ^9 |( b; |! {
$adkill_keyword = array('联系','手机','QQ');
( [6 Y6 ], c5 {$adkill_str = str_replace($adkill_keyword,'', $adkill_string ,$adkill_count);
0 r: Z" P, Z# l+ D4 dif($adkill_count>0){emMsg('评论失败:该评论包涵广告字符!');}
0 Z& O+ G9 J* k, v4 m}6 b9 v- q1 G0 G7 O4 G6 u- `
然后看看效果吧,先在后台打开插件4 \/ F4 U6 n. y" \- Z9 c/ c. y$ J
( j4 ?- L9 N" B* o% m1 U2 |: r然后在评论中评论包含被屏蔽的文字,评论就被屏蔽掉啦: f! z6 w8 w- r9 q0 k, L L* r! U
* x: v& P7 b. r; w4 h' P
! Y- l$ J% f5 Q5 n x& g R% d; Q2 R
最后输入正常的评论看看效果( |2 t8 D3 E( z, j$ i2 B" r
/ ?" ~5 }& O$ \, j3 M
# p, H1 C" T. y6 \) i) C, R# Z2 ]这样一个最简单的防广告插件就完成啦,是不是很简单!% f8 ^0 o1 I" S5 X
没有错,使用emlog制作插件就是这么的容易,只要你会一点php的知识,结合emlog的钩子函数,就能制作出一个插件来.还等什么,马上行动开始制作一个属于自己的插件吧!
" v1 ?& q3 `! ?) U. v1 G |