private static function hostgroup($action, $params) { CHostGroup::$error = array(); switch ($action) { case 'add': $result = CHostGroup::add($params); break; case 'get': $result = CHostGroup::get($params); break; case 'getById': $result = CHostGroup::getById($params); break; case 'getId': $result = CHostGroup::getId($params); break; case 'update': $result = CHostGroup::update($params); break; case 'addHosts': $result = CHostGroup::addHosts($params); break; case 'removeHosts': $result = CHostGroup::removeHosts($params); break; case 'addGroupsToHost': $result = CHostGroup::addGroupsToHost($params); break; case 'updateGroupsToHost': $result = CHostGroup::updateGroupsToHost($params); break; case 'delete': $result = CHostGroup::delete($params); break; default: self::$result = array('error' => ZBX_API_ERROR_NO_METHOD, 'data' => 'Method: "' . $action . '" doesn\'t exist.'); return; //exit function } if ($result !== false) { self::$result = array('result' => $result); } else { self::$result = CHostGroup::$error; } }
access_deny(); } } else { if (!count(get_accessible_nodes_by_user($USER_DETAILS, PERM_READ_WRITE, PERM_RES_IDS_ARRAY))) { access_deny(); } } $clone_templateid = false; if ($_REQUEST['form'] == 'full_clone') { $clone_templateid = $templateid; $templateid = null; } DBstart(); // CREATE NEW GROUP if (!empty($newgroup)) { if ($groupid = CHostGroup::add(array($newgroup))) { $groups += $groupid; } else { $result = false; } } // <<<--- CREATE|UPDATE TEMPLATE WITH GROUPS ANT LINKED TEMPLATES --->>> if ($templateid) { if (isset($_REQUEST['clear_templates'])) { foreach ($_REQUEST['clear_templates'] as $id) { $result &= unlink_template($_REQUEST['templateid'], $id, false); } } $result = CTemplate::update(array(array('hostid' => $templateid, 'host' => $template_name))); $result &= CHostGroup::updateGroupsToHost(array('hostid' => $templateid, 'groupids' => $groups)); $msg_ok = S_TEMPLATE_UPDATED;