diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f36c32..bc55b45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +- 4.0.3.0 + + - behält die Umleitungsverhinderung während der aktuellen Session auch ohne weitere Parameter bei + +--- + - 4.0.2.0 - Parameter hinzugefügt, um ungewollte URL-Weiterleitungen zu verhindern diff --git a/src/Application/Model/d3geoip.php b/src/Application/Model/d3geoip.php index d5a0934..a53ad9f 100644 --- a/src/Application/Model/d3geoip.php +++ b/src/Application/Model/d3geoip.php @@ -33,6 +33,9 @@ use OxidEsales\Eshop\Core\Registry; class d3geoip extends BaseModel { + const SKIPURL_REQUEST_PARAM = 'forceUrl'; + const SKIPURL_SESSION_PARAM = 'd3geoipForceUrl'; + protected $_sClassName = 'd3geoip'; private $_sModId = 'd3_geoip'; public $oCountry; @@ -443,9 +446,13 @@ class d3geoip extends BaseModel startProfile(__METHOD__); + if (Registry::getRequest()->getRequestEscapedParameter(self::SKIPURL_REQUEST_PARAM)) { + Registry::getSession()->setVariable(self::SKIPURL_SESSION_PARAM, true); + } + $oCountry = $this->getUserLocationCountryObject(); - if (false == (bool) Registry::getRequest()->getRequestEscapedParameter('forceUrl') + if ($this->dontSkipUrlRedirect() && false == $this->isAdmin() && Registry::getUtils()->isSearchEngine() === false && $oCountry->getId() @@ -470,6 +477,17 @@ class d3geoip extends BaseModel stopProfile(__METHOD__); } + /** + * @return bool + */ + protected function dontSkipUrlRedirect() + { + return false === ( + Registry::getRequest()->getRequestEscapedParameter(self::SKIPURL_REQUEST_PARAM) || + Registry::getSession()->getVariable(self::SKIPURL_SESSION_PARAM) + ); + } + /** * get all shop urls * diff --git a/src/Application/views/admin/de/d3_geoip_lang.php b/src/Application/views/admin/de/d3_geoip_lang.php index 107a8b2..b78999e 100644 --- a/src/Application/views/admin/de/d3_geoip_lang.php +++ b/src/Application/views/admin/de/d3_geoip_lang.php @@ -14,12 +14,14 @@ * @link http://www.oxidmodule.com */ -$sLangName = 'Deutsch'; -$iLangNr = 0; +use D3\GeoIp\Application\Model\d3geoip; + +$sLangName = 'Deutsch'; +$iLangNr = 0; // ------------------------------- // RESOURCE IDENTITFIER = STRING // ------------------------------- -$aLang = array( +$aLang = [ 'charset' => 'UTF-8', 'd3mxgeoip' => " GeoIP", 'd3mxgeoip_settings' => 'Einstellungen', @@ -58,7 +60,7 @@ $aLang = array( 'D3_GEOIP_SELURL_DESC' => 'Sobald im URL-Feld eine Eingabe vorhanden ist, wird bei '. 'passenden Kunden versucht, zur hinterlegten URL zu wechseln. Möchten Sie den Mandanten, die Währung und / '. 'oder die Sprache einstellen, entfernen Sie die URL.

Aktivieren / deaktivieren Sie den URL-Wechsel '. - 'zusätzlich in den Modul-Grundeinstellungen.

Mit dem URL-Parameter "forceUrl=1" können Sie ungewollte URL-'. + 'zusätzlich in den Modul-Grundeinstellungen.

Mit dem URL-Parameter "' . d3geoip::SKIPURL_REQUEST_PARAM . '=1" können Sie ungewollte URL-' . 'Weiterleitungen unterbinden.', 'D3_GEOIP_METADATA_TITLE' => 'D³ GeoIP Vorauswahl', @@ -69,4 +71,4 @@ $aLang = array( 'Laden Sie bitte die aktuellen CSV-Daten des Anbieters Maxmind. In "setup+doku/importCSVtoMySQL" des Modulpaketes finden Sie weitere Informationen und die erforderlichen Datenbank-Befehle, um die nötigen Daten zu generieren.'.PHP_EOL.PHP_EOL. 'Alternativ finden Sie die erforderlichen Daten im Installationspaket des Moduls unter "setup+doku/geoip-data_*". '.PHP_EOL.PHP_EOL. 'Führen Sie die SQL-Datei(en) bitte in Ihrer Datenbank aus.', -); +]; diff --git a/src/Setup/d3geoip_update.php b/src/Setup/d3geoip_update.php index aabb084..5cc9c94 100644 --- a/src/Setup/d3geoip_update.php +++ b/src/Setup/d3geoip_update.php @@ -31,15 +31,15 @@ class d3geoip_update extends d3install_updatebase { public $sModKey = 'd3_geoip'; public $sModName = 'GeoIP'; - public $sModVersion = '4.0.2.0'; - public $sModRevision = '4020'; + public $sModVersion = '4.0.3.0'; + public $sModRevision = '4030'; public $sBaseConf = '-------------------------------------------------------------------------------- -Idvv2==N0IxdktTWFExSTZnejNxbzR0dzQ4Y3lnYzArVWZISEZKNWRoaXBwMTRxNjFlQmpHSFZObk8za -2QrUGRuT3U1T3Nua090WThJak1jVFFxdGc1K0QxMFl6WDB3VUhzakVFM3hPYXc4RjBIWTVtZVR4YlBRe -TdZOWZpNWdpajR1NWFzdjc3aVN6YkZra1A2NHQ5ZWVXS0lsWG5tVU1xcG9GaWRpOU5MVDRjZDZUNXVFd -lVzUXlZYnlheHl6Qy9sNWFRdWdDQUFXM21NRUdnR0V1amkvVmpwaGxWZ1FIaU51M1pUaTdzMk9IeFNjb -kpZVEp5ZWxzUGlJUWZFbkdpbVBWZHN4ZStNcW1QWWwrV21ESTFpQlA1TWRCVG9BOEFqSHRMcXBsZHdjM -1loSHpoN1BZSjk2MUR0a0hIWlJYWUlCbnY= +IcVv2==WXpWc0RKWEJENXNFcURUa1JKeXF6bnZFbVgzWm9FaDJ5OTBLdytmbitEMWFBRXBhbXpyVkw3V +0MrSlRyWU5JaDczWFN0OVpzTXhqN2hpZHl0S3ByeHArT0hmbmtpaW1RVDM5cU94SjJtcnNaTG9sMkVWe +G1SZWpqRlhHUC9OSDRZWTFNdG9LNEJDUHBKMkp5UU9ZS3k2NkRxTXFsOWlUSll1dDhKNHFxelJqWStmS +ktRMkExb2x2SkRSVm50TE93M2lBZ0tvemFscGpNZ1NrN0FST0t4d3B0R21UQmJIMlp5ZnFkeE1WQzlDN +2Y0clFQWVFTUVdiaGhGb1JjbVR2RXdzNWxGSDYrZFlvTmRwdENzMkk0aExXbDVXN0dwNXRieE10U05hT +UE2RXRrdEU2aTJ3eXZaUkFoQVVSa1dRWE0= --------------------------------------------------------------------------------'; public $sRequirements = ''; public $sBaseValue = ''; diff --git a/src/metadata.php b/src/metadata.php index 8985eac..7c576c3 100644 --- a/src/metadata.php +++ b/src/metadata.php @@ -30,7 +30,7 @@ $aModule = [ 'en' => '', ], 'thumbnail' => 'picture.png', - 'version' => '4.0.2.0', + 'version' => '4.0.3.0', 'author' => 'D³ Data Development (Inh.: Thomas Dartsch)', 'email' => 'support@shopmodule.com', 'url' => 'http://www.oxidmodule.com/',