/** * Naplní diagram */ function fillUp() { $members = $this->hostgroup->getDataValue('members'); $host = new IEHost(); $hosts = $host->getColumnsFromMySQL(array('alias', 'address', 'parents', 'notifications_enabled', 'active_checks_enabled', 'passive_checks_enabled', '3d_coords', $host->myCreateColumn, $host->myLastModifiedColumn, $host->nameColumn, $host->myKeyColumn), 'host_id IN ( ' . implode(',', array_keys($members)) . ' )'); foreach ($hosts as $hostNo => $host_info) { if (strstr($host_info['3d_coords'], ',')) { list($x, $y, $z) = explode(',', $host_info['3d_coords']); } else { $x = $y = 0; } if (strlen(trim($host_info['parents']))) { $host_info['parents'] = unserialize($host_info['parents']); } if (isset($host_info[$host->nameColumn])) { $name = $host_info[$host->nameColumn]; } else { continue; } $alias = $host_info['alias']; $color = ''; if ($host_info['active_checks_enabled']) { $color = 'lightgreen'; } if ($host_info['passive_checks_enabled']) { $color = 'lightblue'; } $this->addNode($name, array('id' => 'host_' . $host_info[$host->myKeyColumn], 'node_id' => $host_info[$host->myKeyColumn], 'color' => $color, 'x' => $x, 'y' => $y, 'fixed' => boolval($x + $y), 'shape' => 'point', 'style' => 'filled', 'tooltip' => $alias, 'label' => $name)); if (isset($host_info[$host->nameColumn])) { if (is_array($host_info['parents'])) { foreach ($host_info['parents'] as $parent_name) { $this->addEdge(array($host_info[$host->nameColumn] => $parent_name)); } } } } }
$oPage->addItem(new IEPageBottom()); $infopanel = new IEInfoBox($contact); $tools = new EaseTWBPanel(_('Nástroje'), 'warning'); if ($contact->getId()) { $tools->addItem($contact->deleteButton()); $tools->addItem(new EaseTWBPanel(_('Transfer'), 'warning', $contact->transferForm())); if (count($serviceUsages)) { $usedBy = new EaseTWBPanel(_('Používaný službami')); $listing = $usedBy->addItem(new EaseHtmlUlTag(null, array('class' => 'list-group'))); foreach ($serviceUsages as $usage) { $listing->addItem(new EaseHtmlLiTag(new EaseHtmlATag('service.php?service_id=' . $usage['service_id'], $usage[$service->nameColumn]), array('class' => 'list-group-item'))); } $infopanel->addItem($usedBy); } $host = new IEHost(); $hostUsages = $host->getColumnsFromMySQL(array($host->getMyKeyColumn(), $host->nameColumn), array('contacts' => '%' . $contact->getName() . '%'), $host->nameColumn, $host->getMyKeyColumn()); if (count($hostUsages)) { $usedBy = new EaseTWBPanel(_('Používaný hosty')); $listing = $usedBy->addItem(new EaseHtmlUlTag(null, array('class' => 'list-group'))); foreach ($hostUsages as $usage) { $listing->addItem(new EaseHtmlLiTag(new EaseHtmlATag('host.php?host_id=' . $usage['host_id'], $usage[$host->nameColumn]), array('class' => 'list-group-item'))); } $infopanel->addItem($usedBy); } } $pageRow = new EaseTWBRow(); $pageRow->addColumn(2, $infopanel); $pageRow->addColumn(6, new EaseTWBPanel(_('Příkaz') . ' <strong>' . $contact->getName() . '</strong>', 'default', $form)); $pageRow->addColumn(4, $tools); $oPage->container->addItem($pageRow); $oPage->draw();
/** * Smaže hostgrupu i její použití v hostech * * @param int $id * @return boolean */ function delete($id = null) { if (isset($id) && $this->getId() != $id) { $this->loadFromSQL($id); } else { $id = $this->getId(); } $host = new IEHost(); $hosts = $host->getColumnsFromMySQL(array($host->myKeyColumn), array('hostgroups' => '%' . $this->getName() . '%')); foreach ($hosts as $hostInfo) { $hostId = intval(current($hostInfo)); $host->loadFromMySQL($hostId); $hostgroupNames = $host->getDataValue('hostgroups'); if ($hostgroupNames) { foreach ($hostgroupNames as $hostgroupId => $hostgroupName) { if ($hostgroupId == $this->getId()) { if ($host->delMember('hostgroups', $hostgroupId, $hostgroupName)) { $this->addStatusMessage(sprintf(_('host %s byl odstraněn ze skupiny %s'), $host->getName(), $hostgroupName), 'success'); } else { $this->addStatusMessage(sprintf(_('host %s byl odstraněn ze skupiny %s'), $host->getName(), $hostgroupName), 'error'); } } } } } $subgroup = new IEHostgroup(); $subgroups = $subgroup->getColumnsFromMySQL(array($subgroup->myKeyColumn), array('hostgroup_members' => '%' . $this->getName() . '%')); foreach ($subgroups as $subgroupInfo) { $subgroupId = intval(current($subgroupInfo)); $subgroup->loadFromMySQL($subgroupId); $subgroupgroupNames = $subgroup->getDataValue('hostgroup_members'); if ($subgroupgroupNames) { foreach ($subgroupgroupNames as $subgroupgroupId => $subgroupgroupName) { if ($subgroupgroupId == $this->getId()) { if ($subgroup->delMember('hostgroup_members', $subgroupgroupId, $subgroupgroupName)) { $this->addStatusMessage(sprintf(_('subgroup %s byl odstraněn ze skupiny %s'), $subgroup->getName(), $subgroupgroupName), 'success'); } else { $this->addStatusMessage(sprintf(_('subgroup %s byl odstraněn ze skupiny %s'), $subgroup->getName(), $subgroupgroupName), 'error'); } } } } } return parent::delete($id); }
function fixHostHostgroupID() { $hostgroupsOK = array(); $hostgroupsErr = array(); $host = new IEHost(); $hostgroup = new IEHostgroup(); $hosts = $host->getColumnsFromMySQL(array($host->myKeyColumn)); foreach ($hosts as $hostInfo) { $hostId = intval(current($hostInfo)); $host->loadFromMySQL($hostId); $hostgroupNames = $host->getDataValue('hostgroups'); if ($hostgroupNames) { foreach ($hostgroupNames as $hostgroupId => $hostgroupName) { $hostgroupFound = $hostgroup->loadFromMySQL($hostgroupName); if ($hostgroupId != $hostgroup->getId()) { if ($host->delMember('hostgroups', $hostgroupId, $hostgroupName) && $host->addMember('hostgroups', $hostgroup->getId(), $hostgroupName)) { $hostgroupsOK[] = $hostgroupName; } else { $hostgroupsErr[] = $hostgroupName; } } } } if (count($hostgroupsOK)) { if ($host->saveToMySQL()) { $this->addItemSmart(sprintf(_('<strong>%s</strong> : %s'), $host->getName(), implode(',', $hostgroupsOK)), array('class' => 'list-group-item')); $this->addStatusMessage(sprintf(_('%s : %s'), $host->getName(), implode(',', $hostgroupsOK)), 'success'); $hostgroupsOK = array(); } } } }