87 lines
2.9 KiB
PHP
87 lines
2.9 KiB
PHP
<?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 © D³ Data Development, Thomas Dartsch
|
|
* @author D³ Data Development - Daniel Seifert <ds@shopmodule.com>
|
|
* @link http://www.oxidmodule.com
|
|
*/
|
|
|
|
namespace D3\GeoIp\Application\Component;
|
|
|
|
use D3\GeoIp\Application\Model\d3geoip;
|
|
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
|
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
|
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
|
use Doctrine\DBAL\DBALException;
|
|
use OxidEsales\Eshop\Core\Controller\BaseController;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
use OxidEsales\Eshop\Core\Exception\StandardException;
|
|
use OxidEsales\Eshop\Core\Registry;
|
|
|
|
class d3cmp_geoip extends BaseController
|
|
{
|
|
/**
|
|
* Marking object as component
|
|
*
|
|
* @var bool
|
|
*/
|
|
protected $_blIsComponent = true;
|
|
|
|
private $_sModId = 'd3_geoip';
|
|
|
|
/**
|
|
* @throws d3ShopCompatibilityAdapterException
|
|
* @throws d3_cfg_mod_exception
|
|
* @throws DBALException
|
|
* @throws DatabaseConnectionException
|
|
* @throws DatabaseErrorException
|
|
* @throws StandardException
|
|
* @throws ConnectionException
|
|
* @throws SystemComponentException
|
|
*/
|
|
public function init()
|
|
{
|
|
if (d3_cfg_mod::get($this->_sModId)->isActive()) {
|
|
if (d3_cfg_mod::get($this->_sModId)->hasDebugMode()) {
|
|
/** @var $oGeoIp d3geoip */
|
|
$oGeoIp = oxNew(d3geoip::class);
|
|
echo $oGeoIp->getIP();
|
|
}
|
|
|
|
/** @var $oLocation d3geoip */
|
|
$oLocation = oxNew(d3geoip::class);
|
|
$oLocation->setCountryCurrency();
|
|
// moved to oxcmp_lang extension because here it's to late
|
|
// $oLocation->setCountryLanguage();
|
|
|
|
if (!isset($oBasket)) {
|
|
$oBasket = $this->getSession()->getBasket();
|
|
}
|
|
|
|
// call component again, if curr is registered before we changed it
|
|
// reason: own component can added after default components only
|
|
if ($oLocation->hasNotSetCurrency($oBasket->getBasketCurrency())) {
|
|
/** @var oxUBase $oActView */
|
|
$oActView = Registry::getConfig()->getActiveView();
|
|
$aComponents = $oActView->getComponents();
|
|
|
|
/** @var oxcmp_cur $oCurCmp */
|
|
$oCurCmp = $aComponents['oxcmp_cur'];
|
|
$oCurCmp->init();
|
|
}
|
|
// language isn't registered, we don't need an additional check
|
|
}
|
|
|
|
parent::init();
|
|
}
|
|
}
|