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

namespace XF\Repository;

use
XF\Mvc\Entity\Finder;
use
XF\Mvc\Entity\Repository;

class
ModeratorLog extends Repository
{
   
/**
     * @return Finder
     */
   
public function findLogsForList()
    {
        return
$this->finder('XF:ModeratorLog')
            ->
with('User')
            ->
setDefaultOrder('log_date', 'DESC');
    }

   
/**
     * @return Finder
     */
   
public function findLogsForDiscussion($discussionContentType, $discussionId)
    {
        return
$this->finder('XF:ModeratorLog')
            ->
where(['discussion_content_type' => $discussionContentType, 'discussion_content_id' => $discussionId])
            ->
with('User')
            ->
setDefaultOrder('log_date', 'DESC');
    }

    public function
getUsersInLog()
    {
        return
$this->db()->fetchPairs("
            SELECT user.user_id, user.username
            FROM (
                SELECT DISTINCT user_id FROM xf_moderator_log
            ) AS log
            INNER JOIN xf_user AS user ON (log.user_id = user.user_id)
            ORDER BY user.username
        "
);
    }

    public function
pruneModeratorLogs($cutOff = null)
    {
        if (
$cutOff === null)
        {
           
$logLength = $this->options()->moderatorLogLength;
            if (!
$logLength)
            {
                return
0;
            }

           
$cutOff = \XF::$time - 86400 * $logLength;
        }

        return
$this->db()->delete('xf_moderator_log', 'log_date < ?', $cutOff);
    }

   
/**
     * @return \XF\ModeratorLog\AbstractHandler[]
     */
   
public function getModeratorLogHandlers()
    {
       
$handlers = [];

        foreach (\
XF::app()->getContentTypeField('moderator_log_handler_class') AS $contentType => $handlerClass)
        {
            if (
class_exists($handlerClass))
            {
               
$handlerClass = \XF::extendClass($handlerClass);
               
$handlers[$contentType] = new $handlerClass($contentType);
            }
        }

        return
$handlers;
    }

   
/**
     * @param string $type
     *
     * @return \XF\ModeratorLog\AbstractHandler|null
     */
   
public function getModeratorLogHandler($type)
    {
       
$handlerClass = \XF::app()->getContentTypeFieldValue($type, 'moderator_log_handler_class');
        if (!
$handlerClass)
        {
            return
null;
        }

        if (!
class_exists($handlerClass))
        {
            return
null;
        }

       
$handlerClass = \XF::extendClass($handlerClass);
        return new
$handlerClass($type);
    }
}