Skip to content
Snippets Groups Projects
Commit 4e5f824e authored by Mark Quirvien Cristobal's avatar Mark Quirvien Cristobal
Browse files

Issue #3449656: Allow tokens in tracking script

parent 5d18dd14
No related branches found
No related tags found
1 merge request!10Issue #3449656: Allow tokens in tracking script
......@@ -88,7 +88,11 @@ class ZipFileItem extends FileItem {
'#type' => 'textarea',
'#title' => $this->t('Default <em>Tracking Script</em>'),
'#default_value' => $settings['tracking_script_field_default'] ?? '',
'#description' => $this->t('Tracking script default value.'),
'#description' => [
'#theme' => 'token_tree_link',
'#token_types' => 'all',
'#prefix' => $this->t('Tracking script default value.'),
],
'#weight' => 11,
'#states' => [
'visible' => [
......@@ -168,11 +172,23 @@ class ZipFileItem extends FileItem {
* Re-write html file with the tracking script.
*/
protected function insertTrackingScript($file, $tracking_script) {
$token_service = \Drupal::token();
$entity = $this->parent->parent->getEntity();
$token_data = [];
$token_data[$entity->getEntityType()->id()] = $entity;
$token_options = ['clear' => TRUE];
$original = file_get_contents($file);
$lines = [];
$tracking_script_replaced = $token_service->replace($tracking_script, $token_data, $token_options);
foreach (explode("\n", $original) as $line) {
if (strstr($line, '</head>')) {
$lines[] = str_replace('</head>', $tracking_script . "\r\n</head>", $line);
$lines[] = str_replace('</head>', $tracking_script_replaced . "\r\n</head>", $line);
}
else {
$lines[] = $line;
......
......@@ -120,6 +120,10 @@ class ZipFileWidget extends FileWidget {
'#type' => 'textarea',
'#title' => new TranslatableMarkup('Tracking script'),
'#value' => $item['tracking_script'] ?? $element['#default_value']['tracking_script'],
'#description' => [
'#theme' => 'token_tree_link',
'#token_types' => 'all',
],
];
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment