merge rel_3.x to trunk

This commit is contained in:
Daniel Seifert 2015-07-08 14:48:28 +00:00
commit 1ca54a1744
16 changed files with 247 additions and 142 deletions

View File

@ -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;

View File

@ -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>

View File

@ -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}]

View File

@ -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&sup3; Data Development (Inh. Thomas Dartsch)',
'email' => 'support@shopmodule.com',
'url' => 'http://www.oxidmodule.com/',

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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 = '';

View File

@ -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)',

View File

@ -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)',

View File

@ -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>

View File

@ -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>

View File

@ -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')
)
) {

View File

@ -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"