本文整理汇总了PHP中CApplication::exists方法的典型用法代码示例。如果您正苦于以下问题:PHP CApplication::exists方法的具体用法?PHP CApplication::exists怎么用?PHP CApplication::exists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CApplication
的用法示例。
在下文中一共展示了CApplication::exists方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parseMain
public static function parseMain($rules)
{
$triggers_for_dependencies = array();
try {
if (isset($rules['host']['exist']) || isset($rules['host']['missed'])) {
$xpath = new DOMXPath(self::$xml);
$hosts = $xpath->query('hosts/host');
foreach ($hosts as $hnum => $host) {
$host_db = self::mapXML2arr($host, XML_TAG_HOST);
if (!isset($host_db['status'])) {
$host_db['status'] = HOST_STATUS_TEMPLATE;
}
$current_host = $host_db['status'] == HOST_STATUS_TEMPLATE ? CTemplate::exists($host_db) : CHost::exists($host_db);
if (!$current_host && !isset($rules['host']['missed'])) {
info('Host [' . $host_db['host'] . '] skipped - user rule');
continue;
// break if update nonexist
}
if ($current_host && !isset($rules['host']['exist'])) {
info('Host [' . $host_db['host'] . '] skipped - user rule');
continue;
// break if not update exist
}
if (isset($host_db['proxy_hostid'])) {
$proxy_exists = CProxy::get(array('proxyids' => $host_db['proxy_hostid']));
if (empty($proxy_exists)) {
$host_db['proxy_hostid'] = 0;
}
}
if ($current_host) {
$options = array('filter' => array('host' => $host_db['host']), 'output' => API_OUTPUT_EXTEND, 'editable' => 1);
if ($host_db['status'] == HOST_STATUS_TEMPLATE) {
$current_host = CTemplate::get($options);
} else {
$current_host = CHost::get($options);
}
if (empty($current_host)) {
throw new APIException(1, 'No permission for host [' . $host_db['host'] . ']');
} else {
$current_host = reset($current_host);
}
}
// HOST GROUPS {{{
$groups = $xpath->query('groups/group', $host);
$host_db['groups'] = array();
$groups_to_parse = array();
foreach ($groups as $gnum => $group) {
$groups_to_parse[] = array('name' => $group->nodeValue);
}
if (empty($groups_to_parse)) {
$groups_to_parse[] = array('name' => ZBX_DEFAULT_IMPORT_HOST_GROUP);
}
foreach ($groups_to_parse as $group) {
$current_group = CHostGroup::exists($group);
if ($current_group) {
$options = array('filter' => $group, 'output' => API_OUTPUT_EXTEND, 'editable' => 1);
$current_group = CHostGroup::get($options);
if (empty($current_group)) {
throw new APIException(1, 'No permissions for group ' . $group['name']);
}
$host_db['groups'][] = reset($current_group);
} else {
$result = CHostGroup::create($group);
if (!$result) {
throw new APIException(1, CHostGroup::resetErrors());
}
$options = array('groupids' => $result['groupids'], 'output' => API_OUTPUT_EXTEND);
$new_group = CHostgroup::get($options);
$host_db['groups'][] = reset($new_group);
}
}
// }}} HOST GROUPS
// MACROS
$macros = $xpath->query('macros/macro', $host);
$host_db['macros'] = array();
if ($macros->length > 0) {
foreach ($macros as $macro) {
$host_db['macros'][] = self::mapXML2arr($macro, XML_TAG_MACRO);
}
}
// }}} MACROS
// TEMPLATES {{{
if (isset($rules['template']['exist'])) {
$templates = $xpath->query('templates/template', $host);
$host_db['templates'] = array();
foreach ($templates as $tnum => $template) {
$options = array('filter' => array('host' => $template->nodeValue), 'output' => API_OUTPUT_EXTEND, 'editable' => 1);
$current_template = CTemplate::get($options);
if (empty($current_template)) {
throw new APIException(1, 'No permission for Template [' . $template->nodeValue . ']');
}
$current_template = reset($current_template);
if (!$current_template && !isset($rules['template']['missed'])) {
info('Template [' . $template->nodeValue . '] skipped - user rule');
continue;
// break if update nonexist
}
if ($current_template && !isset($rules['template']['exist'])) {
info('Template [' . $template->nodeValue . '] skipped - user rule');
continue;
//.........这里部分代码省略.........