Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Spam/Checker/AbstractProvider.php
<?php

namespace XF\Spam\Checker;

use function
is_array;

abstract class
AbstractProvider
{
   
/** @var \XF\Spam\AbstractChecker */
   
protected $checker;

    protected
$app;

    public function
__construct(\XF\Spam\AbstractChecker $checker, \XF\App $app)
    {
       
$this->checker = $checker;
       
$this->app = $app;
    }

    abstract protected function
getType();

    protected function
logDecision($decision)
    {
       
$this->checker->logDecision($this->getType(), $decision);
    }

    protected function
logDetail($phraseKey, array $data = [])
    {
       
$this->checker->logDetail($this->getType(), $phraseKey, $data);
    }

    protected function
logParam($key, $value)
    {
       
$this->checker->logParam($key, $value);
    }

    protected function
getContentSpamCheckParams($contentType, $contentIds)
    {
        if (!
is_array($contentIds))
        {
           
$contentIds = [$contentIds];
        }

       
$db = $this->app()->db();
       
$pairs = $db->fetchPairs("
                SELECT content_id, spam_params
                FROM xf_content_spam_cache
                WHERE content_type = ?
                    AND content_id IN ("
. $db->quote($contentIds) . ")
            "
, $contentType);
        foreach (
$pairs AS &$value)
        {
           
$value = @unserialize($value);
        }

        return
$pairs;
    }

   
/**
     * @return \XF\App
     */
   
protected function app()
    {
        return
$this->app;
    }
}