Compare commits

...

No commits in common. "master" and "dev_ticket_3679" have entirely different histories.

108 changed files with 7407 additions and 672 deletions

65
.gitattributes vendored Normal file
View File

@ -0,0 +1,65 @@
* text=auto !eol
Sources/Admin1.jpg -text
Sources/FireShot[!!-~]Screen[!!-~]Capture[!!-~]#250[!!-~]-[!!-~]'Conversion-Tracking'[!!-~]-[!!-~]adwords_google_com_ct_ConversionTracking_Manager___c=1858313983&__u=7452293233&__o=cues#acc_ALL_con.png -text
Sources/FireShot[!!-~]Screen[!!-~]Capture[!!-~]#251[!!-~]-[!!-~]'Conversion-Tracking'[!!-~]-[!!-~]adwords_google_com_ct_ConversionTracking_Manager___c=1858313983&__u=7452293233&__o=cues#acc_ALL_con.png -text
Sources/FireShot[!!-~]Screen[!!-~]Capture[!!-~]#252[!!-~]-[!!-~]'Google[!!-~]Analytics'[!!-~]-[!!-~]www_google_com_analytics_web__authuser=0#management_Settings_a50621059w82651812p85583465__m_page=CustomMetrics.png -text
Sources/Google[!!-~]AdWords-Einrichtung.docx -text
Sources/Google[!!-~]Analytics-Einrichtung.docx -text
Sources/Google[!!-~]Services-Installation.docx -text
Sources/UGA_Custom_Dimensions.jpg -text
Sources/UGA_Einstellungen.jpg -text
Sources/UGA_Trichtereinrichtung.jpg -text
Sources/UGA_Trichtereinrichtung_1.jpg -text
Sources/trustedShops.jpg -text
changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl -text
changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl -text
copy_this/.noencode -text
copy_this/modules/d3/d3_googleanalytics/IntelliSenseHelper.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_adwords.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_campaigns.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_licence.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_list.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_main.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_trustedstore.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog.php -text
copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog_list.php -text
copy_this/modules/d3/d3_googleanalytics/core/smarty/plugins/function.d3getArticleFromOrderArticle.php -text
copy_this/modules/d3/d3_googleanalytics/menu.xml -text
copy_this/modules/d3/d3_googleanalytics/metadata.php -text
copy_this/modules/d3/d3_googleanalytics/models/d3_google_remarketing_articlelister.php -text
copy_this/modules/d3/d3_googleanalytics/models/d3_google_trustedstore_articlelister.php -text
copy_this/modules/d3/d3_googleanalytics/modules/components/d3_oxcmp_utils_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/modules/controllers/d3_order_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/modules/controllers/d3_thankyou_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/modules/core/d3_oxutilsview_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/modules/models/d3_oxbasket_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/modules/models/d3_oxbasketitem_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/modules/models/d3_oxorder_googleanalytics.php -text
copy_this/modules/d3/d3_googleanalytics/out/src/d3_googleanalytics.css -text
copy_this/modules/d3/d3_googleanalytics/out/src/d3_googleanalytics_mobile.css -text
copy_this/modules/d3/d3_googleanalytics/picture.png -text
copy_this/modules/d3/d3_googleanalytics/setup/d3_googleanalytics_update.php -text
copy_this/modules/d3/d3_googleanalytics/translations/de/d3_googleanalytics_lang.php -text
copy_this/modules/d3/d3_googleanalytics/translations/en/d3_googleanalytics_lang.php -text
copy_this/modules/d3/d3_googleanalytics/views/admin/de/d3_googleanalytics_lang.php -text
copy_this/modules/d3/d3_googleanalytics/views/admin/en/d3_googleanalytics_lang.php -text
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_adwords.tpl -text
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_campaigns.tpl -text
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_main.tpl -text
copy_this/modules/d3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_trustedstore.tpl -text
setup+doku/Google[!!-~]AdWords-Einrichtung.pdf -text svneol=unset#unset
setup+doku/Google[!!-~]Analytics-Einrichtung.pdf -text svneol=unset#unset
setup+doku/Google[!!-~]Services-Installation.pdf -text
setup+doku/Precheck/d3precheck.php -text
setup+doku/changelog.txt -text

BIN
Sources/Admin1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

BIN
Sources/trustedShops.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

View File

@ -1,2 +0,0 @@
Weitere Informationen zum Modul **{$modulename}** finden Sie in unserem Shop:
[https://www.oxidmodule.com/OXID-eShop/Module/MODULNAME-fuer-Oxid-PE.html](https://www.oxidmodule.com/OXID-eShop/Module/MODULNAME-fuer-Oxid-PE.html)

View File

@ -0,0 +1,29 @@
[{$smarty.block.parent}]
[{d3modcfgcheck modid="d3_googleanalytics"}]
[{/d3modcfgcheck}]
[{if $mod_d3_googleanalytics}]
[{* Content shouldn't rendered in disabled module!
Because of this reason, it can't included in d3modcfgcheck block. *}]
[{if $oD3GASettings->getValue('sD3GATSActive') && $oD3GASettings->getValue('sD3GATSId')}]
[{capture name="d3GATrustedStoreCode"}]
[{strip}]
[{include file="d3ga_universal_trustedstore.tpl"}]
[{/strip}]
[{/capture}]
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
[{$oView->logCode($smarty.capture.d3GATrustedStoreCode)}]
[{/if}]
[{$smarty.capture.d3GATrustedStoreCode}]
[{/if}]
[{include file="d3ga_universal_adwordscode.tpl"}]
[{include file="d3ga_universal_remarketing.tpl"}]
[{include file="d3ga_universal_campaigncode.tpl"}]
[{/if}]

View File

@ -0,0 +1,14 @@
[{$smarty.block.parent}]
[{d3modcfgcheck modid="d3_googleanalytics"}]
[{/d3modcfgcheck}]
[{if $mod_d3_googleanalytics}]
[{* Content shouldn't rendered in disabled module!
Because of this reason, it can't included in d3modcfgcheck block. *}]
[{include file=$sD3GATTpl}]
[{oxstyle include=$oViewConf->getModuleUrl('d3_googleanalytics', 'out/src/d3_googleanalytics.css')}]
[{if $blD3GAIsMobile}]
[{oxstyle include=$oViewConf->getModuleUrl('d3_googleanalytics', 'out/src/d3_googleanalytics_mobile.css')}]
[{/if}]
[{/if}]

View File

@ -0,0 +1,28 @@
[{$smarty.block.parent}]
[{d3modcfgcheck modid="d3_googleanalytics"}]
[{/d3modcfgcheck}]
[{if $mod_d3_googleanalytics && $oD3GASettings->getValue('blD3GAUseOptOut')}]
<div id="d3GAOptOut">
<a href="javascript:gaOptout();">[{oxmultilang ident="D3_GOOGLEANALYTICS_OPTOUT"}]</a>
[{assign var='sGaId' value=$oD3GASettings->getValue('sD3GAId')}]
[{oxscript add="
var gaProperty = '`$sGaId`';
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
window[disableStr] = true;
}
function gaOptout() {
document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
window[disableStr] = true;
$('#d3GAOptOut').remove();
}
if (window[disableStr]) {
$('#d3GAOptOut').remove();
}"}]
</div>
[{/if}]

View File

@ -0,0 +1,222 @@
[{if $blD3GoogleAnalyticsActive && $oD3GASettings->getValue('sD3GAId')}]
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
[{assign var="order" value=$oView->getOrder()}]
[{assign var="oPayment" value=$order->getPayment()}]
[{assign var="oDelSet" value=$order->getDelSet()}]
[{assign var="aVoucherSerieList" value=$order->d3getVoucherSerieList()}]
[{assign var="oUser" value=$oView->getUser()}]
[{/if}]
[{capture name="d3GATrackCode"}]
[{strip}]
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '[{$oD3GASettings->getValue('sD3GAId')}]']);
[{if $oD3GASettings->getValue('blD3GAAnonymizeIP')}]
_gaq.push(['_gat._anonymizeIp']);
[{/if}]
[{if $oD3GASettings->getValue('sD3GASetDomainName')}]
_gaq.push(['_setDomainName', '[{$oD3GASettings->getValue('sD3GASetDomainName')}]']);
_gaq.push(['_setAllowHash', false]);
[{else}]
_gaq.push(['_setDomainName', 'none']);
[{/if}]
[{if $oD3GASettings->getValue('sD3GASetCookiePath')}]
_gaq.push(['_setCookiePath', '[{$oD3GASettings->getValue('sD3GASetCookiePath')}]']);
[{/if}]
[{if $oD3GASettings->getValue('iD3GASiteSpeedSampleRate')}]
_gaq.push(['_setSiteSpeedSampleRate', '[{$oD3GASettings->getValue('iD3GASiteSpeedSampleRate')}]']);
[{/if}]
[{if $oD3GASettings->getValue('iD3GASampleRate')}]
_gaq.push(['_setSampleRate', '[{$oD3GASettings->getValue('iD3GASampleRate')}]']);
[{/if}]
[{if $oD3GASettings->getValue('blD3GAAllowDomainLinker')}]
_gaq.push(['_setAllowLinker', true]);
[{/if}]
[{if $oD3GASettings->getValue('blD3GASetClientInfo')}]
_gaq.push(['_setClientInfo', false]);
[{else}]
_gaq.push(['_setClientInfo', true]);
[{/if}]
[{if $oD3GASettings->getValue('blD3GASetDetectFlash')}]
_gaq.push(['_setDetectFlash', false]);
[{else}]
_gaq.push(['_setDetectFlash', true]);
[{/if}]
[{if $oD3GASettings->getValue('blD3GASetDetectTitle')}]
_gaq.push(['_setDetectTitle', false]);
[{else}]
_gaq.push(['_setDetectTitle', true]);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')}]
_gaq.push(['_setCampaignTrack', true]);
[{else}]
_gaq.push(['_setCampaignTrack', false]);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack') && $oD3GASettings->getValue('sD3GASetCampaignCookieTimeout')}]
_gaq.push(['_setCampaignCookieTimeout', '[{$oD3GASettings->getValue('sD3GASetCampaignCookieTimeout')}]']);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack') && $oD3GASettings->getValue('sD3GASetCampNameKey')}]
_gaq.push(['_setCampNameKey', '[{$oD3GASettings->getValue('sD3GASetCampNameKey')}]']);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack') && $oD3GASettings->getValue('sD3GASetCampMediumKey')}]
_gaq.push(['_setCampMediumKey', '[{$oD3GASettings->getValue('sD3GASetCampMediumKey')}]']);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack') && $oD3GASettings->getValue('sD3GASetCampSourceKey')}]
_gaq.push(['_setCampSourceKey', '[{$oD3GASettings->getValue('sD3GASetCampSourceKey')}]']);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack') && $oD3GASettings->getValue('sD3GASetCampTermKey')}]
_gaq.push(['_setCampTermKey', '[{$oD3GASettings->getValue('sD3GASetCampTermKey')}]']);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack') && $oD3GASettings->getValue('sD3GASetCampContentKey')}]
_gaq.push(['_setCampContentKey', '[{$oD3GASettings->getValue('sD3GASetCampContentKey')}]']);
[{/if}]
[{if !$oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack') && $oD3GASettings->getValue('sD3GASetCampContentKey')}]
_gaq.push(['_setCampNOKey', 'ga_nooverride']);
[{/if}]
[{if $oD3GASettings->getValue('blD3GAUseCustomVars')}]
[{**** add custom variables here ****}]
[{if $oxcmp_user}]
_gaq.push(['_setCustomVar',
1, [{*// This custom var is set to slot #1. Required parameter.*}]
'Geschlecht', [{*// The name of the custom variable. Required parameter.*}]
[{if $oxcmp_user->oxuser__oxsal->value == 'MR'}]'male'[{elseif $oxcmp_user->oxuser__oxsal->value == 'MRS'}]'female'[{/if}],
[{*// The value of the custom variable. Required parameter.*}]
1 [{*// Sets the scope to visitor-level. Optional parameter.*}]
]);
[{/if}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $oPayment}]
_gaq.push(['_setCustomVar',2,'Zahlungsart', '[{$oPayment->getFieldData('oxdesc')}]' , 3]);
[{/if}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $oDelSet}]
_gaq.push(['_setCustomVar',3,'Versandart', '[{$oDelSet->getFieldData('oxtitle')}]' , 3]);
[{/if}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $aVoucherSerieList}]
[{foreach from=$aVoucherSerieList item="oVoucherSerie"}]
_gaq.push(['_setCustomVar',4,'Gutschein', '[{$oVoucherSerie->getFieldData('oxserienr')}]', 3]);
[{/foreach}]
[{/if}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $order}]
_gaq.push(['_setCustomVar',5,'Waehrung', '[{$order->getFieldData('oxcurrency')}]' , 3]);
[{/if}]
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
_gaq.push(['_setCustomVar',5,'Neukunde', '[{$oView->isNewCustomer()}]',3]);
[{/if}]
[{/if}]
_gaq.push(['_trackPageview' [{$sD3GASendPageViewParameter}]]);
[{if $oD3GASettings->getValue('blD3GATrackPageLoadTime')}]
_gaq.push(['_trackPageLoadTime']);
[{/if}]
[{if $oD3GASettings->getValue('sD3GACookiePathCopy')}]
_gaq.push(['_cookiePathCopy', '[{$oD3GASettings->getValue('sD3GACookiePathCopy')}]']);
[{/if}]
[{if $oD3GASettings->getValue('blD3GASendECommerce') && $oViewConf->getActiveClassName() == 'thankyou'}]
[{assign var="currate" value=$order->oxorder__oxcurrate->value}]
_gaq.push(['_addTrans',
'[{$order->oxorder__oxordernr->value}]', [{* // order ID - required *}]
'[{$oxcmp_shop->oxshops__oxname->value|escape:"quotes"}]', [{* // affiliation or store name *}]
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
'[{math equation="s / r" s=$order->getOrderNetSum() r=$currate format="%.2f"}]', [{* // total - required - has to be gross sum *}]
[{else}]
'[{math equation="s / r" s=$order->getTotalOrderSum() r=$currate format="%.2f"}]', [{* // total - required *}]
[{/if}]
'[{math equation="s - r" s=$order->getTotalOrderSum() r=$order->getOrderNetSum() format="%.2f"}]', [{* // tax *}]
'[{math equation="s / r" s=$order->oxorder__oxdelcost->value r=$currate format="%.2f"}]', [{* // shipping *}]
'[{$order->oxorder__oxbillcity->value|escape:"quotes"}]', [{* // city *}]
'[{$order->oxorder__oxbillstate->value|escape:"quotes"}]', [{* // state or province *}]
'[{$order->oxorder__oxbillcountry->value|escape:"quotes"}]' [{* // country *}]
]);
[{foreach from=$order->getOrderArticles() item=oOrderArticle}]
_gaq.push(['_addItem',
'[{$order->oxorder__oxordernr->value}]', [{* // order ID - required *}]
'[{$oOrderArticle->oxorderarticles__oxartnum->value|escape:"quotes"}]', [{* // SKU/code *}]
'[{$oOrderArticle->oxorderarticles__oxtitle->value|escape:"quotes"}]', [{* // product name *}]
'[{$oOrderArticle->oxorderarticles__d3_galocator->value|escape:"quotes"}]', [{* // category or variation *}]
[{*'[{$oOrderArticle->oxorderarticles__oxselvariant->value}]', [{* // category or variation *}]
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
[{assign var="oPrice" value=$oOrderArticle->getPrice()}]
'[{math equation="s / r" s=$oPrice->getNettoPrice() r=$currate format="%.2f"}]', [{* // unit price - required *}]
[{else}]
'[{$oOrderArticle->oxorderarticles__oxprice->value}]', [{* // unit price - required - is not currency depended *}]
[{/if}]
'[{$oOrderArticle->oxorderarticles__oxamount->value}]' [{* // quantity - required *}]
]);
[{/foreach}]
_gaq.push(['_trackTrans']);
[{/if}]
[{* bounce optimization*}]
[{block name="d3ga_bounceoptimization"}]
[{if $oD3GASettings->getValue('blUseBounceRateOptimization')}]
setTimeout('_gaq.push([\'_trackEvent\', \'NoBounce\', \'Over defined seconds\'])',[{$iD3GASendNoBounceEventTime}]);
[{if $oD3GASettings->getValue('blSendNoBounceEventScroll')}]
window.addEventListener ?
window.addEventListener('scroll', testScroll, false) :
window.attachEvent('onscroll', testScroll);
var scrollCount = 0;
function testScroll() {
++scrollCount;
if (scrollCount == 2) {
_gaq.push(['_trackEvent', 'window', 'scrolled']);
}
}
[{/if}]
[{/if}]
[{/block}]
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
[{if $oD3GASettings->getValue('blD3GAUseRemarketing')}]
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
[{else}]
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
[{/if}]
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
[{if (false == $oD3GASettings->getValue('blD3GASetCampaignOnThankyouOnly') || $oViewConf->getActiveClassName() == 'thankyou') &&
$oD3GASettings->getValue('blD3GASetCampaignTrack') && $oD3GASettings->getValue('sD3GACampaignCode')}]
[{$oD3GASettings->getValue('sD3GACampaignCode')}]
[{/if}]
[{/strip}]
[{/capture}]
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
[{$oView->logCode($smarty.capture.d3GATrackCode)}]
[{/if}]
[{$smarty.capture.d3GATrackCode}]
[{/if}]

View File

@ -0,0 +1,110 @@
[{if $blD3GoogleAnalyticsActive && $oD3GASettings->getValue('sD3GAId')}]
[{capture name="d3GATrackCode"}]
[{strip}]
[{if $oD3GASettings->getValue('blD3GAUseOptOut')}]
[{block name="d3ga_optoutscript"}]
<script type="text/javascript">
var gaProperty = '[{$oD3GASettings->getValue('sD3GAId')}]';
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
window[disableStr] = true;
}
function gaOptout() {
document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
window[disableStr] = true;
}
</script>
[{/block}]
[{/if}]
<script type="text/javascript">
(function(i,s,o,g,r,a,m){
i['GoogleAnalyticsObject']=r;
i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)
},
i[r].l=1*new Date();
a=s.createElement(o),
m=s.getElementsByTagName(o)[0];
a.async=1;
a.src=g;
m.parentNode.insertBefore(a,m)
})(
window,document,'script','//www.google-analytics.com/analytics.js','ga'
);
ga('create', '[{$oD3GASettings->getValue('sD3GAId')}]', '[{$sD3CurrentShopUrl}]' [{$sD3GACreateParameter}]);
[{if $oD3GASettings->getValue('blD3GAAllowDomainLinker')}]
ga('require', 'linker');
ga('linker:autoLink', [[{$sAFEGetMoreUrls}]]);
[{/if}]
[{if $oD3GASettings->getValue('blD3GAAnonymizeIP')}]
ga('set', 'anonymizeIp', true);
[{/if}]
[{include file="d3ga_universal_adwords.tpl"}]
[{include file="d3ga_universal_custom.tpl"}]
[{if $oD3GASettings->getValue('blD3GAUseRemarketing')}]
ga('require', 'displayfeatures');
[{/if}]
[{* bounce optimization*}]
[{block name="d3ga_bounceoptimization"}]
[{if $oD3GASettings->getValue('blUseBounceRateOptimization')}]
setTimeout('ga(\'send\', \'event\', \'NoBounce\', \'Over defined seconds\')',[{$iD3GASendNoBounceEventTime}]);
[{if $oD3GASettings->getValue('blSendNoBounceEventScroll')}]
window.addEventListener ?
window.addEventListener('scroll', testScroll, false) :
window.attachEvent('onscroll', testScroll);
var scrollCount = 0;
function testScroll() {
++scrollCount;
if (scrollCount == 2) {
ga('send', 'event', 'window', 'scrolled');
}
}
[{/if}]
[{/if}]
[{/block}]
ga('send', 'pageview' [{$sD3GASendPageViewParameter}]);
[{include file="d3ga_universal_ecommerce.tpl"}]
[{if $oD3GASettings->getValue('blD3GATrackPageLoadTime')}]
[{block name="d3ga_trackpageloadtime"}]
var perfData = window.performance.timing;
var pageLoadTime = perfData.domComplete - perfData.navigationStart;
var loadTime = "";
if (pageLoadTime < 1000) { loadTime = "0-1 seconds"; }
else if (pageLoadTime < 2000) { loadTime = "1-2 seconds"; }
else if (pageLoadTime < 3000) { loadTime = "2-3 seconds"; }
else if (pageLoadTime < 4000) { loadTime = "3-4 seconds"; }
else if (pageLoadTime < 5000) { loadTime = "4-5 seconds"; }
else if (pageLoadTime < 6000) { loadTime = "5-6 seconds"; }
else if (pageLoadTime < 10000) { loadTime = "6-10 seconds"; }
else { loadTime = "10+ seconds"; }
ga('set', 'metric1', loadTime);
[{*ga('send', 'event', 'Page Load Time', loadTime, {'nonInteraction': true});*}]
[{/block}]
[{/if}]
</script>
[{/strip}]
[{/capture}]
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
[{$oView->logCode($smarty.capture.d3GATrackCode)}]
[{/if}]
[{$smarty.capture.d3GATrackCode}]
[{/if}]

View File

@ -0,0 +1,35 @@
[{strip}]
[{if false == $oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')}]
[{if false == $oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')
&& $oD3GASettings->getValue('sD3GASetCampNameKey')}]
ga('set', 'campaignName', '[{$oD3GASettings->getValue('sD3GASetCampNameKey')}]');
[{/if}]
[{if false == $oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')
&& $oD3GASettings->getValue('sD3GASetCampMediumKey')}]
ga('set', 'campaignMedium', '[{$oD3GASettings->getValue('sD3GASetCampMediumKey')}]');
[{/if}]
[{if false == $oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')
&& $oD3GASettings->getValue('sD3GASetCampSourceKey')}]
ga('set', 'campaignSource', '[{$oD3GASettings->getValue('sD3GASetCampSourceKey')}]');
[{/if}]
[{if false == $oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')
&& $oD3GASettings->getValue('sD3GASetCampTermKey')}]
ga('set', 'campaignKeyword', '[{$oD3GASettings->getValue('sD3GASetCampTermKey')}]');
[{/if}]
[{if false == $oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')
&& $oD3GASettings->getValue('sD3GASetCampContentKey')}]
ga('set', 'campaignContent', '[{$oD3GASettings->getValue('sD3GASetCampContentKey')}]');
[{/if}]
[{if false == $oD3GASettings->getValue('blD3GASetAdWordsCampaignTrack')
&& $oD3GASettings->getValue('sD3GASetCampIdKey')}]
ga('set', 'campaignId', '[{$oD3GASettings->getValue('sD3GASetCampIdKey')}]');
[{/if}]
[{else}]
ga('set', 'campaignTrack', false);
[{/if}]
[{/strip}]

View File

@ -0,0 +1,42 @@
[{strip}][{if $oD3GASettings->getValue('blD3GASetConversionTracking') &&
$oD3GASettings->getValue('sD3GAAdWordConversionId') && $oViewConf->getActiveClassName() == 'thankyou'}]
[{capture name="d3AdWordsCode"}]
[{assign var="order" value=$oView->getOrder()}]
[{assign var="currate" value=$order->oxorder__oxcurrate->value}]
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
[{math equation="s / r" s=$order->getOrderNetSum() r=$currate assign="sTotal"}] [{* // total - required - has to be gross sum *}]
[{else}]
[{math equation="s / r" s=$order->getTotalOrderSum() r=$currate assign="sTotal"}] [{* // total - required *}]
[{/if}]
<!-- Google Code for Conversion Page -->
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = [{$oD3GASettings->getValue('sD3GAAdWordConversionId')}];
var google_conversion_language = "de";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "[{$oD3GASettings->getValue('sD3GAAdWordConversionLabel')}]";
var google_conversion_value = [{$sTotal}];
var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/[{$oD3GASettings->getValue('sD3GAAdWordConversionId')}]/?value=[{$sTotal}]&amp;label=[{$oD3GASettings->getValue('sD3GAAdWordConversionLabel')}]&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
[{/capture}]
[{$oView->logCode($smarty.capture.d3AdWordsCode)}]
[{$smarty.capture.d3AdWordsCode}]
[{/if}]
[{/strip}]

View File

@ -0,0 +1,8 @@
[{strip}]
[{if $oD3GASettings->getValue('blD3GASetCampaignTrack') && $oD3GASettings->getValue('sD3GACampaignCode') &&
(false == $oD3GASettings->getValue('blD3GASetCampaignOnThankyouOnly') || $oViewConf->getActiveClassName() == 'thankyou')}]
[{$oD3GASettings->getValue('sD3GACampaignCode')}]
[{/if}]
[{/strip}]

View File

@ -0,0 +1,65 @@
[{if $oD3GASettings->getValue('blD3GAUseCustomVars')}]
[{strip}]
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
[{assign var="order" value=$oView->getOrder()}]
[{assign var="oPayment" value=$order->getPayment()}]
[{assign var="oDelSet" value=$order->getDelSet()}]
[{assign var="aVoucherSerieList" value=$order->d3getVoucherSerieList()}]
[{/if}]
[{* dimension 1 set customer gender *}]
[{if $oxcmp_user}]
ga(
'set',
'dimension1',
'[{if $oxcmp_user->oxuser__oxsal->value == 'MR'}]male[{elseif $oxcmp_user->oxuser__oxsal->value == 'MRS'}]female[{/if}]'
);
[{/if}]
[{* dimension 2 set payment type *}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $oPayment}]
ga(
'set',
'dimension2',
'[{$oPayment->getFieldData('oxdesc')}]'
);
[{/if}]
[{* dimension 3 set delivery type *}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $oDelSet}]
ga(
'set',
'dimension3',
'[{$oDelSet->getFieldData('oxtitle')}]'
);
[{/if}]
[{* dimension 4 set vouchers *}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $aVoucherSerieList}]
ga(
'set', {
[{foreach from=$aVoucherSerieList item="oVoucherSerie"}]
'dimension4' : '[{$oVoucherSerie->getFieldData('oxserienr')}]',
[{/foreach}]
}
);
[{/if}]
[{* dimension 5 set currency *}]
[{if $oViewConf->getActiveClassName() == 'thankyou' && $order}]
ga(
'set',
'dimension5',
'[{$order->getFieldData('oxcurrency')}]'
);
[{/if}]
[{* dimension 6 set new customer status *}]
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
ga(
'set',
'dimension6',
'[{$oView->isNewCustomer()}]'
);
[{/if}]
[{/strip}][{/if}]

View File

@ -0,0 +1,44 @@
[{if $oD3GASettings->getValue('blD3GASendECommerce') && $oViewConf->getActiveClassName() == 'thankyou'}][{strip}]
[{assign var="order" value=$oView->getOrder()}]
ga('require', 'ecommerce');
[{assign var="currate" value=$order->oxorder__oxcurrate->value}]
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
[{math equation="s / r" s=$order->getOrderNetSum() r=$currate format="%.2f" assign="sTotal"}] [{* // total - required - has to be gross sum *}]
[{else}]
[{math equation="s / r" s=$order->getTotalOrderSum() r=$currate format="%.2f" assign="sTotal"}] [{* // total - required *}]
[{/if}]
[{math equation="s - r" s=$order->getTotalOrderSum() r=$order->getOrderNetSum() format="%.2f" assign="sTax"}]
[{math equation="s / r" s=$order->oxorder__oxdelcost->value r=$currate format="%.2f" assign="sShipping"}]
ga('ecommerce:addTransaction', {
'id': '[{$order->oxorder__oxordernr->value}]', [{* Transaction ID. Required *}]
'affiliation': '[{$oxcmp_shop->oxshops__oxname->value|escape:"quotes"}]', [{* Affiliation or store name *}]
'revenue': '[{$sTotal}]', [{* Gesamtwert *}]
'shipping': '[{$sShipping}]', [{* Versand *}]
'tax': '[{$sTax}]' [{* Steuer *}]
});
[{foreach from=$order->getOrderArticles() item=oOrderArticle}]
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
[{assign var="oPrice" value=$oOrderArticle->getPrice()}]
[{math equation="s / r" s=$oPrice->getNettoPrice() r=$currate format="%.2f" assign="sPrice"}]
[{else}]
[{assign var="sPrice" value=$oOrderArticle->oxorderarticles__oxprice->value}]
[{/if}]
ga('ecommerce:addItem', {
'id': '[{$order->oxorder__oxordernr->value}]', [{* Transaktions-ID *}]
'name': '[{$oOrderArticle->oxorderarticles__oxtitle->value|escape:"quotes"}]', [{* Produktname *}]
'sku': '[{$oOrderArticle->oxorderarticles__oxartnum->value|escape:"quotes"}]', [{* SKU/Code *}]
'category': '[{$oOrderArticle->oxorderarticles__d3_galocator->value|escape:"quotes"}]', [{* Kategorie oder Ausführung *}]
[{*'category': '[{$oOrderArticle->oxorderarticles__oxselvariant->value}]', [{* Kategorie oder Ausführung *}]
'price': '[{$sPrice}]', [{* Preis pro Einheit *}]
'quantity': '[{$oOrderArticle->oxorderarticles__oxamount->value}]' [{* Menge *}]
});
[{/foreach}]
ga('ecommerce:send');
[{/strip}][{/if}]

View File

@ -0,0 +1,35 @@
[{if $oD3GASettings->getValue('blD3GASetRemarketing') &&
$oD3GASettings->getValue('sD3GARemarketingConversionId')}]
[{*-- Google Code für ein Remarketing-Tag --
--------------------------------------------------
Remarketing-Tags dürfen nicht mit personenbezogenen Daten verknüpft oder auf Seiten platziert werden,
die sensiblen Kategorien angehören. Weitere Informationen und Anleitungen zur Einrichtung des Tags
erhalten Sie unter: http://google.com/ads/remarketingsetup
---------------------------------------------------*}]
<script type="text/javascript">
var google_tag_params = {
ecomm_prodid: [{$sD3GARemarketingProdId}],
ecomm_pagetype: '[{$sD3GARemarketingPageType}]',
ecomm_totalvalue: '[{$sD3GARemarketingPrice}]'
};
</script>
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = [{$oD3GASettings->getValue('sD3GARemarketingConversionId')}];
[{if $oD3GASettings->getValue('sD3GARemarketingConversionLabel')}]
var google_conversion_label = "[{$oD3GASettings->getValue('sD3GARemarketingConversionLabel')}]";
[{/if}]
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/[{$oD3GASettings->getValue('sD3GARemarketingConversionId')}]/?value=0[{if $oD3GASettings->getValue('sD3GARemarketingConversionLabel')}]&amp;label=[{$oD3GASettings->getValue('sD3GARemarketingConversionLabel')}][{/if}]&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
[{/if}]

View File

@ -0,0 +1,83 @@
[{* https://support.google.com/trustedstoresmerchant/answer/6063080?hl=de&ref_topic=6063044 *}]
<!-- BEGIN: Google Certified Shops -->
<script type="text/javascript">
var gts = gts || [];
[{if $oD3GASettings->getValue('sD3GATSShoppingActive')}]
gts.push(["id", "[{$oD3GASettings->getValue('sD3GATSId')}]"]);
gts.push(["badge_position", "BOTTOM_RIGHT"]);
gts.push(["locale", "[{$sD3CurrentGTSLang}]"]);
[{if $sD3GATSProdId}]
gts.push(["google_base_offer_id", "[{$sD3GATSProdId}]"]);
[{/if}]
gts.push(["google_base_subaccount_id", "[{$oD3GASettings->getValue('sD3GATSShoppingAccountId')}]"]);
gts.push(["google_base_country", "[{$oD3GASettings->getValue('sD3GATSShoppingCountry')|upper}]"]);
gts.push(["google_base_language", "[{$oD3GASettings->getValue('sD3GATSShoppingLanguage')|lower}]"]);
[{/if}]
(function() {
var gts = document.createElement("script");
gts.type = "text/javascript";
gts.async = true;
gts.src = "https://www.googlecommerce.com/trustedstores/api/js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(gts, s);
})();
</script>
<!-- END: Google Certified Shops -->
[{if $oViewConf->getActiveClassName() == 'thankyou'}]
[{* https://support.google.com/trustedstoresmerchant/answer/6063087?hl=de&ref_topic=6063044 *}]
[{assign var="oOrder" value=$oView->getOrder()}]
[{assign var="oOrderCurrency" value=$oOrder->getOrderCurrency()}]
[{assign var="oUser" value=$oOrder->getOrderUser()}]
[{assign var="oUserCountry" value=$oView->d3GAGetUserCountry()}]
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
[{assign var="sTotal" value=$oOrder->getOrderNetSum()}] [{* // total - required - has to be gross sum *}]
[{else}]
[{assign var="sTotal" value=$oOrder->getTotalOrderSum()}] [{* // total - required *}]
[{/if}]
<!-- START Google Trusted Stores Order -->
<div id="gts-order" style="display:none;" translate="no">
<!-- start order and merchant information -->
<span id="gts-o-id">[{$oOrder->getFieldData('oxordernr')}]</span>
<span id="gts-o-domain">[{$oxcmp_shop->oxshops__oxurl->value}]</span>
<span id="gts-o-email">[{$oUser->getFieldData('oxusername')}]</span>
<span id="gts-o-country">[{$oUserCountry->getFieldData('oxisoalpha2')}]</span>
<span id="gts-o-currency">[{$oOrderCurrency->name}]</span>
<span id="gts-o-total">[{$sTotal|string_format:"%.2f"}]</span>
<span id="gts-o-discounts">-[{$oOrder->getFieldData('oxdiscount')|string_format:"%.2f"}]</span>
<span id="gts-o-shipping-total">[{$oOrder->getFieldData('oxdelcost')|string_format:"%.2f"}]</span>
<span id="gts-o-tax-total">[{$oOrder->d3GetTaxTotal()}]</span>
<span id="gts-o-est-delivery-date">[{$oView->d3GAgetEstimatedDeliveryDate()|date_format:"%Y-%m-%d"}]</span>
<span id="gts-o-est-ship-date">[{$oView->d3GAgetEstimatedShippingDate()|date_format:"%Y-%m-%d"}]</span>
<span id="gts-o-has-preorder">[{$oView->d3GAhasBackorderPreorder()}]</span>
<span id="gts-o-has-digital">[{$oView->d3GAhasDigitalGoods()}]</span>
<!-- end order and merchant information -->
<!-- start repeated item specific information -->
[{foreach from=$order->getOrderArticles() item=oOrderArticle}]
[{if $oD3GASettings->getValue('blD3GAUseNetto')}]
[{assign var="sPrice" value=$oOrderArticle->oxorderarticles__oxnprice->value}]
[{else}]
[{assign var="sPrice" value=$oOrderArticle->oxorderarticles__oxprice->value}]
[{/if}]
<span class="gts-item">
<span class="gts-i-name">[{$oOrderArticle->oxorderarticles__oxtitle->value|escape:"quotes"}]</span>
<span class="gts-i-price">[{$sPrice|string_format:"%.2f"}]</span>
<span class="gts-i-quantity">[{$oOrderArticle->getFieldData('oxamount')}]</span>
[{if $oD3GASettings->getValue('sD3GATSShoppingActive')}]
<span class="gts-i-prodsearch-id">[{$oView->d3GAgetProductId($oOrderArticle)}]</span>
<span class="gts-i-prodsearch-store-id">[{$oD3GASettings->getValue('sD3GATSShoppingAccountId')}]</span>
<span class="gts-i-prodsearch-country">[{$oD3GASettings->getValue('sD3GATSShoppingCountry')|upper}]</span>
<span class="gts-i-prodsearch-language">[{$oD3GASettings->getValue('sD3GATSShoppingLanguage')|lower}]</span>
[{/if}]
</span>
[{/foreach}]
<!-- end repeated item specific informations -->
</div>
<!-- END Google Trusted Stores Order -->
[{/if}]

View File

@ -1,32 +0,0 @@
---
title: Changelog
---
## noch nicht veröffentlicht
---
## 1.1.0.1 - (2019-02-20)
### Fixed
- ...
- ...
---
## 1.1.0.0 - (2018-05-29)
**Minor version upgrade notice: there are some backward-incompatible changes to this release.**
#### Fixed
- Einstellungs-Überladung korrigiert - verwendet Einstellungen der Hauptsprache, wenn in aktueller Sprache keine Einstellungen gespeichert wurden
#### Changed
- kleine Textänderungen in der Installationsroutine
---
## 1.0.0.0 - (2018-05-15)
#### Added
- Angepasst für Shopversion 6.x, Installation via Composer

View File

@ -1,74 +0,0 @@
{
"title": "<i class='fab fa-d3 d3fa-color-blue'></i> MODULNAME",
"moduleversion": "5.0.0.0",
"titledesc": "für den Oxid eShop",
"author": "D³ Data Development",
"moduledate": "17.04.2018",
"editors": "XX/YY",
"tagline": "",
"image": "",
"ignore": {
"files": [],
"folders": [".idea"]
},
"live": {
"clean_urls": true
},
"html": {
"theme": "d3",
"breadcrumbs": true,
"breadcrumb_separator": "Chevrons",
"toggle_code": false,
"date_modified": true,
"date_modified_format": "d.m.Y",
"float": false,
"inherit_index": true,
"auto_landing": true,
"links": {
"Shop": "https://www.oxidmodule.com"
},
"powered_by": ""
},
"languages": {
"editions": "Editionen",
"installation": "Installation",
"manual": "Handbuch",
"changelog": "Changelog",
"support": "Support"
},
"processor": "d3processor",
"language": "de",
"strings": {
"de": {
"CodeBlocks_title": "Code-Blöcke",
"CodeBlocks_hide": "Aus",
"CodeBlocks_below": "Unterhalb",
"CodeBlocks_inline": "Linear",
"CodeBlocks_show": "Code-Blöcke anzeigen",
"Search_placeholder": "Suchen...",
"Link_previous": "Zurück",
"Link_next": "Weiter",
"Edit_on": "Bearbeiten bei :name:",
"View_on_github": "Bei GitHub anzeigen",
"View_documentation": "Dokumentation anzeigen",
"Table_of_contents": "Inhaltsverzeichnis",
"author": "Autor",
"moduledate": "Stand",
"version": "Version",
"editors": "Bearbeiter",
"selectversion": "Version wechseln"
}
},
"variables": {
"modulename" : "<i class='fab fa-d3 d3fa-color-blue'></i> MODULNAME",
"menutitle" : "<i class='fab fa-d3 d3fa-color-blue'></i> MODULNAME",
"modulefolder" : "module_folder",
"metadataident" : "d3moduleid",
"modcfgident" : "d3modident",
"composerident" : "d3/moduleident"
},
"versionselector": false,
"versiondirectoryindex": 2
}

1
copy_this/.noencode Normal file
View File

@ -0,0 +1 @@
copyAsIsFiles = modules

View File

@ -0,0 +1,38 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_oxcmp_utils_googleAnalytics_parent extends oxcmp_utils {}
/** */
class d3_oxorder_googleanalytics_parent extends oxOrder {}
/** */
class d3_thankyou_googleanalytics_parent extends thankyou {}
/** */
class d3_order_googleanalytics_parent extends order {}
/** */
class d3_oxutilsview_googleanalytics_parent extends oxUtilsView {}
/** */
class d3_oxbasket_googleanalytics_parent extends oxbasket {}
/** */
class d3_oxbasketitem_googleanalytics_parent extends oxBasketItem {}

View File

@ -0,0 +1,32 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics extends d3_cfg_mod_
{
/**
* @return string
*/
public function render()
{
$this->addTplParam('sListClass', 'd3_cfg_googleanalytics_list');
$this->addTplParam('sMainClass', 'd3_cfg_googleanalytics_main');
return parent::render();
}
}

View File

@ -0,0 +1,38 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_adwords extends d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_adwords.tpl';
protected $_sModId = 'd3_googleanalytics';
/**
* @return mixed
*/
public function getGaType()
{
if ($this->d3GetSet()->getValue('sD3GAType') == 'async') {
return 'async';
}
return 'universal';
}
}

View File

@ -0,0 +1,38 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_campaigns extends d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_campaigns.tpl';
protected $_sModId = 'd3_googleanalytics';
/**
* @return mixed
*/
public function getGaType()
{
if ($this->d3GetSet()->getValue('sD3GAType') == 'async') {
return 'async';
}
return 'universal';
}
}

View File

@ -0,0 +1,38 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_licence extends d3_cfg_mod_licence
{
protected $_sModId = 'd3_googleanalytics';
protected $_hasLicence = false;
protected $_hasNewsletterForm = false;
protected $_hasUpdate = true;
protected $_sDefaultHelpLinkAdd = 'Fragen-zu-speziellen-Modulen/Google-Analytics/';
/**
* additional multilang item, which will added as last part to help url
*
* @var string
*/
protected $_sHelpLinkMLAdd = '';
}

View File

@ -0,0 +1,36 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_list extends d3_cfg_mod_list
{
protected $_blD3ShowLangSwitch = false;
/**
* @return null|string
*/
public function render()
{
parent::render();
$this->addTplParam("default_edit", "d3_cfg_googleanalytics_main");
return $this->_sThisTemplate;
}
}

View File

@ -0,0 +1,39 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_main extends d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_main.tpl';
protected $_sModId = 'd3_googleanalytics';
protected $_blHasDebugSwitch = true;
protected $_sDebugHelpTextIdent = 'D3_GOOGLEANALYTICS_MAIN_DEBUG';
/**
* @return mixed
*/
public function getGaType()
{
if ($this->d3GetSet()->getValue('sD3GAType') == 'async') {
return 'async';
}
return 'universal';
}
}

View File

@ -0,0 +1,25 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_cfg_googleanalytics_trustedstore extends d3_cfg_mod_main
{
protected $_sThisTemplate = 'd3_cfg_googleanalytics_trustedstore.tpl';
protected $_sModId = 'd3_googleanalytics';
}

View File

@ -0,0 +1,33 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_cfg_googleanalyticslog extends d3_cfg_log
{
protected $_sModId = 'd3_googleanalytics';
/**
* @return string
*/
public function d3getAdditionalUrlParams()
{
$sRet = parent::d3getAdditionalUrlParams();
if ($this->_sModId) {
$sRet .= '&sD3ModId='.$this->_sModId;
}
return $sRet;
}
}

View File

@ -0,0 +1,19 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_cfg_googleanalyticslog_list extends d3_cfg_log_list
{
protected $_sModId = 'd3_googleanalytics';
}

View File

@ -0,0 +1,43 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
/**
* Smarty plugin
* -------------------------------------------------------------
* add [{d3getArticleFromOrderArticle aid="articleid"}] where you want to display content
* -------------------------------------------------------------
*
* @param array $params params
* @param Smarty &$smarty clever simulation of a method
*
* @return string
*/
function smarty_function_d3getArticleFromOrderArticle( $params, &$smarty )
{
$sArtId = $params['aid'];
$oArticle = oxNew('oxarticle');
$oArticle->Load($sArtId);
if (isset($params['assign']) && $params['assign']) {
$smarty->assign($params['assign'], $oArticle);
}
return "use assign param";
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="ISO-8859-15"?>
<OX>
<OXMENU id="d3mxd3modules">
<MAINMENU id="d3mxgoogleanalytics">
<SUBMENU id="d3mxgoogleanalytics_settings" cl="d3_cfg_googleanalytics" list="d3_cfg_googleanalytics_list">
<TAB id="d3tbclgoogleanalytics_main" cl="d3_cfg_googleanalytics_main" />
<TAB id="d3tbclgoogleanalytics_adwords" cl="d3_cfg_googleanalytics_adwords" />
<TAB id="d3tbclgoogleanalytics_campaigns" cl="d3_cfg_googleanalytics_campaigns" />
<TAB id="d3tbclgoogleanalytics_trustedstore" cl="d3_cfg_googleanalytics_trustedstore" />
<TAB id="d3tbcl_licence" cl="d3_cfg_googleanalytics_licence" />
</SUBMENU>
<SUBMENU id ="d3mxlog" cl="d3_cfg_googleanalyticslog" list="d3_cfg_googleanalyticslog_list">
<TAB id="d3tbcllog_main" cl="d3_cfg_log_main" />
</SUBMENU>
</MAINMENU>
</OXMENU>
</OX>

View File

@ -0,0 +1,124 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
/**
* Metadata version
*/
$sMetadataVersion = '1.1';
/**
* Module information
*/
$aModule = array(
'id' => 'd3_googleanalytics',
'title' => (class_exists('d3utils')?d3utils::getInstance()->getD3Logo():'D&sup3;').
' Google Services Schnittstelle',
'description' => array(
'de' => 'Dieses Modul stellt Ihnen die schnelle und unkomplizierte Einbindung Ihres Google-Analytics-'.
'Kontos in Ihren Shop zur Verf&uuml;gung. Hierbei werden &uuml;ber standardisierte Schnittstellen die '.
'Besucherdaten und eCommerce-Daten zu Google &uuml;bertragen. Ebenfalls &uuml;bermittelt werden Daten '.
'der Website-Suche. Weiterhin k&ouml;nnen &uuml;ber das Modul Shopdaten an Google Adwords und Google '.
'Trusted Shops &uuml;bertragen werden.',
'en' => 'Provides a quick and easy integration with your Google Analytics, Google Adwords and Google '.
'Trusted Shops account to your shop.',
),
'thumbnail' => 'picture.png',
'version' => '3.3.2.0',
'author' => 'D&sup3; Data Development (Inh. Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'http://www.oxidmodule.com/',
'extend' => array(
'oxcmp_utils' => 'd3/d3_googleanalytics/modules/components/d3_oxcmp_utils_googleanalytics',
'oxbasket' => 'd3/d3_googleanalytics/modules/models/d3_oxbasket_googleanalytics',
'oxbasketitem'=> 'd3/d3_googleanalytics/modules/models/d3_oxbasketitem_googleanalytics',
'oxorder' => 'd3/d3_googleanalytics/modules/models/d3_oxorder_googleanalytics',
'order' => 'd3/d3_googleanalytics/modules/controllers/d3_order_googleanalytics',
'oxutilsview' => 'd3/d3_googleanalytics/modules/core/d3_oxutilsview_googleanalytics',
'thankyou' => 'd3/d3_googleanalytics/modules/controllers/d3_thankyou_googleanalytics',
),
'files' => array(
'd3_cfg_googleanalytics' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics.php',
'd3_cfg_googleanalytics_adwords' =>
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_adwords.php',
'd3_cfg_googleanalytics_campaigns' =>
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_campaigns.php',
'd3_cfg_googleanalytics_licence' =>
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_licence.php',
'd3_cfg_googleanalytics_list' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_list.php',
'd3_cfg_googleanalytics_main' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_main.php',
'd3_cfg_googleanalytics_trustedstore' =>
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics_trustedstore.php',
'd3_cfg_googleanalyticslog' => 'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog.php',
'd3_cfg_googleanalyticslog_list' =>
'd3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalyticslog_list.php',
'd3_googleanalytics_update' => 'd3/d3_googleanalytics/setup/d3_googleanalytics_update.php',
'd3_google_remarketing_articlelister' =>
'd3/d3_googleanalytics/models/d3_google_remarketing_articlelister.php',
'd3_google_trustedstore_articlelister' =>
'd3/d3_googleanalytics/models/d3_google_trustedstore_articlelister.php',
),
'templates' => array(
'd3_googleanalytics.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl',
'd3ga_universal.tpl' => 'd3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl',
'd3ga_universal_custom.tpl' =>
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl',
'd3ga_universal_ecommerce.tpl' =>
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl',
'd3ga_universal_adwords.tpl' =>
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl',
'd3ga_universal_adwordscode.tpl' =>
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl',
'd3ga_universal_remarketing.tpl' =>
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl',
'd3ga_universal_campaigncode.tpl' =>
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl',
'd3ga_universal_trustedstore.tpl' =>
'd3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl',
'd3_cfg_googleanalytics_main.tpl' =>
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_main.tpl',
'd3_cfg_googleanalytics_adwords.tpl' =>
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_adwords.tpl',
'd3_cfg_googleanalytics_campaigns.tpl' =>
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_campaigns.tpl',
'd3_cfg_googleanalytics_trustedstore.tpl' =>
'd3/d3_googleanalytics/views/admin/tpl/d3_cfg_googleanalytics_trustedstore.tpl',
),
'events' => array(
'onActivate' => 'd3install::checkUpdateStart',
),
'blocks' => array(
array(
'template' => 'layout/base.tpl',
'block'=>'head_css',
'file'=>'/views/blocks/layout/d3_base_googleanalytics.tpl'
),
array(
'template' => 'layout/base.tpl',
'block'=>'base_js',
'file'=>'/views/blocks/layout/d3_base_googleadwordscode.tpl'
),
array(
'template' => 'layout/footer.tpl',
'block' => 'footer_main',
'file' => '/views/blocks/layout/d3_base_optout.tpl',
),
),
);

View File

@ -0,0 +1,160 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright © Data Development, Thomas Dartsch
* @author Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_google_remarketing_articlelister
{
public $sD3GARemarketingSKUField = 'oxartnum';
public $blD3GARemarketingUseBrutto = true;
/**
* @param details $oView
*
* @return array
*/
public function getDetailsProdList($oView)
{
$aArticleList = array();
$aArticleList[] = $oView->getProduct();
return $this->_getProductList($aArticleList);
}
/**
* @param alist $oView
*
* @return array
*/
public function getAlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param search $oView
*
* @return array
*/
public function getSearchProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param vendorlist $oView
*
* @return array
*/
public function getVendorlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param manufacturerlist $oView
*
* @return array
*/
public function getManufacturerlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param basket $oView
*
* @return array
*/
public function getBasketProdList($oView)
{
$aArticleList = $oView->getBasketArticles();
return $this->_getProductList($aArticleList);
}
/**
* @param order $oView
*
* @return array
*/
public function getOrderProdList($oView)
{
$aArticleList = $oView->getBasketArticles();
return $this->_getProductList($aArticleList);
}
/**
* @param compare $oView
*
* @return array
*/
public function getCompareProdList($oView)
{
$aArticleList = $oView->getCompArtList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_noticelist $oView
*
* @return array
*/
public function getAccount_noticelistProdList($oView)
{
$aArticleList = $oView->getNoticeProductList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_wishlist $oView
*
* @return array
*/
public function getAccount_wishlistProdList($oView)
{
$aArticleList = $oView->getWishProductList();
return $this->_getProductList($aArticleList);
}
/**
* @param $aArticleList
*
* @return array
*/
protected function _getProductList($aArticleList)
{
$aArticleIds = array();
$dPrice = 0;
/** @var oxarticle $oArticle */
if (isset($aArticleList)) {
foreach ($aArticleList as $oArticle) {
$aArticleIds[] = $oArticle->getFieldData($this->sD3GARemarketingSKUField);
if ($this->blD3GARemarketingUseBrutto) {
$dPrice += $oArticle->getPrice()->getBruttoPrice();
} else {
$dPrice += $oArticle->getPrice()->getNettoPrice();
}
}
}
return array('aArtIdList' => $aArticleIds, 'dPrice' => $dPrice);
}
}

View File

@ -0,0 +1,132 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright © Data Development, Thomas Dartsch
* @author Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_google_trustedstore_articlelister
{
private $_sModId = 'd3_googleanalytics';
/**
* @param details $oView
*
* @return array
*/
public function getDetailsProdList($oView)
{
$aArticleList = array();
$aArticleList[] = $oView->getProduct();
return $this->_getProductList($aArticleList);
}
/**
* @param alist $oView
*
* @return array
*/
public function getAlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param search $oView
*
* @return array
*/
public function getSearchProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param vendorlist $oView
*
* @return array
*/
public function getVendorlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param manufacturerlist $oView
*
* @return array
*/
public function getManufacturerlistProdList($oView)
{
$oArticleList = $oView->getArticleList();
return $this->_getProductList($oArticleList);
}
/**
* @param compare $oView
*
* @return array
*/
public function getCompareProdList($oView)
{
$aArticleList = $oView->getCompArtList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_noticelist $oView
*
* @return array
*/
public function getAccount_noticelistProdList($oView)
{
$aArticleList = $oView->getNoticeProductList();
return $this->_getProductList($aArticleList);
}
/**
* don't change method name, it was dynamically generated
* @param account_wishlist $oView
*
* @return array
*/
public function getAccount_wishlistProdList($oView)
{
$aArticleList = $oView->getWishProductList();
return $this->_getProductList($aArticleList);
}
/**
* @param $aArticleList
*
* @return array
*/
protected function _getProductList($aArticleList)
{
$aArticleIds = array();
/** @var oxarticle $oArticle */
if (isset($aArticleList)) {
foreach ($aArticleList as $oArticle) {
$aArticleIds[] = $oArticle->getFieldData(
d3_cfg_mod::get($this->_sModId)->getValue('sD3GATSShoppingArtId')
);
}
}
return array('aArtIdList' => $aArticleIds);
}
}

View File

@ -0,0 +1,587 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_parent
{
private $_sModId = 'd3_googleanalytics';
public $aD3GAPageTypes = array(
'start' => 'home',
'search' => 'searchresults',
'alist' => 'category',
'manufacturerlist' => 'category',
'vendorlist' => 'category',
'details' => 'product',
'basket' => 'cart',
'order' => 'purchase',
);
/**
* @return null
*/
public function render()
{
$ret = parent::render();
$oSet = d3_cfg_mod::get($this->_d3getModId());
if ($oSet->isActive()) {
/** @var $oParentView oxView */
$oParentView = $this->getParent();
$oParentView->addTplParam('blD3GoogleAnalyticsActive', $oSet->isActive());
$oParentView->addTplParam('oD3GASettings', $oSet);
$oParentView->addTplParam('sD3GATTpl', $this->d3getGATTpl());
$oParentView->addTplParam('sD3GACreateParameter', $this->d3getCreateParameters());
$oParentView->addTplParam('sAFEGetMoreUrls', $this->afGetMoreUrls());
$oParentView->addTplParam('sD3GASendPageViewParameter', $this->d3getSendPageViewParameters());
$oParentView->addTplParam('sD3CurrentShopUrl', $this->d3GetCreateCurrentShopUrl());
$oParentView->addTplParam('blD3GAIsMobile', $this->d3isMobile());
$oParentView->addTplParam('iD3GASendNoBounceEventTime', $this->d3GetSendNoBounceEventTime());
if ($oSet->getValue('sD3GATSActive')) {
$oParentView->addTplParam('sD3CurrentGTSLang', $this->d3GetGTSLang());
}
if ($oSet->getValue('sD3GATSActive') && $oSet->getValue('sD3GATSShoppingActive')) {
$aInfos = $this->d3GATSGetProdInfos();
$oParentView->addTplParam('sD3GATSProdId', $this->d3GATSGetProdIdList($aInfos['aArtIdList']));
}
if ($oSet->getValue('blD3GASetRemarketing')) {
$aInfos = $this->d3GetGAProdInfos();
$oParentView->addTplParam('sD3GARemarketingProdId', $this->d3GetGAProdIdList($aInfos['aArtIdList']));
$oParentView->addTplParam(
'sD3GARemarketingPrice',
$aInfos['dPrice'] > 0 ? number_format($aInfos['dPrice'], 2, '.', ''): ''
);
$oParentView->addTplParam('sD3GARemarketingPageType', $this->d3GetGAPageType());
}
}
return $ret;
}
/**
* @return string
*/
private function _d3getModId()
{
return $this->_sModId;
}
/**
* @return string
*/
public function d3getGATTpl()
{
if (d3_cfg_mod::get($this->_sModId)->getValue('sD3GAType') == 'async') {
return 'd3_googleanalytics.tpl';
}
return 'd3ga_universal.tpl';
}
/**
* @return string
*/
public function d3GetCreateCurrentShopUrl()
{
if (d3_cfg_mod::get($this->_sModId)->getValue('blD3GAAllowDomainLinker')) {
return 'auto';
}
return $this->d3GetCurrentShopUrl();
}
/**
* @return string
*/
public function d3GetCurrentShopUrl()
{
return oxRegistry::getConfig()->getActiveShop()->getFieldData('oxurl');
}
/**
* @return string
*/
public function afGetMoreUrls()
{
if (false == d3_cfg_mod::get($this->_sModId)->getValue('blD3GAAllowDomainLinker')) {
return '';
}
$sSeparator = ',';
return implode($sSeparator, $this->_d3GetNonBaseLanguageUrls());
}
/**
* @return array
*/
protected function _d3GetNonBaseLanguageUrls()
{
$myConfig = oxRegistry::getConfig();
$aLanguageUrls = $myConfig->getConfigParam('aLanguageURLs');
$aSslLanguageUrls = $myConfig->getConfigParam('aLanguageSSLURLs');
$aUrls = array();
if ($myConfig->getConfigParam('bl_perfLoadLanguages')) {
$aLanguages = oxRegistry::getLang()->getLanguageArray(null, true, true);
reset($aLanguages);
foreach ($aLanguages as $oVal) {
$this->_d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, $aUrls);
}
}
$this->_d3UnsetCurrentUrl($aUrls);
return $aUrls;
}
/**
* @param $aLanguageUrls
* @param $oVal
* @param $aSslLanguageUrls
* @param $aUrls
*
* @return array
*/
protected function _d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, &$aUrls)
{
$blIsSsl = oxRegistry::getConfig()->isSsl();
if ($this->_d3CheckLanguageUrlsToList($aLanguageUrls, $oVal, $blIsSsl)) {
$sUrl = $this->_d3GANormalizeUrl($aLanguageUrls[$oVal->id]);
$aUrls[md5($sUrl)] = "'" . $sUrl . "'";
}
if ($this->_d3CheckLanguageUrlsToList($aSslLanguageUrls, $oVal, !$blIsSsl)) {
$sSslUrl = $this->_d3GANormalizeUrl($aLanguageUrls[$oVal->id]);
$aUrls[md5($sSslUrl)] = "'" . $sSslUrl . "'";
}
return $aUrls;
}
/**
* @param $sUrl
*
* @return string
*/
protected function _d3GANormalizeUrl($sUrl)
{
$sPattern = "^http(s?)://";
/** @var d3str $oD3Str */
$oD3Str = oxNew('d3str');
return preg_replace('@'.$sPattern.'@', '', $oD3Str->untrailingslashit($sUrl));
}
/**
* @param $aUrls
*/
protected function _d3UnsetCurrentUrl(&$aUrls)
{
unset($aUrls[md5($this->_d3GANormalizeUrl(oxRegistry::getConfig()->getCurrentShopUrl()))]);
}
/**
* @param $aLanguageUrls
* @param $oVal
* @param $blIsSsl
*
* @return bool
*/
protected function _d3CheckLanguageUrlsToList($aLanguageUrls, $oVal, $blIsSsl)
{
return $blIsSsl || $aLanguageUrls[$oVal->id] != $aLanguageUrls[oxRegistry::getLang()->getBaseLanguage()];
}
/**
* @return string
*/
public function d3getCreateParameters()
{
$aParameter = array();
$aParameter = $this->_d3getCreateDomainNameParameter($aParameter);
$aParameter = $this->_d3getCreateCookiePathParameter($aParameter);
$aParameter = $this->_d3getCreateDomainLinkerParameter($aParameter);
$aParameter = $this->_d3getCreateSpeedSamplerateParameter($aParameter);
$aParameter = $this->_d3getCreateSamplerateParameter($aParameter);
if (count($aParameter)) {
return ", {".implode(',', $aParameter)."}";
}
return '';
}
/**
* @return string
*/
public function d3getSendPageViewParameters()
{
if (d3_cfg_mod::get($this->_sModId)->getValue('sD3GAType') == 'async') {
return $this->_d3getAsyncSendpageViewParameters();
}
return $this->_d3getUniversalSendPageViewParameters();
}
/**
* @return string
*/
protected function _d3getAsyncSendpageViewParameters()
{
$aParameter = array();
/** @var oxUBase $oCurrentView */
$oCurrentView = oxRegistry::getConfig()->getActiveView();
$oCurrentView->getIsOrderStep();
$aParameter = $this->_d3getAsynchSendpageViewClassParameter($oCurrentView, $aParameter);
if (count($aParameter)) {
return ", " . implode(',', $aParameter) . "";
}
return '';
}
/**
* @return string
*/
protected function _d3getUniversalSendPageViewParameters()
{
$aParameter = array();
/** @var oxUBase $oCurrentView */
$oCurrentView = oxRegistry::getConfig()->getActiveView();
$oCurrentView->getIsOrderStep();
$aParameter = $this->_d3getUniversalSendPageViewPageParameter($oCurrentView, $aParameter);
$aParameter = $this->_d3getUniversalSendPageViewDebugParameter($aParameter);
if (count($aParameter)) {
return ", {" . implode(',', $aParameter) . "}";
}
return '';
}
/**
* @return bool
*/
protected function _d3HasNoPageParameter()
{
if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
return true;
}
return false;
}
/**
* @return string
*/
public function d3GetGAPageType()
{
$oCurrentView = oxRegistry::getConfig()->getActiveView();
if (is_array($this->aD3GAPageTypes) &&
isset($this->aD3GAPageTypes[strtolower($oCurrentView->getClassName())])
) {
return $this->aD3GAPageTypes[strtolower($oCurrentView->getClassName())];
};
return 'Siteview';
}
/**
* @return string
*/
public function d3GetGTSLang()
{
$aHomeCountries = oxRegistry::getConfig()->getConfigParam('aHomeCountry');
$aKeys = array_keys($aHomeCountries);
$sHomeCountryId = $aHomeCountries[current($aKeys)];
/** @var oxcountry $oCountry */
$oCountry = oxNew('oxcountry');
$oCountry->load($sHomeCountryId);
return strtolower(oxRegistry::getLang()->getLanguageAbbr()).'_'.
strtoupper($oCountry->getFieldData('OXISOALPHA2'));
}
/**
* @return array
*/
public function d3GATSGetProdInfos()
{
startProfile(__METHOD__);
$oCurrentView = oxRegistry::getConfig()->getActiveView();
$aArticleIds = array();
$sMethodName = 'get'.ucfirst($oCurrentView->getClassName())."ProdList";
$oArticleLister = oxNew('d3_google_trustedstore_articlelister');
if (method_exists($oArticleLister, $sMethodName)) {
stopProfile(__METHOD__);
return call_user_func(array($oArticleLister, $sMethodName), $oCurrentView);
}
stopProfile(__METHOD__);
return array('aArtIdList' => $aArticleIds);
}
/**
* @param array $aArticleIds
*
* @return string
*/
public function d3GATSGetProdIdList($aArticleIds)
{
if (count($aArticleIds)) {
$aKeys = array_keys($aArticleIds);
return $aArticleIds[current($aKeys)];
} else {
return "not_set";
}
}
/**
* @return string
*/
public function d3GetGAProdInfos()
{
startProfile(__METHOD__);
$oCurrentView = oxRegistry::getConfig()->getActiveView();
$aArticleIds = array();
$dPrice = 0;
$sMethodName = 'get'.ucfirst($oCurrentView->getClassName())."ProdList";
$oArticleLister = oxNew('d3_google_remarketing_articlelister');
if (method_exists($oArticleLister, $sMethodName)) {
stopProfile(__METHOD__);
return call_user_func(array($oArticleLister, $sMethodName), $oCurrentView);
}
stopProfile(__METHOD__);
return array('aArtIdList' => $aArticleIds, 'dPrice' => $dPrice);
}
/**
* @param array $aArticleIds
*
* @return string
*/
public function d3GetGAProdIdList($aArticleIds)
{
if (count($aArticleIds)) {
return "['".implode("', '", $aArticleIds)."']";
} else {
return "''";
}
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateDomainNameParameter($aParameter)
{
if (d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetDomainName')) {
$aParameter[] = "'cookieDomain': '" . d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetDomainName') . "'";
$aParameter[] = "'legacyCookieDomain': '" .
d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetDomainName') . "'";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateCookiePathParameter($aParameter)
{
if (d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetCookiePath')) {
$aParameter[] = "'cookiePath': '" . d3_cfg_mod::get($this->_sModId)->getValue('sD3GASetCookiePath') . "'";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateDomainLinkerParameter($aParameter)
{
if (d3_cfg_mod::get($this->_sModId)->getValue('blD3GAAllowDomainLinker')) {
$aParameter[] = "'allowLinker': true";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateSpeedSamplerateParameter($aParameter)
{
if (d3_cfg_mod::get($this->_sModId)->getValue('iD3GASiteSpeedSampleRate')) {
$aParameter[] = "'siteSpeedSampleRate': " .
d3_cfg_mod::get($this->_sModId)->getValue('iD3GASiteSpeedSampleRate');
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getCreateSamplerateParameter($aParameter)
{
if (d3_cfg_mod::get($this->_sModId)->getValue('iD3GASampleRate')) {
$aParameter[] = "'sampleRate': " . d3_cfg_mod::get($this->_sModId)->getValue('iD3GASampleRate');
return $aParameter;
}
return $aParameter;
}
/**
* @param oxUBase $oCurrentView
* @param array $aParameter
*
* @return array
*/
protected function _d3getAsynchSendpageViewClassParameter($oCurrentView, $aParameter)
{
if ($oCurrentView->getIsOrderStep() ||
strtolower($oCurrentView->getClassName()) == 'thankyou' ||
$this->_d3HasNoPageParameter()
) {
$aParameter[] = "'/{$oCurrentView->getClassName()}.html'";
return $aParameter;
}
return $aParameter;
}
/**
* @param oxUBase $oCurrentView
* @param array $aParameter
*
* @return array
*/
protected function _d3getUniversalSendPageViewPageParameter($oCurrentView, $aParameter)
{
if ($oCurrentView->getIsOrderStep() || strtolower($oCurrentView->getClassName()) == 'thankyou') {
$aParameter[] = "'page': '/{$oCurrentView->getClassName()}.html'";
$aParameter[] = "'title': 'Checkout: " . ucfirst($oCurrentView->getClassName()) . "'";
return $aParameter;
} elseif ($this->_d3HasNoPageParameter()) {
$aParameter[] = "'page': '/{$oCurrentView->getClassName()}.html'";
$aParameter[] = "'title': '" . ucfirst($oCurrentView->getClassName()) . "'";
return $aParameter;
}
return $aParameter;
}
/**
* @param $aParameter
*
* @return array
*/
protected function _d3getUniversalSendPageViewDebugParameter($aParameter)
{
if (d3_cfg_mod::get($this->_sModId)->hasDebugMode()) {
$aParameter[] = "
'hitCallback': function() {
alert('analytics.js done sending data');
}
";
return $aParameter;
}
return $aParameter;
}
/**
* @return bool
*/
public function d3isMobile()
{
if (class_exists('oeThemeSwitcherThemeManager')) {
/** @var oeThemeSwitcherThemeManager $oThemeManager */
$oThemeManager = oxNew('oeThemeSwitcherThemeManager');
return $oThemeManager->isMobileThemeRequested();
}
return false;
}
/**
* @return int
*/
public function d3GetSendNoBounceEventTime()
{
$iTime = d3_cfg_mod::get($this->_sModId)->getValue('iSendNoBounceEventTime');
if (isset($iTime) && is_int($iTime)) {
return $iTime;
}
return 10000;
}
}

View File

@ -0,0 +1,39 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @link http://www.aikme.de
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) & aikme GmbH
*/
class d3_order_googleanalytics extends d3_order_googleanalytics_parent
{
public function init()
{
parent::init();
$this->_d3SetIsNewCustomer();
}
protected function _d3SetIsNewCustomer()
{
$oUser = $this->getUser();
$isNewCustomer = (isset($oUser) && $oUser instanceof oxuser) ? $oUser->inGroup('oxidnotyetordered') : 0 ;
oxRegistry::getSession()->setVariable('iD3GANewCustomer', (int)$isNewCustomer);
}
}

View File

@ -0,0 +1,290 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @link http://www.aikme.de
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch) & aikme GmbH
*/
class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
{
private $_sModCfgId = 'd3_googleanalytics';
public $aD3GAWeekendDays = array(
6, // Samstag
7, // Sonntag
);
/**
* Format Tag-Monat (jeweils mit führenden Nullen)
* @var array
*/
public $aD3GAfixFeastDays = array(
'01-01', // Neujahr
'01-05', // Tag der Arbeit
'03-10', // Tag der deutschen Einheit
'25-12', // 1. Weihnachtsfeiertag
'26-12', // 2. Weihnachtsfeiertag
);
protected $_blD3GADateChanged = false;
/**
* @return int
*/
public function isNewCustomer()
{
$iIsNewCustomer = oxRegistry::getSession()->getVariable("iD3GANewCustomer");
oxRegistry::getSession()->deleteVariable("iD3GANewCustomer");
return $iIsNewCustomer;
}
/**
* @param $sGACode
*/
public function logCode($sGACode)
{
d3_cfg_mod::get($this->_sModCfgId)->d3getLog()->log(
d3log::NOTICE,
__CLASS__,
__FUNCTION__,
__LINE__,
'GA TrackingCode',
$sGACode
);
}
/**
* @return oxcountry
*/
public function d3GAGetUserCountry()
{
$sCountryId = $this->getOrder()->getFieldData('oxbillcountryid');
/** @var oxcountry $oCountry */
$oCountry = oxNew('oxcountry');
$oCountry->load($sCountryId);
return $oCountry;
}
/**
* @return string
*/
public function d3GAgetEstimatedShippingDate()
{
startProfile(__METHOD__);
$iTimeStamp = $this->_d3GAgetEstimatedDate('iEstShippingTimeValue', time());
stopProfile(__METHOD__);
return $iTimeStamp;
}
/**
* @return string
*/
public function d3GAgetEstimatedDeliveryDate()
{
startProfile(__METHOD__);
$iShippingDate = $this->d3GAgetEstimatedShippingDate();
$iTimeStamp = $this->_d3GAgetEstimatedDate('iEstDeliveryTimeValue', $iShippingDate);
stopProfile(__METHOD__);
return $iTimeStamp;
}
/**
* @param string $sModCfgVarName
* @param int $iTimestamp
*
* @return int
*/
protected function _d3GAgetEstimatedDate($sModCfgVarName, $iTimestamp)
{
// change shipping time for not on stock articles
if ($sModCfgVarName == 'iEstShippingTimeValue' && $this->hasOutOfStockArticles()) {
$sModCfgVarName = 'iEstShippingTimeValueOutOfStock';
}
$iTimeValue = d3_cfg_mod::get($this->_sModCfgId)->getValue($sModCfgVarName);
for ($i = 0; $i < $iTimeValue; $i++) {
$iTimestamp += 86400;
// check, if transportation day is a working day, else transportation has a break
do {
$this->_blD3GADateChanged = false;
$iTimestamp = $this->_d3GAskipIdlePeriod($iTimestamp);
} while ($this->_blD3GADateChanged === true);
}
return $iTimestamp;
}
/**
* @param $iTimestamp
*
* @return int
*/
protected function _d3GAskipIdlePeriod($iTimestamp)
{
startProfile(__METHOD__);
$iWeekday = date('N', $iTimestamp);
if (in_array($iWeekday, $this->aD3GAWeekendDays)) {
$iOffset = 8 - $iWeekday;
$iTimestamp += $iOffset * 86400;
$this->_blD3GADateChanged = true;
}
stopProfile(__METHOD__);
return $this->_d3GAskipFeastDays($iTimestamp);
}
/**
* @param $iTimestamp
*
* @return int
*/
protected function _d3GAskipFeastDays($iTimestamp)
{
startProfile(__METHOD__);
while (in_array(date('d-m', $iTimestamp), $this->aD3GAfixFeastDays)) {
$iTimestamp += 86400;
$this->_blD3GADateChanged = true;
}
stopProfile(__METHOD__);
return $iTimestamp;
}
/**
* @return string
*/
public function d3GAhasBackorderPreorder()
{
return $this->hasOutOfStockArticles() ? 'Y' : 'N';
}
/**
* @param oxorderarticle $oOrderArticle
*
* @return bool
*/
protected function _d3GAhasArticleBackorderPreorder(oxorderarticle $oOrderArticle)
{
/** @var oxarticle $oArticle */
$oArticle = $oOrderArticle->getArticle();
if ($oArticle->getFieldData('oxstockflag') != 4 // Fremdlager
&& $oOrderArticle->getFieldData('oxamount') > $oOrderArticle->getFieldData('oxstock')
) {
return true;
}
return false;
}
/**
* @return string
*/
public function d3GAhasDigitalGoods()
{
/** @var oxorderarticle $oOrderArticle */
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
if ($this->_d3GAhasArticleDigitalGoods($oOrderArticle)) {
return 'Y';
}
};
return 'N';
}
/**
* @param oxorderarticle $oOrderArticle
*
* @return bool
*/
protected function _d3GAhasArticleDigitalGoods(oxorderarticle $oOrderArticle)
{
/** @var oxarticle $oArticle */
$oArticle = $oOrderArticle->getArticle();
$oArticleFileList = $oArticle->getArticleFiles();
if ($oArticle->getFieldData('oxisdownloadable')
&& $oArticleFileList->count()
) {
if ($this->_d3GAhasArticlePurchasedDownload($oArticleFileList)) {
return true;
}
}
return false;
}
/**
* @param oxList $oArticleFileList
*
* @return bool
*/
protected function _d3GAhasArticlePurchasedDownload(oxList $oArticleFileList)
{
/** @var oxfile $oArticleFile */
foreach ($oArticleFileList->getArray() as $oArticleFile) {
if ($oArticleFile->getFieldData('oxpurchasedonly')) {
return true;
}
}
return false;
}
/**
* @param oxorderarticle $oOrderArticle
*
* @return string
*/
public function d3GAgetProductId($oOrderArticle)
{
switch (d3_cfg_mod::get($this->_sModCfgId)->getValue('sD3GATSShoppingArtId')) {
case 'oxartnum':
return $oOrderArticle->getFieldData('oxartnum');
case 'oxid':
return $oOrderArticle->getFieldData('oxartid');
};
return $oOrderArticle->getFieldData(d3_cfg_mod::get($this->_sModCfgId)->getValue('sD3GATSShoppingArtId'));
}
/**
* @return bool
*/
public function hasOutOfStockArticles()
{
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
if ($this->_d3GAhasArticleBackorderPreorder($oOrderArticle)) {
return true;
}
}
}
return false;
}
}

View File

@ -0,0 +1,36 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_oxutilsview_googleanalytics extends d3_oxutilsview_googleanalytics_parent
{
/**
* @param object $oSmarty
*
* @return null|void
*/
protected function _fillCommonSmartyProperties($oSmarty)
{
parent::_fillCommonSmartyProperties($oSmarty);
$oSmarty->plugins_dir[] =
oxRegistry::getConfig()->getActiveView()->getViewConfig()->getModulePath('d3_googleanalytics').
'core/smarty/plugins';
}
}

View File

@ -0,0 +1,91 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright © Data Development, Thomas Dartsch
* @author Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_oxbasket_googleanalytics extends d3_oxbasket_googleanalytics_parent
{
/**
* @return string
*/
public function d3GetCurrentLocatorTitle()
{
$sTitle = '';
/** @var oxview $oView */
$oView = oxRegistry::getConfig()->getActiveView();
if (method_exists($oView, 'getBreadCrumb') &&
($aPaths = $oView->getBreadCrumb())
) {
foreach ($aPaths as $aPath) {
$sTitle .= "/".$aPath['title'];
}
} elseif ($oView->getClassName() == 'details' &&
(
(
($oCatTree = $oView->getCategoryTree()) &&
($oCatPath = $oCatTree->getPath())
) || (
($oCatTree = $oView->getManufacturerTree()) &&
($oCatPath = $oCatTree->getPath())
)
)
) {
foreach ($oCatPath as $oCat) {
$sTitle .= "/".$oCat->getFieldData('oxtitle');
}
} else {
$sTitle = "page: ".ucfirst($oView->getClassName());
}
return $sTitle;
}
/**
* @param string $sProductID
* @param float $dAmount
* @param null $aSel
* @param null $aPersParam
* @param bool $blOverride
* @param bool $blBundle
* @param null $sOldBasketItemId
*
* @return object
*/
public function addToBasket(
$sProductID,
$dAmount,
$aSel = null,
$aPersParam = null,
$blOverride = false,
$blBundle = false,
$sOldBasketItemId = null
) {
$oBasketItem = parent::addToBasket(
$sProductID,
$dAmount,
$aSel,
$aPersParam,
$blOverride,
$blBundle,
$sOldBasketItemId
);
if ($oBasketItem) {
$oBasketItem->d3SetLocatorTitle($this->d3GetCurrentLocatorTitle());
}
return $oBasketItem;
}
}

View File

@ -0,0 +1,38 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright © Data Development, Thomas Dartsch
* @author Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_oxbasketitem_googleanalytics extends d3_oxbasketitem_googleanalytics_parent
{
protected $_sD3LocatorTitle;
/**
* @param $sLocatorTitle
*/
public function d3SetLocatorTitle($sLocatorTitle)
{
if (false == $this->_sD3LocatorTitle) {
$this->_sD3LocatorTitle = $sLocatorTitle;
}
}
/**
* @return string
*/
public function d3GetLocatorTitle()
{
return $this->_sD3LocatorTitle;
}
}

View File

@ -0,0 +1,123 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
class d3_oxorder_googleanalytics extends d3_oxorder_googleanalytics_parent
{
/**
* @return oxUserPayment
*/
public function getPayment()
{
if (!$this->_oPayment) {
$this->_oPayment = oxNew('oxpayment');
$this->_oPayment->Load($this->getFieldData('oxpaymenttype'));
}
return parent::getPayment();
}
/**
* @return array
*/
public function d3getVoucherSerieList()
{
$sSelect =
"SELECT oxvoucherserieid FROM oxvouchers WHERE oxorderid = " . oxDb::getDb()->quote($this->getId());
$aVoucherIds = (array) oxDb::getDb()->getArray($sSelect);
$aVoucherSerieList = array();
foreach ($aVoucherIds as $aVoucherId) {
$oVoucherSerie = oxNew('oxvoucherserie');
$oVoucherSerie->Load($aVoucherId[0]);
$aVoucherSerieList[] = $oVoucherSerie;
}
return $aVoucherSerieList;
}
/**
* @param array $aArticleList
*
* @return null|void
*/
protected function _setOrderArticles($aArticleList)
{
parent::_setOrderArticles($aArticleList);
/** @var d3_oxbasketitem_googleanalytics $oBasketItem */
foreach ($aArticleList as $oBasketItem) {
/** @var oxorderarticle $oOrderArticle */
foreach ($this->_oArticles as $sArticleId => $oOrderArticle) {
$blArtIdMatch = $oOrderArticle->getFieldData('oxartid') == $oBasketItem->getProductId();
$blAmountMatch = $oOrderArticle->getFieldData('oxamount') == $oBasketItem->getAmount();
$blPersParamMatch = (null == $oBasketItem->getPersParams() || $oOrderArticle->getFieldData('oxpersparam') == $oBasketItem->getPersParams());
if ($blArtIdMatch && $blAmountMatch && $blPersParamMatch) {
$this->_oArticles->offsetGet($sArticleId)->assign(array('d3_galocator' => $oBasketItem->d3GetLocatorTitle()));
}
}
}
}
/**
* @return float
*/
public function d3GetOrderPayVat()
{
return $this->getFieldData('oxpaycost') / 100 * $this->getFieldData('oxpayvat');
}
/**
* @return float
*/
public function d3GetOrderDelVat()
{
return $this->getFieldData('oxdelcost') / 100 * $this->getFieldData('oxdelvat');
}
/**
* @return float
*/
public function d3GetOrderWrapVat()
{
return $this->getFieldData('oxwrapcost') / 100 * $this->getFieldData('oxwrapvat');
}
/**
* @return float
*/
public function d3GetOrderCardVat()
{
return $this->getFieldData('oxcardcost') / 100 * $this->getFieldData('oxcardvat');
}
/**
* @return float
*/
public function d3GetTaxTotal()
{
$dVat = $this->getFieldData('oxartvatprice1')
+ $this->getFieldData('oxartvatprice2')
+ $this->d3GetOrderPayVat()
+ $this->d3GetOrderDelVat()
+ $this->d3GetOrderWrapVat()
+ $this->d3GetOrderCardVat();
return sprintf('%.2f', $dVat);
}
}

View File

@ -0,0 +1,16 @@
#d3GAOptOut {
position : fixed;
bottom : -3px;
left : -5px;
font-size : 11px;
padding : 4px 20px 6px 17px;
background : none repeat scroll 0 0 #fff;
opacity : 0.6;
z-index : 9999;
border : 1px solid #d3d3d3;
border-radius : 3px;
}
#d3GAOptOut a {
display : block;
}

View File

@ -0,0 +1,3 @@
#d3GAOptOut {
font-size : 14px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,326 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_googleanalytics_update extends d3install_updatebase
{
public $sModKey = 'd3_googleanalytics';
public $sModName = 'Google Services Schnittstelle';
public $sModVersion = '3.3.2.0';
public $sModRevision = '228';
// heredoc syntax using for class members is available from PHP 5.3 up
public $sBaseConf =
"9I7SjYrOVJJbDRCZTBFTjhiOVI5VElTamJwNDQ3Qk9FeWdLQjVXaHBaRFBHemxYV0NZYVJ2ZWN2SmMrS
m1taGh4OHk3Z0NXbUFDWUJaWjZXYVJicEM3a3AwTTFYWlVOZXlhYitWa2ptTDBLSVh0R1ArbkRYT3Jub
jE0cm1sSVgxOWpIMGQ1NjJ3TklEVTE1YW5YR1VueW4zcUNqZHNQK0NKRW1WOFpENGdISms4QTlDdS8xQ
kYzUldpVkJiNXVkUVZFK0dyd2hTcXRRb0tjN0ZCdHJ3VGJyVzZSbFdyc01yeXp4WVM3Sk9DblhqR0ZIY
lZWa0h3WGF3b0NYWlloT0dsU0dPYkJpWjR6M3dWdllFVFE0eVhiQWM0cHdLdmQ4cHhYR1kySWZ3T2EzW
DQ9";
public $sRequirements = '';
public $sBaseValue = 'TyUzQTglM0ElMjJzdGRDbGFzcyUyMiUzQTMwJTNBJTdCcyUzQTIxJTNBJTIyZDNfY2ZnX21vZF9fc0QzR0FUeXBlJTIyJTNCcyUzQTklM0ElMjJ1bml2ZXJzYWwlMjIlM0JzJTNBMTklM0ElMjJkM19jZmdfbW9kX19zRDNHQUlkJTIyJTNCcyUzQTAlM0ElMjIlMjIlM0JzJTNBMjklM0ElMjJkM19jZmdfbW9kX19ibEQzR0FBbm9ueW1pemVJUCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0EyNyUzQSUyMmQzX2NmZ19tb2RfX2lEM0dBU2FtcGxlUmF0ZSUyMiUzQnMlM0EzJTNBJTIyMTAwJTIyJTNCcyUzQTM1JTNBJTIyZDNfY2ZnX21vZF9fYmxEM0dBVHJhY2tQYWdlTG9hZFRpbWUlMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzYlM0ElMjJkM19jZmdfbW9kX19pRDNHQVNpdGVTcGVlZFNhbXBsZVJhdGUlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzIlM0ElMjJkM19jZmdfbW9kX19ibEQzR0FVc2VSZW1hcmtldGluZyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzMSUzQSUyMmQzX2NmZ19tb2RfX2JsRDNHQVNlbmRFQ29tbWVyY2UlMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMjYlM0ElMjJkM19jZmdfbW9kX19ibEQzR0FVc2VOZXR0byUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzNSUzQSUyMmQzX2NmZ19tb2RfX2JsRDNHQUFsbG93RG9tYWluTGlua2VyJTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTMwJTNBJTIyZDNfY2ZnX21vZF9fc0QzR0FTZXREb21haW5OYW1lJTIyJTNCcyUzQTAlM0ElMjIlMjIlM0JzJTNBMzAlM0ElMjJkM19jZmdfbW9kX19zRDNHQVNldENvb2tpZVBhdGglMjIlM0JzJTNBMCUzQSUyMiUyMiUzQnMlM0EzMSUzQSUyMmQzX2NmZ19tb2RfX2JsRDNHQVNldENsaWVudEluZm8lMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzIlM0ElMjJkM19jZmdfbW9kX19ibEQzR0FTZXREZXRlY3RGbGFzaCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzMiUzQSUyMmQzX2NmZ19tb2RfX2JsRDNHQVNldERldGVjdFRpdGxlJTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTMxJTNBJTIyZDNfY2ZnX21vZF9fYmxEM0dBVXNlQ3VzdG9tVmFycyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzNCUzQSUyMmQzX2NmZ19tb2RfX2JsRDNHQVNldENhbXBhaWduVHJhY2slMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzAlM0ElMjJkM19jZmdfbW9kX19ibEQzR0FTZXRDYW1wTm9LZXklMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMjklM0ElMjJkM19jZmdfbW9kX19zRDNHQVNldENhbXBJZEtleSUyMiUzQnMlM0EwJTNBJTIyJTIyJTNCcyUzQTMxJTNBJTIyZDNfY2ZnX21vZF9fc0QzR0FTZXRDYW1wTmFtZUtleSUyMiUzQnMlM0EwJTNBJTIyJTIyJTNCcyUzQTMzJTNBJTIyZDNfY2ZnX21vZF9fc0QzR0FTZXRDYW1wTWVkaXVtS2V5JTIyJTNCcyUzQTAlM0ElMjIlMjIlM0JzJTNBMzMlM0ElMjJkM19jZmdfbW9kX19zRDNHQVNldENhbXBTb3VyY2VLZXklMjIlM0JzJTNBMCUzQSUyMiUyMiUzQnMlM0EzMSUzQSUyMmQzX2NmZ19tb2RfX3NEM0dBU2V0Q2FtcFRlcm1LZXklMjIlM0JzJTNBMCUzQSUyMiUyMiUzQnMlM0EzNCUzQSUyMmQzX2NmZ19tb2RfX3NEM0dBU2V0Q2FtcENvbnRlbnRLZXklMjIlM0JzJTNBMCUzQSUyMiUyMiUzQnMlM0EzOSUzQSUyMmQzX2NmZ19tb2RfX2JsRDNHQVNldENvbnZlcnNpb25UcmFja2luZyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzNSUzQSUyMmQzX2NmZ19tb2RfX3NEM0dBQWRXb3JkQ29udmVyc2lvbklkJTIyJTNCcyUzQTAlM0ElMjIlMjIlM0JzJTNBMzglM0ElMjJkM19jZmdfbW9kX19zRDNHQUFkV29yZENvbnZlcnNpb25MYWJlbCUyMiUzQnMlM0EwJTNBJTIyJTIyJTNCcyUzQTMyJTNBJTIyZDNfY2ZnX21vZF9fYmxEM0dBU2V0UmVtYXJrZXRpbmclMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBNDAlM0ElMjJkM19jZmdfbW9kX19zRDNHQVJlbWFya2V0aW5nQ29udmVyc2lvbklkJTIyJTNCcyUzQTAlM0ElMjIlMjIlM0JzJTNBNDMlM0ElMjJkM19jZmdfbW9kX19zRDNHQVJlbWFya2V0aW5nQ29udmVyc2lvbkxhYmVsJTIyJTNCcyUzQTAlM0ElMjIlMjIlM0IlN0Q=';
protected $_aUpdateMethods = array(
array(
'check' => 'checkModCfgItemExist',
'do' => 'updateModCfgItemExist'
),
array(
'check' => 'checkFields',
'do' => 'fixFields'
),
array(
'check' => 'checkContentGANoticeItemExist',
'do' => 'updateContentGANoticeItemExist'
),
array(
'check' => 'checkModCfgSameRevision',
'do' => 'updateModCfgSameRevision'
),
);
public $aFields = array(
'D3_GALOCATOR' => array(
'sTableName' => 'oxorderarticles',
'sFieldName' => 'D3_GALOCATOR',
'sType' => 'VARCHAR(255)',
'blNull' => false,
'sDefault' => '',
'sComment' => '',
'sExtra' => '',
'blMultilang' => false,
),
);
protected $_aRefreshMetaModuleIds = array('d3_googleanalytics');
/**
* @return bool
*/
public function checkModCfgItemExist()
{
$blRet = false;
foreach ($this->getShopList() as $oShop) {
/** @var $oShop oxshop */
$aWhere = array(
'oxmodid' => $this->sModKey,
'oxnewrevision' => $this->sModRevision,
'oxshopid' => $oShop->getId(),
);
$blRet = $this->_checkTableItemNotExist('d3_cfg_mod', $aWhere);
if ($blRet) {
return $blRet;
}
}
return $blRet;
}
/**
* @return bool
*/
public function updateModCfgItemExist()
{
$blRet = false;
if ($this->checkModCfgItemExist()) {
foreach ($this->getShopList() as $oShop) {
/** @var $oShop oxshop */
$aWhere = array(
'oxmodid' => $this->sModKey,
'oxshopid' => $oShop->getId(),
'oxnewrevision' => $this->sModRevision,
);
if ($this->_checkTableItemNotExist('d3_cfg_mod', $aWhere)) {
// update don't use this property
unset($aWhere['oxnewrevision']);
$aInsertFields = array(
'OXID' => array(
'content' => "md5('" . $this->sModKey . " " . $oShop->getId() . "')",
'force_update' => false,
'use_quote' => false,
),
'OXSHOPID' => array(
'content' => $oShop->getId(),
'force_update' => false,
'use_quote' => true,
),
'OXMODID' => array(
'content' => $this->sModKey,
'force_update' => true,
'use_quote' => true,
),
'OXNAME' => array(
'content' => $this->sModName,
'force_update' => true,
'use_quote' => true,
),
'OXACTIVE' => array(
'content' => "0",
'force_update' => false,
'use_quote' => false,
),
'OXBASECONFIG' => array(
'content' => $this->sBaseConf,
'force_update' => true,
'use_quote' => true,
),
'OXINSTALLDATE' => array(
'content' => "NOW()",
'force_update' => true,
'use_quote' => false,
),
'OXVERSION' => array(
'content' => $this->sModVersion,
'force_update' => true,
'use_quote' => true,
),
'OXSHOPVERSION' => array(
'content' => oxRegistry::getConfig()->getEdition(),
'force_update' => true,
'use_quote' => true,
),
'OXREQUIREMENTS' => array(
'content' => $this->sRequirements,
'force_update' => true,
'use_quote' => true,
),
'OXVALUE' => array(
'content' => $this->sBaseValue,
'force_update' => false,
'use_quote' => true,
),
'OXNEWREVISION' => array(
'content' => $this->sModRevision,
'force_update' => true,
'use_quote' => true,
),
);
$aRet = $this->_updateTableItem2('d3_cfg_mod', $aInsertFields, $aWhere);
$blRet = $aRet['blRet'];
$this->setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->setUpdateBreak(false);
if ($this->getStepByStepMode()) {
break;
}
}
}
}
return $blRet;
}
/**
* @return bool
*/
public function checkContentGANoticeItemExist()
{
$blRet = false;
foreach ($this->getShopList() as $oShop) {
/** @var $oShop oxshop */
$aWhere = array(
'oxloadid' => 'Analytics_Security_Informations',
'oxshopid' => $oShop->getId(),
);
$blRet = $this->_checkTableItemNotExist('oxcontents', $aWhere);
if ($blRet) {
return $blRet;
}
}
return $blRet;
}
/**
* @return bool
*/
public function updateContentGANoticeItemExist()
{
$blRet = false;
if ($this->checkContentGANoticeItemExist()) {
foreach ($this->getShopList() as $oShop) {
/** @var $oShop oxshop */
$aWhere = array(
'oxloadid' => 'Analytics_Security_Informations',
'oxshopid' => $oShop->getId(),
);
if ($this->_checkTableItemNotExist('oxcontents', $aWhere)) {
$aInsertFields = array(
'OXID' => array(
'content' => "md5(RAND())",
'force_update' => false,
),
'OXLOADID' => array(
'content' => "'Analytics_Security_Informations'",
'force_update' => true,
),
'OXSHOPID' => array(
'content' => "'" . $oShop->getId() . "'",
'force_update' => true,
),
'OXSNIPPET' => array(
'content' => "'1'",
'force_update' => false,
),
'OXTYPE' => array(
'content' => "'0'",
'force_update' => false,
),
'OXACTIVE' => array(
'content' => "'1'",
'force_update' => false,
),
'OXACTIVE_1' => array(
'content' => "'1'",
'force_update' => false,
),
'OXPOSITION' => array(
'content' => "''",
'force_update' => false,
),
'OXTITLE' => array(
'content' => "'Analytics Datenschutz Information'",
'force_update' => false,
),
'OXCONTENT' => array(
'content' => "'<p>Diese Website benutzt Google Analytics, einen Webanalysedienst der Google\r\n\r\nInc. (&quot;Google&quot;). Google Analytics verwendet sog. &quot;Cookies&quot;, Textdateien, die auf\r\n\r\nIhrem Computer gespeichert werden und die eine Analyse der Benutzung der Website\r\n\r\ndurch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre\r\n\r\nBenutzung dieser Website (einschließlich Ihrer IP-Adresse<span style=\"color: #800000\">, die jedoch mit der Methode _anonymizeIp() anonymisiert wird, so dass Sie nicht mehr einem Anschluss\r\n\r\nzugeordnet werden kann</span>) wird an einen Server von Google in den USA\r\n\r\nübertragen und dort gespeichert. Google wird diese Informationen benutzen, um\r\n\r\nIhre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten für\r\n\r\ndie Websitebetreiber zusammenzustellen und um weitere mit der Websitenutzung und\r\n\r\nder Internetnutzung verbundene Dienstleistungen zu erbringen. Auch wird Google\r\n\r\ndiese Informationen gegebenenfalls an Dritte übertragen, sofern dies gesetzlich\r\n\r\nvorgeschrieben oder soweit Dritte diese Daten im Auftrag von Google verarbeiten.\r\n\r\nGoogle wird in keinem Fall Ihre IP-Adresse mit anderen Daten von Google in\r\n\r\nVerbindung bringen. Sie können die Installation der Cookies durch eine\r\n\r\nentsprechende Einstellung Ihrer Browser Software verhindern; wir weisen Sie\r\n\r\njedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche\r\n\r\nFunktionen dieser Website vollumfänglich nutzen können. Durch die Nutzung dieser\r\n\r\nWebsite erklären Sie sich mit der Bearbeitung der über Sie erhobenen Daten durch\r\n\r\nGoogle in der zuvor beschriebenen Art und Weise und zu dem zuvor benannten Zweck\r\n\r\neinverstanden.</p>\r\n<p><span style=\"color: #800000\">Sie können der Erhebung der\r\n\r\nDaten durch Google-Analytics mit Wirkung für die Zukunft widersprechen, indem\r\n\r\nsie ein Deaktivierungs-Add-on (<a href=\"http://tools.google.com/dlpage/gaoptout?hl=de\" title=\"\">http://tools.google.com/dlpage/gaoptout?hl=de</a>)\r\n\r\nfür Ihren Browser installieren.</span></p>'",
'force_update' => false,
),
'OXCATID' => array(
'content' => "''",
'force_update' => false,
),
'OXFOLDER' => array(
'content' => "'CMSFOLDER_USERINFO'",
'force_update' => false,
),
);
$aRet = $this->_updateTableItem2('oxcontents', $aInsertFields, $aWhere);
$blRet = $aRet['blRet'];
$this->setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->setUpdateBreak(false);
if ($this->getStepByStepMode()) {
break;
}
}
}
}
return $blRet;
}
/**
* @return bool
*/
public function checkModCfgSameRevision()
{
return $this->_checkModCfgSameRevision($this->sModKey);
}
/**
* @return bool
*/
public function updateModCfgSameRevision()
{
$blRet = false;
if ($this->checkModCfgSameRevision($this->sModKey)) {
$aRet = $this->_updateModCfgSameRevision($this->sModKey);
$this->setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->setUpdateBreak(false);
$blRet = $aRet['blRet'];
}
return $blRet;
}
}

View File

@ -0,0 +1,13 @@
<?php
$sLangName = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
//Navigation
'charset' => 'ISO-8859-15',
'D3_GOOGLEANALYTICS_OPTOUT' => 'Klicken Sie hier, um Google Analytics zu deaktivieren.',
);

View File

@ -0,0 +1,13 @@
<?php
$sLangName = "English";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
//Navigation
'charset' => 'ISO-8859-15',
'D3_GOOGLEANALYTICS_OPTOUT' => 'Click here to opt-out of Google Analytics.',
);

View File

@ -0,0 +1,409 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
$sLangName = "Deutsch";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
//Navigation
'charset' => 'ISO-8859-15',
'd3mxgoogleanalytics' => 'Google Services',
'd3mxgoogleanalytics_settings' => 'Einstellungen',
'd3tbclgoogleanalytics_main' => 'Analytics',
'd3tbclgoogleanalytics_adwords' => 'AdWords',
'd3tbclgoogleanalytics_trustedstore' => 'zertifizierter Händler',
'D3_GOOGLEANALYTICS_CFG_TITLE' => 'Google Analytics Schnittstelle - Einstellungen',
'D3_GOOGLEANALYTICS_MAIN' => 'Grundeinstellungen',
'D3_GOOGLEANALYTICS_MAIN_DEBUG' => 'Aktivieren Sie mit dem Schalter den Debugmodus.'.
' Nach dem erfolgreichen &Uuml;bertragen des Trackingcodes erhalten Sie eine Meldung im Browser gezeigt. '.
'Deaktivieren Sie die Funktion f&uuml;r den Livebetrieb.',
'D3_GOOGLEANALYTICS_DESC' => 'Diese Einstellungen betreffen den Dienst '.
'<a href="http://www.google.com/analytics/" target="_blank">"Google Analytics"</a>. '.
'Möchten Sie diesen nutzen, melden Sie sich auf der Webseite dafür an.',
'D3_GOOGLEANALYTICS_DESC1' => 'Während der Anmeldung werden Sie aufgefordert, '.
'einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Dies erledigt das vorliegende Modul für Sie. '.
'Die Einstellungen zum Trackingcode nehmen Sie ebenfalls hier vor.',
'D3_GOOGLEANALYTICS_MAIN_GATYPE' => 'TrackingCode-Typ',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_UNIVERSAL' => 'Universal',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_UNIVERSAL_DESC' => 'F&uuml;r den Wechsel auf den Universal-'.
'Analytics-Trackingcode sind vorab &Auml;nderungen in Ihrem Analytics-Konto durchzuf&uuml;hren. Bitte '.
'konsultieren Sie vorab den Analytics-Migrationsleitfaden. Den Link finden Sie im Erkl&auml;rungstext '.
'dieser Option.\\n\\nBitte beachten Sie, dass mit Wechsel des Trackingcodes m&ouml;glicherweise andere '.
'Optionen im Modul verf&uuml;gbar sind. Kontrollieren Sie diese bitte noch einmal.',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_ASYNC' => 'asynchron',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_ASYNC_DESC' => 'Ein Wechsel vom neuen Universal-Analytics-'.
'Trackingcode zum bisherigen asynchronen Trackingcode wird von Google nicht angeboten. &Auml;ndern Sie diese '.
'Einstellung nur, wenn Ihr Analytics-Account noch auf dem asynchronen Trackingcode basiert.\\n\\nBitte '.
'beachten Sie, dass mit Wechsel des Trackingcodes m&ouml;glicherweise andere Optionen im Modul verf&uuml;gbar '.
'sind. Kontrollieren Sie diese bitte noch einmal.',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_DESC' => 'Aktuell priorisiert Google den Trackingtyp '.
'"Universal". Setzen Sie hier den Typ, den Sie in Ihrem Analytics-Konto auch verwenden. Nutzen Sie noch den '.
'asynchronen Trackingcode, lesen Sie vor der Umstellung den <a href="'.
'https://support.google.com/analytics/answer/3450662?hl=de" target="gahelp">Leitfaden</a> zum Wechsel.<br><br>'.
'Manche der folgenden Optionen stehen Ihnen nur f&uuml;r einen Tracking-Typ zur Verf&uuml;gung und sind daher '.
'm&ouml;glicherweise ausgegraut.',
'D3_GOOGLEANALYTICS_MAIN_GAID' => 'Analyics-ID',
'D3_GOOGLEANALYTICS_MAIN_GAID_DESC' => 'F&uuml;gen Sie hier die Google Analytics '.
'Konto-ID ein. Diese finden Sie in Ihrem GA-Konto und beginnt im Normalfall mit "UA-".',
'D3_GOOGLEANALYTICS_MAIN_ANONYMIZEIP' => 'IP-Adressen anonymisiert &uuml;bertragen '.
'(dringend empfohlen)',
'D3_GOOGLEANALYTICS_MAIN_ANONYMIZEIP_DESC' => '<p>Die IP-Adressen Ihrer Shopbesucher werden '.
'anonymisiert. Zwar werden dadurch die Gebietszuordnungen etwas ungenauer. Jedoch k&ouml;nnen Sie nur mit '.
'dieser Einstellung den Datenschutzvorschriften in Deutschland entsprechen.</p><p>Weitere Informationen zu '.
'dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+anonymizeIp" target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_MAIN_SAMPLERATE' => "Tracking auswerten bei...",
'D3_GOOGLEANALYTICS_MAIN_SAMPLERATE_DESC' => '<p>Im Regelfall werden die &uuml;bertragenen '.
'Daten f&uuml;r alle Seitenbesucher ausgewertet und aufbereitet. Shops mit sehr hohem Besucheraufkommen '.
'geraten hiermit jedoch m&ouml;glicherweise an Limitierungen, die von Google gesetzt werden. Mit diesem Wert '.
'k&ouml;nnen Sie einstellen, wieviel Prozent der Besucherdaten von Google tats&auml;chlich ausgewertet werden '.
'sollen. Reduzieren Sie die Zahl, um Beschr&auml;nkungen zu umgehen.</p><p>Weitere Informationen zu '.
'dieser Option finden Sie in der <a href="https://www.google.de/search?q=Analytics+sampleRate+-siteSpeed" '.
'target="gahelp">Google-Suche </a>.</p>',
'D3_GOOGLEANALYTICS_MAIN_SAMPLERATE_1' => "% aller Besucher",
'D3_GOOGLEANALYTICS_MAIN_TRACKPAGELOADTIME' => 'Seitenladezeit mit &uuml;bertragen',
'D3_GOOGLEANALYTICS_MAIN_TRACKPAGELOADTIME_DESC' => '<p>Die Ladezeit Ihrer Seite ist, speziell auch '.
'in Hinblick auf verschiedene L&auml;nder, durchaus ein Faktor, der in das Ranking Ihrer Page einfliesst.<br>'.
'<br>Bei Universal-Analytics wird die Seitenladezeit generell &uuml;bertragen. Durch die Aktivierung dieser '.
'Option wird eine genauere Auswertung zus&auml;tzlich als Event &uuml;bergeben.</p><p>Weitere Informationen '.
'zu dieser Option finden Sie in der <a href="https://www.google.de/search?q=Analytics+track+page+load+time" '.
'target="gahelp">Google-Suche </a>.</p>',
'D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE' => "Seitengeschwindigkeit messen bei...",
'D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE_DESC' => '<p>Die Seitenladegeschwindigkeit wird nicht '.
'bei jedem Seitenaufruf gemessen. Bei wenig frequentierten Seiten verzerrt dies jedoch das Ergebnis. Soll der '.
'Standardwert von 1% ge&auml;ndert werden, tragen Sie den gew&uuml;nschten Wert hier ein. F&uuml;r Webseiten '.
'mit mehr als 1 Million Besuchern pro Tag wird dieser Wert von Google fix auf 1% gestellt.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+site+speed+sample+rate" target="gahelp">Google-Suche </a>.'.
'</p>',
'D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE_1' => "% aller Besucher",
'D3_GOOGLEANALYTICS_MAIN_USEREMARKETING' => 'Remarketing-Auswertung erm&ouml;glichen',
'D3_GOOGLEANALYTICS_MAIN_USEREMARKETING_DESC' => '<p>Wenn Sie sich entschlie&szlig;en, '.
'Remarketing zu nutzen, setzen Sie diesen Haken. Nachdem Sie diese &Auml;nderung vorgenommen haben, '.
'erfasst und analysiert Google Analytics neben den &uuml;blichen Informationen auch das DoubleClick-Cookie, '.
'sofern vorhanden. Das DoubleClick-Cookie erm&ouml;glicht Remarketing im Google Display-Netzwerk f&uuml;r '.
'Produkte wie AdWords. Je nach verwendetem Tracking-Typ muss die Erfassung von Informationen aus dem Display-'.
'Netzwerk im Analytics-Konto aktiviert werden.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+require+displayfeatures" target="gahelp">Google-Suche </a>.'.
'</p>',
'D3_GOOGLEANALYTICS_BOUNCEOPT' => 'Absprungdaten optimieren',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SWITCH' => 'Absprungdaten-Optimierung aktivieren',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SWITCH_DESC' => 'Analytics wertet jeden Benutzer, der nicht '.
'innerhalb der Seite einen Link anklickt, als Abbrecher. Mit dieser Option kann der Wert optimiert werden.',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT1' => 'Seitenbesucher nicht als Abbrecher werten nach',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT2' => 'Millisekunden (1000 = 1 Sekunde)',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT_DESC' => '<p>Analytics wertet alle Seitenbucher, die '.
'sich nur eine Seite angesehen habe und dann den Shop verlassen, automatisch als Abbrecher. Zur '.
'Informationsbeschaffung reicht dem Kunden jedoch möglicherweise dieser eine Seitenbesuch aus. Sein Ziel '.
'konnte er erreichen. Demnach ist er eigentlich kein Abbrecher. Das Modul sendet automatisch nach der '.
'angegebenen Sekundenzahl ein EventTracking. Damit wertet Analytics diesen Besucher nur als Abbrecher, wenn '.
'er den Shop vor Ablauf dieser Zeit wieder verlässt. Verweilt er länger im Shop, wird der Besuch dann als '.
'Erfolg gewertet.</p><p>Diese Tracking-Veränderung stellt die Absprungrate daher im Analytics wesentlich '.
'genauer dar. Der Standardwert ist auf 10 Sekunden gesetzt. Ändern Sie bei Bedarf diese Angabe.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+_trackEvent+noBounce" target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDSCROLLEVENT' => 'Seitenbesucher nicht als Abbrecher werten, '.
'wenn gescrollt wurde',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDSCROLLEVENT_DESC' => '<p>Analytics wertet alle Seitenbucher, die '.
'sich nur eine Seite angesehen habe und dann den Shop verlassen, automatisch als Abbrecher. Zur '.
'Informationsbeschaffung reicht dem Kunden jedoch möglicherweise dieser eine Seitenbesuch aus. Sein Ziel '.
'konnte er erreichen. Demnach ist er eigentlich kein Abbrecher. Das Modul sendet automatisch ein '.
'EventTracking, wenn der Besucher die Seite gescrollt hat. Damit wertet Analytics diesen Besucher nur als '.
'Abbrecher, wenn er den Shop ohne Scrollen wieder verlässt.</p><p>Diese Tracking-Veränderung stellt die '.
'Absprungrate daher im Analytics wesentlich genauer dar.</p><p>Weitere Informationen zu dieser Option finden '.
'Sie in der <a href="https://www.google.de/search?q=_trackEvent+noBounce+scroll" target="gahelp">Google-Suche'.
'</a>.</p>',
'D3_GOOGLEANALYTICS_ECOMMERCE' => 'eCommerce-Einstellungen',
'D3_GOOGLEANALYTICS_ECOMMERCE_SENDDATA' => 'eCommerce-Daten &uuml;bertragen',
'D3_GOOGLEANALYTICS_ECOMMERCE_SENDDATA_DESC' => '<p>Mit dieser Einstellung werden '.
'Warenkorbdaten Ihrer Kunden an Analytics &uuml;bertragen. Damit k&ouml;nnen Sie z.B. die Produktleistung und '.
'Umsatzzahlen ermitteln. Diese Option muss auch in Ihrem Analytics-Konto aktiviert werden.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+ecommerce+tracking" target="gahelp">Google-Suche </a>.</p>',
'D3_GOOGLEANALYTICS_ECOMMERCE_USENETTO' => 'Netto-Preise &uuml;bertragen, wenn '.
'verf&uuml;gbar',
'D3_GOOGLEANALYTICS_ECOMMERCE_USENETTO_DESC' => 'Betreiben Sie einen B2B-Shop, &uuml;bertragen '.
'Sie Ihre Artikelpreise netto an Analytics, wenn diese auch im Shop ohne Steuer zur Verf&uuml;gung stehen. ',
'D3_GOOGLEANALYTICS_DOMAIN' => 'Multi-Domain-Einstellungen',
'D3_GOOGLEANALYTICS_DOMAIN_SETALLOWLINKER' => 'Trackingdaten von unterschiedlichen Domains '.
'verwenden',
'D3_GOOGLEANALYTICS_DOMAIN_SETALLOWLINKER_DESC' => '<p>Cross Domain Tracking erlaubt das Sammeln '.
'von Trackinginformationen auch &uuml;ber verschiedene Domains hinweg.</p><p>Weitere Informationen finden '.
'Sie <a href="https://www.google.de/search?q=Analytics+_setAllowLinker" target="gahelp">hier</a>.</p>',
'D3_GOOGLEANALYTICS_DOMAIN_SETDOMAINNAME' => 'fixiert das Tracking-Cookie auf die angegebene '.
'Domain (optional)',
'D3_GOOGLEANALYTICS_DOMAIN_SETDOMAINNAME_DESC' => '<p>Lassen Sie dieses Feld leer, ist das '.
'Tacking-Cookie f&uuml;r unterschiedliche Seiten g&uuml;ltig. Wenn Sie statt dessen eine Domain angeben, ist '.
'das gesetzte Cookie nur f&uuml;r Seiten unter dieser Domain g&uuml;ltig. Andere zu trackende Seiten setzen '.
'dann ein neues Cookie.<br><br>Der Eintrag sollte hier so aussehen: .yourDomainName.com</p><p>Weitere '.
'Informationen finden Sie <a href="https://www.google.de/search?q=Analytics+_setDomainName" target="gahelp">'.
'hier</a>.</p>',
'D3_GOOGLEANALYTICS_DOMAIN_SETCOOKIEPATH' => 'Tracking nur auf ein Verzeichnis '.
'beschr&auml;nken (optional)',
'D3_GOOGLEANALYTICS_DOMAIN_SETCOOKIEPATH_DESC' => '<p>Ein Eintrag hier sollte so aussehen: '.
'/myStore/</p><p>Weitere Informationen finden Sie '.
'<a href="https://www.google.de/search?q=Analytics+set+Cookie+Path" target="gahelp">hier</a>.</p>',
'D3_GOOGLEANALYTICS_DOMAIN_COOKIEPATHCOPY' => 'Cookie Informationen werden in das Verzeichnis '.
'der selben Domain kopiert (optional)',
'D3_GOOGLEANALYTICS_DOMAIN_COOKIEPATHCOPY_DESC' => '<p>Ein Eintrag hier sollte so aussehen: '.
'/myStore/<br>Diese Option ist nur f&uuml;r den asynchronen Trackingcode verf&uuml;gbar.</p><p>Weitere '.
'Informationen finden Sie <a href="https://www.google.de/search?q=Analytics+set+Cookie+Path" target="gahelp">'.
'hier</a>.</p>',
'D3_GOOGLEANALYTICS_BROWSER' => 'Browser-Daten',
'D3_GOOGLEANALYTICS_BROWSER_SETCLIENTINFO' => '<span style="font-weight: bold;">Deaktiviert'.
'</span> die Erkennung von Browserdaten (z.B. Name und Version). Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_BROWSER_SETCLIENTINFO_DESC' => 'Weitere Informationen finden Sie '.
'<a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiWebClient?hl=es#'.
'_gat.GA_Tracker_._getClientInfo" target="gahelp">hier</a>. Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTFLASH' => '<span style="font-weight: bold;">Unterbindet'.
'</span> die Erkennung, ob beim Kunden das Flash-Plugin installiert ist.',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTFLASH_DESC' => 'Weitere Informationen finden Sie '.
'<a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiWebClient?hl=es#'.
'_gat.GA_Tracker_._setDetectFlash" target="gahelp">hier</a>. Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTTITLE' => '<span style="font-weight: bold;">Verhindert'.
'</span> die Erkennung des Seitentitels.',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTTITLE_DESC' => 'Weitere Informationen finden Sie '.
'<a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiWebClient?hl=es#'.
'_gat.GA_Tracker_._setDetectTitle" target="gahelp">hier</a>. Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_CUSTOMVARS' => 'individuelle Daten',
'D3_GOOGLEANALYTICS_CUSTOMVARS_TRANSMIT' => 'individuelle Daten &uuml;bertragen',
'D3_GOOGLEANALYTICS_CUSTOMVARS_TRANSMIT_DESC' => 'Mit individuellen Daten k&ouml;nnen Sie '.
'Parameter &uuml;bermitteln, die sonst im Rahmen des Trackingcodes nicht gesammelt werden. Erg&auml;nzen Sie '.
'den entsprechenden Abschnitt im Template "modules/d3/d3_googleanalytics/views/tpl/widget/'.
'd3_googleanalytics.tpl" (f&uuml;r Async) oder "modules/d3/d3_googleanalytics/views/tpl/widget/inc/'.
'd3ga_universal_custom.tpl" (f&uuml;r Universal) um die gew&uuml;nschten Daten. Details F&uuml;r die '.
'Einrichtung der Datenaufzeichnung bei Analytics entnehmen Sie bitte der Moduldokumentation.<br><br>Weitere '.
'Informationen finden Sie <a href="http://code.google.com/apis/analytics/docs/tracking/'.
'gaTrackingCustomVariables.html" target="gahelp">hier</a>.<br>Auf Anregung durch <a href="http://'.
'www.commodule.de/blog/tracking/zahlungsarten-in-google-analytics-tracken/" target="Commodule">Commodule-Blog'.
'</a> haben wir nun noch weitere Beispiele hinterlegt. Vielen Dank f&uuml;r diese Unterst&uuml;tzung!',
'D3_GOOGLEANALYTICS_SECURITYINFORMATIONS' => 'Im CMS-Baustein "Analytics_Security_'.
'Informations" ist ein Text hinterlegt, den Sie Ihren Kunden unter Ihrer Datenschutzerkl&auml;rung '.
'verf&uuml;gbar machen sollten. Kl&auml;ren Sie jedoch bitte vor Verwendung von Google Analytics Tracking und '.
'diesem Hinweistext ab, ob beides mit den Datenschutzbestimmung Ihres Landes konform geht. '.
'Ausschlie&szlig;lich der Shopbetreiber haftet f&uuml;r Verst&ouml;&szlig;e. Beraten Sie sich im Zweifel mit '.
'Ihrem Rechtsanwalt.<br><br>Nach Aktivierung des Tracking-Codes dauert es in der Regel ca. 24 Stunden, bis '.
'die ersten Tracking-Daten in Analytics zur Verf&uuml;gung stehen.',
'D3_GOOGLEANALYTICS_ADWORDSGENERAL' => 'Conversion-Tracking',
'D3_GOOGLEANALYTICS_ADWORDS_SETCONVERSIONTRACKING' => 'Conversion-Tracking-Code aktivieren',
'D3_GOOGLEANALYTICS_ADWORDS_SETCONVERSIONTRACKING_DESC' => 'Diese Option aktiviert den AdWords-Code. Dann '.
'ist die Eingabe der Conversion-ID und des Conversion-Labels obligatorisch.',
'D3_GOOGLEANALYTICS_ADWORDS_CONVID' => 'Conversion-ID',
'D3_GOOGLEANALYTICS_ADWORDS_CONVID_DESC' => '<p>Diese ID finden Sie in Ihrem AdWords-Konto.'.
'</p><p>Weitere Informationen zu '.
'dieser Option finden Sie in der <a href="https://www.google.de/search?q=AdWords+conversion+id" '.
'target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_ADWORDS_CONVLABEL' => 'Conversion-Label',
'D3_GOOGLEANALYTICS_ADWORDS_CONVLABEL_DESC' => '<p>Weitere Informationen zu '.
'dieser Option finden Sie in der <a href="https://www.google.de/search?q=AdWords+conversion+label" '.
'target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_ADWORDS_DESC' => 'Diese Einstellungen betreffen den Dienst '.
'<a href="http://www.google.de/AdWords" target="_blank">"Google Adwords"</a>. '.
'Möchten Sie diesen nutzen, melden Sie sich auf der Webseite dafür an.',
'D3_GOOGLEANALYTICS_ADWORDS_DESC1' => 'Während der Anmeldung werden Sie aufgefordert, '.
'einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Dies erledigt das vorliegende Modul für Sie. '.
'Die Einstellungen zum Trackingcode nehmen Sie ebenfalls hier vor.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN' => 'Kampagnen-Tracking',
'D3_GOOGLEANALYTICS_ADWORDSCODE_SETCAMPAIGNTRACK' => 'AdWords-Kampagnendaten <span style="'.
'font-weight: bold;">nicht</span> &uuml;bertragen',
'D3_GOOGLEANALYTICS_ADWORDSCODE_SETCAMPAIGNTRACK_DESC' => 'Das Kampagnentracking ist im Standard '.
'aktiviert. Setzen Sie diesen Haken, um die Kampagnen&uuml;bertragung zu deaktivieren.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT' => 'Kampagnenlaufzeit (optional, sonst 6 Monate) - '.
'nur f&uuml;r Async-Code',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT_DESC' => 'Geben Sie hier eine optionale Laufzeit dieser '.
'Kampagne in Millisekunden an.<br><br>30 Tage = 2592000000<br>365 Tage = 31536000000<br><br>F&uuml;r '.
'Universal Analytics tragen Sie diesen Wert bitte in Ihrem Analytics-Konto nach.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT_MS' => 'Millisekunden',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNOKEY' => 'erzwinge Verwendung der folgenden Kampagne',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNOKEY_DESC' => 'die hier festgelegte Kampagne wird zwingend '.
'verwendet, auch wenn die Cookie-Einstellungen schon eine andere Kampagne liefern.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPIDKEY' => 'Kampagnen-ID (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPIDKEY_DESC' => 'Geben Sie hier die ID dieser Kamapagne an.<br>'.
'<br>Weitere Informationen finden Sie hier: <ul><li>Universal: <a href="https://developers.google.com/'.
'analytics/devguides/collection/analyticsjs/field-reference#campaignId" target="gahelp">hier</a></li></ul>'.
'Diese Angabe ist nur in Universal Analytics verf&uuml;gbar.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNAMEKEY' => 'Kampagnenname (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNAMEKEY_DESC' => 'Unter diesem Namen sehen Sie die Auswertung '.
'der Daten aus dieser Shopkampagne in Analytics.<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: '.
'<a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._'.
'setCampNameKey" target="gahelp">hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/'.
'devguides/collection/analyticsjs/field-reference#campaignName" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPMEDIUMKEY' => 'Kampagnenmedium (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPMEDIUMKEY_DESC' => 'Definieren Sie das Medium dieser Kampagne '.
'(z.B. Werbebanner, Mailkampagne oder auch Klickkampagne). Diese Einstellung finden Sie in der Kampagnen'.
'auswertung unter "Keywords".<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: <a href="http://'.
'code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._setCampMediumKey" '.
'target="gahelp">hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/devguides/'.
'collection/analyticsjs/field-reference#campaignMedium" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPSOURCEKEY' => 'Kampagnenquelle (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPSOURCEKEY_DESC' => 'Benennen Sie hier die Quelle der Shopkampagne, '.
'vergeben Sie zum Beispiel den Webseiten-Name oder den Firmenname.<br><br>Weitere Informationen finden Sie '.
'hier: <ul><li>Async: <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#'.
'_gat.GA_Tracker_._setCampSourceKey" target="gahelp">hier</a></li><li>Universal: <a href="https://developers.'.
'google.com/analytics/devguides/collection/analyticsjs/field-reference#campaignSource" target="gahelp">hier'.
'</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPTERMKEY' => 'Schl&uuml;sselwort(e) Ihrer Kampagne (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPTERMKEY_DESC' => 'Auch diese Keywords erscheinen in Analytics '.
'unter "Keywords".<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: <a href="http://code.google.'.
'com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._setCampTermKey" target="gahelp">'.
'hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/devguides/collection/analyticsjs'.
'/field-reference#campaignKeyword" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPCONTENTKEY' => 'Inhaltsbeschreibung der Kampagne (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPCONTENTKEY_DESC' => 'Den beschrieben Inhalt finden Sie in der '.
'Auswertung als "Ad Content".<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: <a href="http://'.
'code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._setCampContentKey" '.
'target="gahelp">hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/devguides/'.
'collection/analyticsjs/field-reference#campaignContent" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSREMARKETING' => 'Remarketing',
'D3_GOOGLEANALYTICS_ADWORDS_SETREMARKETING' => 'Remarketing-Code aktivieren',
'D3_GOOGLEANALYTICS_ADWORDS_SETREMARKETING_DESC' => 'Die Option aktiviert den Remarketing-Code. '.
'Dann ist die Eingabe der Conversion-ID obligatorisch.',
'D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVID' => 'Conversion-ID',
'D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVID_DESC' => 'Tragen Sie hier die zu Ihrem eingerichteten '.
'Remarketing zugehörige Conversion-ID ein. Diese kann mit Ihrer AdWords-Conversion-Tracking-ID identisch '.
'sein. Auch Abweichungen sind möglich.',
'D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVLABEL' => 'Conversion-Label (optional)',
'd3tbclgoogleanalytics_campaigns' => 'andere Kampagnen',
'D3_GOOGLEANALYTICS_CAMPAIGNS_DESC' => 'Diese Einstellungen betreffen andere (auch '.
'google-fremde) Kampagnen, die mit den Leistungen des Moduls nicht abgedeckt sind. Details zu den Kampagnen '.
'und dessen Implementierung erhalten Sie beim jeweiligen Anbieter.',
'D3_GOOGLEANALYTICS_CAMPAIGNS_DESC1' => 'Während der Anmeldung werden Sie aufgefordert, '.
'einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Konfigurieren Sie diesen bei Ihem '.
'Kampagnenanbieter und tragen Sie diesen dann hier ein das Eingabefeld ein.',
'D3_GOOGLEANALYTICS_CAMPAIGNSETTINGS' => 'Kampagnen-Einstellungen',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTRACK' => 'Kampagnencode übertragen',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTRACK_DESC' => 'Nur mit dieser Option wird der eingegebene '.
'Kampagnencode ausgeliefert',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTHANKYOUONLY' => 'Kampagnendaten nur in Bestellabschlussseite '.
'verwenden',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTHANKYOUONLY_DESC' => 'Ist dieser Haken nicht gesetzt, wird der '.
'Kampagnencode shopweit eingefügt. Ob diese Einstellung notwendig ist, erfahren Sie bei Ihrem Conversion '.
'Tracking Anbieter.',
'D3_GOOGLEANALYTICS_CAMPAIGNCODE_CODE' => 'Code',
'D3_GOOGLEANALYTICS_CAMPAIGNCODE_CODE_DESC' => 'Kopieren Sie hier den Kampagnen-Tracking-Code '.
'ein, den Sie vom Anbieter erhalten haben. Kopieren Sie auch ein eventuell vorhandenes "script"-Tag mit. '.
'Dieser Code wird 1:1 in den Seitenquelltext eingef&uuml;gt und nicht geparst.',
'D3_GOOGLEANALYTICS_TS_DESC' => 'Diese Einstellungen betreffen den Dienst '.
'<a href="http://www.google.de/zertifiziertehaendler/" target="_blank">"Google Zertifizierter Händler"</a>. '.
'Möchten Sie diesen nutzen, melden Sie sich auf der Webseite dafür an.',
'D3_GOOGLEANALYTICS_TS_DESC1' => 'Während der Aktivierung werden Sie '.
'aufgefordert, einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Dieser wird von unserem Modul '.
'eingebunden. Damit können Sie die Qualifizierungsphase starten. Erst nach erfolgreicher Beendigung sehen Sie '.
'das "Google Zertifizierter Händler"-Siegel. Über dessen Darstellung entscheidet allein Google.',
'D3_GOOGLEANALYTICS_TS_ACTIVE' => '"Zertifizierter Händler" im Shop aktivieren',
'D3_GOOGLEANALYTICS_TS_ACTIVE_DESC' => 'Dieser Haken bindet die nötigen Trackingcodes '.
'in den Quelltext Ihres Shops ein. Ob Sie das Gütesiegel im Shop sehen, entscheidet jedoch nur Google intern. '.
'Sind Sie der Meinung, das Siegel sollte angezeigt werden, wenden Sie sich bitte an Ihren Betreuer bei Google.',
'D3_GOOGLEANALYTICS_TS_ID' => 'Konto-ID',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei lagernden Artikeln',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Werktag(e)',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
'nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier '.
'den für am Lager befindlicher Artikel im Normalfall größten Zeitraum bis zum Versand in Tagen an (z.B. 3 bei '.
'"1 bis 3 Tage"). Nach dem voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum abgeschlossenen '.
'Kauf.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen festen Feiertag, wird der '.
'nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht berücksichtigt. Um die '.
'Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse entsprechend.</p><p>Die '.
'Unterscheidung zwischen lagernden und nicht lagernden Artikeln wird nur bei aktivierter '.
'Lagerstandsverwaltung getroffen. Sonst werden alle Artikel als "lagernd" angesehen.</p>',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_OUTOFSTOCK' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei <b>nicht</b> lagernden Artikeln',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTEROUTOFSTOCK_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
'nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier '.
'den für <b>nicht</b> am Lager befindlicher Artikel im Normalfall größten Zeitraum bis zum Versand in Tagen '.
'an (z.B. 3 bei "1 bis 3 Tage"). Nach dem voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum '.
'abgeschlossenen Kauf.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen festen Feiertag, '.
'wird der nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht berücksichtigt. '.
'Um die Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse entsprechend.</p>',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER' => 'Zeitraum vom Versand bis zur Lieferung beim '.
'Empfänger',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS' => 'Werktag(e)',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
'nach welchem Zeitraum die bestellten Artikel in der Regel beim Kunden eintreffen. Geben Sie hier den für '.
'Normalfälle größten Zeitraum für die Lieferung in Tagen an (z.B. 4 bei "1 bis 4 Tage"). Der errechnete '.
'Termin wird dem Kunden per Mail mitgeteilt.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen '.
'festen Feiertag, wird der nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht '.
'berücksichtigt. Um die Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse '.
'entsprechend.</p>',
'D3_GOOGLEANALYTICS_TS_SHOPPING' => 'Verbindung zu Google Shopping',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE' => 'zusätzliche Daten aus Google Shopping '.
'übertragen',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE_DESC' => 'Verwenden Sie Google Shopping und möchten '.
'zusätzliche Daten zur Identifizierung übertragen, setzen Sie diesen Haken. Die folgenden Angaben sind dann '.
'ebenfalls erforderlich.',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID' => 'Google Shopping Kontonummer',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID_DESC' => 'Tragen Sie hier die Kontonummer (Account ID) '.
'aus Google Shopping ein.',
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY' => 'Kürzel des Landes Ihres Google Shopping-Kontos',
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY_DESC' => 'Geben Sie hier das Land Ihres Google Shopping '.
'Kontos an. Erwartet wird der ISO-3166-Ländercode (z.B.: DE, CH, AT, FR).',
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE' => 'Kürzel der Sprache Ihres Google Shopping-Kontos',
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE_DESC' => 'Geben Sie hier die Sprache Ihres Google '.
'Shopping Kontos an. Erwartet wird der ISO-639-1-Sprachcode (z.B.: de, en, fr).',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID' => 'Identifikation Ihrer Artikel bei Google '.
'Shopping',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_ARTNUM' => 'Artikelnummer (oxartnum)',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_OXID' => 'interne Ident-Nummer (oxid)',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_DESC' => 'Über welches Feld kann Google Shopping die '.
'dort hinterlegten Artikel identfizieren?',
'D3_GOOGLEANALYTICS_METADATA_TITLE' => 'Google Services Schnittstelle',
'D3_GOOGLEANALYTICS_METADATA_DESC' => 'Dieses Modul stellt Ihnen die schnelle und '.
'unkomplizierte Einbindung Ihres Google-Analytics-Kontos in Ihren Shop zur Verf&uuml;gung. Hierbei werden '.
'&uuml;ber standardisierte Schnittstellen die Besucherdaten und eCommerce-Daten zu Google &uuml;bertragen. '.
'Ebenfalls &uuml;bermittelt werden Daten der Website-Suche.',
'D3_GOOGLEANALYTICS_MAIN_USEOPTOUT' => 'Opt Out anbieten',
'D3_GOOGLEANALYTICS_MAIN_USEOPTOUT_DESC' => '<p>Wird dieser Haken gesetzt, wird im Frontend '.
'ein Opt-Out-Bereich im Header angezeigt. In dem Bereich kann der Benutzer einen Link anklicken, '.
'mit dem das Tracking für diese Seite deaktiviert wird.</p><p>Weitere Informationen zu dieser Option finden '.
'Sie in der <a href="https://www.google.de/search?q=Analytics+_opt+out+script" target="gahelp">Google-Suche'.
'</a>.</p>',
// Erweiterung des Links in der Fussnote "Hilfe Starten"
'D3_GOOGLEANALYTICS_HELPLINK' => 'Fragen-zu-speziellen-Modulen/Google-Analytics/',
);
/*
[{oxmultilang ident="GENERAL_YOUWANTTODELETE"}]
*/

View File

@ -0,0 +1,411 @@
<?php
/**
* This module is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This module is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For further informations, see <http://www.gnu.org/licenses/>.
*
* @link http://www.oxidmodule.com
* @link http://www.shopmodule.com
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
*/
$sLangName = "English";
// -------------------------------
// RESOURCE IDENTITFIER = STRING
// -------------------------------
$aLang = array(
//Navigation
'charset' => 'ISO-8859-15',
'd3mxgoogleanalytics' => 'Google Services',
'd3mxgoogleanalytics_settings' => 'Settings',
'd3tbclgoogleanalytics_main' => 'Analytics',
'd3tbclgoogleanalytics_adwords' => 'AdWords',
'd3tbclgoogleanalytics_trustedstore' => 'Trusted Store',
'D3_GOOGLEANALYTICS_CFG_TITLE' => 'Google Services Connector - Settings',
'D3_GOOGLEANALYTICS_MAIN' => 'Main Settings',
'D3_GOOGLEANALYTICS_MAIN_DEBUG' => 'Aktivieren Sie mit dem Schalter den Debugmodus.'.
' Nach dem erfolgreichen &Uuml;bertragen des Trackingcodes erhalten Sie eine Meldung im Browser gezeigt. '.
'Deaktivieren Sie die Funktion f&uuml;r den Livebetrieb.',
'D3_GOOGLEANALYTICS_DESC' => 'Diese Einstellungen betreffen den Dienst '.
'<a href="http://www.google.com/analytics/" target="_blank">"Google Analytics"</a>. '.
'Möchten Sie diesen nutzen, melden Sie sich auf der Webseite dafür an.',
'D3_GOOGLEANALYTICS_DESC1' => 'Während der Anmeldung werden Sie aufgefordert, '.
'einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Dies erledigt das vorliegende Modul für Sie. '.
'Die Einstellungen zum Trackingcode nehmen Sie ebenfalls hier vor.',
'D3_GOOGLEANALYTICS_MAIN_GATYPE' => 'Tracking code type',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_UNIVERSAL' => 'Universal',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_UNIVERSAL_DESC' => 'F&uuml;r den Wechsel auf den Universal-'.
'Analytics-Trackingcode sind vorab &Auml;nderungen in Ihrem Analytics-Konto durchzuf&uuml;hren. Bitte '.
'konsultieren Sie vorab den Analytics-Migrationsleitfaden. Den Link finden Sie im Erkl&auml;rungstext '.
'dieser Option.\\n\\nBitte beachten Sie, dass mit Wechsel des Trackingcodes m&ouml;glicherweise andere '.
'Optionen im Modul verf&uuml;gbar sind. Kontrollieren Sie diese bitte noch einmal.',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_ASYNC' => 'asynchron',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_ASYNC_DESC' => 'Ein Wechsel vom neuen Universal-Analytics-'.
'Trackingcode zum bisherigen asynchronen Trackingcode wird von Google nicht angeboten. &Auml;ndern Sie diese '.
'Einstellung nur, wenn Ihr Analytics-Account noch auf dem asynchronen Trackingcode basiert.\\n\\nBitte '.
'beachten Sie, dass mit Wechsel des Trackingcodes m&ouml;glicherweise andere Optionen im Modul verf&uuml;gbar '.
'sind. Kontrollieren Sie diese bitte noch einmal.',
'D3_GOOGLEANALYTICS_MAIN_GATYPE_DESC' => 'Aktuell priorisiert Google den Trackingtyp '.
'"Universal". Setzen Sie hier den Typ, den Sie in Ihrem Analytics-Konto auch verwenden. Nutzen Sie noch den '.
'asynchronen Trackingcode, lesen Sie vor der Umstellung den <a href="'.
'https://support.google.com/analytics/answer/3450662?hl=de" target="gahelp">Leitfaden</a> zum Wechsel.<br><br>'.
'Manche der folgenden Optionen stehen Ihnen nur f&uuml;r einen Tracking-Typ zur Verf&uuml;gung und sind daher '.
'm&ouml;glicherweise ausgegraut.',
'D3_GOOGLEANALYTICS_MAIN_GAID' => 'Analyics id',
'D3_GOOGLEANALYTICS_MAIN_GAID_DESC' => 'F&uuml;gen Sie hier die Google Analytics '.
'Konto-ID ein. Diese finden Sie in Ihrem GA-Konto und beginnt im Normalfall mit "UA-".',
'D3_GOOGLEANALYTICS_MAIN_ANONYMIZEIP' => 'IP-Adressen anonymisiert &uuml;bertragen '.
'(dringend empfohlen)',
'D3_GOOGLEANALYTICS_MAIN_ANONYMIZEIP_DESC' => '<p>Die IP-Adressen Ihrer Shopbesucher werden '.
'anonymisiert. Zwar werden dadurch die Gebietszuordnungen etwas ungenauer. Jedoch k&ouml;nnen Sie nur mit '.
'dieser Einstellung den Datenschutzvorschriften in Deutschland entsprechen.</p><p>Weitere Informationen zu '.
'dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+anonymizeIp" target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_MAIN_SAMPLERATE' => "Tracking auswerten bei...",
'D3_GOOGLEANALYTICS_MAIN_SAMPLERATE_DESC' => '<p>Im Regelfall werden die &uuml;bertragenen '.
'Daten f&uuml;r alle Seitenbesucher ausgewertet und aufbereitet. Shops mit sehr hohem Besucheraufkommen '.
'geraten hiermit jedoch m&ouml;glicherweise an Limitierungen, die von Google gesetzt werden. Mit diesem Wert '.
'k&ouml;nnen Sie einstellen, wieviel Prozent der Besucherdaten von Google tats&auml;chlich ausgewertet werden '.
'sollen. Reduzieren Sie die Zahl, um Beschr&auml;nkungen zu umgehen.</p><p>Weitere Informationen zu '.
'dieser Option finden Sie in der <a href="https://www.google.de/search?q=Analytics+sampleRate+-siteSpeed" '.
'target="gahelp">Google-Suche </a>.</p>',
'D3_GOOGLEANALYTICS_MAIN_SAMPLERATE_1' => "% aller Besucher",
'D3_GOOGLEANALYTICS_MAIN_TRACKPAGELOADTIME' => 'Seitenladezeit mit &uuml;bertragen',
'D3_GOOGLEANALYTICS_MAIN_TRACKPAGELOADTIME_DESC' => '<p>Die Ladezeit Ihrer Seite ist, speziell auch '.
'in Hinblick auf verschiedene L&auml;nder, durchaus ein Faktor, der in das Ranking Ihrer Page einfliesst.<br>'.
'<br>Bei Universal-Analytics wird die Seitenladezeit generell &uuml;bertragen. Durch die Aktivierung dieser '.
'Option wird eine genauere Auswertung zus&auml;tzlich als Event &uuml;bergeben.</p><p>Weitere Informationen '.
'zu dieser Option finden Sie in der <a href="https://www.google.de/search?q=Analytics+track+page+load+time" '.
'target="gahelp">Google-Suche </a>.</p>',
'D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE' => "Seitengeschwindigkeit messen bei...",
'D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE_DESC' => '<p>Die Seitenladegeschwindigkeit wird nicht '.
'bei jedem Seitenaufruf gemessen. Bei wenig frequentierten Seiten verzerrt dies jedoch das Ergebnis. Soll der '.
'Standardwert von 1% ge&auml;ndert werden, tragen Sie den gew&uuml;nschten Wert hier ein. F&uuml;r Webseiten '.
'mit mehr als 1 Million Besuchern pro Tag wird dieser Wert von Google fix auf 1% gestellt.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+site+speed+sample+rate" target="gahelp">Google-Suche </a>.'.
'</p>',
'D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE_1' => "% aller Besucher",
'D3_GOOGLEANALYTICS_MAIN_USEREMARKETING' => 'Remarketing-Auswertung erm&ouml;glichen',
'D3_GOOGLEANALYTICS_MAIN_USEREMARKETING_DESC' => '<p>Wenn Sie sich entschlie&szlig;en, '.
'Remarketing zu nutzen, setzen Sie diesen Haken. Nachdem Sie diese &Auml;nderung vorgenommen haben, '.
'erfasst und analysiert Google Analytics neben den &uuml;blichen Informationen auch das DoubleClick-Cookie, '.
'sofern vorhanden. Das DoubleClick-Cookie erm&ouml;glicht Remarketing im Google Display-Netzwerk f&uuml;r '.
'Produkte wie AdWords. Je nach verwendetem Tracking-Typ muss die Erfassung von Informationen aus dem Display-'.
'Netzwerk im Analytics-Konto aktiviert werden.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+require+displayfeatures" target="gahelp">Google-Suche </a>.'.
'</p>',
'D3_GOOGLEANALYTICS_BOUNCEOPT' => 'Bounce rate optimzation',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SWITCH' => 'Absprungdaten-Optimierung aktivieren',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SWITCH_DESC' => 'Analytics wertet jeden Benutzer, der nicht '.
'innerhalb der Seite einen Link anklickt, als Abbrecher. Mit dieser Option kann der Wert optimiert werden.',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT1' => 'Seitenbesucher nicht als Abbrecher werten nach',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT2' => 'Millisekunden (1000 = 1 Sekunde)',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT_DESC' => '<p>Analytics wertet alle Seitenbucher, die '.
'sich nur eine Seite angesehen habe und dann den Shop verlassen, automatisch als Abbrecher. Zur '.
'Informationsbeschaffung reicht dem Kunden jedoch möglicherweise dieser eine Seitenbesuch aus. Sein Ziel '.
'konnte er erreichen. Demnach ist er eigentlich kein Abbrecher. Das Modul sendet automatisch nach der '.
'angegebenen Sekundenzahl ein EventTracking. Damit wertet Analytics diesen Besucher nur als Abbrecher, wenn '.
'er den Shop vor Ablauf dieser Zeit wieder verlässt. Verweilt er länger im Shop, wird der Besuch dann als '.
'Erfolg gewertet.</p><p>Diese Tracking-Veränderung stellt die Absprungrate daher im Analytics wesentlich '.
'genauer dar. Der Standardwert ist auf 10 Sekunden gesetzt. Ändern Sie bei Bedarf diese Angabe.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+_trackEvent+noBounce" target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDSCROLLEVENT' => 'Seitenbesucher nicht als Abbrecher werten, '.
'wenn gescrollt wurde',
'D3_GOOGLEANALYTICS_BOUNCEOPT_SENDSCROLLEVENT_DESC' => '<p>Analytics wertet alle Seitenbucher, die '.
'sich nur eine Seite angesehen habe und dann den Shop verlassen, automatisch als Abbrecher. Zur '.
'Informationsbeschaffung reicht dem Kunden jedoch möglicherweise dieser eine Seitenbesuch aus. Sein Ziel '.
'konnte er erreichen. Demnach ist er eigentlich kein Abbrecher. Das Modul sendet automatisch ein '.
'EventTracking, wenn der Besucher die Seite gescrollt hat. Damit wertet Analytics diesen Besucher nur als '.
'Abbrecher, wenn er den Shop ohne Scrollen wieder verlässt.</p><p>Diese Tracking-Veränderung stellt die '.
'Absprungrate daher im Analytics wesentlich genauer dar.</p><p>Weitere Informationen zu dieser Option finden '.
'Sie in der <a href="https://www.google.de/search?q=_trackEvent+noBounce+scroll" target="gahelp">Google-Suche'.
'</a>.</p>',
'D3_GOOGLEANALYTICS_ECOMMERCE' => 'eCommerce settings',
'D3_GOOGLEANALYTICS_ECOMMERCE_SENDDATA' => 'eCommerce-Daten &uuml;bertragen',
'D3_GOOGLEANALYTICS_ECOMMERCE_SENDDATA_DESC' => '<p>Mit dieser Einstellung werden '.
'Warenkorbdaten Ihrer Kunden an Analytics &uuml;bertragen. Damit k&ouml;nnen Sie z.B. die Produktleistung und '.
'Umsatzzahlen ermitteln. Diese Option muss auch in Ihrem Analytics-Konto aktiviert werden.</p><p>Weitere '.
'Informationen zu dieser Option finden Sie in der '.
'<a href="https://www.google.de/search?q=Analytics+ecommerce+tracking" target="gahelp">Google-Suche </a>.</p>',
'D3_GOOGLEANALYTICS_ECOMMERCE_USENETTO' => 'Netto-Preise &uuml;bertragen, wenn '.
'verf&uuml;gbar',
'D3_GOOGLEANALYTICS_ECOMMERCE_USENETTO_DESC' => 'Betreiben Sie einen B2B-Shop, &uuml;bertragen '.
'Sie Ihre Artikelpreise netto an Analytics, wenn diese auch im Shop ohne Steuer zur Verf&uuml;gung stehen. ',
'D3_GOOGLEANALYTICS_DOMAIN' => 'Multi-Domain-Einstellungen',
'D3_GOOGLEANALYTICS_DOMAIN_SETALLOWLINKER' => 'Trackingdaten von unterschiedlichen Domains '.
'verwenden',
'D3_GOOGLEANALYTICS_DOMAIN_SETALLOWLINKER_DESC' => '<p>Cross Domain Tracking erlaubt das Sammeln '.
'von Trackinginformationen auch &uuml;ber verschiedene Domains hinweg.</p><p>Weitere Informationen finden '.
'Sie <a href="https://www.google.de/search?q=Analytics+_setAllowLinker" target="gahelp">hier</a>.</p>',
'D3_GOOGLEANALYTICS_DOMAIN_SETDOMAINNAME' => 'fixiert das Tracking-Cookie auf die angegebene '.
'Domain (optional)',
'D3_GOOGLEANALYTICS_DOMAIN_SETDOMAINNAME_DESC' => '<p>Lassen Sie dieses Feld leer, ist das '.
'Tacking-Cookie f&uuml;r unterschiedliche Seiten g&uuml;ltig. Wenn Sie statt dessen eine Domain angeben, ist '.
'das gesetzte Cookie nur f&uuml;r Seiten unter dieser Domain g&uuml;ltig. Andere zu trackende Seiten setzen '.
'dann ein neues Cookie.<br><br>Der Eintrag sollte hier so aussehen: .yourDomainName.com</p><p>Weitere '.
'Informationen finden Sie <a href="https://www.google.de/search?q=Analytics+_setDomainName" target="gahelp">'.
'hier</a>.</p>',
'D3_GOOGLEANALYTICS_DOMAIN_SETCOOKIEPATH' => 'Tracking nur auf ein Verzeichnis '.
'beschr&auml;nken (optional)',
'D3_GOOGLEANALYTICS_DOMAIN_SETCOOKIEPATH_DESC' => '<p>Ein Eintrag hier sollte so aussehen: '.
'/myStore/</p><p>Weitere Informationen finden Sie '.
'<a href="https://www.google.de/search?q=Analytics+set+Cookie+Path" target="gahelp">hier</a>.</p>',
'D3_GOOGLEANALYTICS_DOMAIN_COOKIEPATHCOPY' => 'Cookie Informationen werden in das Verzeichnis '.
'der selben Domain kopiert (optional)',
'D3_GOOGLEANALYTICS_DOMAIN_COOKIEPATHCOPY_DESC' => '<p>Ein Eintrag hier sollte so aussehen: '.
'/myStore/<br>Diese Option ist nur f&uuml;r den asynchronen Trackingcode verf&uuml;gbar.</p><p>Weitere '.
'Informationen finden Sie <a href="https://www.google.de/search?q=Analytics+set+Cookie+Path" target="gahelp">'.
'hier</a>.</p>',
'D3_GOOGLEANALYTICS_BROWSER' => 'Browser-Daten',
'D3_GOOGLEANALYTICS_BROWSER_SETCLIENTINFO' => '<span style="font-weight: bold;">Deaktiviert'.
'</span> die Erkennung von Browserdaten (z.B. Name und Version). Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_BROWSER_SETCLIENTINFO_DESC' => 'Weitere Informationen finden Sie '.
'<a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiWebClient?hl=es#'.
'_gat.GA_Tracker_._getClientInfo" target="gahelp">hier</a>. Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTFLASH' => '<span style="font-weight: bold;">Unterbindet'.
'</span> die Erkennung, ob beim Kunden das Flash-Plugin installiert ist.',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTFLASH_DESC' => 'Weitere Informationen finden Sie '.
'<a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiWebClient?hl=es#'.
'_gat.GA_Tracker_._setDetectFlash" target="gahelp">hier</a>. Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTTITLE' => '<span style="font-weight: bold;">Verhindert'.
'</span> die Erkennung des Seitentitels.',
'D3_GOOGLEANALYTICS_BROWSER_SETDETECTTITLE_DESC' => 'Weitere Informationen finden Sie '.
'<a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiWebClient?hl=es#'.
'_gat.GA_Tracker_._setDetectTitle" target="gahelp">hier</a>. Diese Einstellung steht f&uuml;r Universal '.
'Analytics nicht mehr zur Verf&uuml;gung',
'D3_GOOGLEANALYTICS_CUSTOMVARS' => 'individuelle Daten',
'D3_GOOGLEANALYTICS_CUSTOMVARS_TRANSMIT' => 'individuelle Daten &uuml;bertragen',
'D3_GOOGLEANALYTICS_CUSTOMVARS_TRANSMIT_DESC' => 'Mit individuellen Daten k&ouml;nnen Sie '.
'Parameter &uuml;bermitteln, die sonst im Rahmen des Trackingcodes nicht gesammelt werden. Erg&auml;nzen Sie '.
'den entsprechenden Abschnitt im Template "modules/d3/d3_googleanalytics/views/tpl/widget/'.
'd3_googleanalytics.tpl" (f&uuml;r Async) oder "modules/d3/d3_googleanalytics/views/tpl/widget/inc/'.
'd3ga_universal_custom.tpl" (f&uuml;r Universal) um die gew&uuml;nschten Daten. Details F&uuml;r die '.
'Einrichtung der Datenaufzeichnung bei Analytics entnehmen Sie bitte der Moduldokumentation.<br><br>Weitere '.
'Informationen finden Sie <a href="http://code.google.com/apis/analytics/docs/tracking/'.
'gaTrackingCustomVariables.html" target="gahelp">hier</a>.<br>Auf Anregung durch <a href="http://'.
'www.commodule.de/blog/tracking/zahlungsarten-in-google-analytics-tracken/" target="Commodule">Commodule-Blog'.
'</a> haben wir nun noch weitere Beispiele hinterlegt. Vielen Dank f&uuml;r diese Unterst&uuml;tzung!',
'D3_GOOGLEANALYTICS_SECURITYINFORMATIONS' => 'Im CMS-Baustein "Analytics_Security_'.
'Informations" ist ein Text hinterlegt, den Sie Ihren Kunden unter Ihrer Datenschutzerkl&auml;rung '.
'verf&uuml;gbar machen sollten. Kl&auml;ren Sie jedoch bitte vor Verwendung von Google Analytics Tracking und '.
'diesem Hinweistext ab, ob beides mit den Datenschutzbestimmung Ihres Landes konform geht. '.
'Ausschlie&szlig;lich der Shopbetreiber haftet f&uuml;r Verst&ouml;&szlig;e. Beraten Sie sich im Zweifel mit '.
'Ihrem Rechtsanwalt.<br><br>Nach Aktivierung des Tracking-Codes dauert es in der Regel ca. 24 Stunden, bis '.
'die ersten Tracking-Daten in Analytics zur Verf&uuml;gung stehen.',
'D3_GOOGLEANALYTICS_ADWORDSGENERAL' => 'Conversion-Tracking',
'D3_GOOGLEANALYTICS_ADWORDS_SETCONVERSIONTRACKING' => 'Conversion-Tracking-Code aktivieren',
'D3_GOOGLEANALYTICS_ADWORDS_SETCONVERSIONTRACKING_DESC' => 'Diese Option aktiviert den AdWords-Code. Dann '.
'ist die Eingabe der Conversion-ID und des Conversion-Labels obligatorisch.',
'D3_GOOGLEANALYTICS_ADWORDS_CONVID' => 'Conversion-ID',
'D3_GOOGLEANALYTICS_ADWORDS_CONVID_DESC' => '<p>Diese ID finden Sie in Ihrem AdWords-Konto.'.
'</p><p>Weitere Informationen zu '.
'dieser Option finden Sie in der <a href="https://www.google.de/search?q=AdWords+conversion+id" '.
'target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_ADWORDS_CONVLABEL' => 'Conversion-Label',
'D3_GOOGLEANALYTICS_ADWORDS_CONVLABEL_DESC' => '<p>Weitere Informationen zu '.
'dieser Option finden Sie in der <a href="https://www.google.de/search?q=AdWords+conversion+label" '.
'target="gahelp">Google-Suche</a>.</p>',
'D3_GOOGLEANALYTICS_ADWORDS_DESC' => 'Diese Einstellungen betreffen den Dienst '.
'<a href="http://www.google.de/AdWords" target="_blank">"Google Adwords"</a>. '.
'Möchten Sie diesen nutzen, melden Sie sich auf der Webseite dafür an.',
'D3_GOOGLEANALYTICS_ADWORDS_DESC1' => 'Während der Anmeldung werden Sie aufgefordert, '.
'einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Dies erledigt das vorliegende Modul für Sie. '.
'Die Einstellungen zum Trackingcode nehmen Sie ebenfalls hier vor.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN' => 'Kampagnen-Tracking',
'D3_GOOGLEANALYTICS_ADWORDSCODE_SETCAMPAIGNTRACK' => 'AdWords-Kampagnendaten <span style="'.
'font-weight: bold;">nicht</span> &uuml;bertragen',
'D3_GOOGLEANALYTICS_ADWORDSCODE_SETCAMPAIGNTRACK_DESC' => 'Das Kampagnentracking ist im Standard '.
'aktiviert. Setzen Sie diesen Haken, um die Kampagnen&uuml;bertragung zu deaktivieren.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT' => 'Kampagnenlaufzeit (optional, sonst 6 Monate) - '.
'nur f&uuml;r Async-Code',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT_DESC' => 'Geben Sie hier eine optionale Laufzeit dieser '.
'Kampagne in Millisekunden an.<br><br>30 Tage = 2592000000<br>365 Tage = 31536000000<br><br>F&uuml;r '.
'Universal Analytics tragen Sie diesen Wert bitte in Ihrem Analytics-Konto nach.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT_MS' => 'Millisekunden',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNOKEY' => 'erzwinge Verwendung der folgenden Kampagne',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNOKEY_DESC' => 'die hier festgelegte Kampagne wird zwingend '.
'verwendet, auch wenn die Cookie-Einstellungen schon eine andere Kampagne liefern.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPIDKEY' => 'Kampagnen-ID (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPIDKEY_DESC' => 'Geben Sie hier die ID dieser Kamapagne an.<br>'.
'<br>Weitere Informationen finden Sie hier: <ul><li>Universal: <a href="https://developers.google.com/'.
'analytics/devguides/collection/analyticsjs/field-reference#campaignId" target="gahelp">hier</a></li></ul>'.
'Diese Angabe ist nur in Universal Analytics verf&uuml;gbar.',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNAMEKEY' => 'Kampagnenname (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNAMEKEY_DESC' => 'Unter diesem Namen sehen Sie die Auswertung '.
'der Daten aus dieser Shopkampagne in Analytics.<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: '.
'<a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._'.
'setCampNameKey" target="gahelp">hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/'.
'devguides/collection/analyticsjs/field-reference#campaignName" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPMEDIUMKEY' => 'Kampagnenmedium (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPMEDIUMKEY_DESC' => 'Definieren Sie das Medium dieser Kampagne '.
'(z.B. Werbebanner, Mailkampagne oder auch Klickkampagne). Diese Einstellung finden Sie in der Kampagnen'.
'auswertung unter "Keywords".<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: <a href="http://'.
'code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._setCampMediumKey" '.
'target="gahelp">hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/devguides/'.
'collection/analyticsjs/field-reference#campaignMedium" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPSOURCEKEY' => 'Kampagnenquelle (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPSOURCEKEY_DESC' => 'Benennen Sie hier die Quelle der Shopkampagne, '.
'vergeben Sie zum Beispiel den Webseiten-Name oder den Firmenname.<br><br>Weitere Informationen finden Sie '.
'hier: <ul><li>Async: <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#'.
'_gat.GA_Tracker_._setCampSourceKey" target="gahelp">hier</a></li><li>Universal: <a href="https://developers.'.
'google.com/analytics/devguides/collection/analyticsjs/field-reference#campaignSource" target="gahelp">hier'.
'</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPTERMKEY' => 'Schl&uuml;sselwort(e) Ihrer Kampagne (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPTERMKEY_DESC' => 'Auch diese Keywords erscheinen in Analytics '.
'unter "Keywords".<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: <a href="http://code.google.'.
'com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._setCampTermKey" target="gahelp">'.
'hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/devguides/collection/analyticsjs'.
'/field-reference#campaignKeyword" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPCONTENTKEY' => 'Inhaltsbeschreibung der Kampagne (optional)',
'D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPCONTENTKEY_DESC' => 'Den beschrieben Inhalt finden Sie in der '.
'Auswertung als "Ad Content".<br><br>Weitere Informationen finden Sie hier: <ul><li>Async: <a href="http://'.
'code.google.com/apis/analytics/docs/gaJS/gaJSApiCampaignTracking.html#_gat.GA_Tracker_._setCampContentKey" '.
'target="gahelp">hier</a></li><li>Universal: <a href="https://developers.google.com/analytics/devguides/'.
'collection/analyticsjs/field-reference#campaignContent" target="gahelp">hier</a></li></ul>',
'D3_GOOGLEANALYTICS_ADWORDSREMARKETING' => 'Remarketing',
'D3_GOOGLEANALYTICS_ADWORDS_SETREMARKETING' => 'Remarketing-Code aktivieren',
'D3_GOOGLEANALYTICS_ADWORDS_SETREMARKETING_DESC' => 'Die Option aktiviert den Remarketing-Code. '.
'Dann ist die Eingabe der Conversion-ID obligatorisch.',
'D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVID' => 'Conversion-ID',
'D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVID_DESC' => 'Tragen Sie hier die zu Ihrem eingerichteten '.
'Remarketing zugehörige Conversion-ID ein. Diese kann mit Ihrer AdWords-Conversion-Tracking-ID identisch '.
'sein. Auch Abweichungen sind möglich.',
'D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVLABEL' => 'Conversion-Label (optional)',
'd3tbclgoogleanalytics_campaigns' => 'andere Kampagnen',
'D3_GOOGLEANALYTICS_CAMPAIGNS_DESC' => 'Diese Einstellungen betreffen andere (auch '.
'google-fremde) Kampagnen, die mit den Leistungen des Moduls nicht abgedeckt sind. Details zu den Kampagnen '.
'und dessen Implementierung erhalten Sie beim jeweiligen Anbieter.',
'D3_GOOGLEANALYTICS_CAMPAIGNS_DESC1' => 'Während der Anmeldung werden Sie aufgefordert, '.
'einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Konfigurieren Sie diesen bei Ihem '.
'Kampagnenanbieter und tragen Sie diesen dann hier ein das Eingabefeld ein.',
'D3_GOOGLEANALYTICS_CAMPAIGNSETTINGS' => 'Kampagnen-Einstellungen',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTRACK' => 'Kampagnencode übertragen',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTRACK_DESC' => 'Nur mit dieser Option wird der eingegebene '.
'Kampagnencode ausgeliefert',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTHANKYOUONLY' => 'Kampagnendaten nur in Bestellabschlussseite '.
'verwenden',
'D3_GOOGLEANALYTICS_SETCAMPAIGNTHANKYOUONLY_DESC' => 'Ist dieser Haken nicht gesetzt, wird der '.
'Kampagnencode shopweit eingef&uuml;gt. Ob diese Einstellung notwendig ist, erfahren Sie bei Ihrem Conversion '.
'Tracking Anbieter.',
'D3_GOOGLEANALYTICS_CAMPAIGNCODE_CODE' => 'Code',
'D3_GOOGLEANALYTICS_CAMPAIGNCODE_CODE_DESC' => 'Kopieren Sie hier den Kampagnen-Tracking-Code '.
'ein, den Sie vom Anbieter erhalten haben. Kopieren Sie auch ein eventuell vorhandenes "script"-Tag mit. '.
'Dieser Code wird 1:1 in den Seitenquelltext eingef&uuml;gt und nicht geparst.',
'D3_GOOGLEANALYTICS_TS_DESC' => 'Diese Einstellungen betreffen den Dienst '.
'<a href="http://www.google.com/trustedstores/" target="_blank">"Google Zertifizierter Händler"</a>. '.
'Möchten Sie diesen nutzen, melden Sie sich auf der Webseite dafür an.',
'D3_GOOGLEANALYTICS_TS_DESC1' => 'Während der Aktivierung werden Sie '.
'aufgefordert, einen Trackingcode in den Quelltext Ihrer Seite einzukopieren. Dieser wird von unserem Modul '.
'eingebunden. Damit können Sie die Qualifizierungsphase starten. Erst nach erfolgreicher Beendigung sehen Sie '.
'das "Google Zertifizierter Händler"-Siegel. Über dessen Darstellung entscheidet allein Google.',
'D3_GOOGLEANALYTICS_TS_ACTIVE' => 'activate "Trusted Store" in shop',
'D3_GOOGLEANALYTICS_TS_ACTIVE_DESC' => 'Dieser Haken bindet die nötigen Trackingcodes '.
'in den Quelltext Ihres Shops ein. Ob Sie das Gütesiegel im Shop sehen, entscheidet jedoch nur Google intern. '.
'Sind Sie der Meinung, das Siegel sollte angezeigt werden, wenden Sie sich bitte an Ihren Betreuer bei Google.',
'D3_GOOGLEANALYTICS_TS_ID' => 'account id',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei lagernden Artikeln',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS' => 'Werktag(e)',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
'nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier '.
'den für am Lager befindlicher Artikel im Normalfall größten Zeitraum bis zum Versand in Tagen an (z.B. 3 bei '.
'"1 bis 3 Tage"). Nach dem voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum abgeschlossenen '.
'Kauf.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen festen Feiertag, wird der '.
'nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht berücksichtigt. Um die '.
'Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse entsprechend.</p><p>Die '.
'Unterscheidung zwischen lagernden und nicht lagernden Artikeln wird nur bei aktivierter '.
'Lagerstandsverwaltung getroffen. Sonst werden alle Artikel als "lagernd" angesehen.</p>',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_OUTOFSTOCK' => 'Zeitraum vom Bestelleingang bis zum Versand '.
'bei <b>nicht</b> lagernden Artikeln',
'D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTEROUTOFSTOCK_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
'nach welchem Zeitraum ausgehend vom Bestelleingang die bestellten Artikel versendet werden. Geben Sie hier '.
'den für <b>nicht</b> am Lager befindlicher Artikel im Normalfall größten Zeitraum bis zum Versand in Tagen '.
'an (z.B. 3 bei "1 bis 3 Tage"). Nach dem voraussichtlichen Versanddatum erhält der Kunde eine Umfrage zum '.
'abgeschlossenen Kauf.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen festen Feiertag, '.
'wird der nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht berücksichtigt. '.
'Um die Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse entsprechend.</p>',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER' => 'Zeitraum vom Versand bis zur Lieferung beim '.
'Empfänger',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS' => 'Werktag(e)',
'D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC' => '<p>Google teilt Ihrem Kunden per Mail mit, '.
'nach welchem Zeitraum die bestellten Artikel in der Regel beim Kunden eintreffen. Geben Sie hier den für '.
'Normalfälle größten Zeitraum für die Lieferung in Tagen an (z.B. 4 bei "1 bis 4 Tage"). Der errechnete '.
'Termin wird dem Kunden per Mail mitgeteilt.</p><p>Fällt der errechnete Termin auf ein Wochenende oder einen '.
'festen Feiertag, wird der nächstmögliche Termin verwendet. Bewegliche und regionale Feiertage werden nicht '.
'berücksichtigt. Um die Liste der Ausnahmen anzupassen, erweitern Sie die Überladung der thankyou-Klasse '.
'entsprechend.</p>',
'D3_GOOGLEANALYTICS_TS_SHOPPING' => 'Verbindung zu Google Shopping',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE' => 'zusätzliche Daten aus Google Shopping '.
'übertragen',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE_DESC' => 'Verwenden Sie Google Shopping und möchten '.
'zusätzliche Daten zur Identifizierung übertragen, setzen Sie diesen Haken. Die folgenden Angaben sind dann '.
'ebenfalls erforderlich.',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID' => 'Google Shopping Kontonummer',
'D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID_DESC' => 'Tragen Sie hier die Kontonummer (Account ID) '.
'aus Google Shopping ein.',
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY' => 'Kürzel des Landes Ihres Google Shopping-Kontos',
'D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY_DESC' => 'Geben Sie hier das Land Ihres Google Shopping '.
'Kontos an. Erwartet wird der ISO-3166-Ländercode (z.B.: DE, CH, AT, FR).',
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE' => 'Kürzel der Sprache Ihres Google Shopping-Kontos',
'D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE_DESC' => 'Geben Sie hier die Sprache Ihres Google '.
'Shopping Kontos an. Erwartet wird der ISO-639-1-Sprachcode (z.B.: de, en, fr).',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID' => 'Identifikation Ihrer Artikel bei Google '.
'Shopping',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_ARTNUM' => 'Artikelnummer (oxartnum)',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_OXID' => 'interne Ident-Nummer (oxid)',
'D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_DESC' => 'Über welches Feld kann Google Shopping die '.
'dort hinterlegten Artikel identfizieren?',
'D3_GOOGLEANALYTICS_METADATA_TITLE' => 'Google Services Schnittstelle',
'D3_GOOGLEANALYTICS_METADATA_DESC' => 'Dieses Modul stellt Ihnen die schnelle und '.
'unkomplizierte Einbindung Ihres Google-Analytics-Kontos in Ihren Shop zur Verf&uuml;gung. Hierbei werden '.
'&uuml;ber standardisierte Schnittstellen die Besucherdaten und eCommerce-Daten zu Google &uuml;bertragen. '.
'Ebenfalls &uuml;bermittelt werden Daten der Website-Suche.',
'D3_GOOGLEANALYTICS_MAIN_USEOPTOUT' => 'Opt Out anbieten',
'D3_GOOGLEANALYTICS_MAIN_USEOPTOUT_DESC' => '<p>Wird dieser Haken gesetzt, wird im Frontend '.
'ein Opt-Out-Bereich im Header angezeigt. In dem Bereich kann der Benutzer einen Link anklicken, '.
'mit dem für diesen Nutzer das Tracking für diese Seite deaktiviert wird.</p><p>Weitere Informationen zu '.
'dieser Option finden Sie in der <a href="https://www.google.de/search?q=Analytics+_opt+out+script" '.
'target="gahelp">Google-Suche</a>.</p>',
// Erweiterung des Links in der Fussnote "Hilfe Starten"
'D3_GOOGLEANALYTICS_HELPLINK' => 'Fragen-zu-speziellen-Modulen/Google-Analytics/',
);
/*
[{ oxmultilang ident="GENERAL_YOUWANTTODELETE" }]
*/

View File

@ -0,0 +1,334 @@
[{include file="headitem.tpl" title="D3_GOOGLEANALYTICS_CFG_TITLE"|oxmultilangassign}]
<script type="text/javascript">
<!--
[{if $updatelist == 1}]
UpdateList('[{$oxid}]');
[{/if}]
function UpdateList( sID)
{
var oSearch = parent.list.document.getElementById("search");
oSearch.oxid.value=sID;
oSearch.fnc.value='';
oSearch.submit();
}
function EditThis( sID)
{
var oTransfer = document.getElementById("transfer");
oTransfer.oxid.value=sID;
oTransfer.cl.value='';
oTransfer.submit();
var oSearch = parent.list.document.getElementById("search");
oSearch.actedit.value = 0;
oSearch.oxid.value=sID;
oSearch.submit();
}
function _groupExp(el) {
var _cur = el.parentNode;
if (_cur.className == "exp") _cur.className = "";
else _cur.className = "exp";
}
-->
</script>
<style type="text/css">
<!--
fieldset {
border: 1px inset black;
background-color: #F0F0F0;
}
legend {
font-weight: bold;
}
dl dt {
font-weight: normal;
width: 55%;
}
.ext_edittext {
padding: 2px;
}
td.edittext {
white-space: normal;
}
.servicedesc {
background-color: #d4ffd4;
border: 1px solid green;
margin-bottom: 10px;
padding: 5px;
text-align: center;
}
.servicedesc a {
text-decoration: underline;
}
-->
</style>
[{if $readonly}]
[{assign var="readonly" value="readonly disabled"}]
[{else}]
[{assign var="readonly" value=""}]
[{/if}]
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="actshop" value="[{$shop->id}]">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="editval[oxid]" value="[{$oxid}]">
<table border="0" width="98%">
<tr>
<td valign="top" class="edittext">
[{if $oView->getValueStatus() == 'error'}]
<hr>
<span style="font-weight: bold;">[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_DESC"}]</span>
<br>
<br>
<span class="d3modcfg_btn fixed icon status_attention">
<input type="submit" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_BTN"}]">
<span></span>
</span>
</form>
</div>
[{else}]
[{if $oView->getGaType() == 'universal'}]
[{assign var="blUniversalDisabled" value="disabled readonly"}]
[{assign var="blAsyncDisabled" value=""}]
[{elseif $oView->getGaType() == 'async'}]
[{assign var="blUniversalDisabled" value=""}]
[{assign var="blAsyncDisabled" value="disabled readonly"}]
[{else}]
[{assign var="blUniversalDisabled" value=""}]
[{assign var="blAsyncDisabled" value=""}]
[{/if}]
<div class="servicedesc">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDS_DESC"}] [{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDS_DESC1"}]</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GASetAdWordsCampaignTrack">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSCODE_SETCAMPAIGNTRACK"}]</label>
[{* _gaq.push(['_setCampaignTrack', false]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GASetAdWordsCampaignTrack]" value="0">
<input id="blD3GASetAdWordsCampaignTrack" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GASetAdWordsCampaignTrack')}]checked[{/if}] name="value[blD3GASetAdWordsCampaignTrack]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSCODE_SETCAMPAIGNTRACK_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GASetCampNoKey">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNOKEY"}]</label>
[{* _gaq.push(['_setCampNOKey', 'ga_nooverride']); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GASetCampNoKey]" value="0">
<input id="blD3GASetCampNoKey" class="edittext ext_edittext" type="checkbox" value="1" [{$blUniversalDisabled}] [{if $edit->getValue('blD3GASetCampNoKey')}]checked[{/if}] name="value[blD3GASetCampNoKey]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNOKEY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCampIdKey">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPIDKEY"}]</label>
[{* _gaq.push(['_setCampId', 'ga_content']); *}]
</dt>
<dd>
<input id="sD3GASetCampIdKey" class="edittext ext_edittext" type="text" [{$blAsyncDisabled}] size="30" maxlength="100" value="[{$edit->getValue('sD3GASetCampIdKey')}]" name="value[sD3GASetCampIdKey]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPIDKEY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCampNameKey">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNAMEKEY"}]</label>
[{* _gaq.push(['_setCampNameKey', 'ga_campaign']); *}]
</dt>
<dd>
<input id="sD3GASetCampNameKey" class="edittext ext_edittext" type="text" size="30" maxlength="100" value="[{$edit->getValue('sD3GASetCampNameKey')}]" name="value[sD3GASetCampNameKey]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPNAMEKEY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCampMediumKey">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPMEDIUMKEY"}]</label>
[{* _gaq.push(['_setCampMediumKey', 'ga_medium']); *}]
</dt>
<dd>
<input id="sD3GASetCampMediumKey" class="edittext ext_edittext" type="text" size="30" maxlength="100" value="[{$edit->getValue('sD3GASetCampMediumKey')}]" name="value[sD3GASetCampMediumKey]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPMEDIUMKEY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCampSourceKey">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPSOURCEKEY"}]</label>
[{* _gaq.push(['_setCampSourceKey', 'ga_source']); *}]
</dt>
<dd>
<input id="sD3GASetCampSourceKey" class="edittext ext_edittext" type="text" size="30" maxlength="100" value="[{$edit->getValue('sD3GASetCampSourceKey')}]" name="value[sD3GASetCampSourceKey]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPSOURCEKEY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCampTermKey">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPTERMKEY"}]</label>
[{* _gaq.push(['_setCampTermKey', 'ga_term']); *}]
</dt>
<dd>
<input id="sD3GASetCampTermKey" class="edittext ext_edittext" type="text" size="30" maxlength="100" value="[{$edit->getValue('sD3GASetCampTermKey')}]" name="value[sD3GASetCampTermKey]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPTERMKEY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCampContentKey">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPCONTENTKEY"}]</label>
[{* _gaq.push(['_setCampContentKey', 'ga_content']); *}]
</dt>
<dd>
<input id="sD3GASetCampContentKey" class="edittext ext_edittext" type="text" size="30" maxlength="100" value="[{$edit->getValue('sD3GASetCampContentKey')}]" name="value[sD3GASetCampContentKey]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPCONTENTKEY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCampaignCookieTimeout">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT"}]</label>
[{* _gaq.push(['_setCampaignCookieTimeout', 31536000000]); *}]
</dt>
<dd>
<input id="sD3GASetCampaignCookieTimeout" class="edittext ext_edittext" [{$blUniversalDisabled}] type="text" size="30" maxlength="30" value="[{$edit->getValue('sD3GASetCampaignCookieTimeout')}]" name="value[sD3GASetCampaignCookieTimeout]"> [{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT_MS"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDSMAIN_SETCAMPAIGNCOOKIETIMEOUT_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSGENERAL"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GASetConversionTracking">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDS_SETCONVERSIONTRACKING"}]</label>
[{* _gaq.push(['_setCampaignTrack', false]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GASetConversionTracking]" value="0">
<input id="blD3GASetConversionTracking" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GASetConversionTracking')}]checked[{/if}] name="value[blD3GASetConversionTracking]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDS_SETCONVERSIONTRACKING_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GAAdWordConversionId">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDS_CONVID"}]</label>
</dt>
<dd>
<input type="text" class="edittext ext_edittext" size="15" maxlength="50" name="value[sD3GAAdWordConversionId]" value="[{$edit->getValue('sD3GAAdWordConversionId')}]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDS_CONVID_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GAAdWordConversionLabel">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDS_CONVLABEL"}]</label>
</dt>
<dd>
<input type="text" class="edittext ext_edittext" size="15" maxlength="50" name="value[sD3GAAdWordConversionLabel]" value="[{$edit->getValue('sD3GAAdWordConversionLabel')}]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDS_CONVLABEL_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDSREMARKETING"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GASetRemarketing">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDS_SETREMARKETING"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blD3GASetRemarketing]" value="0">
<input id="blD3GASetRemarketing" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GASetRemarketing')}]checked[{/if}] name="value[blD3GASetRemarketing]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDS_SETREMARKETING_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GARemarketingConversionId">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVID"}]</label>
</dt>
<dd>
<input type="text" class="edittext ext_edittext" size="15" maxlength="15" name="value[sD3GARemarketingConversionId]" value="[{$edit->getValue('sD3GARemarketingConversionId')}]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVID_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GARemarketingConversionLabel">[{oxmultilang ident="D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVLABEL"}]</label>
</dt>
<dd>
<input type="text" class="edittext ext_edittext" size="15" maxlength="15" name="value[sD3GARemarketingConversionLabel]" value="[{$edit->getValue('sD3GARemarketingConversionLabel')}]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ADWORDS_REMARKETINGCONVLABEL_DESC"}]
</dd>
</dl>
</div>
</div>
<table width="100%">
<tr>
<td class="edittext ext_edittext" align="left"><br>
<span class="d3modcfg_btn icon status_ok">
<input type="submit" name="save" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}]">
<span></span>
</span>
</td>
</tr>
</table>
[{/if}]
</td>
</tr>
</table>
[{include file="d3_cfg_mod_inc.tpl"}]
<script type="text/javascript">
if (parent.parent) {
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxgoogleanalytics"}]";
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3tbclgoogleanalytics_adwords"}]";
parent.parent.sWorkArea = "[{$_act}]";
parent.parent.setTitle();
}
</script>

View File

@ -0,0 +1,186 @@
[{include file="headitem.tpl" title="D3_GOOGLEANALYTICS_CFG_TITLE"|oxmultilangassign}]
<script type="text/javascript">
<!--
[{if $updatelist == 1}]
UpdateList('[{$oxid}]');
[{/if}]
function UpdateList( sID)
{
var oSearch = parent.list.document.getElementById("search");
oSearch.oxid.value=sID;
oSearch.fnc.value='';
oSearch.submit();
}
function EditThis( sID)
{
var oTransfer = document.getElementById("transfer");
oTransfer.oxid.value=sID;
oTransfer.cl.value='';
oTransfer.submit();
var oSearch = parent.list.document.getElementById("search");
oSearch.actedit.value = 0;
oSearch.oxid.value=sID;
oSearch.submit();
}
function _groupExp(el) {
var _cur = el.parentNode;
if (_cur.className == "exp") _cur.className = "";
else _cur.className = "exp";
}
-->
</script>
<style type="text/css">
<!--
fieldset {
border: 1px inset black;
background-color: #F0F0F0;
}
legend {
font-weight: bold;
}
dl dt {
font-weight: normal;
width: 55%;
}
.ext_edittext {
padding: 2px;
}
td.edittext {
white-space: normal;
}
.servicedesc {
background-color: #d4ffd4;
border: 1px solid green;
margin-bottom: 10px;
padding: 5px;
text-align: center;
}
.servicedesc a {
text-decoration: underline;
}
-->
</style>
[{if $readonly}]
[{assign var="readonly" value="readonly disabled"}]
[{else}]
[{assign var="readonly" value=""}]
[{/if}]
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="actshop" value="[{$shop->id}]">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="editval[oxid]" value="[{$oxid}]">
<table border="0" width="98%">
<tr>
<td valign="top" class="edittext">
[{if $oView->getValueStatus() == 'error'}]
<hr>
<span style="font-weight: bold;">[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_DESC"}]</span>
<br>
<br>
<span class="d3modcfg_btn fixed icon status_attention">
<input type="submit" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_BTN"}]">
<span></span>
</span>
</form>
</div>
[{else}]
<div class="servicedesc">[{oxmultilang ident="D3_GOOGLEANALYTICS_CAMPAIGNS_DESC"}] [{oxinputhelp ident="D3_GOOGLEANALYTICS_CAMPAIGNS_DESC1"}]</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_CAMPAIGNSETTINGS"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GASetCampaignTrack">[{oxmultilang ident="D3_GOOGLEANALYTICS_SETCAMPAIGNTRACK"}]</label>
[{* _gaq.push(['_setCampaignTrack', false]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GASetCampaignTrack]" value="0">
<input id="blD3GASetCampaignTrack" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GASetCampaignTrack')}]checked[{/if}] name="value[blD3GASetCampaignTrack]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_SETCAMPAIGNTRACK_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GASetCampaignOnThankyouOnly">[{oxmultilang ident="D3_GOOGLEANALYTICS_SETCAMPAIGNTHANKYOUONLY"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blD3GASetCampaignOnThankyouOnly]" value="0">
<input id="blD3GASetCampaignOnThankyouOnly" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GASetCampaignOnThankyouOnly')}]checked[{/if}] name="value[blD3GASetCampaignOnThankyouOnly]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_SETCAMPAIGNTHANKYOUONLY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GACampaignCode">[{oxmultilang ident="D3_GOOGLEANALYTICS_CAMPAIGNCODE_CODE"}]</label>
</dt>
<dd>
<textarea id="sD3GACampaignCode" class="edittext ext_edittext" cols="80" rows="7" name="value[sD3GACampaignCode]">[{strip}]
[{$edit->getValue('sD3GACampaignCode')}]
[{/strip}]</textarea>
[{oxinputhelp ident="D3_GOOGLEANALYTICS_CAMPAIGNCODE_CODE_DESC"}]
</dd>
</dl>
</div>
</div>
<table width="100%">
<tr>
<td class="edittext ext_edittext" align="left"><br>
<span class="d3modcfg_btn icon status_ok">
<input type="submit" name="save" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}]">
<span></span>
</span>
</td>
</tr>
</table>
[{/if}]
</td>
</tr>
</table>
[{include file="d3_cfg_mod_inc.tpl"}]
<script type="text/javascript">
if (parent.parent) {
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxgoogleanalytics"}]";
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3tbclgoogleanalytics_adwords"}]";
parent.parent.sWorkArea = "[{$_act}]";
parent.parent.setTitle();
}
</script>

View File

@ -0,0 +1,442 @@
[{include file="headitem.tpl" title="D3_GOOGLEANALYTICS_CFG_TITLE"|oxmultilangassign}]
<script type="text/javascript">
<!--
[{if $updatelist == 1}]
UpdateList('[{$oxid}]');
[{/if}]
function UpdateList( sID)
{
var oSearch = parent.list.document.getElementById("search");
oSearch.oxid.value=sID;
oSearch.fnc.value='';
oSearch.submit();
}
function EditThis( sID)
{
var oTransfer = document.getElementById("transfer");
oTransfer.oxid.value=sID;
oTransfer.cl.value='';
oTransfer.submit();
var oSearch = parent.list.document.getElementById("search");
oSearch.actedit.value = 0;
oSearch.oxid.value=sID;
oSearch.submit();
}
function _groupExp(el) {
var _cur = el.parentNode;
if (_cur.className == "exp") _cur.className = "";
else _cur.className = "exp";
}
-->
</script>
<style type="text/css">
<!--
fieldset {
border: 1px inset black;
background-color: #F0F0F0;
}
legend {
font-weight: bold;
}
dl dt {
font-weight: normal;
width: 55%;
}
.ext_edittext {
padding: 2px;
}
td.edittext {
white-space: normal;
}
.servicedesc {
background-color: #d4ffd4;
border: 1px solid green;
margin-bottom: 10px;
padding: 5px;
text-align: center;
}
.servicedesc a {
text-decoration: underline;
}
-->
</style>
[{if $readonly}]
[{assign var="readonly" value="readonly disabled"}]
[{else}]
[{assign var="readonly" value=""}]
[{/if}]
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="actshop" value="[{$shop->id}]">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="editval[oxid]" value="[{$oxid}]">
<table border="0" width="98%">
<tr>
<td valign="top" class="edittext">
[{include file="d3_cfg_mod_active.tpl"}]
[{if $edit->getErrorMessage()}]
[{elseif $oView->getValueStatus() == 'error'}]
<hr>
<span style="font-weight: bold;">[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_DESC"}]</span>
<br>
<br>
<span class="d3modcfg_btn fixed icon status_attention">
<input type="submit" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_BTN"}]">
<span></span>
</span>
[{else}]
[{if $oView->getGaType() == 'universal'}]
[{assign var="blUniversalDisabled" value="disabled readonly"}]
[{assign var="blAsyncDisabled" value=""}]
[{elseif $oView->getGaType() == 'async'}]
[{assign var="blUniversalDisabled" value=""}]
[{assign var="blAsyncDisabled" value="disabled readonly"}]
[{else}]
[{assign var="blUniversalDisabled" value=""}]
[{assign var="blAsyncDisabled" value=""}]
[{/if}]
<hr>
<div class="servicedesc">[{oxmultilang ident="D3_GOOGLEANALYTICS_DESC"}] [{oxinputhelp ident="D3_GOOGLEANALYTICS_DESC1"}]</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN"}]
</span>
</a>
<dl>
<dt style="height: 25px;">
<label for="sD3GAType">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_GATYPE"}]</label>
</dt>
<dd>
<input type="radio" name="value[sD3GAType]" value="universal" [{if $oView->getGaType() != 'async'}]checked[{/if}] onclick="alert('[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_GATYPE_UNIVERSAL_DESC"}]');"> [{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_GATYPE_UNIVERSAL"}]<br>
<input type="radio" name="value[sD3GAType]" value="async" [{if $oView->getGaType() == 'async'}]checked[{/if}] onclick="alert('[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_GATYPE_ASYNC_DESC"}]');"> [{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_GATYPE_ASYNC"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_GATYPE_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GAId">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_GAID"}]</label>
[{* _gaq.push(['_setAccount', 'UA_XXX']); *}]
</dt>
<dd>
<input id="sD3GAId" class="edittext ext_edittext" type="text" size="15" maxlength="20" value="[{$edit->getValue('sD3GAId')}]" name="value[sD3GAId]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_GAID_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GAAnonymizeIP">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_ANONYMIZEIP"}]</label>
[{* _gaq.push(['_gat._anonymizeIp']); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GAAnonymizeIP]" value="0">
<input id="blD3GAAnonymizeIP" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GAAnonymizeIP')}]checked[{/if}] name="value[blD3GAAnonymizeIP]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_ANONYMIZEIP_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GASampleRate">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_SAMPLERATE"}]</label>
[{* _gaq.push(['_setSampleRate', 5]); *}]
</dt>
<dd>
<input type="hidden" name="value[iD3GASampleRate]" value="0">
<input type="text" id="iD3GASampleRate" class="edittext ext_edittext" value="[{if $edit->getValue('iD3GASampleRate')}][{$edit->getValue('iD3GASampleRate')}][{else}]100[{/if}]" size="5" maxlength="3" name="value[iD3GASampleRate]"> [{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_SAMPLERATE_1"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_SAMPLERATE_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GATrackPageLoadTime">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_TRACKPAGELOADTIME"}]</label>
[{* _gaq.push(['_gat._trackPageLoadTime']); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GATrackPageLoadTime]" value="0">
<input id="blD3GATrackPageLoadTime" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GATrackPageLoadTime')}]checked[{/if}] name="value[blD3GATrackPageLoadTime]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_TRACKPAGELOADTIME_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GASiteSpeedSampleRate">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE"}]</label>
[{* _gaq.push(['_setSiteSpeedSampleRate', 5]); *}]
</dt>
<dd>
<input type="hidden" name="value[iD3GASiteSpeedSampleRate]" value="0">
<input type="text" id="iD3GASiteSpeedSampleRate" class="edittext ext_edittext" value="[{if $edit->getValue('iD3GASiteSpeedSampleRate')}][{$edit->getValue('iD3GASiteSpeedSampleRate')}][{else}]1[{/if}]" size="5" maxlength="3" name="value[iD3GASiteSpeedSampleRate]"> [{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE_1"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_SITESPEEDSAMPLERATE_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GAUseRemarketing">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_USEREMARKETING"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blD3GAUseRemarketing]" value="0">
<input id="blD3GAUseRemarketing" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GAUseRemarketing')}]checked[{/if}] name="value[blD3GAUseRemarketing]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_USEREMARKETING_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GAUseOptOut">[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN_USEOPTOUT"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blD3GAUseOptOut]" value="0">
<input id="blD3GAUseOptOut" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GAUseOptOut')}]checked[{/if}] name="value[blD3GAUseOptOut]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_MAIN_USEOPTOUT_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_BOUNCEOPT"}]
</span>
</a>
<dl>
<dt>
<label for="blUseBounceRateOptimization">[{oxmultilang ident="D3_GOOGLEANALYTICS_BOUNCEOPT_SWITCH"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blUseBounceRateOptimization]" value="0">
<input id="blUseBounceRateOptimization" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blUseBounceRateOptimization')}]checked[{/if}] name="value[blUseBounceRateOptimization]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_BOUNCEOPT_SWITCH_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="iSendNoBounceEventTime">[{oxmultilang ident="D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT1"}]</label>
</dt>
<dd>
<input id="iSendNoBounceEventTime" class="edittext ext_edittext" type="text" size="5" maxlength="5" value="[{if $edit->getValue('iSendNoBounceEventTime')}][{$edit->getValue('iSendNoBounceEventTime')}][{else}]10000[{/if}]" name="value[iSendNoBounceEventTime]">
[{oxmultilang ident="D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT2"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_BOUNCEOPT_SENDTIMEEVENT_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blSendNoBounceEventScroll">[{oxmultilang ident="D3_GOOGLEANALYTICS_BOUNCEOPT_SENDSCROLLEVENT"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blSendNoBounceEventScroll]" value="0">
<input id="blSendNoBounceEventScroll" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blSendNoBounceEventScroll')}]checked[{/if}] name="value[blSendNoBounceEventScroll]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_BOUNCEOPT_SENDSCROLLEVENT_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_ECOMMERCE"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GASendECommerce">[{oxmultilang ident="D3_GOOGLEANALYTICS_ECOMMERCE_SENDDATA"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blD3GASendECommerce]" value="0">
<input id="blD3GASendECommerce" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GASendECommerce')}]checked[{/if}] name="value[blD3GASendECommerce]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ECOMMERCE_SENDDATA_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GAUseNetto">[{oxmultilang ident="D3_GOOGLEANALYTICS_ECOMMERCE_USENETTO"}]</label>
</dt>
<dd>
<input type="hidden" name="value[blD3GAUseNetto]" value="0">
<input id="blD3GAUseNetto" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GAUseNetto')}]checked[{/if}] name="value[blD3GAUseNetto]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_ECOMMERCE_USENETTO_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_DOMAIN"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GAAllowDomainLinker">[{oxmultilang ident="D3_GOOGLEANALYTICS_DOMAIN_SETALLOWLINKER"}]</label>
[{* _gaq.push(['_setAllowLinker', true]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GAAllowDomainLinker]" value="0">
<input id="blD3GAAllowDomainLinker" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GAAllowDomainLinker')}]checked[{/if}] name="value[blD3GAAllowDomainLinker]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_DOMAIN_SETALLOWLINKER_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetDomainName">[{oxmultilang ident="D3_GOOGLEANALYTICS_DOMAIN_SETDOMAINNAME"}]</label>
[{* _gaq.push(['_setDomainName', '.example-petstore.com']); *}]
[{* if used _gaq.push(['_setAllowHash', false]); *}]
</dt>
<dd>
<input id="sD3GASetDomainName" class="edittext ext_edittext" type="text" size="30" maxlength="200" value="[{$edit->getValue('sD3GASetDomainName')}]" name="value[sD3GASetDomainName]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_DOMAIN_SETDOMAINNAME_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GASetCookiePath">[{oxmultilang ident="D3_GOOGLEANALYTICS_DOMAIN_SETCOOKIEPATH"}]</label>
[{* _gaq.push(['_setCookiePath', '/path/of/cookie/']); *}]
</dt>
<dd>
<input id="sD3GASetCookiePath" class="edittext ext_edittext" type="text" size="30" maxlength="150" value="[{$edit->getValue('sD3GASetCookiePath')}]" name="value[sD3GASetCookiePath]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_DOMAIN_SETCOOKIEPATH_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GACookiePathCopy">[{oxmultilang ident="D3_GOOGLEANALYTICS_DOMAIN_COOKIEPATHCOPY"}]</label>
[{* _gaq.push(['_cookiePathCopy', '/path/of/cookie/']); *}]
</dt>
<dd>
<input id="sD3GACookiePathCopy" [{$blUniversalDisabled}] class="edittext ext_edittext" type="text" size="30" maxlength="150" value="[{$edit->getValue('sD3GACookiePathCopy')}]" name="value[sD3GACookiePathCopy]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_DOMAIN_COOKIEPATHCOPY_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_BROWSER"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GASetClientInfo">[{oxmultilang ident="D3_GOOGLEANALYTICS_BROWSER_SETCLIENTINFO"}]</label>
[{* _gaq.push(['_setClientInfo', false]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GASetClientInfo]" value="0">
<input id="blD3GASetClientInfo" class="edittext ext_edittext" type="checkbox" [{$blUniversalDisabled}] value="1" [{if $edit->getValue('blD3GASetClientInfo')}]checked[{/if}] name="value[blD3GASetClientInfo]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_BROWSER_SETCLIENTINFO_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GASetDetectFlash">[{oxmultilang ident="D3_GOOGLEANALYTICS_BROWSER_SETDETECTFLASH"}]</label>
[{* _gaq.push(['_setDetectFlash', false]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GASetDetectFlash]" value="0">
<input id="blD3GASetDetectFlash" class="edittext ext_edittext" type="checkbox" value="1" [{$blUniversalDisabled}] [{if $edit->getValue('blD3GASetDetectFlash')}]checked[{/if}] name="value[blD3GASetDetectFlash]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_BROWSER_SETDETECTFLASH_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="blD3GASetDetectTitle">[{oxmultilang ident="D3_GOOGLEANALYTICS_BROWSER_SETDETECTTITLE"}]</label>
[{* _gaq.push(['_setDetectTitle', false]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GASetDetectTitle]" value="0">
<input id="blD3GASetDetectTitle" class="edittext ext_edittext" type="checkbox" value="1" [{$blUniversalDisabled}] [{if $edit->getValue('blD3GASetDetectTitle')}]checked[{/if}] name="value[blD3GASetDetectTitle]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_BROWSER_SETDETECTTITLE_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_CUSTOMVARS"}]
</span>
</a>
<dl>
<dt>
<label for="blD3GAUseCustomVars">[{oxmultilang ident="D3_GOOGLEANALYTICS_CUSTOMVARS_TRANSMIT"}]</label>
[{* _gaq.push(['_setCustomVar', false]); *}]
</dt>
<dd>
<input type="hidden" name="value[blD3GAUseCustomVars]" value="0">
<input id="blD3GAUseCustomVars" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('blD3GAUseCustomVars')}]checked[{/if}] name="value[blD3GAUseCustomVars]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_CUSTOMVARS_TRANSMIT_DESC"}]
</dd>
</dl>
</div>
</div>
<table width="100%">
<tr>
<td class="edittext ext_edittext" align="left"><br>
<span class="d3modcfg_btn icon status_ok">
<input type="submit" name="save" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}]">
<span></span>
</span>
</td>
</tr>
</table>
<br><br>[{oxmultilang ident="D3_GOOGLEANALYTICS_SECURITYINFORMATIONS"}]
[{/if}]
</td>
</tr>
</table>
</form>
[{assign var="incpath" value=$oViewConf->getModulePath('d3modcfg_lib')|cat:"views/admin/tpl/d3_cfg_mod_inc.tpl"}]
[{include file="d3_cfg_mod_inc.tpl"}]
<script type="text/javascript">
if (parent.parent) {
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxgoogleanalytics"}]";
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3tbclgoogleanalytics_main"}]";
parent.parent.sWorkArea = "[{$_act}]";
parent.parent.setTitle();
}
</script>

View File

@ -0,0 +1,249 @@
[{include file="headitem.tpl" title="D3_GOOGLEANALYTICS_CFG_TITLE"|oxmultilangassign}]
<script type="text/javascript">
<!--
[{if $updatelist == 1}]
UpdateList('[{$oxid}]');
[{/if}]
function UpdateList( sID)
{
var oSearch = parent.list.document.getElementById("search");
oSearch.oxid.value=sID;
oSearch.fnc.value='';
oSearch.submit();
}
function EditThis( sID)
{
var oTransfer = document.getElementById("transfer");
oTransfer.oxid.value=sID;
oTransfer.cl.value='';
oTransfer.submit();
var oSearch = parent.list.document.getElementById("search");
oSearch.actedit.value = 0;
oSearch.oxid.value=sID;
oSearch.submit();
}
function _groupExp(el) {
var _cur = el.parentNode;
if (_cur.className == "exp") _cur.className = "";
else _cur.className = "exp";
}
-->
</script>
<style type="text/css">
<!--
fieldset {
border: 1px inset black;
background-color: #F0F0F0;
}
legend {
font-weight: bold;
}
dl dt {
font-weight: normal;
width: 55%;
}
.ext_edittext {
padding: 2px;
}
td.edittext {
white-space: normal;
}
.servicedesc {
background-color: #d4ffd4;
border: 1px solid green;
margin-bottom: 10px;
padding: 5px;
text-align: center;
}
.servicedesc a {
text-decoration: underline;
}
-->
</style>
[{if $readonly}]
[{assign var="readonly" value="readonly disabled"}]
[{else}]
[{assign var="readonly" value=""}]
[{/if}]
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="actshop" value="[{$shop->id}]">
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
</form>
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
[{$oViewConf->getHiddenSid()}]
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
<input type="hidden" name="fnc" value="save">
<input type="hidden" name="oxid" value="[{$oxid}]">
<input type="hidden" name="editval[oxid]" value="[{$oxid}]">
<table border="0" width="98%">
<tr>
<td valign="top" class="edittext">
<div class="servicedesc">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_DESC"}] [{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_DESC1"}]</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_MAIN"}]
</span>
</a>
<dl>
<dt>
<label for="sD3GATSActive">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ACTIVE"}]</label>
</dt>
<dd>
<input type="hidden" name="value[sD3GATSActive]" value="0">
<input id="sD3GATSActive" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('sD3GATSActive')}]checked[{/if}] name="value[sD3GATSActive]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ACTIVE_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GATSId">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ID"}]</label>
</dt>
<dd>
<input id="sD3GATSId" class="edittext ext_edittext" type="text" size="15" maxlength="20" value="[{$edit->getValue('sD3GATSId')}]" name="value[sD3GATSId]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ID_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="iEstShippingTimeValue">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER"}]</label>
</dt>
<dd>
<input id="iEstShippingTimeValue" type="text" name="value[iEstShippingTimeValue]" class="edittext ext_edittext" size="3" maxlength="5" value="[{if $edit->getValue('iEstShippingTimeValue')}][{$edit->getValue('iEstShippingTimeValue')}][{else}]1[{/if}]" [{$readonly}]>
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="iEstShippingTimeValueOutOfStock">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_OUTOFSTOCK"}]</label>
</dt>
<dd>
<input id="iEstShippingTimeValueOutOfStock" type="text" name="value[iEstShippingTimeValueOutOfStock]" class="edittext ext_edittext" size="3" maxlength="5" value="[{if $edit->getValue('iEstShippingTimeValueOutOfStock')}][{$edit->getValue('iEstShippingTimeValueOutOfStock')}][{else}]1[{/if}]" [{$readonly}]>
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTER_DAYS"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ESTSHIPDATEAFTEROUTOFSTOCK_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="iEstDeliveryTimeValue">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER"}]</label>
</dt>
<dd>
<input id="iEstDeliveryTimeValue" type="text" name="value[iEstDeliveryTimeValue]" class="edittext ext_edittext" size="3" maxlength="5" value="[{if $edit->getValue('iEstDeliveryTimeValue')}][{$edit->getValue('iEstDeliveryTimeValue')}][{else}]1[{/if}]" [{$readonly}]>
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DAYS"}]
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_ESTDELDATEAFTER_DESC"}]
</dd>
</dl>
</div>
</div>
<div class="groupExp">
<div class="">
<a class="rc" onclick="_groupExp(this); return false;" href="#">
<span style="font-weight: bold;">
[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPING"}]
</span>
</a>
<dl>
<dt>
<label for="sD3GATSShoppingActive">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE"}]</label>
</dt>
<dd>
<input type="hidden" name="value[sD3GATSShoppingActive]" value="0">
<input id="sD3GATSShoppingActive" class="edittext ext_edittext" type="checkbox" value="1" [{if $edit->getValue('sD3GATSShoppingActive')}]checked[{/if}] name="value[sD3GATSShoppingActive]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACTIVE_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GATSShoppingAccountId">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID"}]</label>
</dt>
<dd>
<input type="text" id="sD3GATSShoppingAccountId" class="edittext ext_edittext" value="[{if $edit->getValue('sD3GATSShoppingAccountId')}][{$edit->getValue('sD3GATSShoppingAccountId')}][{/if}]" size="20" maxlength="20" name="value[sD3GATSShoppingAccountId]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGACCOUNTID_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GATSShoppingCountry">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY"}]</label>
</dt>
<dd>
<input type="text" id="sD3GATSShoppingCountry" class="edittext ext_edittext" value="[{if $edit->getValue('sD3GATSShoppingCountry')}][{$edit->getValue('sD3GATSShoppingCountry')}][{else}]DE[{/if}]" size="5" maxlength="2" name="value[sD3GATSShoppingCountry]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGCOUNTRY_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GATSShoppingLanguage">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE"}]</label>
</dt>
<dd>
<input type="text" id="sD3GATSShoppingLanguage" class="edittext ext_edittext" value="[{if $edit->getValue('sD3GATSShoppingLanguage')}][{$edit->getValue('sD3GATSShoppingLanguage')}][{else}]de[{/if}]" size="5" maxlength="2" name="value[sD3GATSShoppingLanguage]">
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGLANGUAGE_DESC"}]
</dd>
</dl>
<dl>
<dt>
<label for="sD3GATSShoppingArtId">[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID"}]</label>
</dt>
<dd>
<select id="sD3GATSShoppingArtId" name="value[sD3GATSShoppingArtId]" size="1" class="edittext ext_edittext">
<option value="oxartnum" [{if $edit->getValue('sD3GATSShoppingArtId') == 'oxartnum'}]selected[{/if}]>[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_ARTNUM"}]</option>
<option value="oxid" [{if $edit->getValue('sD3GATSShoppingArtId') == 'oxid'}]selected[{/if}]>[{oxmultilang ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_OXID"}]</option>
</select>
[{oxinputhelp ident="D3_GOOGLEANALYTICS_TS_SHOPPINGARTID_DESC"}]
</dd>
</dl>
</div>
</div>
<table width="100%">
<tr>
<td class="edittext ext_edittext" align="left"><br>
<span class="d3modcfg_btn icon status_ok">
<input type="submit" name="save" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_SAVE"}]">
<span></span>
</span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
[{assign var="incpath" value=$oViewConf->getModulePath('d3modcfg_lib')|cat:"views/admin/tpl/d3_cfg_mod_inc.tpl"}]
[{include file="d3_cfg_mod_inc.tpl"}]
<script type="text/javascript">
if (parent.parent) {
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxgoogleanalytics"}]";
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3tbclgoogleanalytics_main"}]";
parent.parent.sWorkArea = "[{$_act}]";
parent.parent.setTitle();
}
</script>

View File

@ -1,12 +0,0 @@
---
title: Editionen
---
Das Modul **{$modulename}** erhalten Sie in verschiedenen Editionen mit unterschiedlichem Funktionsumfang.
Definition der Unterschiede:
| Free-Edition | Standard-Edition | Premium-Edition |
|:-------------:|:-----------------:|:-----------------:|
| 1 | 2 | 3 |

View File

@ -1,10 +0,0 @@
---
title: Installation / Update / Deinstallation
---
* [Anforderungen](installation/010_Anforderungen/010_Systemanforderungen.md)
* [Neuinstallation](installation/020_Neuinstallation/005_Vorbereitung.md)
* [Update](installation/030_Update/005_Updatedefinition.md)
* [Deinstallation](installation/060_Deinstallation/010_Modulerweiterungen_deaktivieren_und_entfernen.md)
Bei Bedarf bieten wir Ihnen auch gern die Installation des Moduls in Ihrem Shop an. Geben Sie uns bitte unter den unter [Hilfe und Support](support/010_Hilfe-und-Support.md) genannten Kontaktdaten Bescheid.

View File

@ -1,28 +0,0 @@
---
title: Systemanforderungen
---
* PHP Version
* 5.6.x bis 7.4.x
* PHP Decoder
* installierter ionCube Loader
* Shopeditionen
* OXID eShop Community Edition (CE)
* OXID eShop Professional Edition (PE)
* OXID eShop Enterprise Edition (EE)
* OXID eShop B2B Edition
* Shopversionen
* OXID eShop in Compilation Version
* 6.0.x
* 6.1.x
* 6.2.x
* Themes
* flow
* wave
* D3 Modul-Connector ([kostenfrei bei D3 erhältlich](https://www.oxidmodule.com/connector/)) ab Version 5.3.0.0
* Installation via [Composer](https://getcomposer.org)
* mindestens ein freier Cronjob zur automatischen Ausführung der angelegten Aufgaben
Beachten Sie, dass die Ihnen vorliegende Modulversion entsprechend für Ihre genutzte PHP-Version sowie dem auf Ihrem Server vorhandenen Decoder (**ionCube Loader**) kompatibel ist. Im Zweifelsfall kontaktieren Sie uns und nennen den für Ihren Shop genutzten Decoder und die PHP-Version.
Kontrollieren Sie bitte auch, ob diese Modulversion für die von Ihnen eingesetzte Shopedition (Professional Edition (PE) oder Enterprise Edition (EE)) ausgelegt ist.

View File

@ -1,5 +0,0 @@
---
title: Kompatibilität mit anderen Modulen
---
Das Modul **{$modulename}** integriert sich auch in die Erweiterung "Visual CMS" von OXID eSales AG & digidesk - media solutions, sofern diese im Shop installiert wurde. Diese Integration wurde für die Version 3.0.0 des "Visual CMS"-Moduls entwickelt.

View File

@ -1,8 +0,0 @@
---
title: beiliegende Bibliotheken
---
Dem Modul liegt eine Kopie der **XYZ**-Bibliothek bei. Bitte beachten Sie auch deren folgende Lizenzhinweise:
- Lizenzhinweis #1
- Lizenzhinweis #2

View File

@ -1,9 +0,0 @@
---
title: Vorbereitungen
---
Installieren Sie bitte zuerst unseren Modul-Connector in der erforderlichen Version.
Ob dies evtl. schon geschehen ist, können Sie im Adminbereich Ihres Shops prüfen. Existiert der Punkt [ (D3) Module ] -> [ Modul-Connector ], können Sie die installierte Version unter [ Bibliotheksverwaltung ] ablesen. Fehlt dieser Eintrag, installieren Sie den kostenfreien Connector.
Informationen zu dessen Installation finden Sie auf unserer [Homepage](https://www.oxidmodule.com/Connector/).
Klicken Sie auf den Reiter [ Downloads ] und wählen dort das für Ihre Installation passende Paket.

View File

@ -1,7 +0,0 @@
---
title: Vorbereitungen
---
Installieren Sie bitte zuerst unseren Modul-Connector in der erforderlichen Version. Ob dies evtl. schon geschehen ist, können Sie im Adminbereich Ihres Shops prüfen.
Existiert der Punkt [ (D3) Module ] -> [ Modul-Connector ], können Sie die installierte Version unter [ Bibliotheksverwaltung ] ablesen.
Fehlt dieser Eintrag, installieren Sie den Modul-Connector bitte vorab. Hinweise zu dessen Installation finden Sie in der [Modul-Connector Dokumentation](https://docs.oxidmodule.com/Modul_Connector/).

View File

@ -1,23 +0,0 @@
---
title: Patch zur Installation hinzufügen
---
### **auf der Kommandozeile**
Für das Modul **{$modulename}** sind Anpassungen an den originalen Dateien des Shops nötig. Die Änderungen werden automatisiert als Patches eingespielt. Um diese Patches integrieren zu können, ist es nötig, in der `composer.json`-Datei des Shopprojektes das Anwenden der Patches zu erlauben.
Führen Sie in der Konsole im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) diesen Befehl aus:
```bash
php composer config extra.enable-patching true
```
> [i] Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die [Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#config).
Im weiteren Ablauf der Installation werden Sie gefragt, ob die Dateien der folgenden Pakete überschrieben werden sollen:
* oxid-esales/...
Bestätigen Sie diese Frage, um den mitgelieferten Patch anzuwenden.
> [i] Beachten Sie, dass darin durchgeführte manuelle Änderungen überschrieben werden.

View File

@ -1,15 +0,0 @@
---
title: Modul zur Installation hinzufügen
---
### **auf der Kommandozeile**
Führen Sie in der Konsole im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) diesen Befehl aus, um das Modul **{$modulename}** zur Installation hinzuzufügen:
```bash
php composer require {$composerident}:^{$moduleversion} --update-no-dev
```
> [!] Achten Sie darauf, dass Composer für die Installation die selbe PHP-Version verwendet, in der auch Ihr Shop ausgeführt wird. Sie erhalten sonst möglicherweise unpassende Modulpakete.
> [i] Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die [Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#require).

View File

@ -1,15 +0,0 @@
---
title: Verwendung eigener Themes
---
Das Modul ist für die Verwendung mit den folgenden OXID-Themes vorbereitet:
* Wave
* Flow
* Azure
Verwenden Sie in Ihrem Shop ein angepasstes Verzeichnis für Ihre Templates (neues Theme oder CustomTheme), kopieren Sie die Templates und / oder die CSS-Dateien in die neuen Ordner.
Ähnelt Ihr neues Theme technisch einem der OXID-Originale, können Sie dieses darauf umleiten. Childs von originalen OXID- Themes benötigen keine Umleitung.
Weitere Informationen zur Umleitung finden Sie in unserer [FAQ](https://faq.d3data.de/oxid-eshop/module-oxid-eshop/anpassungen/template-bloecke-dem-eigenen-theme-zuordnen/).

View File

@ -1,5 +0,0 @@
---
title: Providerspezifische Installation
---
Manche Provider erfordern besondere Einstellungen für installierte Module. Treffen Sie bei der Installation auf spezielle Anforderungen, zu denen Sie Unterstützung benötigen, kontaktieren Sie uns bitte für weiteren Support.

View File

@ -1,19 +0,0 @@
---
title: Modul im Shop aktivieren
---
### **im Adminbereich**
Aktivieren Sie das Modul über den Shopadmin unter [ Erweiterungen ] -> [ Module ]. Klicken Sie nach Auswahl von [ {$menutitle} ] auf den Button [ Aktivieren ].
### **oder auf der Kommandozeile**
Alternativ können Sie die Modulaktivierung auch auf der Kommandozeile (CLI) im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) durchführen.
```bash
./vendor/bin/oe-console oe:module:activate {$metadataident}
```
> [!] **Enterprise Edition**: Achten Sie darauf, dass das Modul in weiteren Shops (Mall) ebenfalls aktiviert werden muss, um dessen Funktion dort auch zu nutzen.
> [i] **Enterprise Edition**: Zur Aktivierung in einem bestimmten Shopmandanten verwenden Sie das `--shop-id`-Argument (`...oe-console --shop-id 1 oe:module...`)

View File

@ -1,21 +0,0 @@
---
title: Shopanpassungen installieren
---
### **im Adminbereich**
Direkt nach der Modulaktivierung startet der Assistent, der Sie durch die Shopanpassung führt. Darin können Sie verschiedene Optionen der Installation wählen.
Den Installationsassistenten finden Sie auch unter den Menüpunkten [ Admin ] -> [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] -> [ Modulinstallation ].
Bei tiefgreifenden Änderungen an Ihrem Shop (z.B. Hinzufügen weiterer Sprachen oder Mandanten) rufen Sie den Installationsassistenten bitte erneut auf, um dann eventuell notwendige Nacharbeiten für das Modul ausführen zu lassen.
Möchten Sie die Änderungen manuell installieren, können Sie sich über diesen Assistenten ebenfalls eine Checkliste erstellen.
### **oder auf der Kommandozeile**
Der Installationsassistent steht Ihnen ebenfalls auf der Kommandozeile (CLI) zur Verfügung. Führen Sie diesen Befehl im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) aus:
```bash
./vendor/bin/d3modules_install
```

View File

@ -1,21 +0,0 @@
---
title: TMP-Ordner leeren
---
### **im Adminbereich**
Leeren Sie das Verzeichnis `tmp` über [ Admin ] -> [ (D3) Module ] -> [ Modul-Connector ] -> [ TMP leeren ]. Markieren Sie [ komplett leeren ] und klicken auf [ TMP leeren ].
Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch.
### **oder auf der Kommandozeile**
Alle TMP-leeren-Aktionen stehen Ihnen ebenfalls auf der Kommandozeile (CLI) zur Verfügung. Führen Sie diesen Befehl im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) aus:
```bash
./vendor/bin/d3cleartmp
```
> [i] Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus.
> [i] Beim Kommandozeilenaufruf werden Ihnen weitere Optionen gezeigt, mit denen Sie die Aktion gezielt steuern können.

View File

@ -1,11 +0,0 @@
---
title: Lizenzschlüssel eintragen
---
### **im Adminbereich**
Das Modul verwendet Lizenzschlüssel, um die Lizenzverwaltung für Sie und auch für uns einfacher zu gestalten. Hierbei haben Sie je nach Modul die Wahl zwischen einer kostenfreien Testlizenz und einer Lizenz für den Einsatz im Livebetrieb.
Speziell **{$modulename}** wird in unterschiedlichen (teilweise kostenfreien) Editionen für den Livebetrieb angeboten. Besuchen Sie unseren [Moduleshop](https://www.oxidmodule.com/), um mehr darüber zu erfahren.
Rufen Sie zum Anfordern des Lizenzschlüssels die Modulverwaltung im Adminbereich unter [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] auf. Klappen Sie den Eintrag des jeweiligen Moduls aus. Sofern erforderlich, können Sie hier den Lizenzassistenten starten, der schnell und einfach ihr Modul aktiviert.

View File

@ -1,13 +0,0 @@
---
title: Cronjob einrichten
---
Legen Sie den Cronjob für die automatische Bearbeitung der eingerichteten Aufträge an. Die für die Anlage benötigten Daten finden Sie im Adminbereich des Moduls unter [ (D3) Module ] -> [ {$menutitle} ] -> [ Einstellungen ] -> [ Grundeinstellungen ]. Weitere Informationen zum Anlegen von Cronjobs finden Sie in unserer [FAQ](https://faq.d3data.de/technik/wie-werden-cronjobs-angelegt/).
> [!!] Sie sollten unbedingt den Aufruf von `.sh`-Dateien via Browser verhindern, so dass kein Unbefugter die Datei von außen aufrufen kann. Dazu können Sie z.B. die `.htaccess`-Datei des Shops um folgende Zeilen erweitern:
```htaccess
<Files *.sh>
Require all denied
</Files>
```

View File

@ -1,7 +0,0 @@
---
title: Updatefähigkeit
---
Bei individuellen Änderungen von Moduldateien empfehlen wir, jeweils die Überladungsmöglichkeiten des Shops dafür zu verwenden. So brauchen Sie die originalen Moduldateien nicht verändern und erhalten sich so die Updatefähigkeit des Shops und des Moduls. Beachten Sie, dass Moduldateien bei Updateinstallationen überschrieben werden.
Weitere Informationen zu den Überladungsmöglichkeiten verschiedener Dateien finden Sie in unserer [FAQ](https://faq.d3data.de/category/oxid-eshop/module-oxid-eshop/anpassungen/).

View File

@ -1,16 +0,0 @@
---
Title: Schnellstart per Composer
---
## Schnellstart per Composer
### **auf der Kommandozeile**
```bash
php composer require {$composerident}:^{$moduleversion} --update-no-dev
./vendor/bin/oe-console oe:module:activate {$metadataident}
./vendor/bin/d3modules_install
./vendor/bin/d3cleartmp
```
Detailliertere Angaben zur Installation entnehmen Sie bitte den folgenden Seiten.

View File

@ -1,8 +0,0 @@
---
title: Wann kann ein Update ausgeführt werden?
---
Die Updateanweisungen können verwendet werden, wenn dieses Modul schon früher mit Hilfe von Composer installiert wurde.
Wurde die Installation bisher noch nicht durchgeführt oder die Installation wurde **nicht** über Composer
durchgeführt (weil das Modul dies z.B. früher nicht unterstützte), verwenden Sie bitte die Beschreibung unter [Neuinstallation](../020_Neuinstallation/_index.md).

View File

@ -1,19 +0,0 @@
---
title: Modul deaktivieren
---
### **im Adminbereich**
Deaktivieren Sie das Modul unter [ Erweiterungen ] -> [ Module ]. Klicken Sie nach Auswahl von [ {$menutitle} ] auf den Button [ Deaktivieren ].
### **oder auf der Kommandozeile**
Alternativ können Sie die Moduldeaktivierung auch über die Kommandozeile (CLI) im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) durchführen.
```bash
./vendor/bin/oe-console oe:module:deactivate {$metadataident}
```
> [!] **Enterprise Edition**: Achten Sie darauf, dass das Modul in allen weiteren Shops (Mall) ebenfalls deaktiviert werden muss.
> [i] **Enterprise Edition**: Zur Deaktivierung in einem bestimmten Shopmandanten verwenden Sie das `--shop-id`-Argument (`...oe-console --shop-id 1 oe:module...`)

View File

@ -1,23 +0,0 @@
---
title: Patch zur Installation hinzufügen
---
### **auf der Kommandozeile**
Für das Modul **{$modulename}** sind Anpassungen an den originalen Dateien des Shops nötig. Die Änderungen werden automatisiert als Patches eingespielt. Um diese Patches integrieren zu können, ist es nötig, in der `composer.json`-Datei des Shopprojektes das Anwenden der Patches zu erlauben.
Führen Sie in der Konsole im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) diesen Befehl aus:
```bash
php composer config extra.enable-patching true
```
> [i] Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die [Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#config).
Im weiteren Ablauf der Installation werden Sie gefragt, ob die Dateien der folgenden Pakete überschrieben werden sollen:
* oxid-esales/...
Bestätigen Sie diese Frage, um den mitgelieferten Patch anzuwenden.
> [i] Beachten Sie, dass darin durchgeführte manuelle Änderungen überschrieben werden.

View File

@ -1,18 +0,0 @@
---
title: Dateien erneuern
---
### **auf der Kommandozeile**
Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres
Shops (oberhalb des `source`- und `vendor`-Verzeichnisses). Führen Sie dort diesen Befehl aus:
```bash
php composer require {$composerident}:^{$moduleversion} --update-no-dev
```
Im weiteren Ablauf werden Sie gefragt, ob die Moduldateien überschrieben werden sollen. Bestätigen Sie dies für den Eintrag `{$composerident}`.
> [!] Achten Sie darauf, dass Composer für die Installation die selbe PHP-Version verwendet, in der auch Ihr Shop ausgeführt wird. Sie erhalten sonst möglicherweise unpassende Modulpakete.
> [i] Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die [Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#require).

View File

@ -1,5 +0,0 @@
---
title: Providerspezifische Installation
---
Manche Provider erfordern besondere Einstellungen für installierte Module. Treffen Sie bei der Installation auf spezielle Anforderungen, zu denen Sie Unterstützung benötigen, kontaktieren Sie uns bitte für weiteren Support.

View File

@ -1,19 +0,0 @@
---
title: Modulinformationen aktualisieren
---
### **im Adminbereich**
Wechseln Sie im Adminbereich zu [ Erweiterungen ] -> [ Module ]. Klicken Sie nach Auswahl von [ {$menutitle} ] auf den Button [ Aktivieren ].
### **oder auf der Kommandozeile**
Alternativ können Sie die Modulaktivierung auch über die Kommandozeile (CLI) im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) durchführen.
```bash
./vendor/bin/oe-console oe:module:activate {$metadataident}
```
> [!] **Enterprise Edition**: Achten Sie darauf, dass das Modul in weiteren Shops (Mall) ebenfalls aktiviert werden muss, um dessen Funktion dort auch zu nutzen.
> [i] **Enterprise Edition**: Zur Aktivierung in einem bestimmten Shopmandanten verwenden Sie das `--shop-id`-Argument (`...oe-console --shop-id 1 oe:module...`)

View File

@ -1,21 +0,0 @@
---
title: Shopanpassungen installieren
---
### **im Adminbereich**
Ob Shopanpassungen notwendig sind, ist von der Versionsänderung des Moduls abhängig.
Möglicherweise sehen Sie nach dem Neuaktivieren des Moduls den Installationsassistent, der Sie durch die Änderungen führt. Folgen Sie dann den einzelnen Schritten. Möchten Sie die Änderungen manuell installieren, können Sie sich über diesen Assistenten ebenfalls eine Checkliste erstellen.
Wird der Assistent nicht gezeigt (Sie sehen wieder die Modulübersicht), waren keine Anpassungen am Shop notwendig.
Ob erforderliche Updates ausgeführt werden sollen, können Sie jederzeit im Adminbereich unter [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] -> [ Modulinstallation ] prüfen.
### **oder auf der Kommandozeile**
Der Installationsassistent steht Ihnen ebenfalls auf der Kommandozeile (CLI) zur Verfügung. Führen Sie diesen Befehl im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) aus:
```bash
./vendor/bin/d3modules_install
```

View File

@ -1,21 +0,0 @@
---
title: TMP-Ordner leeren
---
### **im Adminbereich**
Leeren Sie das Verzeichnis `tmp` über [ Admin ] -> [ (D3) Module ] -> [ Modul-Connector ] -> [ TMP leeren ]. Markieren Sie [ komplett leeren ] und klicken auf [ TMP leeren ].
Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch.
### **oder auf der Kommandozeile**
Alle TMP-leeren-Aktionen stehen Ihnen ebenfalls auf der Kommandozeile (CLI) zur Verfügung. Führen Sie diesen Befehl im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) aus:
```bash
./vendor/bin/d3cleartmp
```
> [i] Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus.
> [i] Beim Kommandozeilenaufruf werden Ihnen weitere Optionen gezeigt, mit denen Sie die Aktion gezielt steuern können.

View File

@ -1,7 +0,0 @@
---
title: Lizenzschlüssel aktualisieren
---
### **im Adminbereich**
Wird für die neue Modulversion ein aktualisierter Lizenzschlüssel benötigt, tragen Sie diesen im Adminbereich unter [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] ein. Klappen Sie dazu den Eintrag des jeweiligen Moduls aus und starten den Lizenzassistent.

View File

@ -1,5 +0,0 @@
---
title: Erweiterungen anpassen
---
Haben Sie für dieses Modul eigene Erweiterung entwickelt, gleichen Sie dies bitte mit der neuen Fassung des Moduls ab.

View File

@ -1,29 +0,0 @@
---
title: Installationsprüfung
---
Um die erfolgreiche Installation zu prüfen, können Sie die folgende(n) Checkliste(n) verwenden:
## Einstellungsunabhängige Prüfungen
### Backend
* Modul ist unter [ Erweiterungen ] -> [ Module ] aktiv geschaltet
* Modul ist unter [ (D3) Module ] -> [ Modul-Connector ] -> [ Modulverwaltung ] aktiv geschaltet
* Modul zeigt unter [ (D3) Module ] -> [ {$menutitle} ] einen eigenen Bereich für Einstellungen
* Modul zeigt unter [ Artikel verwalten ] -> [ Artikel ] -> [ Erweitert ] die Einstellung [ Wichtigkeit des Artikels im Sortiment ]
* ... um weitere Punkte ergänzen
### Frontend
* Punkte einfügen oder Absatz entfernen
## Einstellungsabhängige Prüfungen
### Backend
* Punkte einfügen oder Absatz entfernen
### Frontend
* Punkte einfügen oder Absatz entfernen

View File

@ -1,7 +0,0 @@
---
title: Schnellstart
---
Das Modul **{$modulename}** bringt einen umfangreichen Adminbereich mit, in dem Sie die Konfigurationseinstellungen des Moduls setzen können. Über das Menü [ (D3) Module ] -> [{$menutitle}] -> [Einstellungen] erreichen Sie die Einstellseiten. Arbeiten Sie idealerweise die Optionen einmal durch. Hinweise zu den einzelnen Einstellungen finden Sie in dem dahinter stehenden Fragezeichenfeld. Durch einen Klick darauf öffnet sich der Hinweistext.
Die meisten Optionen sind zusätzlich im [Handbuch zum Modul](../manual/000_Handbuch.md) umfangreicher beschrieben.

View File

@ -1,5 +0,0 @@
---
title: Modulerweiterungen deaktivieren und entfernen
---
Deaktivieren Sie alle vorhandenen Erweiterungen, die auf dem Modul **{$modulename}** aufbauen und löschen bitte alle Dateien dieser Erweiterungen. Entfernen Sie ebenfalls alle individuellen Templateanpassungen für dieses Modul.

View File

@ -1,19 +0,0 @@
---
title: Modul deaktivieren
---
### **im Adminbereich**
Deaktivieren Sie das Modul unter [ Erweiterungen ] -> [ Module ]. Klicken Sie nach Auswahl von [ {$menutitle} ] auf den Button [ Deaktivieren ].
### **oder auf der Kommandozeile**
Alternativ können Sie die Moduldeaktivierung auch über die Kommandozeile (CLI) im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) durchführen.
```bash
./vendor/bin/oe-console oe:module:deactivate {$metadataident}
```
> [!] **Enterprise Edition**: Achten Sie darauf, dass das Modul in allen weiteren Shops (Mall) ebenfalls deaktiviert werden muss.
> [i] **Enterprise Edition**: Zur Deaktivierung in einem bestimmten Shopmandanten verwenden Sie das `--shop-id`-Argument (`...oe-console --shop-id 1 oe:module...`)

View File

@ -1,13 +0,0 @@
---
title: Modul aus der Installation entfernen
---
### **auf der Kommandozeile**
Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses). Führen Sie Sie dort diesen Befehl aus:
```Bash
php composer remove {$composerident} --no-update
```
> [i] Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die [Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#remove).

View File

@ -1,9 +0,0 @@
---
title: Dateien löschen
---
Löschen Sie den Ordner `{$modulefolder}` und seine enthaltenen Elemente aus dem Verzeichnis `source/modules/d3` Ihres Shops.
Bestätigen Sie anschließend im Shopadmin unter [ Erweiterungen ] -> [ Module ] -> [ Installierte Shop-Module ] die Nachricht:
> Es gibt registrierte Erweiterungen im eShop, deren Verzeichnis nicht vorhanden ist.
> Möchten Sie alle Modulinformationen einschließlich Konfigurationseinstellungen und Blockinformationen für Templates löschen?

View File

@ -1,31 +0,0 @@
---
title: Datenbank bereinigen
---
Das Modul legt Informationen in der Datenbank ab. Sofern diese Daten nicht mehr benötigt werden, können diese gelöscht werden.
> [!] Legen Sie sich vorab bitte unbedingt eine Sicherung an, um die Daten im Zweifelsfall wiederherstellen zu können.
Für das Modul **{$modulename}** sind dies die folgende Tabellen und Felder:
* die komplette Tabelle `tablename`
* sofern vorhanden: `tablename_setX` *)
und diese Felder in bestehenden Tabellen:
* in Tabelle `oxorder`:
* das Feld `fieldname1`
* das Feld `fieldname2`
* in Tabelle `oxuser`:
* das Feld `fieldname3`
* das Feld `fieldname4`
sowie diese Einträge in bestehenden Tabellen:
* in Tabelle `d3_cfg_mod`:
* den Eintrag `oxmodid = "{$modcfgident}"` **)
*) `_setX` ist eine Tabellenliste, die mit `_set1` beginnen und shopabhängig auch Tabellen mit höheren Nummerierungen enthalten kann (z.B. `_set2`, `_set3`, …).
Zu einigen dieser Tabellen wurden die Config-Einträge `aMultiLangTables` (bei Enterprise Edition auch `aMultiShopTables`) um entsprechende Einträge ergänzt). Bereinigen Sie diese ebenfalls.
**) Diesen Eintrag gibt es ggf. für jeden Subshop. Entfernen Sie diesen nur für die Mandanten, in denen das Modul **nicht** mehr installiert ist.

View File

@ -1,21 +0,0 @@
---
title: TMP-Ordner leeren
---
### **im Adminbereich**
Leeren Sie das Verzeichnis `tmp` über [ Admin ] -> [ (D3) Module ] -> [ Modul-Connector ] -> [ TMP leeren ]. Markieren Sie [ komplett leeren ] und klicken auf [ TMP leeren ].
Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch.
### **oder auf der Kommandozeile**
Alle TMP-leeren-Aktionen stehen Ihnen ebenfalls auf der Kommandozeile (CLI) zur Verfügung. Führen Sie diesen Befehl im Hauptverzeichnis Ihres Shops (oberhalb des `source`- und `vendor`-Verzeichnisses) aus:
```bash
./vendor/bin/d3cleartmp
```
> [i] Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus.
> [i] Beim Kommandozeilenaufruf werden Ihnen weitere Optionen gezeigt, mit denen Sie die Aktion gezielt steuern können.

View File

@ -1 +0,0 @@
It starts here.

Some files were not shown because too many files have changed in this diff Show More