config = $config; $this->urlGenerator = $urlGenerator; } public function linkToInvitationAbsolute(Room $room): string { $url = $this->config->getAppValue('bbb', 'app.shortener', ''); if (empty($url) || strpos($url, 'https://') !== 0 || strpos($url, '{token}') === false) { return $this->urlGenerator->linkToRouteAbsolute('bbb.join.index', ['token' => $room->getUid()]); } $placeholders = []; $replacements = [ 'token' => $room->getUid(), 'user' => $room->getUserId(), ]; foreach ($replacements as $placeholder => $parameter) { $placeholders[] = '{' . $placeholder . '}'; } return str_replace($placeholders, $replacements, $url); } }