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

namespace XF\Search;

use function
intval, strval;

class
IndexRecord
{
    public
$type;
    public
$id;
    public
$title;
    public
$message;
    public
$date;
    public
$userId = 0;
    public
$discussionId = 0;
    public
$metadata = [];
    public
$hidden = false;

    public function
__construct($type, $id, $title, $message, $date = null, $userId = 0, $discussionId = 0, array $metadata = [])
    {
       
$this->type = strval($type);
       
$this->id = intval($id);
       
$this->title = strval($title);
       
$this->message = strval($message);
       
$date = $date === null ? \XF::$time : intval($date);
       
$this->date = $date;
       
$this->userId = intval($userId);
       
$this->discussionId = intval($discussionId);
       
$this->metadata = $metadata;
    }

    public static function
create($type, $id, array $data)
    {
       
$data = array_merge([
           
'title' => '',
           
'message' => '',
           
'date' => \XF::$time,
           
'user_id' => 0,
           
'discussion_id' => 0,
           
'metadata' => [],
           
'hidden' => false
       
], $data);

       
$index = new self(
           
$type, $id,
           
$data['title'], $data['message'],
           
$data['date'], $data['user_id'],
           
$data['discussion_id'], $data['metadata']
        );
        if (
$data['hidden'])
        {
           
$index->setHidden();
        }

        return
$index;
    }

    public function
setHidden()
    {
       
$this->hidden = true;
    }

    public function
indexTags(array $tags, $withMetadata = true)
    {
        if (
$tags)
        {
           
$tagIds = [];
           
$title = '';
            foreach (
$tags AS $tagId => $tag)
            {
               
$title .= " $tag[tag]";
               
$tagIds[] = $tagId;
            }

           
$this->title .= $title;
            if (
$withMetadata)
            {
               
$this->metadata['tag'] = $tagIds;
            }
        }
    }
}