通过 Filter_Plugin_Comment_Set 接口,可以在 Z-BlogPHP 对评论对象进行属性赋值时得到通知,适用于写入审计、数据联动等场景。对 Comment 对象任何属性的赋值(如前台提交评论、后台审核修改)都会先触发本接口,之后再由系统写入默认存储。
Filter_Plugin_Comment_Set
&$comment, $name, $value
下例监听评论内容字段的写入,把每次内容变更记录到插件日志:
<?php RegisterPlugin("demoAPP", "ActivePlugin_demoAPP"); function ActivePlugin_demoAPP() { Add_Filter_Plugin('Filter_Plugin_Comment_Set', 'demoAPP_Comment_Set'); } function demoAPP_Comment_Set(&$comment, $name, $value) { global $zbp; if ($name != 'Content') { return; } $log = date('Y-m-d H:i:s') . ' comment #' . $comment->ID . ' content written, length ' . strlen($value) . PHP_EOL; @file_put_contents($zbp->usersdir . 'plugin/demoAPP/comment.log', $log, FILE_APPEND); }
Content
Name
Email
$value
Author
Comments
Level
Post
Parent
PLUGIN_EXITSIGNAL_RETURN
评论属性写入监听扩展
通过
Filter_Plugin_Comment_Set接口,可以在 Z-BlogPHP 对评论对象进行属性赋值时得到通知,适用于写入审计、数据联动等场景。对 Comment 对象任何属性的赋值(如前台提交评论、后台审核修改)都会先触发本接口,之后再由系统写入默认存储。接口信息
Filter_Plugin_Comment_Set&$comment, $name, $value完整案例
下例监听评论内容字段的写入,把每次内容变更记录到插件日志:
注意事项
Content、Name、Email等正常数据字段),赋值完成后系统仍会执行默认写入,回调无法阻止或修改本次写入的值($value是值拷贝);Author、Comments、Level、Post、Parent是只读虚拟属性,对其赋值会被系统直接忽略,不触发本接口;PLUGIN_EXITSIGNAL_RETURN信号;