change component registration to dynamic, module can disabled without errors

This commit is contained in:
Daniel Seifert 2015-12-24 11:51:39 +00:00
bovenliggende 6bcc9d5b97
commit bf3865f089
6 gewijzigde bestanden met toevoegingen van 541 en 461 verwijderingen

1
.gitattributes vendored
Bestand weergeven

@ -11,6 +11,7 @@ copy_this/modules/d3/d3geoip/controllers/admin/d3_country_geoip.php -text
copy_this/modules/d3/d3geoip/menu.xml -text copy_this/modules/d3/d3geoip/menu.xml -text
copy_this/modules/d3/d3geoip/metadata.php -text copy_this/modules/d3/d3geoip/metadata.php -text
copy_this/modules/d3/d3geoip/models/d3geoip.php -text copy_this/modules/d3/d3geoip/models/d3geoip.php -text
copy_this/modules/d3/d3geoip/modules/controllers/d3_oxshopcontrol_geoip.php -text
copy_this/modules/d3/d3geoip/picture.png -text copy_this/modules/d3/d3geoip/picture.png -text
copy_this/modules/d3/d3geoip/setup/d3geoip_update.php -text copy_this/modules/d3/d3geoip/setup/d3geoip_update.php -text
copy_this/modules/d3/d3geoip/views/admin/de/d3_geoip_lang.php -text copy_this/modules/d3/d3geoip/views/admin/de/d3_geoip_lang.php -text

Bestand weergeven

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

Bestand weergeven

@ -45,4 +45,4 @@ class d3cmp_geoip extends oxView
parent::init(); parent::init();
} }
} }

Bestand weergeven

@ -19,7 +19,9 @@ $aModule = array(
'author' => 'D³ Data Development (Inh.: Thomas Dartsch)', 'author' => 'D³ Data Development (Inh.: Thomas Dartsch)',
'email' => 'support@shopmodule.com', 'email' => 'support@shopmodule.com',
'url' => 'http://www.oxidmodule.com/', 'url' => 'http://www.oxidmodule.com/',
'extend' => array(), 'extend' => array(
'oxshopcontrol' => 'd3/d3geoip/modules/controllers/d3_oxshopcontrol_geoip',
),
'files' => array( 'files' => array(
'd3cmp_geoip' => 'd3/d3geoip/components/d3cmp_geoip.php', 'd3cmp_geoip' => 'd3/d3geoip/components/d3cmp_geoip.php',
'd3_cfg_geoipset' => 'd3/d3geoip/controllers/admin/d3_cfg_geoipset.php', 'd3_cfg_geoipset' => 'd3/d3geoip/controllers/admin/d3_cfg_geoipset.php',

Bestand weergeven

@ -0,0 +1,58 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
class d3_oxshopcontrol_geoip extends d3_oxshopcontrol_geoip_parent
{
/**
* @param null $sClass
* @param null $sFunction
* @param null $aParams
* @param null $aViewsChain
* @return null
*/
public function start ($sClass = null, $sFunction = null, $aParams = null, $aViewsChain = null)
{
$this->_d3AddGeoIpComponent();
parent::start($sClass, $sFunction, $aParams, $aViewsChain);
}
/**
* check, if developer mode has to be enabled
*
* @return bool
*/
protected function _d3AddGeoIpComponent()
{
startProfile(__METHOD__);
$aUserComponentNames = oxRegistry::getConfig()->getConfigParam('aUserComponentNames');
$sGeoIpCmpName = 'd3cmp_geoip';
$blDontUseCache = 1;
if (false == is_array($aUserComponentNames)) {
$aUserComponentNames = array();
}
if (false == in_array($sGeoIpCmpName, array_keys($aUserComponentNames))) {
$aUserComponentNames[$sGeoIpCmpName] = $blDontUseCache;
oxRegistry::getConfig()->setConfigParam('aUserComponentNames', $aUserComponentNames);
}
stopProfile(__METHOD__);
}
}

Bestand weergeven

@ -1,458 +1,477 @@
<?php <?php
/** /**
* 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
* 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 © Data Development, Thomas Dartsch * @copyright © Data Development, Thomas Dartsch
* @author Data Development - Daniel Seifert <ds@shopmodule.com> * @author Data Development - Daniel Seifert <ds@shopmodule.com>
* @link http://www.oxidmodule.com * @link http://www.oxidmodule.com
*/ */
class d3geoip_update extends d3install_updatebase class d3geoip_update extends d3install_updatebase
{ {
public $sModKey = 'd3_geoip'; public $sModKey = 'd3_geoip';
public $sModName = 'GeoIP'; public $sModName = 'GeoIP';
public $sModVersion = '3.0.1.0'; public $sModVersion = '3.0.1.0';
public $sModRevision = '67'; public $sModRevision = '67';
public $sBaseConf = '5FibjlIQlRvbWMzY29mVi85RXFxbkc5bFI3R24rNkd5Y0lEcXJFOGhtaGExRVcyaEF6a281cVhRUXFMU public $sBaseConf = '5FibjlIQlRvbWMzY29mVi85RXFxbkc5bFI3R24rNkd5Y0lEcXJFOGhtaGExRVcyaEF6a281cVhRUXFMU
0d6dnNDbCtLRVdObFh3bnVEdUNRTFJrVlE5VGtsRkF3Tyt4TU1Pd290WDliOTQ2SUE5Skk0eTcxTGdlT 0d6dnNDbCtLRVdObFh3bnVEdUNRTFJrVlE5VGtsRkF3Tyt4TU1Pd290WDliOTQ2SUE5Skk0eTcxTGdlT
XZna0dhS2ZOekJUSC94ZUd5YmxXZzRXcG5QSWcvZnFJa1l0N1MrdWRZaFU1VG5nUGFwNEF1WTh6azNja XZna0dhS2ZOekJUSC94ZUd5YmxXZzRXcG5QSWcvZnFJa1l0N1MrdWRZaFU1VG5nUGFwNEF1WTh6azNja
Gs3SmtzQ05SVjROSGdSZ2N0S3Q1TTV1RGlCSU5RZnh1dGVNNVd6bTBzMU1FdHFiNytJQldBRjRTNmx3U Gs3SmtzQ05SVjROSGdSZ2N0S3Q1TTV1RGlCSU5RZnh1dGVNNVd6bTBzMU1FdHFiNytJQldBRjRTNmx3U
VVlRkhrRzYxYUtpaWNBOUUrLzZ2YjN5SDM1cllVMTIrYUFPRnRYcFpibHVBQytEQVFnNFV0RWpFZXAwd VVlRkhrRzYxYUtpaWNBOUUrLzZ2YjN5SDM1cllVMTIrYUFPRnRYcFpibHVBQytEQVFnNFV0RWpFZXAwd
FE9'; FE9';
public $sRequirements = ''; public $sRequirements = '';
public $sBaseValue = ''; public $sBaseValue = '';
protected $_aUpdateMethods = array( protected $_aUpdateMethods = array(
array('check' => 'checkGeoIpTableExist', array('check' => 'checkGeoIpTableExist',
'do' => 'updateGeoIpTableExist'), 'do' => 'updateGeoIpTableExist'),
array('check' => 'checkGeoIpItems', array('check' => 'checkGeoIpItems',
'do' => 'updateGeoIpItems'), 'do' => 'updateGeoIpItems'),
array('check' => 'checkModCfgItemExist', array('check' => 'checkModCfgItemExist',
'do' => 'updateModCfgItemExist'), 'do' => 'updateModCfgItemExist'),
array('check' => 'checkGeoIpFields', array('check' => 'checkGeoIpFields',
'do' => 'fixGeoIpFields'), 'do' => 'fixGeoIpFields'),
array('check' => 'checkIndizes', array('check' => 'checkIndizes',
'do' => 'fixIndizes'), 'do' => 'fixIndizes'),
array('check' => 'hasUnregisteredFiles', array('check' => 'hasUnregisteredFiles',
'do' => 'showUnregisteredFiles'), 'do' => 'showUnregisteredFiles'),
array('check' => 'checkRegisteredComponent', array('check' => 'checkRegisteredComponent',
'do' => 'registerComponent'), 'do' => 'unregisterComponent'),
array('check' => 'checkModCfgSameRevision', array('check' => 'checkModCfgSameRevision',
'do' => 'updateModCfgSameRevision'), 'do' => 'updateModCfgSameRevision'),
); );
// Standardwerte für checkMultiLangTables() und fixRegisterMultiLangTables() // Standardwerte für checkMultiLangTables() und fixRegisterMultiLangTables()
public $aMultiLangTables = array(); public $aMultiLangTables = array();
public $aFields = array( public $aFields = array(
'D3GEOIPSHOP' => array( 'D3GEOIPSHOP' => array(
'sTableName' => 'oxcountry', 'sTableName' => 'oxcountry',
'sFieldName' => 'D3GEOIPSHOP', 'sFieldName' => 'D3GEOIPSHOP',
'sType' => 'VARCHAR(10)', 'sType' => 'VARCHAR(10)',
'blNull' => false, 'blNull' => false,
'sDefault' => 'oxbaseshop', 'sDefault' => 'oxbaseshop',
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3GEOIPLANG' => array( 'D3GEOIPLANG' => array(
'sTableName' => 'oxcountry', 'sTableName' => 'oxcountry',
'sFieldName' => 'D3GEOIPLANG', 'sFieldName' => 'D3GEOIPLANG',
'sType' => 'TINYINT(2)', 'sType' => 'TINYINT(2)',
'blNull' => false, 'blNull' => false,
'sDefault' => '-1', 'sDefault' => '-1',
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3GEOIPCUR' => array( 'D3GEOIPCUR' => array(
'sTableName' => 'oxcountry', 'sTableName' => 'oxcountry',
'sFieldName' => 'D3GEOIPCUR', 'sFieldName' => 'D3GEOIPCUR',
'sType' => 'TINYINT(2)', 'sType' => 'TINYINT(2)',
'blNull' => false, 'blNull' => false,
'sDefault' => '-1', 'sDefault' => '-1',
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3GEOIPURL' => array( 'D3GEOIPURL' => array(
'sTableName' => 'oxcountry', 'sTableName' => 'oxcountry',
'sFieldName' => 'D3GEOIPURL', 'sFieldName' => 'D3GEOIPURL',
'sType' => 'VARCHAR(255)', 'sType' => 'VARCHAR(255)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3STARTIP' => array( 'D3STARTIP' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3STARTIP', 'sFieldName' => 'D3STARTIP',
'sType' => 'VARCHAR(39)', 'sType' => 'VARCHAR(39)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3ENDIP' => array( 'D3ENDIP' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3ENDIP', 'sFieldName' => 'D3ENDIP',
'sType' => 'VARCHAR(39)', 'sType' => 'VARCHAR(39)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3STARTIPNUM' => array( 'D3STARTIPNUM' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3STARTIPNUM', 'sFieldName' => 'D3STARTIPNUM',
'sType' => 'DECIMAL(38,0)', 'sType' => 'DECIMAL(38,0)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3ENDIPNUM' => array( 'D3ENDIPNUM' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3ENDIPNUM', 'sFieldName' => 'D3ENDIPNUM',
'sType' => 'DECIMAL(38,0)', 'sType' => 'DECIMAL(38,0)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3ISO' => array( 'D3ISO' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3ISO', 'sFieldName' => 'D3ISO',
'sType' => 'CHAR(2)', 'sType' => 'CHAR(2)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
'D3COUNTRYNAME' => array( 'D3COUNTRYNAME' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sFieldName' => 'D3COUNTRYNAME', 'sFieldName' => 'D3COUNTRYNAME',
'sType' => 'VARCHAR(50)', 'sType' => 'VARCHAR(50)',
'blNull' => false, 'blNull' => false,
'sDefault' => false, 'sDefault' => false,
'sComment' => '', 'sComment' => '',
'sExtra' => '', 'sExtra' => '',
'blMultilang' => false, 'blMultilang' => false,
), ),
); );
public $aIndizes = array( public $aIndizes = array(
'IPNUM' => array( 'IPNUM' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sType' => 'INDEX', 'sType' => 'INDEX',
'sName' => 'IPNUM', 'sName' => 'IPNUM',
'aFields' => array( 'aFields' => array(
'D3STARTIPNUM' => 'D3STARTIPNUM', 'D3STARTIPNUM' => 'D3STARTIPNUM',
'D3ENDIPNUM' => 'D3ENDIPNUM', 'D3ENDIPNUM' => 'D3ENDIPNUM',
), ),
), ),
'D3ISO' => array( 'D3ISO' => array(
'sTableName' => 'd3geoip', 'sTableName' => 'd3geoip',
'sType' => 'INDEX', 'sType' => 'INDEX',
'sName' => 'D3ISO', 'sName' => 'D3ISO',
'aFields' => array( 'aFields' => array(
'D3ISO' => 'D3ISO', 'D3ISO' => 'D3ISO',
), ),
), ),
); );
/** /**
* @return bool * @return bool
*/ */
public function checkGeoIpTableExist() public function checkGeoIpTableExist()
{ {
return $this->_checkTableNotExist('d3geoip'); return $this->_checkTableNotExist('d3geoip');
} }
/** /**
* @return bool * @return bool
*/ */
public function updateGeoIpTableExist() public function updateGeoIpTableExist()
{ {
$blRet = false; $blRet = false;
if ($this->checkGeoIpTableExist()) { if ($this->checkGeoIpTableExist()) {
$blRet = $this->_addTable2('d3geoip', $this->aFields, $this->aIndizes, 'GeoIP', 'MyISAM'); $blRet = $this->_addTable2('d3geoip', $this->aFields, $this->aIndizes, 'GeoIP', 'MyISAM');
} }
return $blRet; return $blRet;
} }
/** /**
* @return bool * @return bool
*/ */
public function checkGeoIpItems() public function checkGeoIpItems()
{ {
/** @var $oShop oxshop */ /** @var $oShop oxshop */
$aWhere = array( $aWhere = array(
'D3ISO' => 'DE', 'D3ISO' => 'DE',
); );
$blRet = $this->_checkTableItemNotExist('d3geoip', $aWhere); $blRet = $this->_checkTableItemNotExist('d3geoip', $aWhere);
return $blRet; return $blRet;
} }
/** /**
* @return bool * @return bool
*/ */
public function updateGeoIpItems() public function updateGeoIpItems()
{ {
return $this->_confirmMessage('D3_GEOIP_UPDATE_ITEMINSTALL'); return $this->_confirmMessage('D3_GEOIP_UPDATE_ITEMINSTALL');
} }
/** /**
* @return bool * @return bool
*/ */
public function checkModCfgItemExist() public function checkModCfgItemExist()
{ {
$blRet = false; $blRet = false;
foreach ($this->getShopList() as $oShop) { foreach ($this->getShopList() as $oShop) {
/** @var $oShop oxshop */ /** @var $oShop oxshop */
$aWhere = array( $aWhere = array(
'oxmodid' => $this->sModKey, 'oxmodid' => $this->sModKey,
'oxnewrevision' => $this->sModRevision, 'oxnewrevision' => $this->sModRevision,
'oxshopid' => $oShop->getId(), 'oxshopid' => $oShop->getId(),
); );
$blRet = $this->_checkTableItemNotExist('d3_cfg_mod', $aWhere); $blRet = $this->_checkTableItemNotExist('d3_cfg_mod', $aWhere);
if ($blRet) { if ($blRet) {
return $blRet; return $blRet;
} }
} }
return $blRet; return $blRet;
} }
/** /**
* @return bool * @return bool
*/ */
public function updateModCfgItemExist() public function updateModCfgItemExist()
{ {
$blRet = false; $blRet = false;
if ($this->checkModCfgItemExist()) { if ($this->checkModCfgItemExist()) {
foreach ($this->getShopList() as $oShop) { foreach ($this->getShopList() as $oShop) {
/** @var $oShop oxshop */ /** @var $oShop oxshop */
$aWhere = array( $aWhere = array(
'oxmodid' => $this->sModKey, 'oxmodid' => $this->sModKey,
'oxshopid' => $oShop->getId(), 'oxshopid' => $oShop->getId(),
'oxnewrevision' => $this->sModRevision, 'oxnewrevision' => $this->sModRevision,
); );
if ($this->_checkTableItemNotExist('d3_cfg_mod', $aWhere)) { if ($this->_checkTableItemNotExist('d3_cfg_mod', $aWhere)) {
// update don't use this property // update don't use this property
unset($aWhere['oxnewrevision']); unset($aWhere['oxnewrevision']);
$aInsertFields = array( $aInsertFields = array(
array ( array (
'fieldname' => 'OXID', 'fieldname' => 'OXID',
'content' => "md5('" . $this->sModKey . " " . $oShop->getId() . " de')", 'content' => "md5('" . $this->sModKey . " " . $oShop->getId() . " de')",
'force_update' => true, 'force_update' => true,
'use_quote' => false, 'use_quote' => false,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXSHOPID', 'fieldname' => 'OXSHOPID',
'content' => $oShop->getId(), 'content' => $oShop->getId(),
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXMODID', 'fieldname' => 'OXMODID',
'content' => $this->sModKey, 'content' => $this->sModKey,
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXNAME', 'fieldname' => 'OXNAME',
'content' => $this->sModName, 'content' => $this->sModName,
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXACTIVE', 'fieldname' => 'OXACTIVE',
'content' => "0", 'content' => "0",
'force_update' => false, 'force_update' => false,
'use_quote' => false, 'use_quote' => false,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXBASECONFIG', 'fieldname' => 'OXBASECONFIG',
'content' => $this->sBaseConf, 'content' => $this->sBaseConf,
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXSERIAL', 'fieldname' => 'OXSERIAL',
'content' => "", 'content' => "",
'force_update' => false, 'force_update' => false,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXINSTALLDATE', 'fieldname' => 'OXINSTALLDATE',
'content' => "NOW()", 'content' => "NOW()",
'force_update' => true, 'force_update' => true,
'use_quote' => false, 'use_quote' => false,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXVERSION', 'fieldname' => 'OXVERSION',
'content' => $this->sModVersion, 'content' => $this->sModVersion,
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXSHOPVERSION', 'fieldname' => 'OXSHOPVERSION',
'content' => oxRegistry::getConfig()->getEdition(), 'content' => oxRegistry::getConfig()->getEdition(),
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array ( array (
'fieldname' => 'OXREQUIREMENTS', 'fieldname' => 'OXREQUIREMENTS',
'content' => $this->sRequirements, 'content' => $this->sRequirements,
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array( array(
'fieldname' => 'OXVALUE', 'fieldname' => 'OXVALUE',
'content' => $this->sBaseValue, 'content' => $this->sBaseValue,
'force_update' => false, 'force_update' => false,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
), ),
array( array(
'fieldname' => 'OXNEWREVISION', 'fieldname' => 'OXNEWREVISION',
'content' => $this->sModRevision, 'content' => $this->sModRevision,
'force_update' => true, 'force_update' => true,
'use_quote' => true, 'use_quote' => true,
'use_multilang' => false, 'use_multilang' => false,
) )
); );
$blRet = $this->_updateTableItem2('d3_cfg_mod', $aInsertFields, $aWhere); $blRet = $this->_updateTableItem2('d3_cfg_mod', $aInsertFields, $aWhere);
if ($this->getStepByStepMode()) { if ($this->getStepByStepMode()) {
break; break;
} }
} }
} }
} }
return $blRet; return $blRet;
} }
/** /**
* change default value for shop id in EE * change default value for shop id in EE
* @return bool * @return bool
*/ */
public function checkGeoIpFields() public function checkGeoIpFields()
{ {
/** @var $oShop oxshop */ /** @var $oShop oxshop */
$oShop = $this->getShopList()->current(); $oShop = $this->getShopList()->current();
$this->aFields['D3GEOIPSHOP']['sDefault'] = $oShop->getId(); $this->aFields['D3GEOIPSHOP']['sDefault'] = $oShop->getId();
return $this->checkFields(); return $this->checkFields();
} }
/** /**
* change default value for shop id in EE * change default value for shop id in EE
* @return bool * @return bool
*/ */
public function fixGeoIpFields() public function fixGeoIpFields()
{ {
/** @var $oShop oxshop */ /** @var $oShop oxshop */
$oShop = $this->getShopList()->current(); $oShop = $this->getShopList()->current();
$this->aFields['D3GEOIPSHOP']['sDefault'] = $oShop->getId(); $this->aFields['D3GEOIPSHOP']['sDefault'] = $oShop->getId();
return $this->fixFields(); return $this->fixFields();
} }
/** /**
* @return bool * @return bool
*/ */
public function hasUnregisteredFiles() public function hasUnregisteredFiles()
{ {
return $this->_hasUnregisteredFiles('d3geoip', array('d3FileRegister')); return $this->_hasUnregisteredFiles('d3geoip', array('d3FileRegister'));
} }
/** /**
* @return bool * @return bool
*/ */
public function showUnregisteredFiles() public function showUnregisteredFiles()
{ {
return $this->_showUnregisteredFiles('d3geoip', array('d3FileRegister')); return $this->_showUnregisteredFiles('d3geoip', array('d3FileRegister'));
} }
/** /**
* @return bool * @return bool
*/ */
public function checkRegisteredComponent() public function checkRegisteredComponent()
{ {
$sVarName = 'aUserComponentNames'; /** @var $oShop oxshop */
$sModuleId = ''; foreach ($this->getShopListByActiveModule('d3geoip') as $oShop) {
/** @var $oShop oxshop */ $aUserComponents = $this->_d3GetUserComponentsFromDb($oShop);
foreach ($this->getShopListByActiveModule('d3geoip') as $oShop) {
/** @var array $aUserComponents */ if (is_array($aUserComponents)
$aUserComponents = oxRegistry::getConfig()->getShopConfVar($sVarName, $oShop->getId(), $sModuleId); && in_array('d3cmp_geoip', array_keys($aUserComponents))
) {
if (false == $aUserComponents return true;
|| false == $aUserComponents['d3cmp_geoip'] }
) { }
return true;
} return false;
} }
return false; /**
} * @return bool
*/
/** public function unregisterComponent()
* @return bool {
*/ $blRet = true;
public function registerComponent() $sVarName = 'aUserComponentNames';
{
$blRet = true; /** @var $oShop oxshop */
$sVarName = 'aUserComponentNames'; foreach ($this->getShopList() as $oShop) {
$sModuleId = ''; $aUserComponents = $this->_d3GetUserComponentsFromDb($oShop);
/** @var $oShop oxshop */ if (is_array($aUserComponents)
foreach ($this->getShopList() as $oShop) { && in_array('d3cmp_geoip', array_keys($aUserComponents))
$aUserComponents = oxRegistry::getConfig()->getShopConfVar($sVarName, $oShop->getId(), $sModuleId); ) {
if (false == $aUserComponents) { unset($aUserComponents['d3cmp_geoip']);
$aUserComponents = array(); if (false == count($aUserComponents)) {
} $aUserComponents = null;
}
if (false == $aUserComponents['d3cmp_geoip']) { $this->fixOxconfigVariable($sVarName, $oShop->getId(), '', $aUserComponents, 'arr');
$blDontUseCache = 1; }
$aUserComponents['d3cmp_geoip'] = $blDontUseCache; }
$this->fixOxconfigVariable($sVarName, $oShop->getId(), '', $aUserComponents, 'arr');
} return $blRet;
} }
return $blRet; /**
} * @param oxShop $oShop
} * @return array|null
*/
protected function _d3GetUserComponentsFromDb(oxShop $oShop)
{
$sVarName = 'aUserComponentNames';
$sModuleId = '';
$oDb = oxDb::getDb(oxDb::FETCH_MODE_ASSOC);
$sSelect = "SELECT oxvartype as type, ".oxRegistry::getConfig()->getDecodeValueQuery().
" as value FROM `oxconfig` WHERE oxshopid = ".$oDb->quote($oShop->getId()).
" AND oxvarname = ".$oDb->quote($sVarName).
" AND oxmodule = ".$oDb->quote($sModuleId);
$aResult = $oDb->getAll($sSelect);
$aUserComponents = is_array($aResult) && count($aResult)
? oxRegistry::getConfig()->decodeValue($aResult[0]['type'], $aResult[0]['value'])
: null;
return $aUserComponents;
}
}