public static function import($file) { libxml_use_internal_errors(true); $xml = new DOMDocument(); if (!$xml->load($file)) { foreach (libxml_get_errors() as $error) { $text = ''; switch ($error->level) { case LIBXML_ERR_WARNING: $text .= S_XML_FILE_CONTAINS_ERRORS . '. Warning ' . $error->code . ': '; break; case LIBXML_ERR_ERROR: $text .= S_XML_FILE_CONTAINS_ERRORS . '. Error ' . $error->code . ': '; break; case LIBXML_ERR_FATAL: $text .= S_XML_FILE_CONTAINS_ERRORS . '. Fatal Error ' . $error->code . ': '; break; } $text .= trim($error->message) . ' [ Line: ' . $error->line . ' | Column: ' . $error->column . ' ]'; error($text); break; } libxml_clear_errors(); return false; } if ($xml->childNodes->item(0)->nodeName != 'zabbix_export') { $xml2 = self::createDOMDocument(); $xml2->appendChild($xml2->ownerDocument->importNode($xml->childNodes->item(0), true)); self::$xml = $xml2->ownerDocument; } else { self::$xml = $xml; } return true; }
exit; } // IMPORT /////////////////////////////////// $rules = get_request('rules', array()); if (!isset($_FILES['import_file'])) { foreach (array('maps', 'icons', 'background') as $key) { $rules[$key]['exist'] = 1; $rules[$key]['missed'] = 1; } } if (isset($_FILES['import_file']) && is_file($_FILES['import_file']['tmp_name'])) { require_once 'include/export.inc.php'; DBstart(); $result = zbxXML::import($_FILES['import_file']['tmp_name']); if ($result) { $result = zbxXML::parseMap($rules); } $result = DBend($result); show_messages($result, S_IMPORTED . SPACE . S_SUCCESSEFULLY_SMALL, S_IMPORT . SPACE . S_FAILED_SMALL); } $_REQUEST['go'] = get_request('go', 'none'); if (isset($_REQUEST['save'])) { if (isset($_REQUEST['sysmapid'])) { // TODO check permission by new value. $map = array('sysmapid' => $_REQUEST['sysmapid'], 'name' => $_REQUEST['name'], 'width' => $_REQUEST['width'], 'height' => $_REQUEST['height'], 'backgroundid' => $_REQUEST['backgroundid'], 'highlight' => get_request('highlight', 0), 'markelements' => get_request('markelements', 0), 'expandproblem' => get_request('expandproblem', 0), 'label_type' => $_REQUEST['label_type'], 'label_location' => $_REQUEST['label_location'], 'show_unack' => get_request('show_unack', 0)); DBstart(); $result = CMap::update($map); $result = DBend($result); add_audit_if($result, AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_MAP, 'Name [' . $_REQUEST['name'] . ']'); show_messages($result, S_MAP_UPDATED, S_CANNOT_UPDATE_MAP); } else {
exit; } // IMPORT /////////////////////////////////// $rules = get_request('rules', array()); if (!isset($_FILES['import_file'])) { foreach (array('screen') as $key) { $rules[$key]['exist'] = 1; $rules[$key]['missed'] = 1; } } if (isset($_FILES['import_file']) && is_file($_FILES['import_file']['tmp_name'])) { require_once 'include/export.inc.php'; DBstart(); $result = zbxXML::import($_FILES['import_file']['tmp_name']); if ($result) { $result = zbxXML::parseScreen($rules); } $result = DBend($result); show_messages($result, S_IMPORTED . SPACE . S_SUCCESSEFULLY_SMALL, S_IMPORT . SPACE . S_FAILED_SMALL); } $_REQUEST['go'] = get_request('go', 'none'); if (isset($_REQUEST['clone']) && isset($_REQUEST['screenid'])) { unset($_REQUEST['screenid']); $_REQUEST['form'] = 'clone'; } else { if (isset($_REQUEST['save'])) { if (isset($_REQUEST['screenid'])) { $screen = array('screenid' => $_REQUEST['screenid'], 'name' => $_REQUEST['name'], 'hsize' => $_REQUEST['hsize'], 'vsize' => $_REQUEST['vsize']); $result = CScreen::update($screen); $audit_action = AUDIT_ACTION_UPDATE; show_messages($result, S_SCREEN_UPDATED, S_CANNOT_UPDATE_SCREEN);