Implement passing of tracking codes across domains

This commit is contained in:
Björn Fromme
2018-11-07 16:02:41 +01:00
parent 205b090eef
commit 878d9a834a
14 changed files with 106 additions and 10 deletions
@@ -69,6 +69,7 @@ new Vue({
},
data () {
return {
config: {},
maxWindowWidth: 991,
lastScrollPosition: 0,
scrollTopVisible: false,
@@ -86,6 +87,10 @@ new Vue({
}
},
methods: {
parseConfig () {
const configElement = document.getElementById('appconfig');
this.config = JSON.parse(configElement.innerHTML);
},
setMobileMode () {
this.mobileMode = $window.outerWidth() < this.maxWindowWidth;
},
@@ -343,9 +348,31 @@ new Vue({
.on('affixed-top.bs.affix', () => {
this.searchbarFixed = false;
});
},
appendPaCode () {
const paCode = this.config.paCode;
if (!paCode) {
return;
}
$('a').each(function () {
if (this.hostname === location.hostname) {
return;
}
let url = $(this).attr('href');
if (!url) {
return;
}
if (url.indexOf('pa=') !== -1) {
return;
}
const separator = url.indexOf('?') === -1 ? '?' : '&';
url += separator + 'pa=' + paCode;
$(this).attr('href', url);
});
}
},
created () {
this.parseConfig();
EventBus.$on('ajaxContentLoaded', () => {
Vue.nextTick(() => {
this.initContentsliders();
@@ -398,6 +425,7 @@ new Vue({
this.initDropdownMenuBehavior();
this.initPartnerIdSelect();
this.initFaqFilter();
this.appendPaCode();
});
}
});
@@ -19,4 +19,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -19,5 +19,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -15,5 +15,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -13,5 +13,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -21,5 +21,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -34,5 +34,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -26,5 +26,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -36,5 +36,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -26,5 +26,5 @@
<f:render partial="ContactBar" arguments="{_all}"/>
</div>
<f:render partial="ConversionTracking" />
<f:render partial="Config" />
<f:render partial="Config" arguments="{_all}" />
</html>
@@ -1,6 +1,7 @@
<script type="application/json" id="appconfig">
{
"loaderUrl": "<f:format.raw>{f:uri.image(src: 'EXT:ep_theme/Resources/Public/images/ajax-loader-white.gif', absolute: 1)}</f:format.raw>",
"myEpApiBaseUrl": "<f:format.raw>{settings.myEpApiBaseUrl}</f:format.raw>"
"myEpApiBaseUrl": "<f:format.raw>{settings.myEpApiBaseUrl}</f:format.raw>",
"paCode": <f:if condition='{context.paCode}'><f:then>"{context.paCode}"</f:then><f:else>null</f:else></f:if>
}
</script>
@@ -10,7 +10,9 @@
<v:menu levels="1" useShortcutUid="1" pageUid="{settings.topNavPid}">
<f:for each="{menu}" as="menuitem">
<li class="area-nav__list-item">
<a class="area-nav__link{f:if(condition: menuitem.active, then: ' active')}{f:if(condition: '{menuitem.uid} == {settings.forceActiveTopnavUid}', then: ' active')}" href="{menuitem.link}"{f:if(condition: '{menuitem.doktype} == 3', then: ' target="_blank"')} title="{menuitem.linktext}">{menuitem.title -> ep:topnavItem()}</a>
<a class="area-nav__link{f:if(condition: menuitem.active, then: ' active')}{f:if(condition: '{menuitem.uid} == {settings.forceActiveTopnavUid}', then: ' active')}"
href="{menuitem.link}"{f:if(condition: '{menuitem.doktype} == 3', then: ' target="_blank"')}
title="{menuitem.linktext}">{menuitem.title -> ep:topnavItem()}</a>
</li>
</f:for>
</v:menu>