public function replaceKey($content) { $content = trim($content); if (preg_match('@\\$\\{([^\\}]+)\\}@', $content)) { return $this->parser->parseData($content); } elseif (strstr($content, '::')) { if (defined($content)) { $content = AppKit::getConstant($content); } } return $content; }
/** * Initiates the IcingaApiConnection * @return boolean * @throws IcingaApiException * @author mhein */ private function initConnection() { $c = $this->configData; $type = AppKit::getConstant($c['api_type']); // if (!$type) throw new AppKitModelException('Could not get api_type \'%s\' for connection', $c['api_type']); $capi = array(); foreach ($c as $ckey => $cdata) { if (strpos($ckey, 'config_') === 0) { $capi[substr($ckey, 7)] = $cdata; } } $this->apiData = IcingaApiConstants::getConnection($type, $capi); return true; }
/** * Detects constants within parameter names and resolve values * @param string $name * @return mixed */ private function rewriteParamName($name) { if (strstr($name, '::')) { if (defined($name)) { $name = AppKit::getConstant($name); } } return $name; }
private function buildDataSource() { if ($this->api_search === null) { $params = $this->getTemplate()->getSectionParams('datasource'); $search = $this->getApi()->createSearch(); // our query target $search->setSearchTarget(AppKit::getConstant($params->getParameter('target'))); if ($params->getParameter('filterPresets')) { foreach ($params->getParameter('filterPresets') as $type => $preset) { $searchGroup = $search->createFilterGroup($type); $this->createFilter($preset, $searchGroup, $search); $this->conditions[] = $searchGroup; } } // setting the orders // Order by // Overwrite default orders foreach ($this->collectOrders() as $order) { $search->setSearchOrder($order[0], $order[1]); } // Restrictions if (is_array($this->conditions) && count($this->conditions) > 0) { foreach ($this->conditions as $condition) { if ($condition instanceof IcingaApiSearchFilter) { $search->setSearchFilter($condition['field'], $condition['val'], $condition['op']); } else { $search->setSearchFilter($condition); } } } $this->setPrivileges($search); // Clone our count query if ($params->getParameter('countmode', null) !== 'none') { $this->api_count = clone $search; } // Groupby fields $gbf = $this->getGroupByFields(); if (is_array($gbf) && count($gbf) > 0) { $search->setSearchGroup($gbf); } // the result columns $search->setResultColumns($this->collectColumns()); // limits if (is_numeric($this->pager_limit) && is_numeric($this->pager_start)) { $search->setSearchLimit($this->pager_start, $this->pager_limit); } elseif ($params->getParameter('limit', null)) { $search->setSearchLimit(0, $params->getParameter('limit')); } $this->api_search =& $search; } return true; }