--- report2.php.backup 2020-02-28 21:41:24.444108716 +0100 +++ report2.php 2020-02-28 21:52:02.705565974 +0100 @@ -42,6 +42,7 @@ 'filter_set' => [T_ZBX_STR, O_OPT, P_SYS, null, null], 'from' => [T_ZBX_RANGE_TIME, O_OPT, P_SYS, null, null], 'to' => [T_ZBX_RANGE_TIME, O_OPT, P_SYS, null, null], + 'exportFile' => [T_ZBX_STR, O_OPT, P_SYS, null, null] ]; check_fields($fields); validateTimeSelectorPeriod(getRequest('from'), getRequest('to')); @@ -192,6 +193,7 @@ AVAILABILITY_REPORT_BY_TEMPLATE => _('By trigger template') ]) ]) + ->addItem(new CSubmit('exportFile', _('Export to CSV'))) )); /* @@ -456,6 +458,18 @@ CArrayHelper::sort($triggers, ['host_name', 'description']); + if(hasRequest('exportFile')) { + $csvText = "Host Name Problems Ok\n"; + foreach ($triggers as $trigger) { + $availability = calculateAvailability($trigger['triggerid'], getRequest('filter_timesince'), getRequest('filter_timetill')); + $csvText .= $trigger['hosts'][0]['name'].";".$trigger['description'].";".sprintf('%.4f%%', $availability['true']).";".sprintf('%.4f%%', $availability['false'])."\n"; + } + $filename = 'temp/report2_'.time().".csv"; + $file = fopen($filename,'w+'); + fwrite($file,$csvText); + fclose($file); + } + $paging = getPagingLine($triggers, ZBX_SORT_UP, new CUrl('report2.php')); foreach ($triggers as $trigger) { @@ -501,4 +515,25 @@ ->show(); } +if (hasRequest('exportFile')) { +?> + +