Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Service/Alert/Pusher.php
<?php

namespace XF\Service\Alert;

use
XF\Alert\AbstractHandler;
use
XF\Entity\UserAlert;
use
XF\Mvc\Entity\Entity;
use
XF\Service\AbstractService;
use
XF\Service\PusherTrait;
use
XF\Service\PushNotification;

class
Pusher extends AbstractService
{
    use
PusherTrait;

   
/**
     * @var UserAlert
     */
   
protected $alert;

   
/**
     * @var AbstractHandler
     */
   
protected $handler;

   
/**
     * @var Entity
     */
   
protected $content;

    protected function
setInitialProperties(UserAlert $alert)
    {
       
$this->alert = $alert;
       
$this->handler = $alert->getHandler();
       
$this->content = $alert->getContent();
    }

    protected function
getNotificationTitle()
    {
       
$phrase = $this->language->phrase('new_alert_at_x', ['boardTitle' => $this->app->options()->boardTitle]);

        return
$phrase->render('raw');
    }

    protected function
getNotificationBody()
    {
       
$alert = $this->alert;
       
$handler = $this->handler;
       
$content = $this->content;

       
$templateName = $handler->getPushTemplateName($alert->action);
        if (!
$this->templater->isKnownTemplate($templateName))
        {
           
$templateName = $handler->getTemplateName($alert->action);
        }
       
$templateData = $handler->getTemplateData($alert->action, $alert, $content);

        return
$this->renderPushTemplate($templateName, $templateData);
    }

    protected function
setAdditionalOptions(PushNotification $pushNotification)
    {
       
$user = $this->alert->User;
        if (
$user)
        {
           
$this->setUserOptions($pushNotification, $user);
        }
    }
}