merge rel_3.x to trunk
Cette révision appartient à :
révision
1ca54a1744
Fichier binaire non affiché.
@ -173,21 +173,25 @@
|
||||
[{/if}]
|
||||
|
||||
[{* bounce optimization*}]
|
||||
setTimeout('_gaq.push([\'_trackEvent\', \'NoBounce\', \'Over defined seconds\'])',[{$oD3GASettings->getValue('iSendNoBounceEventTime')}]);
|
||||
[{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);
|
||||
[{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}]
|
||||
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;
|
||||
|
@ -2,18 +2,20 @@
|
||||
[{capture name="d3GATrackCode"}]
|
||||
[{strip}]
|
||||
[{if $oD3GASettings->getValue('blD3GAUseOptOut')}]
|
||||
<script type="text/javascript">
|
||||
var gaProperty = '[{$oD3GASettings->getValue('sD3GAId')}]';
|
||||
var disableStr = 'ga-disable-' + gaProperty;
|
||||
if (document.cookie.indexOf(disableStr + '=true') > -1) {
|
||||
window[disableStr] = true;
|
||||
}
|
||||
[{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>
|
||||
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">
|
||||
@ -52,42 +54,48 @@
|
||||
[{/if}]
|
||||
|
||||
[{* bounce optimization*}]
|
||||
setTimeout('ga(\'send\', \'event\', \'NoBounce\', \'Over defined seconds\')',[{$oD3GASettings->getValue('iSendNoBounceEventTime')}]);
|
||||
[{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);
|
||||
[{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}]
|
||||
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')}]
|
||||
var perfData = window.performance.timing;
|
||||
var pageLoadTime = perfData.domComplete - perfData.navigationStart;
|
||||
var loadTime = "";
|
||||
[{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"; }
|
||||
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});*}]
|
||||
ga('set', 'metric1', loadTime);
|
||||
[{*ga('send', 'event', 'Page Load Time', loadTime, {'nonInteraction': true});*}]
|
||||
[{/block}]
|
||||
[{/if}]
|
||||
</script>
|
||||
|
||||
|
@ -3,10 +3,10 @@
|
||||
<script type="text/javascript">
|
||||
var gts = gts || [];
|
||||
|
||||
gts.push(["id", "[{$oD3GASettings->getValue('sD3GATSId')}]"]);
|
||||
gts.push(["badge_position", "BOTTOM_RIGHT"]);
|
||||
gts.push(["locale", "[{$sD3CurrentGTSLang}]"]);
|
||||
[{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}]
|
||||
|
@ -40,7 +40,7 @@ $aModule = array(
|
||||
'Trusted Shops account to your shop.',
|
||||
),
|
||||
'thumbnail' => 'picture.png',
|
||||
'version' => '3.3.0.0',
|
||||
'version' => '3.3.1.0',
|
||||
'author' => 'D³ Data Development (Inh. Thomas Dartsch)',
|
||||
'email' => 'support@shopmodule.com',
|
||||
'url' => 'http://www.oxidmodule.com/',
|
||||
|
@ -53,6 +53,7 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
$oParentView->addTplParam('sD3GASendPageViewParameter', $this->d3getSendPageViewParameters());
|
||||
$oParentView->addTplParam('sD3CurrentShopUrl', $this->d3GetCreateCurrentShopUrl());
|
||||
$oParentView->addTplParam('blD3GAIsMobile', $this->d3isMobile());
|
||||
$oParentView->addTplParam('iD3GASendNoBounceEventTime', $this->d3GetSendNoBounceEventTime());
|
||||
|
||||
if ($oSet->getValue('sD3GATSActive') && $oSet->getValue('sD3GATSShoppingActive')) {
|
||||
$aInfos = $this->d3GATSGetProdInfos();
|
||||
@ -142,10 +143,12 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
$aLanguages = oxRegistry::getLang()->getLanguageArray(null, true, true);
|
||||
reset($aLanguages);
|
||||
foreach ($aLanguages as $oVal) {
|
||||
$aUrls = $this->_d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, $aUrls);
|
||||
$this->_d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, $aUrls);
|
||||
}
|
||||
}
|
||||
|
||||
$this->_d3UnsetCurrentUrl($aUrls);
|
||||
|
||||
return $aUrls;
|
||||
}
|
||||
|
||||
@ -157,23 +160,45 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, $aUrls)
|
||||
protected function _d3AddLanguageUrlsToList($aLanguageUrls, $oVal, $aSslLanguageUrls, &$aUrls)
|
||||
{
|
||||
$blIsSsl = oxRegistry::getConfig()->isSsl();
|
||||
|
||||
if ($this->_d3CheckLanguageUrlsToList($aLanguageUrls, $oVal, $blIsSsl)) {
|
||||
$sUrl = str_replace('http://', '', $aLanguageUrls[$oVal->id]);
|
||||
$aUrls[] = "'" . $sUrl . "'";
|
||||
$sUrl = $this->_d3GANormalizeUrl($aLanguageUrls[$oVal->id]);
|
||||
$aUrls[md5($sUrl)] = "'" . $sUrl . "'";
|
||||
}
|
||||
|
||||
if ($this->_d3CheckLanguageUrlsToList($aSslLanguageUrls, $oVal, !$blIsSsl)) {
|
||||
$sSslUrl = str_replace('https://', '', $aSslLanguageUrls[$oVal->id]);
|
||||
$aUrls[] = "'" . $sSslUrl . "'";
|
||||
$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
|
||||
@ -293,7 +318,8 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
public function d3GetGTSLang()
|
||||
{
|
||||
$aHomeCountries = oxRegistry::getConfig()->getConfigParam('aHomeCountry');
|
||||
$sHomeCountryId = $aHomeCountries[array_keys($aHomeCountries)[0]];
|
||||
$aKeys = array_keys($aHomeCountries);
|
||||
$sHomeCountryId = $aHomeCountries[current($aKeys)];
|
||||
/** @var oxcountry $oCountry */
|
||||
$oCountry = oxNew('oxcountry');
|
||||
$oCountry->load($sHomeCountryId);
|
||||
@ -326,7 +352,6 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
return array('aArtIdList' => $aArticleIds);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $aArticleIds
|
||||
*
|
||||
@ -335,7 +360,9 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
public function d3GATSGetProdIdList($aArticleIds)
|
||||
{
|
||||
if (count($aArticleIds)) {
|
||||
return $aArticleIds[array_keys($aArticleIds)[0]];
|
||||
$aKeys = array_keys($aArticleIds);
|
||||
|
||||
return $aArticleIds[current($aKeys)];
|
||||
} else {
|
||||
return "not_set";
|
||||
}
|
||||
@ -540,4 +567,18 @@ class d3_oxcmp_utils_googleanalytics extends d3_oxcmp_utils_googleanalytics_pare
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -114,6 +114,11 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
|
||||
*/
|
||||
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++) {
|
||||
@ -174,16 +179,7 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
|
||||
*/
|
||||
public function d3GAhasBackorderPreorder()
|
||||
{
|
||||
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
|
||||
/** @var oxorderarticle $oOrderArticle */
|
||||
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
|
||||
if ($this->_d3GAhasArticleBackorderPreorder($oOrderArticle)) {
|
||||
return 'Y';
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return 'N';
|
||||
return $this->hasOutOfStockArticles() ? 'Y' : 'N';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -210,14 +206,12 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
|
||||
*/
|
||||
public function d3GAhasDigitalGoods()
|
||||
{
|
||||
if (oxRegistry::getConfig()->getConfigParam('blUseStock')) {
|
||||
/** @var oxorderarticle $oOrderArticle */
|
||||
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
|
||||
if ($this->_d3GAhasArticleDigitalGoods($oOrderArticle)) {
|
||||
return 'Y';
|
||||
}
|
||||
};
|
||||
}
|
||||
/** @var oxorderarticle $oOrderArticle */
|
||||
foreach ($this->getOrder()->getOrderArticles() as $oOrderArticle) {
|
||||
if ($this->_d3GAhasArticleDigitalGoods($oOrderArticle)) {
|
||||
return 'Y';
|
||||
}
|
||||
};
|
||||
|
||||
return 'N';
|
||||
}
|
||||
@ -277,4 +271,20 @@ class d3_thankyou_googleanalytics extends d3_thankyou_googleanalytics_parent
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -13,11 +13,10 @@
|
||||
*
|
||||
* For further informations, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @link http://www.oxidmodule.com
|
||||
* @link http://www.shopmodule.com
|
||||
* @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
|
||||
{
|
||||
/**
|
||||
@ -57,40 +56,21 @@ class d3_oxorder_googleanalytics extends d3_oxorder_googleanalytics_parent
|
||||
*
|
||||
* @return null|void
|
||||
*/
|
||||
protected function _setOrderArticles( $aArticleList )
|
||||
protected function _setOrderArticles($aArticleList)
|
||||
{
|
||||
parent::_setOrderArticles($aArticleList);
|
||||
|
||||
/** @var d3_oxbasketitem_googleanalytics $oBasketItem */
|
||||
foreach ($aArticleList as $oBasketItem) {
|
||||
$oOrderArticle = $this->_d3getOrderArticleFromBasketItem($oBasketItem);
|
||||
if ($oOrderArticle) {
|
||||
$aContent['d3_galocator'] = $oBasketItem->d3GetLocatorTitle();
|
||||
$oOrderArticle->assign($aContent);
|
||||
$oOrderArticle->save();
|
||||
/** @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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param oxbasketitem $oBasketItem
|
||||
*
|
||||
* @return false|oxorderarticle
|
||||
*/
|
||||
protected function _d3getOrderArticleFromBasketItem($oBasketItem)
|
||||
{
|
||||
$aPersParams = $oBasketItem->getPersParams();
|
||||
|
||||
/** @var oxorderarticle $oOrderArticle */
|
||||
foreach ($this->_oArticles as $sArticleId => $oOrderArticle) {
|
||||
if ($oOrderArticle->getFieldData('oxartid') == $oBasketItem->getProductId() &&
|
||||
$oOrderArticle->getFieldData('oxamount') == $oBasketItem->getAmount() &&
|
||||
(null == $aPersParams || $oOrderArticle->getFieldData('oxpersparam') == $aPersParams)
|
||||
) {
|
||||
return $this->_oArticles->offsetGet($sArticleId);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -21,18 +21,18 @@ class d3_googleanalytics_update extends d3install_updatebase
|
||||
|
||||
public $sModName = 'Google Services Schnittstelle';
|
||||
|
||||
public $sModVersion = '3.3.0.0';
|
||||
public $sModVersion = '3.3.1.0';
|
||||
|
||||
public $sModRevision = '196';
|
||||
public $sModRevision = '214';
|
||||
|
||||
// heredoc syntax using for class members is available from PHP 5.3 up
|
||||
public $sBaseConf =
|
||||
"2kGUVVXMXJZNUlFdkwvcCtzTEJ1QkxvSW1HSm5zV3M4a1UxTU90VEtBaGNIeTZKSGVPRXJ6MDc0UTk4O
|
||||
FpodEtKUEZuc2hxSDZnUEhaQmtqRFBoN3dqN21ncm9zY1FGaEdqUE15T0JoSGllSU8rWVZUbWhHSnpxM
|
||||
UNXSnpyUm1GYWZaN092Rkw1T2tEZXliTml4OFFlRTZGWnY5emxKa0JjV1VTZ2I5T2FETklZOEwyd2Rnc
|
||||
FF3S3pHMklCbkZyVGNvQkIvUDlQWENNTHBJQmNPKzBvSFZnUUxVSTVYOUU3OW9YeWJqRkxZZUs5YjFSS
|
||||
XNCYTJ0SzNZZ1J4bUFNK25HM1FkQ3NxLzRvWkYwYjVvdXZKNXdWV0FZT0FPemsyRjI5TGJUbWZJMnU2Q
|
||||
nc9";
|
||||
"U88cS9acWI1SStIK2FRa1hienV0TW43N1djMUFrQTBmdEpsKzF4U2t3M3h6Wk1KcnI4bjFFZ3pUWFgxY
|
||||
XNCc2VDSHIzSTFDN2xURkIxSUZuMG12cnQ3ajJKWEozRmNoZ2Y3TVRkK2hsSFFCU3BXcEh1ekdQcnR2V
|
||||
S9yL3QzT0NuZm1LNHQ2R3RCOHlzekIrTjFJTjhucm0rY29WeTEzeFgzc3Y5MkFUYlh3ZkFuc3ByRkZYT
|
||||
2ZSWVYvaHpJY3A5Ky85cDJnYTkrc3l6MXgzK0NTcmY2MTZDV0hIMmFuRmJ1MzFHSnNJUEFDLzUvSGxWT
|
||||
DRNWEFybDE3SGJXdjJNS1R1a0lPejFqZFVMN3JzMWYrRElYY2t0RTdQUmN6bnJmdDNaNnR1SndaSjcza
|
||||
kk9";
|
||||
|
||||
public $sRequirements = '';
|
||||
|
||||
|
@ -112,6 +112,9 @@ $aLang = array(
|
||||
'</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 '.
|
||||
@ -331,15 +334,27 @@ $aLang = array(
|
||||
'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',
|
||||
'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 Normalfälle 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>',
|
||||
'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)',
|
||||
|
@ -112,6 +112,9 @@ $aLang = array(
|
||||
'</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 '.
|
||||
@ -331,15 +334,27 @@ $aLang = array(
|
||||
'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',
|
||||
'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 Normalfälle 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>',
|
||||
'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)',
|
||||
|
@ -231,6 +231,16 @@
|
||||
[{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>
|
||||
|
@ -137,6 +137,16 @@
|
||||
[{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>
|
||||
|
Fichier binaire non affiché.
@ -43,7 +43,7 @@ class requConfig
|
||||
|
||||
public $sModId = 'd3_googleanalytics';
|
||||
|
||||
public $sModVersion = '3.3.0.0';
|
||||
public $sModVersion = '3.3.1.0';
|
||||
|
||||
/********************** check configuration section ************************/
|
||||
|
||||
@ -60,7 +60,7 @@ class requConfig
|
||||
'hasMaxPhpVersion' => array(
|
||||
'blExec' => 0,
|
||||
'aParams' => array(
|
||||
'version' => '5.4.200'
|
||||
'version' => '5.6.200'
|
||||
)
|
||||
),
|
||||
|
||||
@ -69,7 +69,7 @@ class requConfig
|
||||
'blExec' => 1,
|
||||
'aParams' => array(
|
||||
'from' => '5.2.0',
|
||||
'to' => '5.4.200',
|
||||
'to' => '5.6.200',
|
||||
)
|
||||
),
|
||||
|
||||
@ -132,7 +132,9 @@ class requConfig
|
||||
),
|
||||
|
||||
// benötigt Modul-Connector
|
||||
'hasModCfg' => array('blExec' => 1),
|
||||
'hasModCfg' => array(
|
||||
'blExec' => 1
|
||||
),
|
||||
|
||||
// benötigt mindestens diese Erweiterungen / Version lt. d3_cfg_mod (kaskadierbar (siehe "Desc1"))
|
||||
'hasMinModCfgVersion' => array(
|
||||
@ -1239,7 +1241,7 @@ class requTranslations
|
||||
'Shopedition.</div>'.
|
||||
'<div>Bei Fragen wenden Sie sich bitte an <a href="mailto:support@shopmodule.com">'.
|
||||
'support@shopmodule.com</a>.</div>',
|
||||
'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) oder Zend Guard Loader (PHP 5.3, 5.4) '.
|
||||
'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) oder Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) '.
|
||||
'installiert',
|
||||
'hasZendLoaderOptimizer_DESC' => '<div>Das Modul erfordert (je nach PHP-Version) den Zend Optimizer '.
|
||||
'bzw. den Zend Guard Loader.</div>'.
|
||||
@ -1380,7 +1382,7 @@ class requTranslations
|
||||
'fulfilled. The module can\'t installed or executed.</div>'.
|
||||
'<div>The [+] button show details for all tested directories. If you have any questions, please '.
|
||||
'contact us at support@shopmodule.com.</div>',
|
||||
'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) or Zend Guard Loader (PHP 5.3, 5.4) installed',
|
||||
'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) or Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) installed',
|
||||
'hasZendLoaderOptimizer_DESC' => '<div>requirement check result</div>'.
|
||||
'<div><div class="squ_bullet" style="background-color: green;"></div> This requirement is '.
|
||||
'fulfilled.</div>'.
|
||||
@ -1987,7 +1989,7 @@ class requTests
|
||||
function_exists('zend_optimizer_version')
|
||||
) || (
|
||||
version_compare(phpversion(), '5.3.0', '>=') &&
|
||||
version_compare(phpversion(), '5.4.900', '<') &&
|
||||
version_compare(phpversion(), '5.6.900', '<') &&
|
||||
function_exists('zend_loader_version')
|
||||
)
|
||||
) {
|
||||
|
@ -1,11 +1,21 @@
|
||||
=> 3.3.1.0
|
||||
- Lieferzeitangabe kann nun für lagernde und nicht lagernde Artikel getrennt angegeben werden
|
||||
- Domainliste bei Verwendung mehrerer Shop-Domains korrigiert
|
||||
- Schalter für Absprungratenermittlung integriert
|
||||
- "Zertifizierte Händler"-Variablen werden nur gezeigt, wenn "Zertifizierter Händler" aktiv ist
|
||||
- JS-Fehler bei unkonfigurierter Absprung-Zeit korrigiert
|
||||
|
||||
=> 3.3.0.1
|
||||
- Kompatibilität zu Egate Media PayPal verbessert
|
||||
|
||||
=> 3.3.0.0
|
||||
- Google Zertifierte Händler eingefügt
|
||||
- Google Zertifizierte Händler eingefügt
|
||||
- Hilfetexte erweitert
|
||||
- Integration ins Mobile-Theme
|
||||
- Optimierung der Transaktionsübergaben
|
||||
- getrackte Absprungrate optimiert
|
||||
- Konfigurationsvariablen korrgiert
|
||||
- Fehler bei "toBasket" auf Detailseie ohne Kategorieangabe korrigert
|
||||
- Konfigurationsvariablen korrigiert
|
||||
- Fehler bei "toBasket" auf Detailseite ohne Kategorieangabe korrigiert
|
||||
|
||||
=> 3.2.1.0
|
||||
- neue Option "Opt Out anzeigen lassen"
|
||||
|
Chargement…
x
Référencer dans un nouveau ticket
Bloquer un utilisateur