Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/ActivitySummary/Instance.php
<?php

namespace XF\ActivitySummary;

use
XF\Entity\User;

use function
count, in_array, strval;

class
Instance
{
   
/**
     * @var User
     */
   
protected $user;

    protected
$seenIds = [];
    protected
$renderedSections = [];
    protected
$displayValues = [];

    public function
__construct(User $user)
    {
       
$this->user = $user;
    }

    public function
getUser(): User
   
{
        return
$this->user;
    }

    public function
getSeen(): array
    {
        return
$this->seenIds;
    }

    public function
addSeen($type, $id)
    {
       
$this->seenIds[$type][] = $id;
    }

    public function
hasSeen($type, $id): bool
   
{
        return
in_array($id, $this->seenIds[$type] ?? []);
    }

    public function
getRenderedSections(): array
    {
        return
$this->renderedSections;
    }

    public function
addRenderedSection($html)
    {
       
$this->renderedSections[] = $html;
    }

    public function
getDisplayValues(): array
    {
        return
$this->displayValues;
    }

    public function
addDisplayValue($label, $value)
    {
       
$this->displayValues[] = [
           
'label' => strval($label),
           
'value' => $value
       
];
    }

    public function
addDisplayValues(array $values)
    {
        foreach (
$values AS $value)
        {
            if (
$value['value'] != 0)
            {
               
$this->addDisplayValue($value['label'], $value['value']);
            }
        }
    }

    public function
canSendActivitySummary(): bool
   
{
        return
count($this->renderedSections) > 0;
    }
}