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;
 }