function generateData($rrdtool_template, $itemtype, $items_id, $timezone, $time, $enddate = '')
{
global $DB;
if ($enddate == '') {
$enddate = date('U');
}
// Manage timezones
$converttimezone = '0';
if (strstr($timezone, '-')) {
$timezone_temp = str_replace("-", "", $timezone);
$converttimezone = $timezone_temp * 3600;
$timezone = str_replace("-", "+", $timezone);
} else {
if (strstr($timezone, '+')) {
$timezone_temp = str_replace("+", "", $timezone);
$converttimezone = $timezone_temp * 3600;
$timezone = str_replace("+", "-", $timezone);
}
}
// ** Get in table serviceevents
$mydatat = array();
$a_labels = array();
$a_ref = array();
$pmServiceevent = new PluginMonitoringServiceevent();
$pmService = new PluginMonitoringService();
$pmService->getFromDB($items_id);
$dateformat = "%Y-%m-%d %Hh";
$begin = '';
switch ($time) {
case '2h':
$begin = date('Y-m-d H:i:s', $enddate - 2 * 3600);
$dateformat = "(%d)%H:%M";
$query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `date` > '" . $begin . "'\n AND `date` <= '" . date('Y-m-d H:i:s', $enddate) . "'\n ORDER BY `date`";
$result = $DB->query($query);
$ret = array();
if (isset($this->jsongraph_a_ref[$rrdtool_template])) {
$ret = $pmServiceevent->getData($result, $rrdtool_template, array($this->jsongraph_a_ref[$rrdtool_template], $this->jsongraph_a_convert[$rrdtool_template]));
} else {
$ret = $pmServiceevent->getData($result, $rrdtool_template);
}
if (is_array($ret)) {
$mydatat = $ret[0];
$a_labels = $ret[1];
$a_ref = $ret[2];
if (!isset($this->jsongraph_a_ref[$rrdtool_template])) {
$this->jsongraph_a_ref[$rrdtool_template] = $ret[2];
$this->jsongraph_a_convert[$rrdtool_template] = $ret[3];
}
}
break;
case '12h':
$begin = date('Y-m-d H:i:s', $enddate - 12 * 3600);
$dateformat = "(%d)%H:%M";
$query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `date` > '" . $begin . "'\n AND `date` <= '" . date('Y-m-d H:i:s', $enddate) . "'\n ORDER BY `date`";
$result = $DB->query($query);
$ret = $pmServiceevent->getData($result, $rrdtool_template);
if (is_array($ret)) {
$mydatat = $ret[0];
$a_labels = $ret[1];
$a_ref = $ret[2];
}
break;
case '1d':
$begin = date('Y-m-d H:i:s', $enddate - 24 * 3600);
$dateformat = "(%d)%H:%M";
$query = "SELECT * FROM `glpi_plugin_monitoring_serviceevents`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `date` > '" . $begin . "'\n AND `date` <= '" . date('Y-m-d H:i:s', $enddate) . "'\n ORDER BY `date`";
$result = $DB->query($query);
$ret = $pmServiceevent->getData($result, $rrdtool_template);
if (is_array($ret)) {
$mydatat = $ret[0];
$a_labels = $ret[1];
$a_ref = $ret[2];
}
break;
case '1w':
$begin = date('Y-m-d H:i:s', date('U') - 7 * 24 * 3600);
$display_month = 0;
$dateformat = "(%d) %Hh";
if (date('m', date('U') - 7 * 24 * 3600) != date('m', date('U'))) {
$display_month = 1;
$dateformat = "%m-%d %Hh";
}
$query = "SELECT * FROM `" . $this->getTable() . "`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `type`='6h'\n ORDER BY `date`";
$result = $DB->query($query);
while ($edata = $DB->fetch_array($result)) {
$dat = importArrayFromDB($edata['data']);
$datemod = $edata['date'];
$daynum = Calendar::getDayNumberInWeek(PluginMonitoringServiceevent::convert_datetime_timestamp($edata['date']));
$split = explode(' ', $datemod);
$split2 = explode(':', $split[1]);
$splitymd = explode('-', $split[0]);
$dateymd = "(" . $splitymd[2] . ")";
if ($display_month == 1) {
$dateymd = $splitymd[1] . "-" . $splitymd[2];
}
array_push($a_labels, $dateymd . " " . $split2[0] . 'h');
if (count($dat) == 0) {
$a_perfnames = PluginMonitoringServicegraph::getperfdataNames($rrdtool_template);
foreach ($a_perfnames as $name) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], '');
}
} else {
foreach ($dat as $name => $value) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], $value);
}
}
}
$ret = $pmServiceevent->getRef($rrdtool_template);
break;
case '1m':
$begin = date('Y-m-d H:i:s', date('U') - 30 * 24 * 3600);
$display_year = 0;
$dateformat = "%m-%d %Hh";
if (date('Y', date('U') - 7 * 24 * 3600) != date('Y', date('U'))) {
$display_year = 1;
$dateformat = "%Y-%m-%d %Hh";
}
$query = "SELECT * FROM `" . $this->getTable() . "`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `type`='1d'\n ORDER BY `date`";
$result = $DB->query($query);
while ($edata = $DB->fetch_array($result)) {
$dat = importArrayFromDB($edata['data']);
$datemod = $edata['date'];
// $daynum = Calendar::getDayNumberInWeek(PluginMonitoringServiceevent::convert_datetime_timestamp($edata['date']));
$split = explode(' ', $datemod);
$split2 = explode(':', $split[1]);
$day = explode("-", $split[0]);
$dateymd = $day[1] . "-" . $day[2];
if ($display_year == 1) {
$dateymd = $split[0];
}
array_push($a_labels, $dateymd . " " . $split2[0] . 'h');
if (count($dat) == 0) {
$a_perfnames = PluginMonitoringServicegraph::getperfdataNames($rrdtool_template);
foreach ($a_perfnames as $name) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], '');
}
} else {
foreach ($dat as $name => $value) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], $value);
}
}
}
$ret = $pmServiceevent->getRef($rrdtool_template);
break;
case '0y6m':
$begin = date('Y-m-d H:i:s', date('U') - 364 / 2 * 24 * 3600);
$query = "SELECT * FROM `" . $this->getTable() . "`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `type`='5d'\n ORDER BY `date`";
$result = $DB->query($query);
while ($edata = $DB->fetch_array($result)) {
$dat = importArrayFromDB($edata['data']);
$datemod = $edata['date'];
$daynum = date('m', PluginMonitoringServiceevent::convert_datetime_timestamp($edata['date']));
$daynum = $daynum - 1;
$split = explode(' ', $datemod);
$split2 = explode(':', $split[1]);
$day = explode("-", $split[0]);
array_push($a_labels, $split[0] . " " . $split2[0] . 'h');
if (count($dat) == 0) {
$a_perfnames = PluginMonitoringServicegraph::getperfdataNames($rrdtool_template);
foreach ($a_perfnames as $name) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], '');
}
} else {
foreach ($dat as $name => $value) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], $value);
}
}
}
$ret = $pmServiceevent->getRef($rrdtool_template);
$a_ref = $ret[0];
break;
case '1y':
$begin = date('Y-m-d H:i:s', date('U') - 365 * 24 * 3600);
$query = "SELECT * FROM `" . $this->getTable() . "`\n WHERE `plugin_monitoring_services_id`='" . $items_id . "'\n AND `type`='10d'\n ORDER BY `date`";
$result = $DB->query($query);
while ($edata = $DB->fetch_array($result)) {
$dat = importArrayFromDB($edata['data']);
$datemod = $edata['date'];
$daynum = date('m', PluginMonitoringServiceevent::convert_datetime_timestamp($edata['date']));
$daynum = $daynum - 1;
$split = explode(' ', $datemod);
$split2 = explode(':', $split[1]);
$day = explode("-", $split[0]);
array_push($a_labels, $split[0] . " " . $split2[0] . 'h');
if (count($dat) == 0) {
$a_perfnames = PluginMonitoringServicegraph::getperfdataNames($rrdtool_template);
foreach ($a_perfnames as $name) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], '');
}
} else {
foreach ($dat as $name => $value) {
if (!isset($mydatat[$name])) {
$mydatat[$name] = array();
}
array_push($mydatat[$name], $value);
}
}
}
$ret = $pmServiceevent->getRef($rrdtool_template);
break;
}
return array($mydatat, $a_labels, $dateformat);
}