add getDb() changes, add perl import script
Cette révision appartient à :
Parent
b75fb10507
révision
d76f56d1d8
6
.gitattributes
externe
6
.gitattributes
externe
@ -32,6 +32,12 @@ setup+doku/geoip_data_parts/6.sql -text
|
||||
setup+doku/geoip_data_parts/7.sql -text
|
||||
setup+doku/geoip_data_parts/8.sql -text
|
||||
setup+doku/licence.txt -text
|
||||
sources/CSVtoSQLconvert_perl.zip -text
|
||||
sources/Doku/Drucken[!!-~]-[!!-~]Bartomedia[!!-~]-[!!-~]Web[!!-~]Design[!!-~]Distinction_[!!-~]Geo[!!-~]IP[!!-~]-[!!-~]install[!!-~]Maxmind[!!-~]GeoIP[!!-~]using[!!-~]PHP[!!-~]+[!!-~]MySQL.pdf -text svneol=unset#unset
|
||||
sources/Doku/Drucken[!!-~]-[!!-~]Bartomedia[!!-~]-[!!-~]Web[!!-~]Design[!!-~]Distinction_[!!-~]Maxmind[!!-~]GeoIP[!!-~]install[!!-~]setup[!!-~]tutorial[!!-~]using[!!-~]PHPMyAdmin.pdf -text
|
||||
sources/Doku/Drucken[!!-~]-[!!-~]MaxMind[!!-~]Forum[!!-~]•[!!-~]View[!!-~]topic[!!-~]-[!!-~]Fast[!!-~]SQL[!!-~]Queries[!!-~]Using[!!-~]the[!!-~]CSV[!!-~]Database.pdf -text
|
||||
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/GeoIP-Installation.docx -text
|
||||
sources/GeoIPCountryCSV.zip -text
|
||||
sources/GeoIPv6.csv/GeoIPv6-20120304.csv -text
|
||||
|
@ -1,218 +1,218 @@
|
||||
<?php
|
||||
|
||||
class d3_country_geoip extends oxAdminView
|
||||
{
|
||||
protected $_sDefSort = 'sort';
|
||||
|
||||
protected $_sThisTemplate = 'd3_country_geoip.tpl';
|
||||
|
||||
private $_oSet;
|
||||
|
||||
private $_sModId = 'd3_geoip';
|
||||
|
||||
public function render()
|
||||
{
|
||||
$this->_oSet = d3_cfg_mod::get($this->_sModId);
|
||||
|
||||
$myConfig = $this->getConfig();
|
||||
|
||||
if ( !$myConfig->getConfigParam( 'blAllowSharedEdit' ) )
|
||||
$this->_aViewData['readonly'] = true;
|
||||
|
||||
$ret = parent::render();
|
||||
|
||||
$soxId = oxConfig::getParameter( "oxid");
|
||||
// check if we right now saved a new entry
|
||||
$sSavedID = oxConfig::getParameter( "saved_oxid");
|
||||
if ( ($soxId == "-1" || !isset( $soxId)) && isset( $sSavedID) ) {
|
||||
$soxId = $sSavedID;
|
||||
oxSession::deleteVar( "saved_oxid");
|
||||
$this->_aViewData["oxid"] = $soxId;
|
||||
// for reloading upper frame
|
||||
$this->_aViewData["updatelist"] = "1";
|
||||
}
|
||||
|
||||
if ( $soxId != "-1" && isset( $soxId)) {
|
||||
// load object
|
||||
$oCountry = oxNew( "oxcountry" );
|
||||
$oCountry->loadInLang( $this->_iEditLang, $soxId );
|
||||
|
||||
if ($oCountry->isForeignCountry()) {
|
||||
$this->_aViewData["blForeignCountry"] = true;
|
||||
} else {
|
||||
$this->_aViewData["blForeignCountry"] = false;
|
||||
}
|
||||
|
||||
$oOtherLang = $oCountry->getAvailableInLangs();
|
||||
if (!isset($oOtherLang[$this->_iEditLang])) {
|
||||
// echo "language entry doesn't exist! using: ".key($oOtherLang);
|
||||
$oCountry->loadInLang( key($oOtherLang), $soxId );
|
||||
}
|
||||
$this->_aViewData["edit"] = $this->oCountry = $oCountry;
|
||||
|
||||
// remove already created languages
|
||||
$aLang = array_diff (oxLang::getInstance()->getLanguageNames(), $oOtherLang );
|
||||
if ( count( $aLang))
|
||||
$this->_aViewData["posslang"] = $aLang;
|
||||
|
||||
foreach ( $oOtherLang as $id => $language) {
|
||||
$oLang= new oxStdClass();
|
||||
$oLang->sLangDesc = $language;
|
||||
$oLang->selected = ($id == $this->_iEditLang);
|
||||
$this->_aViewData["otherlang"][$id] = clone $oLang;
|
||||
}
|
||||
} else {
|
||||
$this->_aViewData["blForeignCountry"] = true;
|
||||
}
|
||||
|
||||
$this->oShopList = &oxNew('oxshoplist');
|
||||
$oShop = &oxNew('oxshop');
|
||||
$sSelect = "SELECT * FROM ".$oShop->getViewName()." WHERE ".$oShop->getSqlActiveSnippet();
|
||||
|
||||
$this->oShopList->selectString($sSelect);
|
||||
|
||||
$this->getLangList();
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public function getModCfgValue($sIdent)
|
||||
{
|
||||
$this->_oSet = d3_cfg_mod::get($this->_sModId);
|
||||
return $this->_oSet->getValue($sIdent);
|
||||
}
|
||||
|
||||
public function saveshop()
|
||||
{
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$_POST['editval']['oxcountry__d3geoiplang'] = '-1';
|
||||
$_POST['editval']['oxcountry__d3geoipcur'] = '-1';
|
||||
}
|
||||
|
||||
$this->save();
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
$myConfig = $this->getConfig();
|
||||
|
||||
//allow malladmin only to perform this action
|
||||
if ( !$myConfig->getConfigParam( 'blAllowSharedEdit' ) )
|
||||
return;
|
||||
|
||||
$soxId = oxConfig::getParameter( "oxid");
|
||||
$aParams = oxConfig::getParameter( "editval" );
|
||||
|
||||
$oCountry = oxNew( "oxcountry" );
|
||||
|
||||
if ( $soxId != "-1") {
|
||||
$oCountry->loadInLang( $this->_iEditLang, $soxId );
|
||||
} else {
|
||||
$aParams['oxcountry__oxid'] = null;
|
||||
}
|
||||
|
||||
//$aParams = $oCountry->ConvertNameArray2Idx( $aParams);
|
||||
$oCountry->setLanguage(0);
|
||||
$oCountry->assign( $aParams );
|
||||
$oCountry->setLanguage($this->_iEditLang);
|
||||
$oCountry = oxUtilsFile::getInstance()->processFiles( $oCountry );
|
||||
|
||||
$oCountry->save();
|
||||
$this->_aViewData["updatelist"] = "1";
|
||||
|
||||
// set oxid if inserted
|
||||
if ( $soxId == "-1")
|
||||
oxSession::setVar( "saved_oxid", $oCountry->oxcountry__oxid->value);
|
||||
}
|
||||
|
||||
public function getShopList()
|
||||
{
|
||||
return $this->oShopList;
|
||||
}
|
||||
|
||||
public function getCurList()
|
||||
{
|
||||
$aCurrencies = array();
|
||||
|
||||
$sQ = "select DECODE( oxvarvalue, '".$this->getConfig()->getConfigParam( 'sConfigKey' )."') as oxvarvalue from oxconfig where oxshopid = '".$this->oCountry->getFieldData('d3geoipshop')."' AND oxvarname = 'aCurrencies'";
|
||||
$sCurs = oxDb::getDb(1)->getOne($sQ);
|
||||
foreach (unserialize($sCurs) as $sKey => $sValue)
|
||||
{
|
||||
$aFields = explode('@', $sValue);
|
||||
$aCurrencies[$sKey]->id = $sKey;
|
||||
$aCurrencies[$sKey]->name = $aFields[0];
|
||||
$aCurrencies[$sKey]->sign = $aFields[4];
|
||||
}
|
||||
|
||||
return $aCurrencies;
|
||||
}
|
||||
|
||||
public function getLangList()
|
||||
{
|
||||
|
||||
$aLanguages = array();
|
||||
$aLangParams = $this->getConfig()->getShopConfVar('aLanguageParams', $this->oCountry->getFieldData('d3geoipshop'));
|
||||
$aConfLanguages = $this->getConfig()->getShopConfVar('aLanguages', $this->oCountry->getFieldData('d3geoipshop'));
|
||||
|
||||
if ( is_array( $aConfLanguages ) ) {
|
||||
$i = 0;
|
||||
reset( $aConfLanguages );
|
||||
while ( list( $key, $val ) = each( $aConfLanguages ) ) {
|
||||
|
||||
if ( $blOnlyActive && is_array($aLangParams) ) {
|
||||
//skipping non active languages
|
||||
if ( !$aLangParams[$key]['active'] ) {
|
||||
$i++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $val) {
|
||||
$oLang = new oxStdClass();
|
||||
if ( isset($aLangParams[$key]['baseId']) ) {
|
||||
$oLang->id = $aLangParams[$key]['baseId'];
|
||||
} else {
|
||||
$oLang->id = $i;
|
||||
}
|
||||
$oLang->oxid = $key;
|
||||
$oLang->abbr = $key;
|
||||
$oLang->name = $val;
|
||||
|
||||
if ( is_array($aLangParams) ) {
|
||||
$oLang->active = $aLangParams[$key]['active'];
|
||||
$oLang->sort = $aLangParams[$key]['sort'];
|
||||
}
|
||||
|
||||
if ( isset( $iLanguage ) && $oLang->id == $iLanguage ) {
|
||||
$oLang->selected = 1;
|
||||
} else {
|
||||
$oLang->selected = 0;
|
||||
}
|
||||
if ($oLang->active)
|
||||
$aLanguages[$oLang->id] = $oLang;
|
||||
}
|
||||
++$i;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $blSort && is_array($aLangParams) ) {
|
||||
uasort( $aLanguages, array($this, '_sortLanguagesCallback') );
|
||||
}
|
||||
|
||||
return $aLanguages;
|
||||
}
|
||||
|
||||
protected function _sortLanguagesCallback( $oLang1, $oLang2 )
|
||||
{
|
||||
$sSortParam = $this->_sDefSort;
|
||||
$sVal1 = is_string($oLang1->$sSortParam) ? strtolower( $oLang1->$sSortParam ) : $oLang1->$sSortParam;
|
||||
$sVal2 = is_string($oLang2->$sSortParam) ? strtolower( $oLang2->$sSortParam ) : $oLang2->$sSortParam;
|
||||
|
||||
if ( $this->_sDefSortOrder == 'asc' ) {
|
||||
return ($sVal1 < $sVal2) ? -1 : 1;
|
||||
} else {
|
||||
return ($sVal1 > $sVal2) ? -1 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
<?php
|
||||
|
||||
class d3_country_geoip extends oxAdminView
|
||||
{
|
||||
protected $_sDefSort = 'sort';
|
||||
|
||||
protected $_sThisTemplate = 'd3_country_geoip.tpl';
|
||||
|
||||
private $_oSet;
|
||||
|
||||
private $_sModId = 'd3_geoip';
|
||||
|
||||
public function render()
|
||||
{
|
||||
$this->_oSet = d3_cfg_mod::get($this->_sModId);
|
||||
|
||||
$myConfig = $this->getConfig();
|
||||
|
||||
if ( !$myConfig->getConfigParam( 'blAllowSharedEdit' ) )
|
||||
$this->_aViewData['readonly'] = true;
|
||||
|
||||
$ret = parent::render();
|
||||
|
||||
$soxId = oxConfig::getParameter( "oxid");
|
||||
// check if we right now saved a new entry
|
||||
$sSavedID = oxConfig::getParameter( "saved_oxid");
|
||||
if ( ($soxId == "-1" || !isset( $soxId)) && isset( $sSavedID) ) {
|
||||
$soxId = $sSavedID;
|
||||
oxSession::deleteVar( "saved_oxid");
|
||||
$this->_aViewData["oxid"] = $soxId;
|
||||
// for reloading upper frame
|
||||
$this->_aViewData["updatelist"] = "1";
|
||||
}
|
||||
|
||||
if ( $soxId != "-1" && isset( $soxId)) {
|
||||
// load object
|
||||
$oCountry = oxNew( "oxcountry" );
|
||||
$oCountry->loadInLang( $this->_iEditLang, $soxId );
|
||||
|
||||
if ($oCountry->isForeignCountry()) {
|
||||
$this->_aViewData["blForeignCountry"] = true;
|
||||
} else {
|
||||
$this->_aViewData["blForeignCountry"] = false;
|
||||
}
|
||||
|
||||
$oOtherLang = $oCountry->getAvailableInLangs();
|
||||
if (!isset($oOtherLang[$this->_iEditLang])) {
|
||||
// echo "language entry doesn't exist! using: ".key($oOtherLang);
|
||||
$oCountry->loadInLang( key($oOtherLang), $soxId );
|
||||
}
|
||||
$this->_aViewData["edit"] = $this->oCountry = $oCountry;
|
||||
|
||||
// remove already created languages
|
||||
$aLang = array_diff (oxLang::getInstance()->getLanguageNames(), $oOtherLang );
|
||||
if ( count( $aLang))
|
||||
$this->_aViewData["posslang"] = $aLang;
|
||||
|
||||
foreach ( $oOtherLang as $id => $language) {
|
||||
$oLang= new oxStdClass();
|
||||
$oLang->sLangDesc = $language;
|
||||
$oLang->selected = ($id == $this->_iEditLang);
|
||||
$this->_aViewData["otherlang"][$id] = clone $oLang;
|
||||
}
|
||||
} else {
|
||||
$this->_aViewData["blForeignCountry"] = true;
|
||||
}
|
||||
|
||||
$this->oShopList = &oxNew('oxshoplist');
|
||||
$oShop = &oxNew('oxshop');
|
||||
$sSelect = "SELECT * FROM ".$oShop->getViewName()." WHERE ".$oShop->getSqlActiveSnippet();
|
||||
|
||||
$this->oShopList->selectString($sSelect);
|
||||
|
||||
$this->getLangList();
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public function getModCfgValue($sIdent)
|
||||
{
|
||||
$this->_oSet = d3_cfg_mod::get($this->_sModId);
|
||||
return $this->_oSet->getValue($sIdent);
|
||||
}
|
||||
|
||||
public function saveshop()
|
||||
{
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$_POST['editval']['oxcountry__d3geoiplang'] = '-1';
|
||||
$_POST['editval']['oxcountry__d3geoipcur'] = '-1';
|
||||
}
|
||||
|
||||
$this->save();
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
$myConfig = $this->getConfig();
|
||||
|
||||
//allow malladmin only to perform this action
|
||||
if ( !$myConfig->getConfigParam( 'blAllowSharedEdit' ) )
|
||||
return;
|
||||
|
||||
$soxId = oxConfig::getParameter( "oxid");
|
||||
$aParams = oxConfig::getParameter( "editval" );
|
||||
|
||||
$oCountry = oxNew( "oxcountry" );
|
||||
|
||||
if ( $soxId != "-1") {
|
||||
$oCountry->loadInLang( $this->_iEditLang, $soxId );
|
||||
} else {
|
||||
$aParams['oxcountry__oxid'] = null;
|
||||
}
|
||||
|
||||
//$aParams = $oCountry->ConvertNameArray2Idx( $aParams);
|
||||
$oCountry->setLanguage(0);
|
||||
$oCountry->assign( $aParams );
|
||||
$oCountry->setLanguage($this->_iEditLang);
|
||||
$oCountry = oxUtilsFile::getInstance()->processFiles( $oCountry );
|
||||
|
||||
$oCountry->save();
|
||||
$this->_aViewData["updatelist"] = "1";
|
||||
|
||||
// set oxid if inserted
|
||||
if ( $soxId == "-1")
|
||||
oxSession::setVar( "saved_oxid", $oCountry->oxcountry__oxid->value);
|
||||
}
|
||||
|
||||
public function getShopList()
|
||||
{
|
||||
return $this->oShopList;
|
||||
}
|
||||
|
||||
public function getCurList()
|
||||
{
|
||||
$aCurrencies = array();
|
||||
|
||||
$sQ = "select DECODE( oxvarvalue, '".$this->getConfig()->getConfigParam( 'sConfigKey' )."') as oxvarvalue from oxconfig where oxshopid = '".$this->oCountry->getFieldData('d3geoipshop')."' AND oxvarname = 'aCurrencies'";
|
||||
$sCurs = oxDb::getDb(2)->getOne($sQ);
|
||||
foreach (unserialize($sCurs) as $sKey => $sValue)
|
||||
{
|
||||
$aFields = explode('@', $sValue);
|
||||
$aCurrencies[$sKey]->id = $sKey;
|
||||
$aCurrencies[$sKey]->name = $aFields[0];
|
||||
$aCurrencies[$sKey]->sign = $aFields[4];
|
||||
}
|
||||
|
||||
return $aCurrencies;
|
||||
}
|
||||
|
||||
public function getLangList()
|
||||
{
|
||||
|
||||
$aLanguages = array();
|
||||
$aLangParams = $this->getConfig()->getShopConfVar('aLanguageParams', $this->oCountry->getFieldData('d3geoipshop'));
|
||||
$aConfLanguages = $this->getConfig()->getShopConfVar('aLanguages', $this->oCountry->getFieldData('d3geoipshop'));
|
||||
|
||||
if ( is_array( $aConfLanguages ) ) {
|
||||
$i = 0;
|
||||
reset( $aConfLanguages );
|
||||
while ( list( $key, $val ) = each( $aConfLanguages ) ) {
|
||||
|
||||
if ( $blOnlyActive && is_array($aLangParams) ) {
|
||||
//skipping non active languages
|
||||
if ( !$aLangParams[$key]['active'] ) {
|
||||
$i++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $val) {
|
||||
$oLang = new oxStdClass();
|
||||
if ( isset($aLangParams[$key]['baseId']) ) {
|
||||
$oLang->id = $aLangParams[$key]['baseId'];
|
||||
} else {
|
||||
$oLang->id = $i;
|
||||
}
|
||||
$oLang->oxid = $key;
|
||||
$oLang->abbr = $key;
|
||||
$oLang->name = $val;
|
||||
|
||||
if ( is_array($aLangParams) ) {
|
||||
$oLang->active = $aLangParams[$key]['active'];
|
||||
$oLang->sort = $aLangParams[$key]['sort'];
|
||||
}
|
||||
|
||||
if ( isset( $iLanguage ) && $oLang->id == $iLanguage ) {
|
||||
$oLang->selected = 1;
|
||||
} else {
|
||||
$oLang->selected = 0;
|
||||
}
|
||||
if ($oLang->active)
|
||||
$aLanguages[$oLang->id] = $oLang;
|
||||
}
|
||||
++$i;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $blSort && is_array($aLangParams) ) {
|
||||
uasort( $aLanguages, array($this, '_sortLanguagesCallback') );
|
||||
}
|
||||
|
||||
return $aLanguages;
|
||||
}
|
||||
|
||||
protected function _sortLanguagesCallback( $oLang1, $oLang2 )
|
||||
{
|
||||
$sSortParam = $this->_sDefSort;
|
||||
$sVal1 = is_string($oLang1->$sSortParam) ? strtolower( $oLang1->$sSortParam ) : $oLang1->$sSortParam;
|
||||
$sVal2 = is_string($oLang2->$sSortParam) ? strtolower( $oLang2->$sSortParam ) : $oLang2->$sSortParam;
|
||||
|
||||
if ( $this->_sDefSortOrder == 'asc' ) {
|
||||
return ($sVal1 < $sVal2) ? -1 : 1;
|
||||
} else {
|
||||
return ($sVal1 > $sVal2) ? -1 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
BIN
sources/CSVtoSQLconvert_perl.zip
Fichier normal
BIN
sources/CSVtoSQLconvert_perl.zip
Fichier normal
Fichier binaire non affiché.
Fichier binaire non affiché.
Fichier binaire non affiché.
Fichier binaire non affiché.
Fichier binaire non affiché.
Fichier binaire non affiché.
Chargement…
Référencer dans un nouveau ticket
Block a user