コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: sysmaps.php プロジェクト: songyuanjie/zabbix-stats
    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 {
コード例 #3
0
    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);