8
0
Fork 0

add encoding instructions, documentation refreshed, IPv6 support added

Dieser Commit ist enthalten in:
Daniel Seifert 2013-04-22 09:48:59 +00:00
Ursprung 5106a4ec0b
Commit 3a656aa284
35 geänderte Dateien mit 393070 neuen und 163654 gelöschten Zeilen

28
.gitattributes vendored
Datei anzeigen

@ -1,5 +1,6 @@
* text=auto !eol * text=auto !eol
/Doxyfile -text /Doxyfile -text
copy_this/.noencode -text
copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset.php -text copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset.php -text
copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset_licence.php -text copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset_licence.php -text
copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset_list.php -text copy_this/modules/d3/d3geoip/controllers/admin/d3_cfg_geoipset_list.php -text
@ -17,18 +18,23 @@ copy_this/modules/d3/d3geoip/views/admin/tpl/d3_cfg_geoipset_main.tpl -text
copy_this/modules/d3/d3geoip/views/admin/tpl/d3_country_geoip.tpl -text copy_this/modules/d3/d3geoip/views/admin/tpl/d3_country_geoip.tpl -text
setup+doku/Installation.pdf -text setup+doku/Installation.pdf -text
setup+doku/d3precheck.php -text setup+doku/d3precheck.php -text
setup+doku/geoip-Data_2011-10-13.sql -text setup+doku/geoip-Data_IPv4_2013-04-18.sql -text
setup+doku/geoip-Data_IPv6_2013-04-18.sql -text
setup+doku/geoip-Struktur.sql -text setup+doku/geoip-Struktur.sql -text
setup+doku/geoip_data_parts/1.sql -text setup+doku/geoip_data_parts/IPv4_1.sql -text
setup+doku/geoip_data_parts/2.sql -text setup+doku/geoip_data_parts/IPv4_2.sql -text
setup+doku/geoip_data_parts/3.sql -text setup+doku/geoip_data_parts/IPv4_3.sql -text
setup+doku/geoip_data_parts/4.sql -text setup+doku/geoip_data_parts/IPv4_4.sql -text
setup+doku/geoip_data_parts/5.sql -text setup+doku/geoip_data_parts/IPv4_5.sql -text
setup+doku/geoip_data_parts/6.sql -text setup+doku/geoip_data_parts/IPv4_6.sql -text
setup+doku/geoip_data_parts/7.sql -text setup+doku/geoip_data_parts/IPv4_7.sql -text
setup+doku/geoip_data_parts/8.sql -text setup+doku/geoip_data_parts/IPv4_8.sql -text
setup+doku/geoip_data_parts/IPv6_1.sql -text
setup+doku/geoip_data_parts/IPv6_2.sql -text
setup+doku/licence.txt -text setup+doku/licence.txt -text
sources/CSVtoSQLconvert_perl.zip -text sources/CSVtoSQLconvert_perl/geoip_V6.csv -text
sources/CSVtoSQLconvert_perl/geoip_v4.csv -text
sources/CSVtoSQLconvert_perl/test.pl -text
sources/DevReferences/html/annotated.html -text sources/DevReferences/html/annotated.html -text
sources/DevReferences/html/bc_s.png -text sources/DevReferences/html/bc_s.png -text
sources/DevReferences/html/classd3__cfg__geoipset.html -text sources/DevReferences/html/classd3__cfg__geoipset.html -text
@ -103,7 +109,5 @@ sources/Doku/Drucken[!!-~]-[!!-~]MaxMind[!!-~]Forum[!!-~]•[!!-~]View[!!-~]topi
sources/Doku/Drucken[!!-~]-[!!-~]On[!!-~]efficiently[!!-~]geo-referencing[!!-~]IPs[!!-~]with[!!-~]MaxMind[!!-~]GeoIP[!!-~]and[!!-~]MySQL[!!-~]GIS[!!-~]«[!!-~]Jeremy[!!-~]Cole.pdf -text svneol=unset#unset sources/Doku/Drucken[!!-~]-[!!-~]On[!!-~]efficiently[!!-~]geo-referencing[!!-~]IPs[!!-~]with[!!-~]MaxMind[!!-~]GeoIP[!!-~]and[!!-~]MySQL[!!-~]GIS[!!-~]«[!!-~]Jeremy[!!-~]Cole.pdf -text svneol=unset#unset
sources/Doku/Drucken[!!-~]-[!!-~]Vincent[!!-~]de[!!-~]Lau_[!!-~]HOW-TO[!!-~]Import[!!-~]the[!!-~]MaxMind[!!-~]GeoIP[!!-~]Free[!!-~]Country[!!-~]CSV[!!-~]file[!!-~]into[!!-~]MySQL[!!-~]and[!!-~]save[!!-~]diskspace.pdf -text svneol=unset#unset sources/Doku/Drucken[!!-~]-[!!-~]Vincent[!!-~]de[!!-~]Lau_[!!-~]HOW-TO[!!-~]Import[!!-~]the[!!-~]MaxMind[!!-~]GeoIP[!!-~]Free[!!-~]Country[!!-~]CSV[!!-~]file[!!-~]into[!!-~]MySQL[!!-~]and[!!-~]save[!!-~]diskspace.pdf -text svneol=unset#unset
sources/GeoIP-Installation.docx -text sources/GeoIP-Installation.docx -text
sources/GeoIPCountryCSV.zip -text
sources/GeoIPv6.csv/GeoIPv6-20120304.csv -text
sources/IPNum-Berechnung.xls -text sources/IPNum-Berechnung.xls -text
sources/ToDo.txt -text sources/ToDo.txt -text

1
copy_this/.noencode Normale Datei
Datei anzeigen

@ -0,0 +1 @@
copyAsIsFiles = modules/d3/d3geoip/controllers, modules/d3/d3geoip/models/d3geoip_update.php, modules/d3/d3geoip/modules/components, modules/d3/d3geoip/views, modules/d3/d3geoip/d3_geoip_stub.php, modules/d3/d3geoip/metadata.php

Datei anzeigen

@ -1,26 +1,28 @@
<?php <?php
// @copyright © D³ Data Development /**
// * This Software is the property of Data Development and is protected
// This Software is the property of Data Development and is protected * by copyright law - it is NOT Freeware.
// by copyright law - it is NOT Freeware. *
// * Any unauthorized use of this software without a valid license
// Any unauthorized use of this software without a valid license key * is a violation of the license agreement and will be prosecuted by
// is a violation of the license agreement and will be prosecuted by * civil and criminal law.
// civil and criminal law. *
// * http://www.shopmodule.com
// http://www.shopmodule.com *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
// AUTOR Daniel Seifert <ds@shopmodule.com> * @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_cfg_geoipset extends d3_cfg_mod_ class d3_cfg_geoipset extends d3_cfg_mod_
{ {
/**
* @return string
*/
public function render() public function render()
{ {
$this->_aViewData['sListClass'] = 'd3_cfg_geoipset_list'; $this->addTplParam('sListClass', 'd3_cfg_geoipset_list');
$this->addTplParam('sMainClass', 'd3_cfg_geoipset_main');
$this->_aViewData['sMainClass'] = 'd3_cfg_geoipset_main';
$this->_hasListItems = false; $this->_hasListItems = false;

Datei anzeigen

@ -1,27 +1,24 @@
<?php <?php
// @copyright © D³ Data Development /**
// * This Software is the property of Data Development and is protected
// This Software is the property of Data Development and is protected * by copyright law - it is NOT Freeware.
// by copyright law - it is NOT Freeware. *
// * Any unauthorized use of this software without a valid license
// Any unauthorized use of this software without a valid license key * is a violation of the license agreement and will be prosecuted by
// is a violation of the license agreement and will be prosecuted by * civil and criminal law.
// civil and criminal law. *
// * http://www.shopmodule.com
// http://www.shopmodule.com *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
// AUTOR Daniel Seifert <ds@shopmodule.com> * @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_cfg_geoipset_licence extends d3_cfg_mod_licence class d3_cfg_geoipset_licence extends d3_cfg_mod_licence
{ {
protected $_sModId = 'd3_geoip'; protected $_sModId = 'd3_geoip';
protected $_hasLicence = false;
protected $_hasNewsletterForm = false; protected $_hasNewsletterForm = false;
protected $_sMenuItemTitle = 'd3mxgeoip'; protected $_sMenuItemTitle = 'd3mxgeoip';
protected $_sMenuSubItemTitle = 'd3mxgeoip_settings'; protected $_sMenuSubItemTitle = 'd3mxgeoip_settings';
} }

Datei anzeigen

@ -1,17 +1,19 @@
<?php <?php
// @copyright © D³ Data Development /**
// * This Software is the property of Data Development and is protected
// This Software is the property of Data Development and is protected * by copyright law - it is NOT Freeware.
// by copyright law - it is NOT Freeware. *
// * Any unauthorized use of this software without a valid license
// Any unauthorized use of this software without a valid license key * is a violation of the license agreement and will be prosecuted by
// is a violation of the license agreement and will be prosecuted by * civil and criminal law.
// civil and criminal law. *
// * http://www.shopmodule.com
// http://www.shopmodule.com *
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
// AUTOR Daniel Seifert <ds@shopmodule.com> * @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_cfg_geoipset_list extends d3_cfg_mod_list class d3_cfg_geoipset_list extends d3_cfg_mod_list
{ {
@ -22,14 +24,17 @@ class d3_cfg_geoipset_list extends d3_cfg_mod_list
protected $_sMenuSubItemTitle = 'd3mxgeoip_settings'; protected $_sMenuSubItemTitle = 'd3mxgeoip_settings';
/**
* @return null
*/
public function render() public function render()
{ {
$sRet = parent::render(); $sRet = parent::render();
// default page number 1 // default page number 1
$this->_aViewData['oxid'] = 1; $this->addTplParam('oxid', 1);
$this->_aViewData["default_edit"] = "d3_cfg_geoipset_main"; $this->addTplParam("default_edit", "d3_cfg_geoipset_main");
$this->_aViewData["updatemain"] = $this->_blUpdateMain; $this->addTplParam("updatemain", $this->_blUpdateMain);
return $sRet; return $sRet;
} }

Datei anzeigen

@ -191,12 +191,15 @@ class d3_country_geoip extends oxAdminView
$sCurs = oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getOne($sQ); $sCurs = oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getOne($sQ);
foreach (unserialize($sCurs) as $sKey => $sValue) if ($sCurs)
{ {
$aFields = explode('@', $sValue); foreach (unserialize($sCurs) as $sKey => $sValue)
$aCurrencies[$sKey]->id = $sKey; {
$aCurrencies[$sKey]->name = $aFields[0]; $aFields = explode('@', $sValue);
$aCurrencies[$sKey]->sign = $aFields[4]; $aCurrencies[$sKey]->id = $sKey;
$aCurrencies[$sKey]->name = $aFields[0];
$aCurrencies[$sKey]->sign = $aFields[4];
}
} }
return $aCurrencies; return $aCurrencies;

Datei anzeigen

@ -15,7 +15,7 @@
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3GeoIP extends oxI18n class d3GeoIP extends oxbase
{ {
protected $_sClassName = 'd3geoip'; protected $_sClassName = 'd3geoip';
private $_sModId = 'd3_geoip'; private $_sModId = 'd3_geoip';
@ -41,6 +41,8 @@ class d3GeoIP extends oxI18n
{ {
if (!$this->oCountry) if (!$this->oCountry)
{ {
startProfile(__METHOD__);
if (!$sIP) if (!$sIP)
{ {
$sIP = $this->getIP(); $sIP = $this->getIP();
@ -59,6 +61,8 @@ class d3GeoIP extends oxI18n
$this->_getLog()->log('info', __CLASS__, __FUNCTION__, __LINE__, 'get ISO by IP', $sIP." => ".$sISOAlpha); $this->_getLog()->log('info', __CLASS__, __FUNCTION__, __LINE__, 'get ISO by IP', $sIP." => ".$sISOAlpha);
$this->oCountry = $this->getCountryObject($sISOAlpha); $this->oCountry = $this->getCountryObject($sISOAlpha);
} }
stopProfile(__METHOD__);
} }
return $this->oCountry; return $this->oCountry;
@ -71,31 +75,71 @@ class d3GeoIP extends oxI18n
*/ */
public function getIP() public function getIP()
{ {
startProfile(__METHOD__);
if ($this->_getModConfig()->getValue('blUseTestIp') && $this->_getModConfig()->getValue('sTestIp')) if ($this->_getModConfig()->getValue('blUseTestIp') && $this->_getModConfig()->getValue('sTestIp'))
{ {
return $this->_getModConfig()->getValue('sTestIp'); $sIP = $this->_getModConfig()->getValue('sTestIp');
} }
elseif ($this->_getModConfig()->getValue('blUseTestCountry') && $this->_getModConfig()->getValue('sTestCountryIp')) elseif ($this->_getModConfig()->getValue('blUseTestCountry') && $this->_getModConfig()->getValue('sTestCountryIp'))
{ {
return $this->_getModConfig()->getValue('sTestCountryIp'); $sIP = $this->_getModConfig()->getValue('sTestCountryIp');
} }
else else
{ {
return $_SERVER['REMOTE_ADDR']; // ToDo: use $_SERVER['X-Forwared-For'] && Client-IP in case of proxy
$sIP = $_SERVER['REMOTE_ADDR'];
} }
stopProfile(__METHOD__);
return $sIP;
} }
/** /**
* get IP number by IP address * get IP number by IP address
* * @param $sIP
* @param string $sIP IP address * @return bool
* @return int IP number * @throws Exception|int
*/ */
protected function _getNumIp($sIP) protected function _getNumIp($sIP)
{ {
$aIP = explode('.',$sIP); // make sure it is an ip
$iIP = ($aIP[0] * 16777216) + ($aIP[1] * 65536) + ($aIP[2] * 256) + ($aIP[3] * 1); if (filter_var($sIP, FILTER_VALIDATE_IP) === FALSE)
return $iIP; return FALSE;
startProfile(__METHOD__);
$parts = unpack('N*', inet_pton($sIP));
if (strpos($sIP, '.') !== FALSE)
{
$parts = array(1=>0, 2=>0, 3=>0, 4=>$parts[1]);
}
foreach ($parts as &$part)
{
if ($part < 0)
$part += 4294967296;
}
if (function_exists('bcadd'))
{
$dIP = $parts[4];
$dIP = bcadd($dIP, bcmul($parts[3], '4294967296'));
$dIP = bcadd($dIP, bcmul($parts[2], '18446744073709551616'));
$dIP = bcadd($dIP, bcmul($parts[1], '79228162514264337593543950336'));
}
else
{
throw new Exception('extension BCMath is required');
}
$aIP = explode('.', $dIP);
stopProfile(__METHOD__);
return $aIP[0];
} }
/** /**
@ -106,8 +150,14 @@ class d3GeoIP extends oxI18n
*/ */
public function LoadByIPNum($iIPNum) public function LoadByIPNum($iIPNum)
{ {
startProfile(__METHOD__);
$sSelect = "SELECT d3iso FROM ".$this->_sClassName." WHERE d3startipnum <= '$iIPNum' AND d3endipnum >= '$iIPNum'"; $sSelect = "SELECT d3iso FROM ".$this->_sClassName." WHERE d3startipnum <= '$iIPNum' AND d3endipnum >= '$iIPNum'";
return oxDb::getDb()->getOne($sSelect); $sISO = oxDb::getDb()->getOne($sSelect);
stopProfile(__METHOD__);
return $sISO;
} }
/** /**
@ -118,21 +168,27 @@ class d3GeoIP extends oxI18n
*/ */
public function getCountryObject($sISOAlpha) public function getCountryObject($sISOAlpha)
{ {
startProfile(__METHOD__);
$oCountry = oxNew('oxcountry'); $oCountry = oxNew('oxcountry');
$sSelect = "SELECT oxid FROM ".$oCountry->getViewName()." WHERE OXISOALPHA2 = '".$sISOAlpha."' AND OXACTIVE = '1'"; $sSelect = "SELECT oxid FROM ".$oCountry->getViewName()." WHERE OXISOALPHA2 = '".$sISOAlpha."' AND OXACTIVE = '1'";
$oCountry->load(oxDb::getDb()->getOne($sSelect)); $oCountry->load(oxDb::getDb()->getOne($sSelect));
stopProfile(__METHOD__);
return $oCountry; return $oCountry;
} }
/** /**
* get oxcountry object for fallback, if set * get oxcountry object for fallback, if set
* *
* @return object * @return oxcountry
*/ */
public function getCountryFallBackObject() public function getCountryFallBackObject()
{ {
startProfile(__METHOD__);
$oCountry = oxNew('oxcountry'); $oCountry = oxNew('oxcountry');
if ($this->_getModConfig()->getValue('blUseFallback') && $this->_getModConfig()->getValue('sFallbackCountryId')) if ($this->_getModConfig()->getValue('blUseFallback') && $this->_getModConfig()->getValue('sFallbackCountryId'))
@ -140,6 +196,8 @@ class d3GeoIP extends oxI18n
$oCountry->Load($this->_getModConfig()->getValue('sFallbackCountryId')); $oCountry->Load($this->_getModConfig()->getValue('sFallbackCountryId'));
} }
stopProfile(__METHOD__);
return $oCountry; return $oCountry;
} }
@ -149,11 +207,16 @@ class d3GeoIP extends oxI18n
*/ */
public function setCountryLanguage() public function setCountryLanguage()
{ {
startProfile(__METHOD__);
$this->performURLSwitch(); $this->performURLSwitch();
$this->performShopSwitch(); $this->performShopSwitch();
if (!$this->_getModConfig()->isActive() || !$this->_getModConfig()->getValue('blChangeLang')) if (!$this->_getModConfig()->isActive() || !$this->_getModConfig()->getValue('blChangeLang'))
{
stopProfile(__METHOD__);
return; return;
}
$oCountry = $this->getUserLocationCountryObject(); $oCountry = $this->getUserLocationCountryObject();
@ -164,6 +227,8 @@ class d3GeoIP extends oxI18n
oxRegistry::getLang()->setBaseLanguage((int) $oCountry->getFieldData('d3geoiplang')); oxRegistry::getLang()->setBaseLanguage((int) $oCountry->getFieldData('d3geoiplang'));
oxRegistry::getSession()->setVariable('d3isSetLang', true); oxRegistry::getSession()->setVariable('d3isSetLang', true);
} }
stopProfile(__METHOD__);
} }
/** /**
@ -175,6 +240,8 @@ class d3GeoIP extends oxI18n
if (!$this->_getModConfig()->isActive() || !$this->_getModConfig()->getValue('blChangeCurr')) if (!$this->_getModConfig()->isActive() || !$this->_getModConfig()->getValue('blChangeCurr'))
return; return;
startProfile(__METHOD__);
$oCountry = $this->getUserLocationCountryObject(); $oCountry = $this->getUserLocationCountryObject();
if (!$this->isAdmin() && oxRegistry::getUtils()->isSearchEngine() === false && !oxRegistry::getSession()->getVariable('d3isSetCurr') && $oCountry->getId() && $oCountry->getFieldData('d3geoipcur') > -1) if (!$this->isAdmin() && oxRegistry::getUtils()->isSearchEngine() === false && !oxRegistry::getSession()->getVariable('d3isSetCurr') && $oCountry->getId() && $oCountry->getFieldData('d3geoipcur') > -1)
@ -183,6 +250,8 @@ class d3GeoIP extends oxI18n
oxRegistry::getConfig()->setActShopCurrency((int) $oCountry->getFieldData('d3geoipcur')); oxRegistry::getConfig()->setActShopCurrency((int) $oCountry->getFieldData('d3geoipcur'));
oxRegistry::getSession()->setVariable('d3isSetCurr', true); oxRegistry::getSession()->setVariable('d3isSetCurr', true);
} }
stopProfile(__METHOD__);
} }
/** /**
@ -194,11 +263,22 @@ class d3GeoIP extends oxI18n
if (!$this->_getModConfig()->isActive() || !$this->_getModConfig()->getValue('blChangeShop')) if (!$this->_getModConfig()->isActive() || !$this->_getModConfig()->getValue('blChangeShop'))
return; return;
$oCountry = $this->getUserLocationCountryObject(); startProfile(__METHOD__);
$oCountry = $this->getUserLocationCountryObject();
$iNewShop = $oCountry->getFieldData('d3geoipshop'); $iNewShop = $oCountry->getFieldData('d3geoipshop');
if (!$this->isAdmin() && oxRegistry::getUtils()->isSearchEngine() === false && $oCountry->getId() && $this->getConfig()->isMall() && $iNewShop > -1 && $iNewShop != $this->getConfig()->getShopId()) if (oxRegistry::getConfig()->getRequestParameter('d3redirect') != 1 &&
!$this->isAdmin() &&
oxRegistry::getUtils()->isSearchEngine() === false &&
$oCountry->getId() &&
$this->getConfig()->isMall() &&
$iNewShop > -1 &&
(
$iNewShop != $this->getConfig()->getShopId() ||
strtolower($this->getConfig()->getActiveView()->getClassName()) == 'mallstart'
)
)
{ {
$oNewConf = new oxConfig(); $oNewConf = new oxConfig();
$oNewConf->setShopId($iNewShop); $oNewConf->setShopId($iNewShop);
@ -206,7 +286,9 @@ class d3GeoIP extends oxI18n
$this->getConfig()->onShopChange(); $this->getConfig()->onShopChange();
if (!oxRegistry::getSession()->getVariable('d3isSetLang') && $oCountry->getFieldData('d3geoiplang') > -1) if (!oxRegistry::getSession()->getVariable('d3isSetLang') &&
$this->_getModConfig()->getValue('blChangeLang') &&
$oCountry->getFieldData('d3geoiplang') > -1)
{ {
$sLangId = $oCountry->getFieldData('d3geoiplang'); $sLangId = $oCountry->getFieldData('d3geoiplang');
} }
@ -215,11 +297,22 @@ class d3GeoIP extends oxI18n
$sLangId = ''; $sLangId = '';
} }
$this->_getLog()->log('info', __CLASS__, __FUNCTION__, __LINE__, 'change shop', $this->getIP().' => '.$oNewConf->getShopHomeUrl($sLangId)); /** @var $oStr d3str */
$oStr = oxRegistry::get('d3str');
$aParams = array(
'd3redirect' => '1',
'fnc' => oxRegistry::getConfig()->getRequestParameter('fnc'),
'shp' => $iNewShop
);
$sUrl = str_replace('&amp;', '&', $oStr->generateParameterUrl($oNewConf->getShopHomeUrl($sLangId), $aParams));
header("Location: ".$oNewConf->getShopHomeUrl($sLangId)); $this->_getLog()->log('info', __CLASS__, __FUNCTION__, __LINE__, 'change shop', $this->getIP().' => '.$sUrl);
header("Location: ".$sUrl);
exit(); exit();
} }
stopProfile(__METHOD__);
} }
/** /**
@ -233,9 +326,16 @@ class d3GeoIP extends oxI18n
return; return;
} }
startProfile(__METHOD__);
$oCountry = $this->getUserLocationCountryObject(); $oCountry = $this->getUserLocationCountryObject();
if (!$this->isAdmin() && oxRegistry::getUtils()->isSearchEngine() === false && $oCountry->getId() && $oCountry->getFieldData('d3geoipurl') && strlen(trim($oCountry->getFieldData('d3geoipurl'))) > 0) if (!$this->isAdmin() &&
oxRegistry::getUtils()->isSearchEngine() === false &&
$oCountry->getId() &&
$oCountry->getFieldData('d3geoipurl') &&
strlen(trim($oCountry->getFieldData('d3geoipurl'))) > 0
)
{ {
$sNewUrl = $oCountry->getFieldData('d3geoipurl'); $sNewUrl = $oCountry->getFieldData('d3geoipurl');
@ -244,6 +344,8 @@ class d3GeoIP extends oxI18n
header("Location: ".$sNewUrl); header("Location: ".$sNewUrl);
exit(); exit();
} }
stopProfile(__METHOD__);
} }
/** /**
@ -253,6 +355,8 @@ class d3GeoIP extends oxI18n
*/ */
public function getShopUrls() public function getShopUrls()
{ {
startProfile(__METHOD__);
$oShoplist = oxNew( 'oxshoplist' ); $oShoplist = oxNew( 'oxshoplist' );
$oShoplist->getList(); $oShoplist->getList();
$aShopUrls = array(); $aShopUrls = array();
@ -261,6 +365,8 @@ class d3GeoIP extends oxI18n
$aShopUrls[$sId] = $this->getConfig()->getShopConfVar( 'sMallShopURL', $sId ); $aShopUrls[$sId] = $this->getConfig()->getShopConfVar( 'sMallShopURL', $sId );
} }
stopProfile(__METHOD__);
return $aShopUrls; return $aShopUrls;
} }

Datei anzeigen

@ -36,8 +36,8 @@ nc9';
'do' => 'updateGeoIpItems'), 'do' => 'updateGeoIpItems'),
array('check' => 'checkModCfgItemExist', array('check' => 'checkModCfgItemExist',
'do' => 'updateModCfgItemExist'), 'do' => 'updateModCfgItemExist'),
array('check' => 'checkFields', array('check' => 'checkGeoIpFields',
'do' => 'fixFields'), 'do' => 'fixGeoIpFields'),
array('check' => 'checkIndizes', array('check' => 'checkIndizes',
'do' => 'fixIndizes'), 'do' => 'fixIndizes'),
array('check' => 'checkModCfgSameRevision', array('check' => 'checkModCfgSameRevision',
@ -91,7 +91,7 @@ nc9';
'D3STARTIP' => array( 'D3STARTIP' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3STARTIP', 'sFieldName' => 'D3STARTIP',
'sType' => 'CHAR(15)', 'sType' => 'VARCHAR(39)',
'blNull' => FALSE, 'blNull' => FALSE,
'sDefault' => FALSE, 'sDefault' => FALSE,
'sComment' => '', 'sComment' => '',
@ -101,7 +101,7 @@ nc9';
'D3ENDIP' => array( 'D3ENDIP' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3ENDIP', 'sFieldName' => 'D3ENDIP',
'sType' => 'CHAR(15)', 'sType' => 'VARCHAR(39)',
'blNull' => FALSE, 'blNull' => FALSE,
'sDefault' => FALSE, 'sDefault' => FALSE,
'sComment' => '', 'sComment' => '',
@ -111,7 +111,7 @@ nc9';
'D3STARTIPNUM' => array( 'D3STARTIPNUM' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3STARTIPNUM', 'sFieldName' => 'D3STARTIPNUM',
'sType' => 'INT(10) unsigned', 'sType' => 'DECIMAL(38,0)',
'blNull' => FALSE, 'blNull' => FALSE,
'sDefault' => FALSE, 'sDefault' => FALSE,
'sComment' => '', 'sComment' => '',
@ -121,7 +121,7 @@ nc9';
'D3ENDIPNUM' => array( 'D3ENDIPNUM' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3ENDIPNUM', 'sFieldName' => 'D3ENDIPNUM',
'sType' => 'INT(10) unsigned', 'sType' => 'DECIMAL(38,0)',
'blNull' => FALSE, 'blNull' => FALSE,
'sDefault' => FALSE, 'sDefault' => FALSE,
'sComment' => '', 'sComment' => '',
@ -260,111 +260,141 @@ nc9';
'oxmodid' => $this->sModKey, 'oxmodid' => $this->sModKey,
'oxshopid' => $oShop->getId(), 'oxshopid' => $oShop->getId(),
); );
$aInsertFields = array(
array (
'fieldname' => 'OXID',
'content' => "md5('" . $this->sModKey . " " . $oShop->getId() . " de')",
'force_update' => TRUE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXSHOPID',
'content' => $oShop->getId(),
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXMODID',
'content' => $this->sModKey,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXNAME',
'content' => $this->sModName,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXACTIVE',
'content' => "0",
'force_update' => FALSE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXBASECONFIG',
'content' => $this->sBaseConf,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXSERIAL',
'content' => "",
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXINSTALLDATE',
'content' => "NOW()",
'force_update' => TRUE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXVERSION',
'content' => $this->sModVersion,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXSHOPVERSION',
'content' => oxRegistry::getConfig()->getEdition(),
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXREQUIREMENTS',
'content' => $this->sRequirements,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXVALUE',
'content' => $this->sBaseValue,
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXNEWREVISION',
'content' => $this->sModRevision,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
)
);
$aRet = $this->_updateTableItem('d3_cfg_mod', $aInsertFields, $aWhere);
$blRet = $aRet['blRet'];
$this->_setActionLog('SQL', $aRet['sql'], __METHOD__); if ($this->_checkTableItemNotExist('d3_cfg_mod', $aWhere))
$this->_setUpdateBreak(FALSE);
if ($this->getStepByStepMode())
{ {
break; $aInsertFields = array(
array (
'fieldname' => 'OXID',
'content' => "md5('" . $this->sModKey . " " . $oShop->getId() . " de')",
'force_update' => TRUE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXSHOPID',
'content' => $oShop->getId(),
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXMODID',
'content' => $this->sModKey,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXNAME',
'content' => $this->sModName,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXACTIVE',
'content' => "0",
'force_update' => FALSE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXBASECONFIG',
'content' => $this->sBaseConf,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXSERIAL',
'content' => "",
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXINSTALLDATE',
'content' => "NOW()",
'force_update' => TRUE,
'use_quote' => FALSE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXVERSION',
'content' => $this->sModVersion,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXSHOPVERSION',
'content' => oxRegistry::getConfig()->getEdition(),
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array (
'fieldname' => 'OXREQUIREMENTS',
'content' => $this->sRequirements,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXVALUE',
'content' => $this->sBaseValue,
'force_update' => FALSE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
),
array(
'fieldname' => 'OXNEWREVISION',
'content' => $this->sModRevision,
'force_update' => TRUE,
'use_quote' => TRUE,
'use_multilang' => FALSE,
)
);
$aRet = $this->_updateTableItem('d3_cfg_mod', $aInsertFields, $aWhere);
$blRet = $aRet['blRet'];
$this->_setActionLog('SQL', $aRet['sql'], __METHOD__);
$this->_setUpdateBreak(FALSE);
if ($this->getStepByStepMode())
{
break;
}
} }
} }
} }
return $blRet; return $blRet;
} }
/**
* change default value for shop id in EE
* @return bool
*/
public function checkGeoIpFields()
{
/** @var $oShop oxshop */
$oShop = $this->_getShopList()->current();
$this->aFields['D3GEOIPSHOP']['sDefault'] = $oShop->getId();
return $this->checkFields();
}
/**
* change default value for shop id in EE
* @return bool
*/
public function fixGeoIpFields()
{
/** @var $oShop oxshop */
$oShop = $this->_getShopList()->current();
$this->aFields['D3GEOIPSHOP']['sDefault'] = $oShop->getId();
return $this->fixFields();
}
} }

Datei anzeigen

@ -1,17 +1,17 @@
<?php <?php
/** /**
* This Software is the property of OXID eSales and is protected * This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware. * by copyright law - it is NOT Freeware.
* *
* Any unauthorized use of this software without a valid license key * Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by * is a violation of the license agreement and will be prosecuted by
* civil and criminal law. * civil and criminal law.
* *
* @link http://www.oxid-esales.com * http://www.shopmodule.com
* @package lang *
* @copyright (C) OXID eSales AG 2003-2009 * @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @version OXID eShop EE * @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
* $Id: lang.php 23594 2009-10-26 13:19:30Z alfonsas $ * @link http://www.oxidmodule.com
*/ */
$sLangName = 'Deutsch'; $sLangName = 'Deutsch';
@ -58,7 +58,7 @@ $aLang = array(
'D3_GEOIP_METADATA_TITLE' => 'D³ GeoIP Vorauswahl', 'D3_GEOIP_METADATA_TITLE' => 'D³ GeoIP Vorauswahl',
'D3_GEOIP_METADATA_DESC' => 'Begrüßen Sie Ihre Kunden in seiner Landessprache.', 'D3_GEOIP_METADATA_DESC' => 'Begrüßen Sie Ihre Kunden in seiner Landessprache.',
'D3_GEOIP_UPDATE_ITEMINSTALL' => 'Die umfangreiche IP-Liste kann leider nicht über die automatische Installation eingebunden werden. Bitte installieren Sie diese manuell. '.PHP_EOL.PHP_EOL.'Die erforderlichen Daten finden Sie im Installationspaket des Moduls unter "setup+doku/geoip-Data_*.sql" oder als handlichere SQL-Dateien unter "setup+doku/geoip_data_parts/". '.PHP_EOL.PHP_EOL.'Sie benötigen entweder die Komplettdatei oder die Sammlung kleinerer Daten. Führen Sie die SQL-Datei(en) bitte in Ihrer Datenbank aus.', 'D3_GEOIP_UPDATE_ITEMINSTALL' => 'Die umfangreiche IP-Liste kann leider nicht über die automatische Installation eingebunden werden. Bitte installieren Sie diese manuell. '.PHP_EOL.PHP_EOL.'Die erforderlichen Daten finden Sie im Installationspaket des Moduls unter "setup+doku/geoip-Data_IPv4_*.sql" ("setup+doku/geoip-Data_IPv6_*.sql" für IPv6-Adressen) oder als handlichere SQL-Dateien unter "setup+doku/geoip_data_parts/". '.PHP_EOL.PHP_EOL.'Sie benötigen entweder die Komplettdateien oder die Sammlung kleinerer Daten. Führen Sie die SQL-Datei(en) bitte in Ihrer Datenbank aus.',
); );

Datei anzeigen

@ -221,7 +221,7 @@ td.edittext {
<input class="edittext ext_edittext" type="checkbox" name="value[blUseTestIp]" value='1' [{if $edit->getValue('blUseTestIp') == 1}]checked[{/if}]> <input class="edittext ext_edittext" type="checkbox" name="value[blUseTestIp]" value='1' [{if $edit->getValue('blUseTestIp') == 1}]checked[{/if}]>
</dt> </dt>
<dd> <dd>
<input type="text" maxlength="15" size="17" name="value[sTestIp]" value="[{$edit->getValue('sTestIp')}]"> <input type="text" maxlength="39" size="17" name="value[sTestIp]" value="[{$edit->getValue('sTestIp')}]">
[{ oxinputhelp ident="D3_GEOIP_SET_IP_TESTIP_DESC" }] [{ oxinputhelp ident="D3_GEOIP_SET_IP_TESTIP_DESC" }]
</dd> </dd>
<div class="spacer"></div> <div class="spacer"></div>
@ -247,7 +247,7 @@ td.edittext {
[{oxmultilang ident="D3_GEOIP_SET_IP_CHECKIP"}] [{oxmultilang ident="D3_GEOIP_SET_IP_CHECKIP"}]
</dt> </dt>
<dd> <dd>
<input type="text" maxlength="15" size="17" name="value[sCheckIp]" value="[{$edit->getValue('sCheckIp')}]"> <input type="text" maxlength="39" size="17" name="value[sCheckIp]" value="[{$edit->getValue('sCheckIp')}]">
[{ oxinputhelp ident="D3_GEOIP_SET_IP_CHECKIP_DESC" }] [{ oxinputhelp ident="D3_GEOIP_SET_IP_CHECKIP_DESC" }]
[{if $edit->getValue('sCheckIp')}] [{if $edit->getValue('sCheckIp')}]
@ -285,4 +285,4 @@ td.edittext {
parent.parent.sWorkArea = "[{$_act}]"; parent.parent.sWorkArea = "[{$_act}]";
parent.parent.setTitle(); parent.parent.setTitle();
} }
</script> </script>

Binäre Datei nicht angezeigt.

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei anzeigen

@ -1,5 +1,8 @@
GeoIP Country light GeoIP Country light
This product includes GeoLite data created by MaxMind, available from
<a href="http://www.maxmind.com">http://www.maxmind.com</a>.
GeoIp-Data based on GeoIp Country Light by Maxmind (July 2009). GeoIp-Data based on GeoIp Country Light by Maxmind (July 2009).
These database will be published under GPL3 by Maxmind. Please see www.maxmind.com for updates. These database will be published under GPL3 by Maxmind. Please see www.maxmind.com for updates.

Binäre Datei nicht angezeigt.

Datei-Diff unterdrückt, da er zu groß ist Diff laden

Datei anzeigen

@ -0,0 +1,61 @@
#!/usr/bin/perl
print "*** GEO-IP Datenrotator Alexander Fehler ***\n\n\n";
@Zeilen = ("");
open(GEODATA, "<geoip.csv") || die " ******************************************** \n Datei konnte nicht gefuden werden:\n Bitte Ueberpruefen Sie den Pfad. \n\n Die .csv Datei muss im selben Ordner liegen und geoip.csv heissen\n ********************************************\n\n\n";
while(<GEODATA>)
{
$index=0;
@string=split(/,/,$_);
for(@string)
{
if($index==0)
{
$str = "@string[$index]";
$index++;
}
else
{
$str = "$str,@string[$index]";
$index++;
}
}
chomp($str);
push(@Zeilen_neu,$str);
}
close(GEODATA);
print "*** Datei wurde eingelesen und geschlossen *** \n ";
print "\n\n";
print "*** Datei wird zum Schreiben geoeffnet ***\n";
open(GEODATASQL, ">geoip.sql"); # SQL-Datei zum Schreiben öffnen
$schreib_zaehler=0;
for(@Zeilen_neu) # solange Daten in der GEOIP-Liste sind
{
# print @Zeilen_neu[$schreib_zaehler];
#print "\n\n\n\ntest ".$_."\n\n\n\n";
print GEODATASQL "INSERT INTO d3geoip VALUES(@Zeilen_neu[$schreib_zaehler]);\n"; # Aktuellen Datensatz schreiben
$schreib_zaehler++;
}
# print GEODATASQL "INSERT INTO d3geoip VALUES(@Zeilen_neu[$schreib_zaehler]);\n"; # Aktuellen Datensatz schreiben
close(GEODATASQL);
print "\n Es wurden d",$schreib_zaehler," Datensaetze geschrieben\n"; # Nur zur Kontrolle: auf Standardausgabe*/
#@string=split(/,/,$string);
#$index=0;
#for(@string)
#{
#$str = "$str,@string[$index]";
#}
#print $str."\n";
#push(@zeile,$str);
#print @zeile."\n";

Binäre Datei nicht angezeigt.

Binäre Datei nicht angezeigt.

Datei anzeigen

@ -1,7 +1,4 @@
blForceSessionStart nur bei Anwendung von GeoIP
statt session auch Fallback auf cookie statt session auch Fallback auf cookie
auch nicht aktive Länder konfigurierbar (um auch nicht erlaubte Zugriffe abzufangen) auch nicht aktive Länder konfigurierbar (um auch nicht erlaubte Zugriffe abzufangen)
IP-Syntaxcheck bei Eingabe im Admin IP-Syntaxcheck bei Eingabe im Admin
MaxMind-CSV-Import MaxMind-CSV-Import
IPV6-Pflege