config = $config; $ticketPatterns = array(); foreach ($config as $section => $values) { if ($values->get('url')) { // Skip integrations that don't contain a URL $ticketPattern = $this->createTicketPattern($section, $values->get('pattern')); if ($ticketPattern->isValid()) { // Skip integrations that don't contain a pattern $ticketPatterns[$section] = $ticketPattern; } } } $this->ticketPatterns = $ticketPatterns; } /** * {@inheritdoc} * * @return \Icinga\Application\Hook\Ticket\TicketPattern[] */ public function getPattern() { return $this->ticketPatterns; } /** * {@inheritdoc} */ public function createLink($match) { /** @var \Icinga\Application\Hook\Ticket\TicketPattern $match */ return sprintf( '%s', preg_replace('/\$1/', rawurlencode($match[1]), $this->config->get($match->getName(), 'url')), $match[0] ); } }