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

namespace XF\AdminSearch;

use
XF\Mvc\Entity\Entity;
use
XF\Mvc\Router;

abstract class
AbstractPhrased extends AbstractHandler
{
    abstract protected function
getFinderName();
    abstract protected function
getContentIdName();
    abstract protected function
getRouteName();

    public function
search($text, $limit, array $previousMatchIds = [])
    {
       
$contentFinder = $this->app->finder($this->getFinderName());

       
$conditions = [
            [
$contentFinder->columnUtf8($this->getContentIdName()), 'like', $contentFinder->escapeLike($text, '%?%')]
        ];
        if (
$previousMatchIds)
        {
           
$conditions[] = [$this->getContentIdName(), $previousMatchIds];
        }

       
$contentFinder
           
->whereOr($conditions)
            ->
order($contentFinder->caseInsensitive($this->getContentIdName()))
            ->
limit($limit);

        return
$contentFinder->fetch();
    }

    public function
getTemplateData(Entity $record)
    {
       
/** @var \XF\Mvc\Router $router */
       
$router = $this->app->container('router.admin');

        return
$this->getTemplateParams($router, $record, [
           
'link' => $router->buildLink($this->getRouteName(), $record),
           
'title' => $record->title
       
]);
    }

   
/**
     * @param Router $router
     * @param Entity $record
     * @param array  $templateParams
     *
     * @return array
     */
   
protected function getTemplateParams(Router $router, Entity $record, array $templateParams)
    {
        return
$templateParams;
    }
}