add 7.1.0.0 sourceGuardian PHP 8

This commit is contained in:
Daniel Seifert 2024-06-26 13:49:30 +02:00
parent 988cfb837b
commit 6cd13a07d0
177 changed files with 616 additions and 971 deletions

File diff suppressed because one or more lines are too long

View File

@ -18,7 +18,6 @@
namespace D3\ModCfg\Application\Controller\Admin\Configuration;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\ModCfg\Application\Controller\Admin\Install\d3_mod_install;
use D3\ModCfg\Application\Model\Constants;
use D3\ModCfg\Application\Model\d3utils;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
@ -70,7 +69,6 @@ class d3mod_status extends d3_cfg_mod_main
*/
public function __construct()
{
$this->addTplParam('sInstallModId', false);
$this->addTplParam('blGetRemoteUpdateStatus', false);
$this->addTplParam('sErrorMLMsg', false);
@ -345,27 +343,6 @@ class d3mod_status extends d3_cfg_mod_main
return false;
}
public function installMod()
{
$sLibId = Registry::get(Request::class)->getRequestEscapedParameter('modid');
$this->addTplParam('sInstallModId', $sLibId);
}
/**
* @return mixed
*/
public function getInstallModiFrameLink()
{
$aParams = [
'cl' => d3_mod_install::class,
'modid' => Registry::get(Request::class)->getRequestEscapedParameter('modid'),
'shp' => Registry::getConfig()->getShopId(),
];
$sURL = Registry::get(d3utils::class)->getAdminClassUrl($aParams);
return $sURL;
}
/**
* @return array
*/
@ -441,64 +418,6 @@ class d3mod_status extends d3_cfg_mod_main
return $this->oInstall->blConnectError;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function filedownload()
{
$sDownloadUrl = $this->_getDownloadUrl();
/** @var d3filesystem $oFS */
$oFS = oxNew(d3filesystem::class);
// default timeout (1 sec.) isn't enough for downloading module zip files via curl
$oFS->setCurlTimeOut(25);
if (! Registry::get(d3utils::class)->hasDemoshopMode() &&
$sDownloadUrl &&
$oFS->checkAvailability($sDownloadUrl)
) {
$oFS->startDirectDownload($sDownloadUrl);
} else {
$this->addTplParam('sErrorMLMsg', 'D3_CFG_LIB_DOWNLOAD_UNAVAILABLE');
}
}
/**
* @return false|string
* @throws ContainerExceptionInterface
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws DatabaseException
* @throws NotFoundExceptionInterface
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
protected function _getDownloadUrl()
{
$aLibInfo = $this->getRemoteModuleData(Registry::get(Request::class)->getRequestEscapedParameter('modid'), true);
if ($aLibInfo &&
is_array($aLibInfo) &&
$aLibInfo['availableversion'] &&
is_array($aLibInfo['availableversion'])
) {
if ($aLibInfo['availableversion'][$this->getPhpVersionDownloadField(true)]) {
return $aLibInfo['availableversion'][$this->getPhpVersionDownloadField(true)];
} elseif ($aLibInfo['availableversion'][$this->getPhpVersionDownloadField(false)]) {
return $aLibInfo['availableversion'][$this->getPhpVersionDownloadField(false)];
}
}
return false;
}
/**
* @return string
*/
@ -567,15 +486,6 @@ class d3mod_status extends d3_cfg_mod_main
return false;
}
/**
* @param bool $blForceIonCube
* @return bool|string
*/
public function getPhpVersionDownloadField($blForceIonCube = false)
{
return d3install::getInstance()->getPhpVersionDownloadField($blForceIonCube);
}
/**
* @param $sStatus
* @param d3_cfg_mod|bool $oSet

View File

@ -1,27 +0,0 @@
<?php
// finalize show install info
// rollBack in case of aborted install
/**
* 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.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
namespace D3\ModCfg\Application\Controller\Admin\Install;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
class d3_mod_install extends d3_cfg_mod_main
{
}

View File

@ -25,6 +25,7 @@ use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\ModCfg\Application\Model\d3database;
use D3\ModCfg\Application\Model\d3filesystem;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use DateTime;
use Doctrine\DBAL\Exception as DBALException;
use OxidEsales\Eshop\Application\Model\Shop;
use OxidEsales\Eshop\Core\Email;
@ -61,7 +62,7 @@ class d3_cfg_log_main extends d3_cfg_mod_main
parent::init();
$this->oLog = oxNew(d3log::class);
$this->addTplParam('deftime', date('Y-m-d H:i:s', strtotime('-1 week')));
$this->addTplParam('deftime', (new DateTime('1 week ago'))->format('Y-m-d H:i:s'));
}
/**

View File

@ -21,6 +21,7 @@ use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\ModCfg\Application\Model\Constants;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\FileSizeFormatter;
use D3\ModCfg\Application\Model\Install\d3install;
use D3\ModCfg\Application\Model\d3utils;
use D3\ModCfg\Application\Model\Maintenance\d3clrtmp;
@ -171,9 +172,9 @@ class d3cleartmp extends d3_cfg_mod_main
/**
* @return string
*/
public function getTmpSize()
public function getTmpSize(): string
{
return $this->_getFileSystemHandler()->formatBytes($this->oFS->dirsize($this->getTmpPath()));
return (oxNew(FileSizeFormatter::class))->format($this->oFS->dirsize($this->getTmpPath()));
}
/**

View File

@ -27,14 +27,6 @@ class d3_cfg_mod_ extends AdminController
protected $_hasListItems = false;
protected $_sListItemFrameRelation = '40%,*';
/**
* @return string
*/
public function render()
{
return parent::render();
}
/**
* @return bool
*/

View File

@ -234,11 +234,6 @@ class d3_cfg_mod_licence extends AdminDetailsController
return $this->oNewestData[$sPart];
}
public function installMod()
{
$this->addTplParam('sInstallModId', Registry::get(Request::class)->getRequestEscapedParameter('modid'));
}
/**
* request newsletter form
*/
@ -452,35 +447,6 @@ class d3_cfg_mod_licence extends AdminDetailsController
return false;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function filedownload()
{
if (! Registry::get(d3utils::class)->hasDemoshopMode()) {
$this->checkUpdate();
/** @var d3filesystem $oFS */
$oFS = oxNew(d3filesystem::class);
if (strtolower(Registry::get(Request::class)->getRequestEscapedParameter('type')) == 'newest') {
if ($this->getNewestModuleData($this->getPhpVersionDownloadField(true)) && $this->getInstallClass()) {
$oFS->startDirectDownload($this->getNewestModuleData($this->getPhpVersionDownloadField(true)));
} elseif ($this->getNewestModuleData($this->getPhpVersionDownloadField()) && $this->getInstallClass()) {
$oFS->startDirectDownload($this->getNewestModuleData($this->getPhpVersionDownloadField()));
}
} elseif ($this->getUpdateData($this->getPhpVersionDownloadField(true)) && $this->getInstallClass()) {
$oFS->startDirectDownload($this->getUpdateData($this->getPhpVersionDownloadField(true)));
} elseif ($this->getUpdateData($this->getPhpVersionDownloadField()) && $this->getInstallClass()) {
$oFS->startDirectDownload($this->getUpdateData($this->getPhpVersionDownloadField()));
}
}
}
/**
* @return string
*/
@ -608,15 +574,6 @@ class d3_cfg_mod_licence extends AdminDetailsController
);
}
/**
* @param bool $blForceIonCube
* @return bool|string
*/
public function getPhpVersionDownloadField($blForceIonCube = false)
{
return d3install::getInstance()->getPhpVersionDownloadField($blForceIonCube);
}
/**
* @return array
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -17,6 +17,8 @@
namespace D3\ModCfg\Application\Model\Encoding;
use JsonException;
class d3decoder
{
public const DEC_DEFAULT = 'default';
@ -30,169 +32,174 @@ class d3decoder
public const DEC_UUENC = 'uuencode';
public const DEC_QUOTED = 'quoted';
protected $_aDecodingMethods = [
'default' => 'decodeDefault',
'json' => 'decodeJson',
'utf-8' => 'decodeUtf8',
'gzip' => 'decodeGZip',
'serialize' => 'decodeSerialize',
'rawurl' => 'decodeRawUrl',
'url' => 'decodeUrl',
'base64' => 'decodeBase64',
'uuencode' => 'decodeUUEncode',
'quoted' => 'decodeQuotedPrintable',
];
/**
* @param string $_sDecodingType
*/
public function __construct(protected $_sDecodingType)
public function __construct(protected string $_sDecodingType = self::DEC_DEFAULT)
{
}
/**
* @return string
*/
public function getDecodingType()
public function getDecodingType(): string
{
return $this->_sDecodingType;
}
/**
* @return string
* @param string|null $encodedValue
*
* @return mixed
* @throws JsonException
*/
public function getDecodingMethodName()
public function decode(?string $encodedValue): mixed
{
$sType = strtolower($this->getDecodingType());
if (is_array($this->_aDecodingMethods)
&& count($this->_aDecodingMethods)
&& isset($this->_aDecodingMethods[$sType])
) {
return $this->_aDecodingMethods[strtolower($this->getDecodingType())];
}
return $this->_aDecodingMethods['default'];
return match (strtolower($this->getDecodingType())) {
self::DEC_JSON => $this->decodeJson($encodedValue),
self::DEC_UTF8 => $this->decodeUtf8($encodedValue),
self::DEC_GZIP => $this->decodeGZip($encodedValue),
self::DEC_SERIALIZE => $this->decodeSerialize($encodedValue),
self::DEC_RAWURL => $this->decodeRawUrl($encodedValue),
self::DEC_URL => $this->decodeUrl($encodedValue),
self::DEC_BASE64 => $this->decodeBase64($encodedValue),
self::DEC_UUENC => $this->decodeUUEncode($encodedValue),
self::DEC_QUOTED => $this->decodeQuotedPrintable($encodedValue),
default => $this->decodeDefault($encodedValue)
};
}
/**
* @param $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
*/
public function decode($mValue)
public function decodeDefault(?string $encodedValue): mixed
{
$mRet = call_user_func([$this, $this->getDecodingMethodName()], $mValue);
return $mRet;
return unserialize(
rawurldecode(
base64_decode($encodedValue ?? '')
)
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
* @throws JsonException
*/
public function decodeDefault($mValue)
public function decodeJson(?string $encodedValue): mixed
{
return unserialize(rawurldecode(base64_decode($mValue)));
return json_decode(
html_entity_decode($encodedValue ?? '', ENT_QUOTES),
null,
512,
JSON_THROW_ON_ERROR
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
*/
public function decodeJson($mValue)
public function decodeUtf8(?string $encodedValue): mixed
{
$mValue = html_entity_decode($mValue, ENT_QUOTES);
return json_decode($mValue, null, 512, JSON_THROW_ON_ERROR);
return unserialize(
utf8_decode(
html_entity_decode($encodedValue ?? '', ENT_QUOTES)
)
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
*/
public function decodeUtf8($mValue)
public function decodeSerialize(?string $encodedValue): mixed
{
$mValue = html_entity_decode($mValue, ENT_QUOTES);
return unserialize(utf8_decode($mValue));
return unserialize(
html_entity_decode($encodedValue ?? '', ENT_QUOTES)
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
*/
public function decodeSerialize($mValue)
public function decodeUrl(?string $encodedValue): mixed
{
$mValue = html_entity_decode($mValue, ENT_QUOTES);
return unserialize($mValue);
return unserialize(
urldecode($encodedValue ?? '')
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
*/
public function decodeUrl($mValue)
public function decodeRawUrl(?string $encodedValue): mixed
{
return unserialize(urldecode($mValue));
return unserialize(
rawurldecode($encodedValue ?? '')
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
*/
public function decodeRawUrl($mValue)
public function decodeBase64(?string $encodedValue): mixed
{
return unserialize(rawurldecode($mValue));
return unserialize(
base64_decode($encodedValue ?? '')
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
*/
public function decodeBase64($mValue)
public function decodeGZip(?string $encodedValue): mixed
{
return unserialize(base64_decode($mValue));
return unserialize(
gzdecode(
html_entity_decode($encodedValue ?? '', ENT_QUOTES)
)
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string|null
* @return mixed
*/
public function decodeGZip($mValue)
public function decodeUUEncode(?string $encodedValue): mixed
{
if (false == $mValue || $mValue == '') {
return null;
}
$mValue = html_entity_decode($mValue, ENT_QUOTES);
return unserialize(gzdecode($mValue));
return unserialize(
convert_uudecode(
html_entity_decode($encodedValue ?? '', ENT_QUOTES)
)
);
}
/**
* @param mixed $mValue
* @param string|null $encodedValue
*
* @return string
* @return mixed
*/
public function decodeUUEncode($mValue)
public function decodeQuotedPrintable(?string $encodedValue): mixed
{
$mValue = html_entity_decode($mValue, ENT_QUOTES);
return unserialize(convert_uudecode($mValue));
}
/**
* @param mixed $mValue
*
* @return string
*/
public function decodeQuotedPrintable($mValue)
{
$mValue = html_entity_decode($mValue, ENT_QUOTES);
return unserialize(quoted_printable_decode($mValue));
return unserialize(
quoted_printable_decode(
html_entity_decode($encodedValue ?? '', ENT_QUOTES)
)
);
}
}

View File

@ -17,6 +17,8 @@
namespace D3\ModCfg\Application\Model\Encoding;
use JsonException;
class d3encoder
{
public const ENC_DEFAULT = 'default';
@ -30,160 +32,177 @@ class d3encoder
public const ENC_UUENC = 'uuencode';
public const ENC_QUOTED = 'quoted';
protected $_aEncodingMethods = [
'default' => 'encodeDefault',
'json' => 'encodeJson',
'utf-8' => 'encodeUtf8',
'gzip' => 'encodeGZip',
'serialize' => 'encodeSerialize',
'rawurl' => 'encodeRawUrl',
'url' => 'encodeUrl',
'base64' => 'encodeBase64',
'uuencode' => 'encodeUUEncode',
'quoted' => 'encodeQuotedPrintable',
];
/**
* @param string $_sEncodingType
*/
public function __construct(protected $_sEncodingType)
public function __construct(protected string $_sEncodingType = self::ENC_DEFAULT)
{
}
/**
* @return string
*/
public function getEncodingType()
public function getEncodingType(): string
{
return $this->_sEncodingType;
}
/**
* @param mixed $decodedValue
*
* @return string
* @throws JsonException
*/
public function getEncodingMethodName()
public function encode( mixed $decodedValue): string
{
$sType = strtolower($this->getEncodingType());
if (is_array($this->_aEncodingMethods)
&& count($this->_aEncodingMethods)
&& isset($this->_aEncodingMethods[$sType])
) {
return $this->_aEncodingMethods[strtolower($this->getEncodingType())];
}
return $this->_aEncodingMethods['default'];
return match (strtolower($this->getEncodingType())) {
self::ENC_JSON => $this->encodeJson($decodedValue),
self::ENC_UTF8 => $this->encodeUtf8($decodedValue),
self::ENC_GZIP => $this->encodeGZip($decodedValue),
self::ENC_SERIALIZE => $this->encodeSerialize($decodedValue),
self::ENC_RAWURL => $this->encodeRawUrl($decodedValue),
self::ENC_URL => $this->encodeUrl($decodedValue),
self::ENC_BASE64 => $this->encodeBase64($decodedValue),
self::ENC_UUENC => $this->encodeUUEncode($decodedValue),
self::ENC_QUOTED => $this->encodeQuotedPrintable($decodedValue),
default => $this->encodeDefault($decodedValue)
};
}
/**
* @param $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encode($mValue)
public function encodeDefault( mixed $decodedValue): string
{
$mRet = call_user_func([$this, $this->getEncodingMethodName()], $mValue);
return $mRet;
return base64_encode(
rawurlencode(
serialize(
$decodedValue
)
)
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
* @throws JsonException
*/
public function encodeDefault($mValue)
public function encodeJson( mixed $decodedValue): string
{
return base64_encode(rawurlencode(serialize($mValue)));
return json_encode($decodedValue, JSON_THROW_ON_ERROR);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeJson($mValue)
public function encodeUtf8( mixed $decodedValue): string
{
return json_encode($mValue, JSON_THROW_ON_ERROR);
return utf8_encode(
serialize(
$decodedValue
)
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeUtf8($mValue)
public function encodeSerialize( mixed $decodedValue): string
{
return utf8_encode(serialize($mValue));
return serialize(
$decodedValue
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeSerialize($mValue)
public function encodeUrl( mixed $decodedValue): string
{
return serialize($mValue);
return urlencode(
serialize(
$decodedValue
)
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeUrl($mValue)
public function encodeRawUrl( mixed $decodedValue): string
{
return urlencode(serialize($mValue));
return rawurlencode(
serialize(
$decodedValue
)
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeRawUrl($mValue)
public function encodeBase64( mixed $decodedValue): string
{
return rawurlencode(serialize($mValue));
return base64_encode(
serialize(
$decodedValue
)
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeBase64($mValue)
public function encodeGZip( mixed $decodedValue): string
{
return base64_encode(serialize($mValue));
return gzencode(
serialize(
$decodedValue
)
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeGZip($mValue)
public function encodeUUEncode( mixed $decodedValue): string
{
return gzencode(serialize($mValue));
return convert_uuencode(
serialize(
$decodedValue
)
);
}
/**
* @param mixed $mValue
* @param mixed $decodedValue
*
* @return string
*/
public function encodeUUEncode($mValue)
public function encodeQuotedPrintable( mixed $decodedValue): string
{
return convert_uuencode(serialize($mValue));
}
/**
* @param mixed $mValue
*
* @return string
*/
public function encodeQuotedPrintable($mValue)
{
return quoted_printable_encode(serialize($mValue));
return quoted_printable_encode(
serialize(
$decodedValue
)
);
}
}

View File

@ -15,6 +15,8 @@
namespace D3\ModCfg\Application\Model\Exception;
use DateTimeImmutable;
/**
* handle d3_cfg_mod specific exceptions
*/
@ -27,9 +29,8 @@ class d3_cfg_mod_exception extends d3modprofile_exception
*/
public function getString()
{
$sStr = self::class . " (time: " . date(
'Y-m-d H:i:s'
) . "): [{$this->code}]: {$this->message} ";
$sStr = self::class . " (time: " . (new DateTimeImmutable())->format('Y-m-d H:i:s')
. "): [{$this->code}]: {$this->message} ";
if ($this->getCompareData()) {
$sStr .= "(".$this->getCompareData().") ";

View File

@ -14,6 +14,7 @@
namespace D3\ModCfg\Application\Model\Exception;
use DateTimeImmutable;
use Exception;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Registry;
@ -33,9 +34,8 @@ class d3modprofile_exception extends StandardException
*/
public function getString()
{
return self::class . " (time: " . date(
'Y-m-d H:i:s'
) . "): [{$this->code}]: {$this->message} - Faulty ModProfile: " . $this->getModCfgId();
return self::class . " (time: " . (new DateTimeImmutable())->format('Y-m-d H:i:s')
. "): [{$this->code}]: {$this->message} - Faulty ModProfile: " . $this->getModCfgId();
//." \n Stack Trace: {$this->getTraceAsString()}\n\n";
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -17,9 +17,10 @@
namespace D3\ModCfg\Application\Model\Log;
use Psr\Log\LoggerInterface;
use Psr\Log\LoggerTrait;
class d3NullLogger implements d3LogInterface
class d3NullLogger implements d3LogInterface, LoggerInterface
{
use LoggerTrait;

View File

@ -24,6 +24,7 @@ use D3\ModCfg\Application\Model\Parametercontainer\Registry as D3ModCfgRegistry;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Modules\Application\Controller\d3_oxshopcontrol_modcfg_extension;
use DateTimeImmutable;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Driver\Exception as DBALDriverException;
use Doctrine\DBAL\Query\QueryBuilder;
@ -44,9 +45,10 @@ use OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInte
use OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\LoggerTrait;
class d3log extends BaseModel implements d3LogInterface
class d3log extends BaseModel implements d3LogInterface, LoggerInterface
{
use LoggerTrait;
@ -419,7 +421,7 @@ class d3log extends BaseModel implements d3LogInterface
'oxshopid' => Registry::getConfig()->getShopId(),
'oxsessid' => $sSessID,
'oxlogtype' => strtolower($this->getErrorModeName($iLogType)),
'oxtime' => date('Y-m-d H:i:s'),
'oxtime' => (new DateTimeImmutable())->format('Y-m-d H:i:s'),
'oxmodid' => $sModID,
'oxprofileid' => $this->d3getProfileId() ?: 'none',
'oxclass' => $sClass,
@ -1043,7 +1045,9 @@ class d3log extends BaseModel implements d3LogInterface
$db = ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get();
$sWhere = $this->getLogSet()->getValue('sLog_messagetimestamp' . $iSlot) ? "oxtime > " . $db->quote(
date('Y-m-d H:i:s', $this->getLogSet()->getValue('sLog_messagetimestamp' . $iSlot))
(new DateTimeImmutable())
->setTimestamp($this->getLogSet()->getValue('sLog_messagetimestamp' . $iSlot))
->format('Y-m-d H:i:s')
) . " " : '1 ';
$aLevelFilter = [];
@ -1578,7 +1582,7 @@ class d3log extends BaseModel implements d3LogInterface
$sTime = Registry::get(Request::class)->getRequestEscapedParameter('export_oxtime');
if ($sTime) {
$aWhere['oxtime'] = date('Y-m-d H:i:s', strtotime($sTime));
$aWhere['oxtime'] = (new DateTimeImmutable($sTime))->format('Y-m-d H:i:s');
Registry::getConfig()->getActiveView()->addTplParam('oxtime', $sTime);
}

View File

@ -488,10 +488,6 @@ class d3clrtmp extends Base
if (false == is_object($this->_d3GetSet()) || false == $this->_d3GetSet()->getValue('blClrTmp_showcleartmpoptions')) {
$this->_getFileSystemHandler()->setDevMode(false);
if ($this->_iLimit) {
$this->_getFileSystemHandler()->setLimit($this->_iLimit, $this->_iLimitTimeStamp);
}
if (is_object($this->_d3GetSet()) && $this->_d3GetSet()->getValue('blClrTmp_nofolderremove')) {
$blRecursive = false;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -818,83 +818,10 @@ return [
'D3_INSTALL_ROLLBACK4' => 'Die bisherige Installation wird rückgängig gemacht, um einen neuen Versuch (manuell) zu starten',
'D3_INSTALL_SETUPSTEPS_INITROLLBACK' => 'Installation rückgängig machen',
'D3_INSTALL_ROLLBACKCANCEL' => 'Installation abbrechen',
'D3_INSTALL_SETUPSTEPS_ROLLBACK_COPYFILES' => 'Dateien zurücksetzen',
'D3_INSTALL_SETUPSTEPS_ROLLBACK_END' => 'Zurücksetzen beendet',
'D3_INSTALL_PROTOKOLL_SUCCESSFULL' => 'erfolgreich',
'D3_INSTALL_FINISH' => 'Installation fertigstellen',
'D3_INSTALL_PROTOKOLL_NOTSUCCESSFULL' => 'Fehler',
'D3_INSTALL_FTPINFO_DISABLED' => 'Bricht die Installation wegen mangelnder Rechte ab, versuchen Sie den Transfer über ein FTP-Konto.<br>Konfigurieren Sie die Einstellungen unter [D3 Module] -> [Systemeinstellungen] -> [Bibliothekseinstellungen] -> [Installationsautomatik].',
'D3_INSTALL_FTPINFO_ENABLED' => 'Sie verwenden den FTP-Modus. Dateioperationen benötigen dadurch deutlich mehr Zeit.<br>Konfigurieren Sie die Einstellungen unter [D3 Module] -> [Systemeinstellungen] -> [Bibliothekseinstellungen] -> [Installationsautomatik].',
'D3_INSTALL_FTPINFO_CONFIG' => 'Aktivieren Sie den FTP-Modus, wenn Bibliotheksupdates wegen mangelnder Rechte nicht ausgeführt werden können. Beachten Sie bitte, dass Dateioperationen dadurch deutlich mehr Zeit benötigen. Bevorzugen Sie nach Möglichkeit die Installation ohne FTP-Modus.',
'D3_INSTALL_PROTOKOLLITEM_ACR' => 'Wiederherstellen: System aktualisieren',
'D3_INSTALL_PROTOKOLLITEM_ACT' => 'System aktualisiert',
'D3_INSTALL_PROTOKOLLITEM_RMR' => 'Wiederherstellen: Modulmetadaten aktualisieren',
'D3_INSTALL_PROTOKOLLITEM_RMM' => 'Modulmetadaten aktualisieren',
'D3_INSTALL_PROTOKOLLITEM_ARC' => 'Fehler beim Archiv laden',
'D3_INSTALL_PROTOKOLLITEM_ARG' => 'Archiv laden',
'D3_INSTALL_PROTOKOLLITEM_BFE' => 'kann Datei nicht archivieren',
'D3_INSTALL_PROTOKOLLITEM_CDE' => 'kann Verzeichnis nicht erstellen',
'D3_INSTALL_PROTOKOLLITEM_CFD' => 'kann Verzeichnis nicht erstellen',
'D3_INSTALL_PROTOKOLLITEM_CFE' => 'keine Dateien zu kopieren, Archiv leer?',
'D3_INSTALL_PROTOKOLLITEM_CFR' => 'Dateien wurden überschrieben, Sicherungskopien wurden angelegt',
'D3_INSTALL_PROTOKOLLITEM_CFG' => 'Dateien wurden kopiert',
'D3_INSTALL_PROTOKOLLITEM_CFM' => 'Dateiberechtigungen konnten nicht geändert werden',
'D3_INSTALL_PROTOKOLLITEM_CFN' => 'Datei konnte nicht kopiert werden',
'D3_INSTALL_PROTOKOLLITEM_CLE' => 'TMP-Ordner konnte nicht geleert werden, bitte selbst leeren',
'D3_INSTALL_PROTOKOLLITEM_CLT' => 'TMP-Ordner geleert',
'D3_INSTALL_PROTOKOLLITEM_CNE' => 'cURL-Anfrage ist nicht ausführbar',
'D3_INSTALL_PROTOKOLLITEM_DNC' => 'Verzeichnis kann nicht erstellt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_DNC_E' => 'Kann folgendes Verzeichnis nicht erstellen: <b>%s</b>, bitte legen Sie dies selbst an. Möglicherweise hat das Script, die Gruppe oder der Besitzer nicht genug Rechte. Dies kann zu weiteren Fehlern führen.<br>Weitere Informationen dazu erhalten Sie unter <a href="https://faq.d3data.de/">https://faq.d3data.de/</a>',
'D3_INSTALL_PROTOKOLLITEM_DND' => 'Verzeichnis kann nicht gelöscht werden: %s',
'D3_INSTALL_PROTOKOLLITEM_DNM_E' => 'Kann Schreibrechte für folgendes Verzeichnis nicht setzen: <b>%s</b>, stellen Sie dies bitte selbst ein. Möglicherweise hat das Script, die Gruppe oder der Besitzer nicht genug Rechte. Dies kann zu weiteren Fehlern führen.<br>Weitere Informationen dazu erhalten Sie unter <a href="https://faq.d3data.de/">https://faq.d3data.de/</a>',
'D3_INSTALL_PROTOKOLLITEM_DNO' => 'Verzeichnis kann nicht gelesen werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FCF' => 'Element kann nicht kopiert werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FCG' => 'Gruppenzuordnung kann nicht geändert werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FCM' => 'Berechtigungen können nicht gesetzt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FCO' => 'Owner kann nicht geändert werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FGG' => 'Gruppenzuordnung kann nicht ermittelt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FGO' => 'Owner kann nicht ermittelt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FNC' => 'Datei kann nicht geöffnet oder erstellt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FND' => 'Datei kann nicht gelöscht werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FNP' => 'Dateizugriffsrechte können nicht gelesen werden: %s',
'D3_INSTALL_PROTOKOLLITEM_FNR' => 'Datei kann nicht gelesen werden oder ist leer: %s',
'D3_INSTALL_PROTOKOLLITEM_FNW' => 'Datei kann nicht beschrieben werden oder kein Inhalt vorhanden.',
'D3_INSTALL_PROTOKOLLITEM_FXS' => 'Datei existiert nicht: %s',
'D3_INSTALL_PROTOKOLLITEM_RAG' => 'Modularchiv gesichert',
'D3_INSTALL_PROTOKOLLITEM_RFE' => 'Wiederherstellen: keine Dateien für Restore gefunden',
'D3_INSTALL_PROTOKOLLITEM_RFG' => 'Wiederherstellen: Dateien wurden zurückkopiert',
'D3_INSTALL_PROTOKOLLITEM_RMG' => 'Module registriert',
'D3_INSTALL_PROTOKOLLITEM_RMI' => 'Modul registriert',
'D3_INSTALL_PROTOKOLLITEM_ROG' => 'oxutils-Modul registriert',
'D3_INSTALL_PROTOKOLLITEM_RUG' => 'Wiederherstellen: oxutils-Modul zurückgeschrieben',
'D3_INSTALL_PROTOKOLLITEM_RUE' => 'Wiederherstellen: oxutils-Modul konnten nicht zurückgeschrieben werden, Sicherung liegt vor',
'D3_INSTALL_PROTOKOLLITEM_RRE' => 'Wiederherstellen: Moduleinträge konnten nicht zurückgeschrieben werden, Sicherung liegt vor',
'D3_INSTALL_PROTOKOLLITEM_RRG' => 'Wiederherstellen: Moduleinträge zurückgeschrieben',
'D3_INSTALL_PROTOKOLLITEM_SNE' => 'Systembefehl kann nicht ausgeführt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_SQE' => 'Datenbankeintrag gesetzt',
'D3_INSTALL_PROTOKOLLITEM_SQL' => 'Datenbankeinträge gesetzt',
'D3_INSTALL_PROTOKOLLITEM_SQR' => 'Wiederherstellen: Datenbank nicht wiederherstellbar, bitte ggf. eigene Sicherung wiederherstellen',
'D3_INSTALL_PROTOKOLLITEM_SVG' => 'Benutzereingaben gespeichert',
'D3_INSTALL_PROTOKOLLITEM_XAN' => 'Archiv entpacken, kein Archiv gefunden',
'D3_INSTALL_PROTOKOLLITEM_XAO' => 'Archiv entpackt',
'D3_INSTALL_PROTOKOLLITEM_XAS' => 'Archiv entpackt',
'D3_INSTALL_PROTOKOLLITEM_XNP' => 'XML kann nicht gelesen werden',
'D3_INSTALL_PROTOKOLLITEM_ZNF' => 'Größe der gepackten Datei kann nicht ermittelt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_ZNN' => 'Name der gepackten Datei kann nicht ermittelt werden: %s',
'D3_INSTALL_PROTOKOLLITEM_ZNO' => 'gepackte Datei %s kann nicht geöffnet werden: %s',
'D3_INSTALL_PROTOKOLLITEM_ZNR' => 'gepackte Datei kann nicht gelesen werden: %s',
'D3_INSTALL_PROTOKOLL_SUCCESS' => 'Installation wurde erfolgreich durchgeführt',
'D3_INSTALL_PROTOKOLL_ERROR' => 'Während der Installation sind Fehler auftreten',
'D3_INSTALL_PROTOKOLL_DETAILS' => '&nbsp;-&nbsp;Klick für Details',
'D3_INSTALL_CFG_FORCEFTP' => 'FTP-Verbindung zum Kopieren von Dateien verwenden',
'D3_INSTALL_CFG_FORCEFTP_HELP' => 'Die zu verwendende FTP-Verbindung muss über ausreichend Berechtigungen zum Löschen und Anlegen von Dateien verfügen.',
'D3_INSTALL_CFG_FTPSERVER' => 'FTP-Servername',
'D3_INSTALL_CFG_FTPPORT' => 'FTP-Port (optional)',
'D3_INSTALL_CFG_FTPPATH' => 'Pfad zum Shoprootverzeichnis',
'D3_INSTALL_CFG_FTPUSER' => 'FTP-Benutzername',
'D3_INSTALL_CFG_FTPPASS' => 'FTP-Passwort (nur, wenn benötigt)',
'D3_INSTALL_CFG_SAVE' => 'speichern',
'D3_UPDATE_AVAILABLE_VERSION' => '<span style="margin: 10px;"><img src="https://logos.oxidmodule.com/d3logo.svg" alt="(D3)" style="height:1em;width:1em"> <a href="%1$s" target="modupdate">Neue Modulversion für "%2$s" (Version %3$s) verfügbar.</a></span>',

View File

@ -817,83 +817,10 @@ return [
'D3_INSTALL_ROLLBACK4' => 'The previous installation is undone to start a new attempt (manually)',
'D3_INSTALL_SETUPSTEPS_INITROLLBACK' => 'Undo installation',
'D3_INSTALL_ROLLBACKCANCEL' => 'cancel installation',
'D3_INSTALL_SETUPSTEPS_ROLLBACK_COPYFILES' => 'reset files',
'D3_INSTALL_SETUPSTEPS_ROLLBACK_END' => 'rollback finished',
'D3_INSTALL_PROTOKOLL_SUCCESSFULL' => 'successfull',
'D3_INSTALL_FINISH' => 'finish installation',
'D3_INSTALL_PROTOKOLL_NOTSUCCESSFULL' => 'error',
'D3_INSTALL_FTPINFO_DISABLED' => 'If the installation is aborted due to a lack of rights, try the transfer via an FTP account. <br> Configure the settings in [D3 Modules] -> [System Settings] -> [Library Settings] -> [Installation Automation].',
'D3_INSTALL_FTPINFO_ENABLED' => 'You are using FTP mode. This will take much more time for file operations. <br> Configure the settings in [D3 Modules] -> [System Settings] -> [Library Settings] -> [Installation Setup].',
'D3_INSTALL_FTPINFO_CONFIG' => 'Enable FTP mode if library updates can not be performed due to lack of rights. Please note that file operations will take much longer. If possible, prefer the installation without FTP mode.',
'D3_INSTALL_PROTOKOLLITEM_ACR' => 'rollback: system refreshed',
'D3_INSTALL_PROTOKOLLITEM_ACT' => 'system refreshed',
'D3_INSTALL_PROTOKOLLITEM_RMR' => 'rollback: module meta informations refreshed',
'D3_INSTALL_PROTOKOLLITEM_RMM' => 'module meta informations refreshed',
'D3_INSTALL_PROTOKOLLITEM_ARC' => 'error while downloading the archive',
'D3_INSTALL_PROTOKOLLITEM_ARG' => 'archive downloaded',
'D3_INSTALL_PROTOKOLLITEM_BFE' => 'unable to archive file',
'D3_INSTALL_PROTOKOLLITEM_CDE' => 'unable to create directory',
'D3_INSTALL_PROTOKOLLITEM_CFD' => 'unable to create directory',
'D3_INSTALL_PROTOKOLLITEM_CFE' => 'no files to copy, is archive possible empty?',
'D3_INSTALL_PROTOKOLLITEM_CFR' => 'files were overwritten, backup coies were created',
'D3_INSTALL_PROTOKOLLITEM_CFG' => 'files were copied',
'D3_INSTALL_PROTOKOLLITEM_CFM' => 'file permissions couldn\'t changed',
'D3_INSTALL_PROTOKOLLITEM_CFN' => 'file couldn\'t copied',
'D3_INSTALL_PROTOKOLLITEM_CLE' => 'TMP folder couldn\'t cleared, please clear it manually',
'D3_INSTALL_PROTOKOLLITEM_CLT' => 'clear TMP folder',
'D3_INSTALL_PROTOKOLLITEM_CNE' => 'Curl request isn\'t executable',
'D3_INSTALL_PROTOKOLLITEM_DNC' => 'directory couldn\'t created: %s',
'D3_INSTALL_PROTOKOLLITEM_DNC_E' => 'Could not create dir <b>%s</b>, please create it manually.<br>For further informations see <a href="https://faq.d3data.de/">https://faq.d3data.de/</a>',
'D3_INSTALL_PROTOKOLLITEM_DND' => 'directory couldn\'t deleted: %s',
'D3_INSTALL_PROTOKOLLITEM_DNM_E' => 'Unable to set write permissions for <b>%s</b>, please configure it manually.<br>For further informations see <a href="https://faq.d3data.de/">https://faq.d3data.de/</a>',
'D3_INSTALL_PROTOKOLLITEM_DNO' => 'unable to read directory: %s',
'D3_INSTALL_PROTOKOLLITEM_FCF' => 'unable to copy element: %s',
'D3_INSTALL_PROTOKOLLITEM_FCG' => 'Group assignment can not be changed: %s',
'D3_INSTALL_PROTOKOLLITEM_FCM' => 'Permissions can not be set: %s',
'D3_INSTALL_PROTOKOLLITEM_FCO' => 'Owner can not be set: %s',
'D3_INSTALL_PROTOKOLLITEM_FGG' => 'Group assignment can not be determined: %s',
'D3_INSTALL_PROTOKOLLITEM_FGO' => 'Owner can not be determined: %s',
'D3_INSTALL_PROTOKOLLITEM_FNC' => 'File can not be opened or created: %s',
'D3_INSTALL_PROTOKOLLITEM_FND' => 'File can not be deleted: %s',
'D3_INSTALL_PROTOKOLLITEM_FNP' => 'File access rights can not be read: %s',
'D3_INSTALL_PROTOKOLLITEM_FNR' => 'File can not be read: %s',
'D3_INSTALL_PROTOKOLLITEM_FNW' => 'File can not be written or no content exists.',
'D3_INSTALL_PROTOKOLLITEM_FXS' => 'file doesn\'t exist: %s',
'D3_INSTALL_PROTOKOLLITEM_RAG' => 'module archive saved',
'D3_INSTALL_PROTOKOLLITEM_RFE' => 'Restore: no files found for restore',
'D3_INSTALL_PROTOKOLLITEM_RFG' => 'Restore: Files have been copied back',
'D3_INSTALL_PROTOKOLLITEM_RMG' => 'Modules registered',
'D3_INSTALL_PROTOKOLLITEM_RMI' => 'Module registered',
'D3_INSTALL_PROTOKOLLITEM_ROG' => 'oxutils module registered',
'D3_INSTALL_PROTOKOLLITEM_RUG' => 'Restore: Restored oxutils module',
'D3_INSTALL_PROTOKOLLITEM_RUE' => 'Restore: oxutils module could not be restored, backup exists',
'D3_INSTALL_PROTOKOLLITEM_RRE' => 'Restore: Module entries could not be restored, backup exists',
'D3_INSTALL_PROTOKOLLITEM_RRG' => 'Restore: Module entries restored',
'D3_INSTALL_PROTOKOLLITEM_SNE' => 'System command can not be executed: %s',
'D3_INSTALL_PROTOKOLLITEM_SQE' => 'Database entry set',
'D3_INSTALL_PROTOKOLLITEM_SQL' => 'Database entries set',
'D3_INSTALL_PROTOKOLLITEM_SQR' => 'Restore: Database not recoverable, please restore your own backup if necessary',
'D3_INSTALL_PROTOKOLLITEM_SVG' => 'User input saved',
'D3_INSTALL_PROTOKOLLITEM_XAN' => 'Unzip archive, no archive found',
'D3_INSTALL_PROTOKOLLITEM_XAO' => 'archive extracted',
'D3_INSTALL_PROTOKOLLITEM_XAS' => 'archive extracted',
'D3_INSTALL_PROTOKOLLITEM_XNP' => 'unable to read XML',
'D3_INSTALL_PROTOKOLLITEM_ZNF' => 'The size of the packed file can not be determined: %s',
'D3_INSTALL_PROTOKOLLITEM_ZNN' => 'The name of the packed file can not be determined: %s',
'D3_INSTALL_PROTOKOLLITEM_ZNO' => 'Can not open packed file %s: %s',
'D3_INSTALL_PROTOKOLLITEM_ZNR' => 'packed file can not be read: %s',
'D3_INSTALL_PROTOKOLL_SUCCESS' => 'installation will successfully finished',
'D3_INSTALL_PROTOKOLL_ERROR' => 'There are errors during installation',
'D3_INSTALL_PROTOKOLL_DETAILS' => '&nbsp;-&nbsp;click for details',
'D3_INSTALL_CFG_FORCEFTP' => 'Use FTP connection to copy files',
'D3_INSTALL_CFG_FORCEFTP_HELP' => 'The FTP connection to use must have sufficient permissions to delete and create files.',
'D3_INSTALL_CFG_FTPSERVER' => 'FTP server name',
'D3_INSTALL_CFG_FTPPORT' => 'FTP port (optional)',
'D3_INSTALL_CFG_FTPPATH' => 'Path to the shoproot directory',
'D3_INSTALL_CFG_FTPUSER' => 'FTP user name',
'D3_INSTALL_CFG_FTPPASS' => 'FTP password (only if needed)',
'D3_INSTALL_CFG_SAVE' => 'save',
'D3_UPDATE_AVAILABLE_VERSION' => '<span style="margin: 10px;"><img src="https://logos.oxidmodule.com/d3logo.svg" alt="(D3)" style="height:1em;width:1em"> <a href="%1$s" target="modupdate">New module version for "%2$s" (version %3$s) available.</a></span>',

View File

@ -151,3 +151,9 @@ services:
D3\ModCfg\Application\Model\Configuration\d3_cfg_mod_licencecheck.args.modcfg:
synthetic: true
shared: true
D3\ModCfg\Application\Model\download:
class: 'D3\ModCfg\Application\Model\download'
factory: 'oxNew'
arguments:
- 'D3\ModCfg\Application\Model\download'

View File

@ -56,26 +56,24 @@ services:
- 'getSession'
shared: true
# deprecated
d3ox.modcfg.OxidEsales\EshopCommunity\Internal\Container\ContainerFactory:
class: 'OxidEsales\EshopCommunity\Internal\Container\ContainerFactory'
factory: ['OxidEsales\EshopCommunity\Internal\Container\ContainerFactory', 'getInstance']
shared: true;
shared: true
# deprecated
d3ox.modcfg.OxDiContainer:
class: 'ProjectServiceContainer'
factory: ['@d3ox.modcfg.OxidEsales\EshopCommunity\Internal\Container\ContainerFactory', 'getContainer']
shared: true;
shared: true
d3ox.modcfg.OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInterface:
class: 'OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInterface'
factory: ['@d3ox.modcfg.OxDiContainer', 'get']
shared: true;
arguments:
- 'OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInterface'
class: OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProvider
shared: true
d3ox.modcfg.OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface:
class: 'OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface'
factory: ['@d3ox.modcfg.OxDiContainer', 'get']
shared: true;
class: OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactory
shared: true
arguments:
- 'OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface'
- '@d3ox.modcfg.OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInterface'

View File

@ -19,9 +19,12 @@ services:
d3ox.modcfg.OxDbConnection:
class: 'Doctrine\DBAL\Connection'
factory: ['@d3ox.modcfg.OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInterface', 'get']
shared: true;
shared: true
d3ox.modcfg.OxDbQueryBuilder:
class: 'Doctrine\DBAL\Query\QueryBuilder'
factory: ['@d3ox.modcfg.OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface', 'create']
shared: false;
shared: false
Symfony\Component\Filesystem\Filesystem:
class: 'Symfony\Component\Filesystem\Filesystem'

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,51 +2,13 @@
## Requirements
Both unit and acceptance tests require OXID Testing Library installed.
See https://github.com/OXID-eSales/testing_library
Please install the packages listed in the composer.json in "require-dev". Unfortunately Composer does not provide an automatic installation.
### Configuration
Please install the packages listed in the composer.json in "require-dev". Unfortunately Composer does not provide an automatic installation.
Here is an example of Testing Library configuration file `oxideshop/test_config.yml`
```
# This file is auto-generated during the composer install
mandatory_parameters:
shop_path: /var/www/oxideshop/source
shop_tests_path: /var/www/oxideshop/tests
partial_module_paths: d3/modcfg
optional_parameters:
shop_url: null
shop_serial: ''
enable_varnish: false
is_subshop: false
install_shop: false
remote_server_dir: null
shop_setup_path: null
restore_shop_after_tests_suite: false
test_database_name: null
restore_after_acceptance_tests: false
restore_after_unit_tests: false
tmp_path: /tmp/oxid_test_library/
database_restoration_class: DatabaseRestorer
activate_all_modules: false
run_tests_for_shop: false
run_tests_for_modules: true
screen_shots_path: null
screen_shots_url: null
browser_name: firefox
selenium_server_ip: 127.0.0.1
selenium_server_port: '4444'
additional_test_paths: null
```
Make sure the module has been activated
Configure the error reporting to `error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);` in the `config.inc.php` due some deprecation issues in original OXID code
## Unit Tests
To execute unit tests run the following:
```
cd /var/www/oxideshop/
vendor/bin/runtests
```
commands are described in composer.json scripts section

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Modul-Connector @version 7.0.1.0 SourceGuardian (19.04.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B335210FA1AAQAAAAhAAAABKgAAACABAAAAAAAAAD/AEupxFnL419C+ibRfYqzjZj88kLwROj9pW0B17rFUF4pUBtqAhi8zqWuCGYyavhydnLYHId7b2wJNfs5fOenL7okzaV2zaY0ln48HhFgNScqt5JLB51KCIZ9KzRMSeBR/sOQKHywIdB676vtE1uSk3+6vHdpgH2FhNsvd+YOyw37tRsZaRUyM8UwcM+uTuOqTXqy9e4hBRawMPOjnWTKZNpyxIC9nMjyCAAAAJABAACcalFVa0vayQ+ZpTsDTdHoEVV9IH5IcKh6LjPpUyByV56ux5UFIkaELy/8p4DDz0oxEFU2Hed3HspI/7bfDsxhf/Y6BHmudQQftpg7MutzAVrdKLWcxbysn90u9QZuQjQIIekXCs5a3zfYaGETZg262gb18UYKp/WQzAWwVtuvCWz6wG2AqaIddF8uzRmHP8DtniLU+4sWiSsfj3g7Z7FmBu5Pf3hCOqLg6hODuUoerp7f91DLCfv/W+Kra2WjHF8LIR3scxNJn38m4UkOmMfmCrY5qlrBg8ltXXfvfWXDwm78M/S6gdOG/7zX8//+J4/S663J2jr5Kuu7noP7V6JBusrsoUpuLgkzGMEa7eOQR0fi4TpF2TL8yHhLYrDytX5RyBpbSi/IylIxUhvO4o8Pr4PQsgTNhIKhbyQTGyAYT6mwjtcDfWsuyhu1HlcKKFXLhsv16pbaG9rYvhlZlLqqtJVZaLhjqTT86qlFsXv0B9N/7CPlknqPdgyeVZoGCjAF1wMHRfTQjPxRAsiBby7DUQAAAIgBAAARERIOV2uMB2Mhpqaol1zikV7K32cjQiuQHVS2te2oU/8QVUwk7StXMqfPAtuecvfl+vQ1x81UVLheuZb0HPN25jwVne1F4/qkMb03/YzuOTovMWUO3UdQ0uoTd4ZaZ+4ZmZKpUKs0gu9czPbM0PccVI+vZdpkQ6jWxcEC9iHlRN1OyQtfnJGHCo9cD/p8AW4c7Ds4iCl7tNRdMFmq4lzbHPiKUDa+c8UimPAeFt8lLo67eOobOcCLBQG9owKC72ZEfcrMDsLloX9WauNtr9nZlHbwzlziAEj3/zA9TUYsIyA+NiJpfS356oWABXD0loNXVSmjtUCrG7CZvTpvaBqP3N86W8LsqUgXbgq+07piyVwD9udZJVYIqmElM9AIGJ6j+QwOvq2h6XVcRdUCHEBqVQ4FuwrZv4EEpX5JxR6OgqNhaAvB/Xi3z8gYsRYP2TKpHC17QwnwVJwv5C+gnGorEmtaqGgpeNyADcsaJxbgSwU+pTW4GWXaCa+V4cmV2TnHuhNH85iOTVIAAACIAQAAQgLqPt0LhP/+PZ1lGkz+hP3FGC4Qh+F5tNdzdCNmntl/HwQELVV5YF3+jrOXG472L8QhNf2yL6EnQOHQP/1YgSfGRFcpQZmwrZfpfGUKPoAp5DeQrKVhJ78EZChx+OVtrFZIHO3N5ZLZzRpBtAJxqAyVqPwn2oUlwMLFF4qsNINTxIqSv/Av/uIqITS2ZcWYJ7DxZtiiOgK4VS7P9w4B3rJfaAv2toL5J9OqkRhICzZyy96wawqsg9lQnw9cy2OSk9fHTwDvTWDikenWid6TFsmMhO1CgIrNwde3/8a3GnOaeT4ebh1l6qJ2EAKk7Nnli3BRqNNrbuc+UudQlcMTjW1uDA7kvKsNU+VAs2D8vGLCyOAPKKImF121jLxmne50zy2r8vUF8cFrAccxhBxNBJmnC+6FdpDsR7dMYPeY1avLFv1SYg/MW8JTbipdNuXsDHlm/1j2IQFlFxnFzTTIVnEuTu6lm226ma0xSrKZn4Xx8TXVXRgaznd8RpjN8DWy2pskn9x38fMAAAAA');
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Modul-Connector @version 7.1.0.0 SourceGuardian (26.06.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B34D210F71AAQAAAAhAAAABKgAAACABAAAAAAAAAD/xoq58c1zxqa5YSFCj2oEQWkkCd2JIoabVKxx7VX1a1t9RrWML11Ytpl/+VHOBc1CQyiksRBxuLFxxZXgyIFN1/hs32foo6doC23l+aXudKYDv1TemItSSk/J+bZMMafeVSOr9kibM2fhTph36e9vC+0rk/LNUEx0dCoJwFAEYBFNC9axx8bFuezLG4nu4GJb5PFlZCprA1QJF7tOnvf7oPh/WXgF/DGbCAAAAJABAADJVHCIImcG4E9SKdoNLMZlzcxT7Q2/VpfLK+phS8/CSVfrM6CbylwlKUWGUKwE+ovFfzH34ID4iCPYYzOZCw4NCIBqfOoIewB1SuBA1ymtdWhWOube9BmoyHYkkKYkL2cy6JJ6xqHZ1Txv7PNB7Ael46LrbpDGtoGYHTDnK51gpEj97uZ65phjWocO1xoJJxGt0tE3DW7qPG6IcgO8meffSZ/cVPnXTsgA2RLpD1KNa/oOF+xfzr68OEtHEFqYFZbnPf1PA3BrBcc2z5735aXUA1HmOBNjhDKV+fkZWhOmum6yVidOUXB1Vwc/1d/RPe5lUlyiuR2RwTW33cpYuK9qbmLrbTW8WPl+1InYMBcpi1LJd8r0hc45rUvEilIPD2CTmDoh/vhBi/fCFhDvyfkJrSrH54OctMomKSs6AthxmdKNvoAPEZm4xHIzjBrULdFCiFAQpluMf5/dNVJB1uZM6s0jfuvxdJVDaBSUM8eCouuMLN4hcNO4zYouLUl6UcOm8P2q/v3LQZZ7tJR9Mg5lUQAAAIgBAAANhnZArhIUtgnoosiOi2pt5EeOKcD7qPUoA/CeUgfBSxrCpNYdhYupFBzUHnesqCwaqJu3ROtLGNRiSXov/ijR0qY4a+W15PnZ1TgTaMnk21ZcU1/mA2PMM+v9kso90A1SaC9DSZ+3w4+KTvXedkWkhb6Bfei2TlC952NaJIIaCTJTcPFMsQSDSVJZhhixKq8u0yZTDPCAu8lck/ynmpwbidZ/zqHXvN+EVMNHumVtLiFXPcu4SOrT5rK82t1Y2iqGSPZdQDtHMKinjI/Q4SgGquZREQ1nKCAcZhV1n85x5EeazPga5J1VQ8A1BRJM3Ykn9Jv9mFA34qKFr/vQ8X94cBLiGE8+N+sG8tCc0NRluM0OGKeM/KXRjGCNx0lhhyS8F4GBtz0LDYDWpKZq9t8TbcHMMyvB16KguDZX37vMWuQNYX659iVrnlfbt0muy5+vUZY7aWeu38Fg5AL3IzKWM44k10+0xDN+M9nnV/MGzUp5kMPPyJr10wxUqFBIvbv8jYtKbkz0yVIAAACIAQAAZbFYTe5Jtdy/btWsu2MOWy2ukWjAUMAe/YUZMw5NUA1J9YM525RdMhGUk4Ad7Vp4TrMui24tnWrEXiTvzJh0bOZZslbL81KmGdhL2VBcjwiXXf38Y2MtQdLQRjJKfUPPtvXMGv9KeFDoDzrm9iE4JJEQL2TOnHQfU/9gCRUAbECUNwjgsP7jqksN4co/1IhjuiiwZVjqmUDJ3hABeVEal4CA8ZUW1myH/94xXynwELkaEI7N4JSNiboz/eRURmBILjVFexiX9M5OKtUJLdk88+qDxTJ13WzBYaWSnFawBYds9uGRKyyH9asUd+L5UHkYnSNWDFnXM9sFWb3KXAE8yxgvMBbjiBlKifVMMQOf6HOTY2T0PPUEQWe581CGT2FyoN0c5bfQWqS66tSS9iM0s3Gus8bpB8OVtR4//8uxJvYd+ub5oghnT921GBkmgzIXxfr/Dr81EI44ZmQf+CiAistogu7rLtEfhkXqSRkBOP8hA8T+8IElAdsHVWWNd9mfoGOp9i5y4JcAAAAA');

View File

@ -1,2 +1,2 @@
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Modul-Connector @version 7.0.1.0 SourceGuardian (19.04.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B335210FA1AAQAAAAhAAAABKgAAACABAAAAAAAAAD/AEupxFnL419C+ibRfYqzjZj88kLwROj9pW0B17rFUF4pUBtqAhi8zqWuCGYyavhydnLYHId7b2wJNfs5fOenL7okzaV2zaY0ln48HhFgNScqt5JLB51KCIZ9KzRMSeBR/sOQKHywIdB676vtE1uSk3+6vHdpgH2FhNsvd+YOyw37tRsZaRUyM8UwcM+uTuOqTXqy9e4hBRawMPOjnWTKZNpyxIC9nMjyCAAAAOAAAABpbEDcmQaqvJ718r4Aa37gOtZo5PQG4XkGhxgJfiGDiM+fmukSxbyztRlMFDZQuTL+xj83ALq9EEfsy/gaTE82jdztG/T1Pz6mjHPOsvtsRrzPlZrf3VIyjnCDIaVlNJjSoYU+I23JFhWB0z1i0slp0D9UaHIXEtdCGtY5n5jfdFgWW7mMKDFAsHG36IVY/2yjF1fEEBH7AgwXydrMeI3M9rQdSFL9qlQ0NHjzM6GPOD0nwl6U85TK1qTcVMqW1T/NQS14yk0J5MVWucbHWoGTB0bSRg3BY0EaxAeFnsTzlFEAAADYAAAA7lD+YR9+qsPrJNcQIBrvdNOT/fjxGMFQHdeMHbwjrrg7Wxyvxiq7Fr0loFVVQ+wPnaAgeIYRfbmNnmKQX+eqraHsfL90QXVgGggn86wElsSKsfcHuOzW2BpxePfgCK0fxVPZXtfM4cJKAgBbGq71er0rXrR4xq0KeLQuVYYId4AsWbzOc4muaZmqqcEXBlc8eWpRQiNOvUZtpvGbIjyhMdgzpQivRcqPiFrsRA339h8UKzvG0UVbPFDuizUOvkL2074LbLoAeTef9Kh/ws+KdZM9HTpbUex9UgAAANgAAABS+aEA7YUiq7o1ImNI80IKlaDxFd/POLmxzmLbCpcEDs1DXVFDy+5eQtZckIRcaodjVxb+4ZxDLll+8eSMXUN2Tokj1c9poGnA6Bctlf+8VYN6skHvK09gnoCcmBmILl01Jg0Wwgpf3YAWt+/9tg5C18B9l9T3YnBLTttVHub14ZvO9fd8okvUpD2d2/XkI6CErq4UEYOtzykvK1ECn3WF4REzr3vZLIuFbqjvVLCvgvEXsJh8Iym5fVa7TBEv1n64O7kByIJG5bM0hjaqH/mYEIOqA3CQ0BYAAAAA');
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Modul-Connector @version 7.1.0.0 SourceGuardian (26.06.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B34D210F71AAQAAAAhAAAABKgAAACABAAAAAAAAAD/xoq58c1zxqa5YSFCj2oEQWkkCd2JIoabVKxx7VX1a1t9RrWML11Ytpl/+VHOBc1CQyiksRBxuLFxxZXgyIFN1/hs32foo6doC23l+aXudKYDv1TemItSSk/J+bZMMafeVSOr9kibM2fhTph36e9vC+0rk/LNUEx0dCoJwFAEYBFNC9axx8bFuezLG4nu4GJb5PFlZCprA1QJF7tOnvf7oPh/WXgF/DGbCAAAAOAAAABpbEDcmQaqvJ718r4Aa37gOtZo5PQG4XkGhxgJfiGDiM+fmukSxbyztRlMFDZQuTL+xj83ALq9EEfsy/gaTE82jdztG/T1Pz6mjHPOsvtsRrzPlZrf3VIyjnCDIaVlNJjSoYU+I23JFhWB0z1i0slp0D9UaHIXEtdCGtY5n5jfdFgWW7mMKDFAsHG36IVY/2yjF1fEEBH7AgwXydrMeI3M9rQdSFL9qlQ0NHjzM6GPOD0nwl6U85TK1qTcVMqW1T/NQS14yk0J5MVWucbHWoGTB0bSRg3BY0EaxAeFnsTzlFEAAADYAAAAmUX5gA1apno3V6qn+bhzLh1hKy1hf17QSJsFaD5Z8UJkvVsMFMCltMRyEvtROFQw7tO7dONYaqXrSlB3XR9iYFJYMkveIB0ZhEo5F1ySTal21bkiYNBkwkaogOcWrLv9B/mZeXEMWZW3Mo5t7s4Kspn3J1jQBNJKXfjMVmCa9H3MdmyTQNPb1i3mbI23evMqyPkAX4TBNaL10zqvrwFuRIMayUO6Whq4rBQs6eFhZOyTiBQm/5qtrTYhQLHHqcsDmHvYv2j0D3AaCm3KU8AP4s7nyG0HgLmTUgAAANgAAAC+/dBCYIpPxb0nqdBKEZWFGvfBnJ3N3NcWoThZ5U0uRVhl65o1lOMRQ5VKB6swTalxzqUW1Xti+ik7EZRT0P6b6RqnrZNy6G+KKL4Nx0OvBuIyYIAL5Su303/LPGcrgLiDy1TurzmbfzeNx0PCvLf2rt3eCExhF+F2BQ1DDu/f1I/L/J2sv8x7J65ld0nsTqxCAqzW2BHXJUue3jrSHNWMiX1D4nIcPXlpTS1orIG+0pDLHnZnAgRP3qIMtT1cljxmlBSUTDyka3GxpAjsjq9XSh0pfVfxVFcAAAAA');

View File

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
backupGlobals="true"
backupStaticAttributes="false"
beStrictAboutTestsThatDoNotTestAnything="false"
bootstrap="../../../../source/bootstrap.php"
colors="false"
backupStaticAttributes="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="false"
convertWarningsToExceptions="true"
@ -13,19 +13,29 @@
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
beStrictAboutTestsThatDoNotTestAnything="false"
verbose="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage includeUncoveredFiles="true" processUncoveredFiles="true">
<include>
<directory suffix=".php">../</directory>
</include>
</coverage>
<testsuites>
<testsuite name="Unit">
<directory>unit/</directory>
</testsuite>
<!-- <testsuite name="Integration">-->
<!-- <directory>integration/</directory>-->
<!-- </testsuite>-->
</testsuites>
<testsuites>
<testsuite name="Unit">
<directory>unit/</directory>
</testsuite>
<!-- <testsuite name="Integration">-->
<!-- <directory>integration/</directory>-->
<!-- </testsuite>-->
</testsuites>
<coverage includeUncoveredFiles="true" processUncoveredFiles="true">
<include>
<directory suffix=".php">../</directory>
</include>
<exclude>
<file>../.php-cs-fixer.php</file>
<file>../IntelliSenseHelper.php</file>
<file>../rector.php</file>
<directory>../Tests/</directory>
</exclude>
</coverage>
<php>
<const name="OXID_PHP_UNIT" value="true"/>
</php>
</phpunit>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More