Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Spam/Cleaner/ProfilePostComment.php
<?php

namespace XF\Spam\Cleaner;

class
ProfilePostComment extends AbstractHandler
{
    public function
canCleanUp(array $options = [])
    {
        return !empty(
$options['delete_messages']);
    }

    public function
cleanUp(array &$log, &$error = null)
    {
       
$app = \XF::app();

       
$profilePostCommentsFinder = $app->finder('XF:ProfilePostComment');
       
$profilePostComments = $profilePostCommentsFinder
           
->where('user_id', $this->user->user_id)
            ->
fetch();

        if (
$profilePostComments->count())
        {
           
$profilePostCommentIds = $profilePostComments->pluckNamed('profile_post_comment_id');
           
$submitter = $app->container('spam.contentSubmitter');
           
$submitter->submitSpam('profile_post_comment', $profilePostCommentIds);

           
$deleteType = $app->options()->spamMessageAction == 'delete' ? 'hard' : 'soft';

           
$log['profile_post_comment'] = [
               
'deleteType' => $deleteType,
               
'profilePostCommentIds' => []
            ];

            foreach (
$profilePostComments AS $profilePostCommentId => $profilePostComment)
            {
               
$log['profile_post_comment']['profilePostCommentIds'][] = $profilePostCommentId;

               
/** @var \XF\Entity\ProfilePostComment $profilePostComment */
               
$profilePostComment->setOption('log_moderator', false);
                if (
$deleteType == 'soft')
                {
                   
$profilePostComment->softDelete();
                }
                else
                {
                   
$profilePostComment->delete();
                }
            }
        }

        return
true;
    }

    public function
restore(array $log, &$error = null)
    {
       
$profilePostCommentsFinder = \XF::app()->finder('XF:ProfilePostComment');

        if (
$log['deleteType'] == 'soft')
        {
           
$profilePostComments = $profilePostCommentsFinder->where('profile_post_comment_id', $log['profilePostCommentIds'])->fetch();
            foreach (
$profilePostComments AS $profilePostComment)
            {
               
/** @var \XF\Entity\ProfilePostComment $profilePostComment */
               
$profilePostComment->setOption('log_moderator', false);
               
$profilePostComment->message_state = 'visible';
               
$profilePostComment->save();
            }
        }

        return
true;
    }
}