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

namespace XF\Repository;

use
XF\Mvc\Entity\Repository;

class
FindNew extends Repository
{
    public function
getAvailableCachedFindNewRecord(\XF\Entity\FindNew $baseRecord, $cacheLength)
    {
       
$finder = $this->finder('XF:FindNew');
       
$finder
           
->where([
               
'content_type' => $baseRecord->content_type,
               
'user_id' => $baseRecord->user_id,
               
'filter_hash' => $baseRecord->getFilterHash()
            ])
            ->
where('cache_date', '>=', \XF::$time - $cacheLength)
            ->
order('cache_date', 'DESC');

        return
$finder->fetchOne();
    }

    public function
pruneFindNewResults($cutOff = null)
    {
        if (
$cutOff === null)
        {
           
$cutOff = \XF::$time - 86400;
        }

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

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

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

        return
$handlers;
    }

   
/**
     * @param string $type
     * @param bool $throw
     *
     * @return \XF\FindNew\AbstractHandler|null
     */
   
public function getFindNewHandler($type, $throw = false)
    {
       
$handlerClass = \XF::app()->getContentTypeFieldValue($type, 'find_new_handler_class');
        if (!
$handlerClass)
        {
            if (
$throw)
            {
                throw new \
InvalidArgumentException("No find new handler for '$type'");
            }
            return
null;
        }

        if (!
class_exists($handlerClass))
        {
            if (
$throw)
            {
                throw new \
InvalidArgumentException("Find new handler for '$type' does not exist: $handlerClass");
            }
            return
null;
        }

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