private static function template($action, $params) { CTemplate::$error = array(); switch ($action) { case 'add': $result = CTemplate::add($params); break; case 'get': $result = CTemplate::get($params); break; case 'getById': $result = CTemplate::getById($params); break; case 'getId': $result = CTemplate::getId($params); break; case 'update': $result = CTemplate::update($params); break; case 'linkHosts': $result = CTemplate::linkHosts($params); break; case 'unlinkHosts': $result = CTemplate::unlinkHosts($params); break; case 'linkTemplates': $result = CTemplate::linkTemplates($params); break; case 'unlinkTemplates': $result = CTemplate::unlinkTemplates($params); break; case 'delete': $result = CTemplate::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 = CTemplate::$error; } }
$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; $msg_fail = S_CANNOT_UPDATE_TEMPLATE; } else { if ($result = CTemplate::add(array(array('host' => $template_name, 'groupids' => $groups)))) { $templateid = reset($result); } else { $result = false; } $msg_ok = S_TEMPLATE_ADDED; $msg_fail = S_CANNOT_ADD_TEMPLATE; } if ($result) { $original_templates = get_templates_by_hostid($templateid); $original_templates = array_keys($original_templates); $templates_to_link = array_diff($templates, $original_templates); $result &= CTemplate::linkTemplates(array('hostid' => $templateid, 'templateids' => $templates_to_link)); } // --->>> <<<--- // <<<--- FULL_CLONE --->>>