Source of file BrokenExternalLinksReport.php
Size: 3,038 Bytes - Last Modified: 2021-12-23T10:30:26+00:00
/var/www/docs.ssmods.com/process/src/src/Reports/BrokenExternalLinksReport.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | <?php namespace SilverStripe\ExternalLinks\Reports; use SilverStripe\Core\Convert; use SilverStripe\ExternalLinks\Model\BrokenExternalPageTrackStatus; use SilverStripe\Forms\LiteralField; use SilverStripe\Forms\FormAction; use SilverStripe\ORM\ArrayList; use SilverStripe\Reports\Report; use SilverStripe\View\Requirements; /** * Content side-report listing pages with external broken links * @package externallinks */ class BrokenExternalLinksReport extends Report { /** * Returns the report title * * @return string */ public function title() { return _t(__CLASS__ . '.EXTERNALBROKENLINKS', "External broken links report"); } public function columns() { return array( "Created" => "Checked", 'Link' => array( 'title' => 'External Link', 'formatting' => function ($value, $item) { return sprintf( '<a target="_blank" href="%s">%s</a>', Convert::raw2att($item->Link), Convert::raw2xml($item->Link) ); } ), 'HTTPCodeDescription' => 'HTTP Error Code', "Title" => array( "title" => 'Page link is on', 'formatting' => function ($value, $item) { $page = $item->Page(); return sprintf( '<a href="%s">%s</a>', Convert::raw2att($page->CMSEditLink()), Convert::raw2xml($page->Title) ); } ) ); } /** * Alias of columns(), to support the export to csv action * in {@link GridFieldExportButton} generateExportFileData method. * @return array */ public function getColumns() { return $this->columns(); } public function sourceRecords() { $track = BrokenExternalPageTrackStatus::get_latest(); if ($track) { // Filter items that are attached to archived Pages return $track->BrokenLinks()->exclude('Track.Page.ID', null); } return ArrayList::create(); } public function getCMSFields() { Requirements::css('silverstripe/externallinks: css/BrokenExternalLinksReport.css'); Requirements::javascript('silverstripe/externallinks: javascript/BrokenExternalLinksReport.js'); $fields = parent::getCMSFields(); $runReportButton = FormAction::create('createReport', _t(__CLASS__ . '.RUNREPORT', 'Create new report')) ->addExtraClass('btn-primary external-links-report__create-report') ->setUseButtonTag(true); $fields->push($runReportButton); $reportResultSpan = '<p class="external-links-report__report-progress"></p>'; $reportResult = LiteralField::create('ResultTitle', $reportResultSpan); $fields->push($reportResult); return $fields; } } |