isTransformed) { return; } $fields = $submissionEvent->getForm()->getFields(); $contactFieldMatches = $submissionEvent->getContactFieldMatches(); $tokens = $submissionEvent->getTokens(); /** @var Field $field */ foreach ($fields as $field) { switch ($field->getType()) { case 'file': $newValue = $this->router->generate( 'mautic_form_file_download', [ 'submissionId' => $submissionEvent->getSubmission()->getId(), 'field' => $field->getAlias(), ], UrlGeneratorInterface::ABSOLUTE_URL ); $tokenAlias = "{formfield={$field->getAlias()}}"; if (!empty($tokens[$tokenAlias])) { $this->tokensToUpdate[$tokenAlias] = $tokens[$tokenAlias] = $newValue; } $contactFieldAlias = $field->getMappedField(); if ('contact' === $field->getMappedObject() && !empty($contactFieldMatches[$contactFieldAlias])) { $this->contactFieldsToUpdate[$contactFieldAlias] = $contactFieldMatches[$contactFieldAlias] = $newValue; } break; } } $submissionEvent->setTokens($tokens); $submissionEvent->setContactFieldMatches($contactFieldMatches); $this->isTransformed = true; } /** * @return array */ public function getContactFieldsToUpdate() { return $this->contactFieldsToUpdate; } /** * @return array */ public function getTokensToUpdate() { return $this->tokensToUpdate; } /** * @deprecated will be removed in Mautic 4. This should have been a private method. Not actually needed. */ public function isIsTransformed(): bool { return $this->isTransformed; } }