Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Report/Post.php
<?php

namespace XF\Report;

use
XF\Entity\Report;
use
XF\Mvc\Entity\Entity;

class
Post extends AbstractHandler
{
    protected function
canViewContent(Report $report)
    {
        return \
XF::visitor()->hasNodePermission($report->content_info['node_id'], 'view');
    }

    protected function
canActionContent(Report $report)
    {
       
$visitor = \XF::visitor();
       
$nodeId = $report->content_info['node_id'];
        return (
$visitor->hasNodePermission($nodeId, 'editAnyPost') || $visitor->hasNodePermission($nodeId, 'deleteAnyPost'));
    }

    public function
setupReportEntityContent(Report $report, Entity $content)
    {
        if (!empty(
$content->Thread->prefix_id) && $content->Thread->Prefix)
        {
           
/** @var \XF\Entity\ThreadPrefix $prefix */
           
$prefix = $content->Thread->Prefix;
           
$prefixPhrase = \XF::phrase($prefix->getPhraseName());
           
$prefixPhrase = $prefixPhrase->render();

           
$threadTitle = $prefixPhrase . ' - ' . $content->Thread->title;
        }
        else
        {
           
$threadTitle = $content->Thread->title;
        }

       
/** @var \XF\Entity\Post $content */
       
$report->content_user_id = $content->user_id;
       
$report->content_info = [
           
'message' => $content->message,
           
'node_id' => $content->Thread->Forum->Node->node_id,
           
'node_name' => $content->Thread->Forum->Node->node_name,
           
'node_title' => $content->Thread->Forum->Node->title,
           
'post_id' => $content->post_id,
           
'thread_id' => $content->thread_id,
           
'thread_title' => $threadTitle,
           
'user_id' => $content->user_id,
           
'username' => $content->username
       
];
    }

    public function
getContentTitle(Report $report)
    {
        return \
XF::phrase('post_in_thread_x', [
           
'title' => \XF::app()->stringFormatter()->censorText($report->content_info['thread_title'])
        ]);
    }

    public function
getContentMessage(Report $report)
    {
        return
$report->content_info['message'];
    }

    public function
getContentLink(Report $report)
    {
        if (!empty(
$report->content_info['post_id']))
        {
           
$linkData = $report->content_info;
        }
        else
        {
           
$linkData = ['post_id' => $report->content_id];
        }

        return \
XF::app()->router('public')->buildLink('canonical:posts', $linkData);
    }

    public function
getEntityWith()
    {
        return [
'Thread', 'Thread.Forum', 'User'];
    }
}