2013-08-26 02:24:36 +02:00
|
|
|
<?php
|
|
|
|
|
2017-11-22 02:26:15 +01:00
|
|
|
namespace SilverStripe\ExternalLinks\Jobs;
|
|
|
|
|
2017-11-23 02:54:27 +01:00
|
|
|
use Symbiote\QueuedJobs\Services\AbstractQueuedJob;
|
|
|
|
use Symbiote\QueuedJobs\Services\QueuedJob;
|
|
|
|
use SilverStripe\ExternalLinks\Tasks\CheckExternalLinksTask;
|
2017-11-23 00:56:44 +01:00
|
|
|
|
2017-11-23 02:54:27 +01:00
|
|
|
if (!class_exists(AbstractQueuedJob::class)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A Job for running a external link check for published pages
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
class CheckExternalLinksJob extends AbstractQueuedJob implements QueuedJob
|
|
|
|
{
|
|
|
|
|
|
|
|
public function getTitle()
|
|
|
|
{
|
2017-11-26 23:19:58 +01:00
|
|
|
return _t(__CLASS__ . '.TITLE', 'Checking for external broken links');
|
2017-11-23 02:54:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public function getJobType()
|
2017-11-23 00:56:44 +01:00
|
|
|
{
|
2017-11-23 02:54:27 +01:00
|
|
|
return QueuedJob::QUEUED;
|
|
|
|
}
|
2017-11-23 01:19:00 +01:00
|
|
|
|
2017-11-23 02:54:27 +01:00
|
|
|
public function getSignature()
|
|
|
|
{
|
|
|
|
return md5(get_class($this));
|
2017-11-23 00:56:44 +01:00
|
|
|
}
|
2017-11-23 01:19:00 +01:00
|
|
|
|
2017-11-23 02:54:27 +01:00
|
|
|
/**
|
|
|
|
* Check an individual page
|
|
|
|
*/
|
|
|
|
public function process()
|
|
|
|
{
|
|
|
|
$task = CheckExternalLinksTask::create();
|
|
|
|
$track = $task->runLinksCheck(1);
|
|
|
|
$this->currentStep = $track->CompletedPages;
|
|
|
|
$this->totalSteps = $track->TotalPages;
|
|
|
|
$this->isComplete = $track->Status === 'Completed';
|
|
|
|
}
|
2014-07-24 04:20:48 +02:00
|
|
|
}
|