function webform_protected_downloads_tokens in Webform Protected Downloads 8
Same name and namespace in other branches
- 7 webform_protected_downloads.module \webform_protected_downloads_tokens()
Implements hook_tokens().
File
- ./
webform_protected_downloads.module, line 73
Code
function webform_protected_downloads_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) {
$replacements = [];
if (isset($tokens['protected_download_url']) && isset($data['entity'])) {
foreach ($tokens as $name => $original) {
switch ($name) {
case 'protected_download_url':
// Find a file hash for current submission.
$webformSubmission = $data['entity'];
$webformProtectedDownloadsManager = \Drupal::service('webform_protected_downloads.manager');
$webformProtectedDownload = $webformProtectedDownloadsManager
->getSubmissionByUuid($webformSubmission
->uuid());
$hash = $webformProtectedDownload
->getHash();
if (is_null($hash)) {
$replacements[$original] = t("Download link not available");
return $replacements;
}
$webform = $webformSubmission
->getWebform();
$webformSettings = $webform
->getThirdPartySettings('webform_protected_downloads');
$url = Url::fromRoute('webform_protected_downloads.download', [
'hash' => $hash,
], [
'absolute' => TRUE,
]);
$link = Link::fromTextAndUrl(t($webformSettings['token_text']), $url)
->toString();
$element = [
'#theme' => 'webform_protected_downloads_token',
'#link' => $link,
];
$link = \Drupal::service('renderer')
->render($element);
// Replace token.
$replacements[$original] = $link;
break;
}
}
}
return $replacements;
}