通过 Filter_Plugin_DelComment_Succeed 接口,可以在 Z-BlogPHP 评论删除成功之后执行自定义逻辑。该接口在 DelComment() 函数内触发,此时评论及其子评论已删除、系统评论计数与文章评论数均已修正、最新评论模块也已重建,适合做删除留痕与外部同步。
Filter_Plugin_DelComment_Succeed
DelComment()
&$cmt
下例在评论删除成功后记录一条日志,包含被删评论的 ID、所属文章与作者,便于追溯删除操作:
<?php RegisterPlugin("demoAPP", "ActivePlugin_demoAPP"); function ActivePlugin_demoAPP() { Add_Filter_Plugin('Filter_Plugin_DelComment_Succeed', 'demoAPP_DelComment_Succeed'); } function demoAPP_DelComment_Succeed(&$cmt) { global $zbp; // 删除成功后写日志,对象属性仍可读取,但数据已不在数据库中 $file = $zbp->usersdir . 'plugin/demoAPP/del-comment.log'; $log = date('Y-m-d H:i:s') . ' 评论删除 #' . $cmt->ID . ' 所属文章=' . $cmt->LogID . ' 作者=' . $cmt->AuthorID . ' 操作人=' . $zbp->user->Name . PHP_EOL; file_put_contents($file, $log, FILE_APPEND); }
DelComment_Children
$cmt->Del()
IsChecking
$cmt->IsChecking
$cmt
Save()
Filter_Plugin_CheckComment_Succeed
Filter_Plugin_PostComment_Succeed
评论删除后处理扩展
通过
Filter_Plugin_DelComment_Succeed接口,可以在 Z-BlogPHP 评论删除成功之后执行自定义逻辑。该接口在DelComment()函数内触发,此时评论及其子评论已删除、系统评论计数与文章评论数均已修正、最新评论模块也已重建,适合做删除留痕与外部同步。接口信息
Filter_Plugin_DelComment_Succeed&$cmt完整案例
下例在评论删除成功后记录一条日志,包含被删评论的 ID、所属文章与作者,便于追溯删除操作:
注意事项
DelComment()中、子评论递归删除(DelComment_Children)、$cmt->Del()、评论计数与文章评论数修正、最新评论模块重建全部完成之后;IsChecking为真时扣减待审数),回调内可通过$cmt->IsChecking区分被删评论删除前的状态;$cmt属性仍可读取,适合做删除日志;不要再对该对象调用Save(),否则会把已删除的数据重新写回;Filter_Plugin_CheckComment_Succeed,普通发表环节是Filter_Plugin_PostComment_Succeed,注意区分场景。