Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/ControllerPlugin/ModeratorLog.php
<?php

namespace XF\ControllerPlugin;

use
XF\Mvc\Entity\Entity;

use function
count, is_array;

class
ModeratorLog extends AbstractPlugin
{
    public function
actionModeratorActions(Entity $entity, array $linkData, $title = null, array $breadcrumbs = [])
    {
       
$contentType = $entity->getEntityContentType();
       
$contentId = $entity->getEntityId();

        if (!
$contentType)
        {
            throw new \
InvalidArgumentException("Provided entity must defined a content type in its structure");
        }

       
/** @var \XF\Repository\ModeratorLog $modLogRepo */
       
$modLogRepo = $this->repository('XF:ModeratorLog');

       
$page = $this->filterPage();
       
$perPage = 20;

       
$logs = $modLogRepo->findLogsForDiscussion($contentType, $contentId)
            ->
limitByPage($page, $perPage, 1)
            ->
fetch();

        if (!
count($logs))
        {
            return
$this->message(\XF::phrase('no_moderator_actions_have_been_logged'));
        }

       
$hasNext = count($logs) > $perPage;
       
$logs = $logs->slice(0, $perPage);

       
$viewParams = [
           
'type' => $contentType,
           
'id' => $contentId,

           
'linkRoute' => $linkData[0] ?? '',
           
'linkData' => $linkData[1] ?? null,
           
'linkParams' => (isset($linkData[2]) && is_array($linkData[2])) ? $linkData[2] : [],

           
'logs' => $logs,
           
'hasNext' => $hasNext,
           
'page' => $page,

           
'title' => $title,
           
'breadcrumbs' => $breadcrumbs
       
];
        return
$this->view('XF:ModeratorLog\ModeratorActions', 'moderator_log_moderator_actions', $viewParams);
    }
}