1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
<?php
// Icinga Reporting | (c) 2018 Icinga GmbH | GPLv2
namespace Icinga\Module\Reporting\Reports;
use Icinga\Application\Icinga;
use Icinga\Module\Reporting\Hook\ReportHook;
use Icinga\Module\Reporting\Timerange;
use ipl\Html\HtmlString;
class SystemReport extends ReportHook
{
public function getName()
{
return 'System';
}
public function getHtml(Timerange $timerange, array $config = null)
{
ob_start();
phpinfo();
/** @var string $html */
$html = ob_get_clean();
if (! Icinga::app()->isCli()) {
$doc = new \DOMDocument();
@$doc->loadHTML($html);
$style = $doc->getElementsByTagName('style')->item(0);
$style->parentNode->removeChild($style);
$title = $doc->getElementsByTagName('title')->item(0);
$title->parentNode->removeChild($title);
$meta = $doc->getElementsByTagName('meta')->item(0);
$meta->parentNode->removeChild($meta);
$doc->getElementsByTagName('div')->item(0)->setAttribute('class', 'system-report');
$html = $doc->saveHTML();
} else {
$html = nl2br($html);
}
return new HtmlString($html);
}
}
|