通过 Filter_Plugin_CheckComment_Core 接口,可以在 Z-BlogPHP 保存评论审核结果之前做最后处理。该接口在 CheckComment() 函数内触发,此时系统已按请求把 $cmt->IsChecking 置为目标状态(通过或继续待审),但尚未写入数据库。
Filter_Plugin_CheckComment_Core
CheckComment()
$cmt->IsChecking
&$cmt
下例在审核结果保存前记录一条审核日志,标明本次操作是把评论改为通过还是驳回(继续待审):
<?php RegisterPlugin("demoAPP", "ActivePlugin_demoAPP"); function ActivePlugin_demoAPP() { Add_Filter_Plugin('Filter_Plugin_CheckComment_Core', 'demoAPP_CheckComment_Core'); } function demoAPP_CheckComment_Core(&$cmt) { // IsChecking 为 false 表示本次审核将评论放行,true 表示继续保持待审 $action = $cmt->IsChecking ? '驳回(继续待审)' : '通过'; // 记录审核日志 $file = $GLOBALS['zbp']->usersdir . 'plugin/demoAPP/check.log'; $log = date('Y-m-d H:i:s') . ' CheckComment_Core #' . $cmt->ID . ' ' . $action . ' 操作人:' . $GLOBALS['zbp']->user->Name . PHP_EOL; file_put_contents($file, $log, FILE_APPEND); }
$cmt->Save()
IsChecking
Filter_Plugin_CheckComment_Succeed
Filter_Plugin_PostComment_Core
评论审核前处理扩展
通过
Filter_Plugin_CheckComment_Core接口,可以在 Z-BlogPHP 保存评论审核结果之前做最后处理。该接口在CheckComment()函数内触发,此时系统已按请求把$cmt->IsChecking置为目标状态(通过或继续待审),但尚未写入数据库。接口信息
Filter_Plugin_CheckComment_Core&$cmt完整案例
下例在审核结果保存前记录一条审核日志,标明本次操作是把评论改为通过还是驳回(继续待审):
注意事项
CheckComment()中、$cmt->IsChecking已按请求更新之后、$cmt->Save()之前;若在回调中再次修改IsChecking,入库的将是修改后的值;&$cmt,否则对评论对象的修改不会生效;Filter_Plugin_CheckComment_Succeed是同一审核流程的前后两段:Core 在审核结果入库前触发、可改数据,Succeed 在入库后触发;注意审核状态变化引发的计数更新(文章评论数、待审数、会员评论数)发生在 Succeed 之后;Filter_Plugin_PostComment_Core,两者操作的都是 Comment 对象,注意区分场景;CheckComment()被调用时才会触发本接口,普通发表、删除评论不会走到这里。