Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Job/Notifier.php
<?php

namespace XF\Job;

use function
call_user_func;

class
Notifier extends AbstractJob
{
    protected
$defaultData = [
       
'service' => '',
       
'extra' => [],
       
'notifyData' => [],
       
'alerted' => [],
       
'emailed' => []
    ];

    public function
run($maxRunTime)
    {
       
$service = $this->data['service'];
       
$call = [$service, 'createForJob'];

        if (!
class_exists($service) || !is_callable($call))
        {
            return
$this->complete();
        }

       
/** @var \XF\Service\AbstractNotifier|null $notifier */
       
$notifier = call_user_func($call, $this->data['extra']);
        if (!
$notifier)
        {
            return
$this->complete();
        }

       
$notifier->setupFromJobData($this->data);
       
$notifier->notify($maxRunTime);
        if (!
$notifier->hasMore())
        {
            return
$this->complete();
        }

       
$this->data = $notifier->getJobData();
        return
$this->resume();
    }

    public function
getStatusMessage()
    {
       
$actionPhrase = \XF::phrase('running');
       
$typePhrase = 'Notifications'; // never seen
       
return sprintf('%s... %s', $actionPhrase, $typePhrase);
    }

    public function
canCancel()
    {
        return
false;
    }

    public function
canTriggerByChoice()
    {
        return
false;
    }
}