Skip to content

Commit d5f1079

Browse files
committed
SystemReport: Fix error trying to get property 'parentNode' of non-object
Convert php new lines into HTML breaks Note: System reports generated by ScheduleCommand are in plain text. Read more: https://www.php.net/manual/en/function.phpinfo.php#refsect1-function.phpinfo-notes
1 parent 6d8da47 commit d5f1079

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

library/Reporting/Reports/SystemReport.php

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace Icinga\Module\Reporting\Reports;
55

6+
use Icinga\Application\Icinga;
67
use Icinga\Module\Reporting\Hook\ReportHook;
78
use Icinga\Module\Reporting\Timerange;
89
use ipl\Html\HtmlString;
@@ -20,20 +21,26 @@ public function getHtml(Timerange $timerange, array $config = null)
2021
phpinfo();
2122
$html = ob_get_clean();
2223

23-
$doc = new \DOMDocument();
24-
@$doc->loadHTML($html);
24+
if (! Icinga::app()->isCli()) {
25+
$doc = new \DOMDocument();
26+
@$doc->loadHTML($html);
2527

26-
$style = $doc->getElementsByTagName('style')->item(0);
27-
$style->parentNode->removeChild($style);
28+
$style = $doc->getElementsByTagName('style')->item(0);
29+
$style->parentNode->removeChild($style);
2830

29-
$title = $doc->getElementsByTagName('title')->item(0);
30-
$title->parentNode->removeChild($title);
31+
$title = $doc->getElementsByTagName('title')->item(0);
32+
$title->parentNode->removeChild($title);
3133

32-
$meta = $doc->getElementsByTagName('meta')->item(0);
33-
$meta->parentNode->removeChild($meta);
34+
$meta = $doc->getElementsByTagName('meta')->item(0);
35+
$meta->parentNode->removeChild($meta);
3436

35-
$doc->getElementsByTagName('div')->item(0)->setAttribute('class', 'system-report');
37+
$doc->getElementsByTagName('div')->item(0)->setAttribute('class', 'system-report');
3638

37-
return new HtmlString($doc->saveHTML());
39+
$html = $doc->saveHTML();
40+
} else {
41+
$html = nl2br($html);
42+
}
43+
44+
return new HtmlString($html);
3845
}
3946
}

0 commit comments

Comments
 (0)