1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
<?php
/**
*
* @author Christian Doebler <christian.doebler@netways.de>
*
*/
abstract class IcingaApiConnection
extends IcingaApi {
/*
* VARIABLES
*/
protected $config = false;
protected $connectionObject = false;
protected $connectionResultSet = false;
protected $searchFilterDefault = array();
/*
* METHODS
*/
/**
* class constructor
*
* @param void
* @return void
* @author Christian Doebler <christian.doebler@netways.de>
*/
public function __construct () {}
/**
* checks the database configuration
*
* @param array $config associative array storing configuration
* @return boolean true if configuration is OK, false on error(s)
* @author Christian Doebler <christian.doebler@netways.de>
*/
public function checkConfig ($config) {
$configOk = true;
if (array_key_exists('contact_cource', $config) && empty($config['contact_source'])) {
$config['contact_source'] = false;
throw new IcingaApiConnectionException('Configuration error: Invalid contact_source!');
$configOk = false;
}
return $configOk;
}
/**
* sets default search filter(s)
* @param mixed $filter filter key or associative array of key-value pairs defining filters
* @param mixed $value value to filter for
* @return IcingaApiSearchInterface
* @author Christian Doebler <christian.doebler@netways.de>
*/
public function setDefaultSearchFilter ($filter, $value = false, $defaultMatch = IcingaApi::MATCH_EXACT) {
if (!is_array($filter)) {
$filter = array(array($filter, $value, $defaultMatch));
} else {
if (!is_array($filter[0])) {
$filter = array($filter);
}
}
foreach ($filter as $currentFilter) {
array_push($this->searchFilterDefault, $currentFilter);
}
return $this;
}
}
// extend exceptions
class IcingaApiConnectionException extends IcingaApiException {}
?>
|