本文整理汇总了PHP中CMap::exists方法的典型用法代码示例。如果您正苦于以下问题:PHP CMap::exists方法的具体用法?PHP CMap::exists怎么用?PHP CMap::exists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMap
的用法示例。
在下文中一共展示了CMap::exists方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parseMap
public static function parseMap($rules)
{
global $USER_DETAILS;
$importMaps = self::XMLtoArray(self::$xml);
if (!isset($importMaps['zabbix_export'])) {
$importMaps['zabbix_export'] = $importMaps;
}
try {
if ($USER_DETAILS['type'] == USER_TYPE_SUPER_ADMIN) {
$images = $importMaps['zabbix_export']['images'];
$images_to_add = array();
$images_to_update = array();
foreach ($images as $inum => $image) {
if (CImage::exists($image)) {
if ($image['imagetype'] == IMAGE_TYPE_ICON && isset($rules['icons']['exist']) || $image['imagetype'] == IMAGE_TYPE_BACKGROUND && isset($rules['background']['exist'])) {
$options = array('filter' => array('name' => $image['name']), 'output' => API_OUTPUT_SHORTEN);
$imgs = CImage::get($options);
$img = reset($imgs);
$image['imageid'] = $img['imageid'];
// image will be decoded in class.image.php
$image['image'] = $image['encodedImage'];
unset($image['encodedImage']);
$images_to_update[] = $image;
}
} else {
if ($image['imagetype'] == IMAGE_TYPE_ICON && isset($rules['icons']['missed']) || $image['imagetype'] == IMAGE_TYPE_BACKGROUND && isset($rules['background']['missed'])) {
// No need to decode_base64
$image['image'] = $image['encodedImage'];
unset($image['encodedImage']);
$images_to_add[] = $image;
}
}
}
//sdi($images_to_add);
if (!empty($images_to_add)) {
$result = CImage::create($images_to_add);
if (!$result) {
throw new Exception(S_CANNOT_ADD_IMAGE);
}
}
//sdi($images_to_update);
if (!empty($images_to_update)) {
$result = CImage::update($images_to_update);
if (!$result) {
throw new Exception(S_CANNOT_UPDATE_IMAGE);
}
}
}
$importMaps = $importMaps['zabbix_export']['sysmaps'];
$sysmaps = array();
foreach ($importMaps as $mnum => &$sysmap) {
unset($sysmap['sysmapid']);
$exists = CMap::exists(array('name' => $sysmap['name']));
if ($exists && isset($rules['maps']['exist'])) {
$db_maps = CMap::getObjects(array('name' => $sysmap['name']));
if (empty($db_maps)) {
throw new Exception(S_NO_PERMISSIONS_FOR_MAP . ' [' . $sysmap['name'] . '] import');
}
$db_map = reset($db_maps);
$sysmap['sysmapid'] = $db_map['sysmapid'];
} else {
if ($exists || !isset($rules['maps']['missed'])) {
info('Map [' . $sysmap['name'] . '] skipped - user rule');
unset($importMaps[$mnum]);
continue;
// break if not update exist
}
}
if (isset($sysmap['backgroundid'])) {
$image = getImageByIdent($sysmap['backgroundid']);
if (!$image) {
error(S_CANNOT_FIND_BACKGROUND_IMAGE . ' "' . $sysmap['backgroundid']['name'] . '" ' . S_USED_IN_EXPORTED_MAP_SMALL . ' "' . $sysmap['name'] . '"');
$sysmap['backgroundid'] = 0;
} else {
$sysmap['backgroundid'] = $image['imageid'];
}
} else {
$sysmap['backgroundid'] = 0;
}
if (!isset($sysmap['selements'])) {
$sysmap['selements'] = array();
}
if (!isset($sysmap['links'])) {
$sysmap['links'] = array();
}
foreach ($sysmap['selements'] as $snum => &$selement) {
$nodeCaption = isset($selement['elementid']['node']) ? $selement['elementid']['node'] . ':' : '';
if (!isset($selement['elementid'])) {
$selement['elementid'] = 0;
}
switch ($selement['elementtype']) {
case SYSMAP_ELEMENT_TYPE_MAP:
$db_sysmaps = CMap::getObjects($selement['elementid']);
if (empty($db_sysmaps)) {
$error = S_CANNOT_FIND_MAP . ' "' . $nodeCaption . $selement['elementid']['name'] . '" ' . S_USED_IN_EXPORTED_MAP_SMALL . ' "' . $sysmap['name'] . '"';
throw new Exception($error);
}
$tmp = reset($db_sysmaps);
$selement['elementid'] = $tmp['sysmapid'];
break;
//.........这里部分代码省略.........