/** * {@inheritdoc} */ public function transform(MessageInterface $message) { $text = $this->transformLinks($message->getMessage()); $replacement = '<a href="' . $this->userUrlPattern . '"' . ($this->userLinkTarget ? ' target="' . $this->userLinkTarget . '"' : '') . '>@$1</a>'; $text = preg_replace('/@(\\w+)/', $replacement, $text); $replacement = '<a href="' . $this->tagUrlPattern . '"' . ($this->tagLinkTarget ? ' target="' . $this->tagLinkTarget . '"' : '') . '>#$1</a>'; $text = preg_replace('/#(\\w+)/', $replacement, $text); return $text; }
private function transformUsers(MessageInterface $message) { $text = $message->getMessage(); if (!$message->getUsers()) { return $text; } $words = explode(' ', $text); foreach ($message->getUsers() as $indexes => $user) { foreach (explode(',', $indexes) as $index) { if (isset($words[$index])) { $words[$index] = '<a href="' . str_replace('$1', $user, $this->userUrlPattern) . '"' . ($this->userLinkTarget ? ' target="' . $this->userLinkTarget . '"' : '') . '>' . $words[$index] . '</a>'; } } } return implode(' ', $words); }