Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/AdminSearch/AbstractHandler.php
<?php

namespace XF\AdminSearch;

use
XF\App;
use
XF\Mvc\Entity\AbstractCollection;
use
XF\Mvc\Entity\Entity;
use
XF\Template\Templater;

abstract class
AbstractHandler
{
   
/**
     * @var string
     */
   
protected $contentType;

   
/**
     * @var App
     */
   
protected $app;

    public function
__construct($contentType, App $app)
    {
       
$this->contentType = $contentType;
       
$this->app = $app;
    }

    abstract public function
getDisplayOrder();

   
/**
     * @param string $text
     * @param integer $limit
     * @param array $previousMatchIds
     *
     * @return AbstractCollection
     */
   
abstract public function search($text, $limit, array $previousMatchIds = []);

    abstract public function
getTemplateData(Entity $record);

    public function
getTypeName()
    {
        return \
XF::phrase(\XF::app()->getContentTypePhraseName($this->contentType, true));
    }

    public function
isSearchable()
    {
        return
true;
    }

    public function
getMaxTypeResults($defaultLimit)
    {
        return
$defaultLimit;
    }

    public function
getRelatedPhraseGroups()
    {
        return [];
    }

    public function
getTemplateName()
    {
        return
'admin:quick_search_type';
    }

    public function
renderType(array $results, Templater $templater)
    {
       
$typeName = $this->getTypeName();
       
$template = $this->getTemplateName();

       
$filtered = [];
        foreach (
$results AS $key => $result)
        {
           
$filtered[$key] = $this->getTemplateData($result);
        }

        return
$templater->getTemplate($template, [
           
'typeName' => $typeName,
           
'results' => $filtered
       
]);
    }
}