コード例 #1
0
 */
$json = new CJSON();
if (isset($_REQUEST['selements']) || isset($_REQUEST['noselements'])) {
    $map['selements'] = get_request('selements', '[]');
    $map['selements'] = $json->decode($map['selements'], true);
} else {
    add_elementNames($map['selements']);
}
if (isset($_REQUEST['links']) || isset($_REQUEST['nolinks'])) {
    $map['links'] = get_request('links', '[]');
    $map['links'] = $json->decode($map['links'], true);
}
if (get_request('nocalculations', false)) {
    foreach ($map['selements'] as $selement) {
        if ($selement['elementtype'] != SYSMAP_ELEMENT_TYPE_IMAGE) {
            add_elementNames($map['selements']);
            break;
        }
    }
    // get default iconmap id to use for elements that use icon map
    if ($map['iconmapid']) {
        $iconMaps = API::IconMap()->get(array('iconmapids' => $map['iconmapid'], 'output' => array('default_iconid'), 'preservekeys' => true));
        $iconMap = reset($iconMaps);
        $defaultAutoIconId = $iconMap['default_iconid'];
    }
    $mapInfo = array();
    foreach ($map['selements'] as $selement) {
        // if element use icon map and icon map is set for map, and is host like element, we use default icon map icon
        if ($map['iconmapid'] && $selement['use_iconmap'] && ($selement['elementtype'] == SYSMAP_ELEMENT_TYPE_HOST || $selement['elementtype'] == SYSMAP_ELEMENT_SUBTYPE_HOST_GROUP && $selement['elementsubtype'] == SYSMAP_ELEMENT_SUBTYPE_HOST_GROUP_ELEMENTS)) {
            $iconid = $defaultAutoIconId;
        } else {
コード例 #2
0
$saveButton = new CSubmit('save', _('Save'));
$saveButton->setAttribute('id', 'sysmap_save');
$menuRow = array(_s('Map "%s"', $sysmap['name']), SPACE . SPACE, _('Icon'), SPACE, $el_add, SPACE, $el_rmv, SPACE . SPACE, _('Link'), SPACE, $cn_add, SPACE, $cn_rmv, SPACE . SPACE, _('Expand macros') . ' [ ', $expandMacros, ' ]', SPACE . SPACE, _('Grid') . SPACE . '[', $gridShow, '|', $gridAutoAlign, ']', SPACE, $gridForm, SPACE . '|' . SPACE, $saveButton);
$elcn_tab = new CTable(null, 'textwhite');
$elcn_tab->addRow($menuRow);
show_table_header($elcn_tab);
$sysmap_img = new CImg('images/general/tree/zero.gif', 'Sysmap');
$sysmap_img->setAttribute('id', 'sysmap_img', $sysmap['width'], $sysmap['height']);
$table = new CTable();
$table->addRow($sysmap_img);
$table->Show();
$container = new CDiv();
$container->setAttribute('id', 'sysmap_cnt');
$container->Show();
insert_show_color_picker_javascript();
add_elementNames($sysmap['selements']);
foreach ($sysmap['links'] as &$link) {
    foreach ($link['linktriggers'] as $lnum => $linktrigger) {
        $dbTrigger = API::Trigger()->get(array('triggerids' => $linktrigger['triggerid'], 'output' => array('description', 'expression'), 'selectHosts' => API_OUTPUT_EXTEND, 'preservekeys' => true, 'expandDescription' => true));
        $dbTrigger = reset($dbTrigger);
        $host = reset($dbTrigger['hosts']);
        $link['linktriggers'][$lnum]['desc_exp'] = $host['name'] . ':' . $dbTrigger['description'];
    }
    order_result($link['linktriggers'], 'desc_exp');
}
unset($link);
if ($sysmap['iconmapid']) {
    $iconMaps = API::IconMap()->get(array('iconmapids' => $sysmap['iconmapid'], 'output' => array('default_iconid'), 'preservekeys' => true));
    $iconMap = reset($iconMaps);
    $defaultAutoIconId = $iconMap['default_iconid'];
} else {
コード例 #3
0
ファイル: sysmap.php プロジェクト: TonywalkerCN/Zabbix
 * Permissions
 */
if (isset($_REQUEST['sysmapid'])) {
    $sysmap = API::Map()->get(array('sysmapids' => $_REQUEST['sysmapid'], 'editable' => true, 'output' => API_OUTPUT_EXTEND, 'selectSelements' => API_OUTPUT_EXTEND, 'selectLinks' => API_OUTPUT_EXTEND, 'preservekeys' => true));
    if (empty($sysmap)) {
        access_deny();
    } else {
        $sysmap = reset($sysmap);
    }
}
/*
 * Display
 */
$data = array('sysmap' => $sysmap, 'iconList' => array(), 'defaultAutoIconId' => null, 'defaultIconId' => null, 'defaultIconName' => null);
// get selements
add_elementNames($data['sysmap']['selements']);
$data['sysmap']['selements'] = zbx_toHash($data['sysmap']['selements'], 'selementid');
$data['sysmap']['links'] = zbx_toHash($data['sysmap']['links'], 'linkid');
// get links
foreach ($data['sysmap']['links'] as &$link) {
    foreach ($link['linktriggers'] as $lnum => $linkTrigger) {
        $dbTrigger = API::Trigger()->get(array('triggerids' => $linkTrigger['triggerid'], 'output' => array('description', 'expression'), 'selectHosts' => API_OUTPUT_EXTEND, 'preservekeys' => true, 'expandDescription' => true));
        $dbTrigger = reset($dbTrigger);
        $host = reset($dbTrigger['hosts']);
        $link['linktriggers'][$lnum]['desc_exp'] = $host['name'] . NAME_DELIMITER . $dbTrigger['description'];
    }
    order_result($link['linktriggers'], 'desc_exp');
}
unset($link);
// get iconmapping
if ($data['sysmap']['iconmapid']) {
コード例 #4
0
ファイル: sysmap.php プロジェクト: songyuanjie/zabbix-stats
check_fields($fields);
// ACTION /////////////////////////////////////////////////////////////////////////////
if (isset($_REQUEST['favobj'])) {
    $json = new CJSON();
    if ('sysmap' == $_REQUEST['favobj']) {
        $sysmapid = get_request('sysmapid', 0);
        $cmapid = get_request('favid', 0);
        switch ($_REQUEST['action']) {
            case 'get':
                $action = '';
                $options = array('sysmapids' => $sysmapid, 'editable' => true, 'output' => API_OUTPUT_EXTEND, 'select_selements' => API_OUTPUT_EXTEND, 'select_links' => API_OUTPUT_EXTEND);
                $sysmaps = CMap::get($options);
                $db_map = reset($sysmaps);
                expandMapLabels($db_map);
                $map_info = getSelementsInfo($db_map);
                add_elementNames($db_map['selements']);
                //SDII($db_map);
                $action .= 'ZBX_SYSMAPS[' . $cmapid . '].map.mselement["label_location"]=' . $db_map['label_location'] . '; ' . "\n";
                foreach ($db_map['selements'] as $snum => $selement) {
                    $info = $map_info[$selement['selementid']];
                    //						$element['image'] = get_base64_icon($element);
                    $selement['image'] = get_selement_iconid($selement, $info);
                    $action .= 'ZBX_SYSMAPS[' . $cmapid . '].map.add_selement(' . zbx_jsvalue($selement) . '); ' . "\n";
                }
                foreach ($db_map['links'] as $enum => $link) {
                    foreach ($link as $key => $value) {
                        if (is_int($key)) {
                            unset($link[$key]);
                        }
                    }
                    $link['linktriggers'] = zbx_toHash($link['linktriggers'], 'linktriggerid');