Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Search/Data/Page.php
<?php

namespace XF\Search\Data;

use
XF\Mvc\Entity\Entity;
use
XF\Search\IndexRecord;
use
XF\Search\MetadataStructure;

class
Page extends AbstractData
{
    public function
getEntityWith($forView = false)
    {
       
$get = ['MasterTemplate'];

        if (
$forView)
        {
           
$visitor = \XF::visitor();
           
$get[] = 'Node.Permissions|' . $visitor->permission_combination_id;
        }

        return
$get;
    }

    public function
getIndexData(Entity $entity)
    {
       
/** @var \XF\Entity\Page $entity */

       
$content = $entity->description . ' ' . ($entity->MasterTemplate ? $entity->MasterTemplate->template : '');

        return
IndexRecord::create('page', $entity->node_id, [
           
'title' => $entity->title,
           
'message' => strip_tags($content),
           
'date' => $entity->modified_date,
           
'user_id' => 0,
           
'discussion_id' => 0,
           
'metadata' => $this->getMetaData($entity)
        ]);
    }

    protected function
getMetaData(\XF\Entity\Page $entity)
    {
        return [
           
'node' => $entity->node_id
       
];
    }

    public function
setupMetadataStructure(MetadataStructure $structure)
    {
       
$structure->addField('node', MetadataStructure::INT);
    }

    public function
getResultDate(Entity $entity)
    {
        return
$entity->modified_date;
    }

    public function
getTemplateData(Entity $entity, array $options = [])
    {
        return [
           
'page' => $entity,
           
'options' => $options
       
];
    }
}