diff --git a/setup+doku/Precheck/d3precheck.php b/setup+doku/Precheck/d3precheck.php
index fec45dc..900f3c5 100644
--- a/setup+doku/Precheck/d3precheck.php
+++ b/setup+doku/Precheck/d3precheck.php
@@ -177,7 +177,7 @@ date_default_timezone_set('Europe/Berlin');
*/
class requCheck
{
- public $sVersion = '4.0';
+ public $sVersion = '4.1';
protected $_db = false;
@@ -224,6 +224,9 @@ class requCheck
{
$this->oLayout->getHTMLHeader();
+ $oCheckTransformation = new requTransformation($this);
+ $this->oConfig->aCheck = $oCheckTransformation->transformCheckList($this->oConfig->aCheck);
+
$this->_runThroughChecks($this->oConfig->aCheck);
$this->oLayout->getHTMLFooter();
@@ -331,10 +334,10 @@ class requCheck
);
$sUrlAdd = str_replace($sBaseDir, '', $sScriptPath);
$sBaseUrl = 'http://' . $_SERVER['HTTP_HOST'] . str_replace(
- basename($_SERVER['SCRIPT_NAME']),
- '',
- $_SERVER['SCRIPT_NAME']
- );
+ basename($_SERVER['SCRIPT_NAME']),
+ '',
+ $_SERVER['SCRIPT_NAME']
+ );
$sUrl = $sBaseUrl . $sUrlAdd . '?fnc=' . $sMethodName . '¶ms=' . urlencode(serialize($aArguments));
@@ -413,7 +416,7 @@ class requCheck
/**
* @return bool|resource
*/
- protected function _getDb()
+ public function getDb()
{
if (!$this->_db) {
if (file_exists('config.inc.php')) {
@@ -473,7 +476,7 @@ class requCheck
$aIgnoreDirItems = array('.', '..');
/** @var SplFileInfo $oFileInfo */
- foreach (new RecursiveDirectoryIterator($sFolder) AS $oFileInfo) {
+ foreach (new RecursiveDirectoryIterator($sFolder) as $oFileInfo) {
if (!in_array($oFileInfo->getFileName(), $aIgnoreDirItems) && $oFileInfo->isDir()) {
$this->_checkDelFilesInDir($oFileInfo->getRealPath());
} elseif ($oFileInfo->isFile()) {
@@ -499,7 +502,7 @@ class requCheck
public function displayCheck($sCheckType, &$aConfiguration)
{
$sGenCheckType = preg_replace("@(\_[0-9]$)@", "", $sCheckType);
- $oTests = new requTests($this, $this->oConfig, $this->_getDb(), $this->oRemote);
+ $oTests = new requTests($this, $this->oConfig, $this->getDb(), $this->oRemote);
if (method_exists($oTests, $sGenCheckType)) {
$aResult = $oTests->{$sGenCheckType}($aConfiguration);
@@ -585,13 +588,11 @@ EOT;
$sTranslDependent = $this->translate('dependentoffurther');
if ($this->oBase->blGlobalResult) {
- echo '
' . $this->translate('globalSuccess') . '' . $this->translate(
- 'deleteFile1'
- ) . $sScriptName . $this->translate('deleteFile2') . '
';
+ echo '' . $this->translate('globalSuccess') . '' .
+ $this->translate('deleteFile1') . $sScriptName . $this->translate('deleteFile2') . '
';
} else {
- echo '' . $this->translate('globalNotSuccess') . '' . $this->translate(
- 'deleteFile1'
- ) . $sScriptName . $this->translate('deleteFile2') . '
';
+ echo '' . $this->translate('globalNotSuccess') . '' .
+ $this->translate('deleteFile1') . $sScriptName . $this->translate('deleteFile2') . '
';
}
echo <<< EOT
@@ -617,12 +618,9 @@ EOT;
*/
public function getNoSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration)
{
- echo "" . $this->_addToggleScript($aResult, $sElementId) . $this->translate(
- $sCheckType,
- $aConfiguration
- ) . "
" . PHP_EOL;
+ echo "" . $this->_addToggleScript($aResult, $sElementId) .
+ $this->translate($sCheckType, $aConfiguration) . "
" . PHP_EOL;
$this->getSubDirItems($aResult, $sElementId);
}
@@ -638,10 +636,7 @@ EOT;
echo "" .
$this->_addToggleScript($aResult, $sElementId) .
- $this->translate(
- $sCheckType,
- $aConfiguration
- ) . "
" . PHP_EOL;
+ $this->translate($sCheckType, $aConfiguration) . "
" . PHP_EOL;
$this->getSubDirItems($aResult, $sElementId);
}
@@ -654,9 +649,7 @@ EOT;
{
echo "" .
- $this->translate($sCheckType, $aConfiguration) . " (" . $this->translate(
- 'RequNotCheckable'
- ) . ")
";
+ $this->translate($sCheckType, $aConfiguration) . " (" . $this->translate('RequNotCheckable') . ")
";
}
/**
@@ -669,13 +662,11 @@ EOT;
echo "";
foreach ($aResult as $sPath => $blResult) {
if (!$blResult) {
- echo "
" . $sPath . "
";
+ echo "
" . $sPath . "
";
} else {
- echo "
" . $sPath . "
";
+ echo "
" . $sPath . "
";
}
}
echo "
" . PHP_EOL;
@@ -782,7 +773,8 @@ class requTranslations
return array(
'de' => array(
'RequCheck' => 'Mindestanforderungsprüfung',
- 'ExecNotice' => 'Führen Sie diese Prüfung immer aus dem Stammverzeichnis Ihres Shops aus. Nur dann können die Prüfungen erfolgreich durchgeführt werden.',
+ 'ExecNotice' => 'Führen Sie diese Prüfung immer aus dem Stammverzeichnis Ihres Shops aus. '.
+ 'Nur dann können die Prüfungen erfolgreich durchgeführt werden.',
'RequSucc' => 'Bedingung erfüllt',
'RequNotSucc' => 'Bedingung nicht erfüllt',
'RequNotCheckable' => 'Bedingung nicht prüfbar',
@@ -796,17 +788,22 @@ class requTranslations
'hasMaxShopVersion' => 'maximal Shop Version %s',
'hasMinModCfgVersion' => 'ModCfg-Eintrag "%s" (%s) mit mindestens Version %s',
'hasMaxModCfgVersion' => 'ModCfg-Eintrag "%s" (%s) mit maximal Version %s',
- 'hasModCfg' => 'Modul-Connector installiert',
+ 'hasModCfg' => 'Modul-'.
+ 'Connector installiert',
'isShopEdition' => 'ist Shopedition %s',
- 'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) oder Zend Guard Loader (PHP 5.3, 5.4) installiert',
+ 'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) oder Zend Guard Loader (PHP 5.3, 5.4) '.
+ 'installiert',
'hasIonCubeLoader' => 'ionCube loader installiert',
'globalSuccess' => 'Die Prüfung war erfolgreich. Sie können das Modul installieren.*
',
- 'globalNotSuccess' => 'Die Prüfung war nicht erfolgreich. Bitte kontrollieren Sie die rot markierten Bedingungen.
',
- 'deleteFile1' => 'Löschen Sie diese Datei nach der Verwendung bitte unbedingt wieder von Ihrem Server! Klicken Sie '?fnc=deleteme">hier, um diese Datei zu löschen.',
'showPhpInfo' => 'PHPinfo anzeigen',
'dependentoffurther' => '* abhängig von ungeprüften Voraussetzungen',
- 'oneandonedescription' => '** geprüft wurde das Ausführungsverzeichnis, providerabhängig müssen Unterverzeichnisse separat geprüft werden (z.B. bei 1&1)',
+ 'oneandonedescription' => '** geprüft wurde das Ausführungsverzeichnis, providerabhängig müssen '.
+ 'Unterverzeichnisse separat geprüft werden (z.B. bei 1&1)',
'or' => ' oder ',
'toggleswitch' => 'Klick für Details zur Prüfung',
'unableDeleteFile' => 'Datei konnte nicht gelöscht werden. Bitte löschen Sie diese manuell.',
@@ -814,7 +811,8 @@ class requTranslations
),
'en' => array(
'RequCheck' => 'Requirement check',
- 'ExecNotice' => 'Execute this check script in the root directory of your shop. In this case only checks can executed succesfully.',
+ 'ExecNotice' => 'Execute this check script in the root directory of your shop. In this '.
+ 'case only checks can executed succesfully.',
'RequSucc' => 'condition is fulfilled',
'RequNotSucc' => 'condition isn\'t fulfilled',
'RequNotCheckable' => 'condition isn\'t checkable',
@@ -828,17 +826,21 @@ class requTranslations
'hasMaxShopVersion' => 'not more than shop version %s',
'hasMinModCfgVersion' => 'ModCfg item "%s" (%s) has at least version %s',
'hasMaxModCfgVersion' => 'ModCfg item "%s" (%s) has not more than version %s',
- 'hasModCfg' => 'Module Connector installed',
+ 'hasModCfg' => 'Module '.
+ 'Connector installed',
'isShopEdition' => 'shop edition is %s',
'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) or Zend Guard Loader (PHP 5.3, 5.4) installed',
'hasIonCubeLoader' => 'ionCube loader installed',
- 'globalSuccess' => 'The test was successful. Your server is ready for installing the module.*
',
- 'globalNotSuccess' => 'The test wasn\'t successfull. Please check the red marked conditions.
',
+ 'globalSuccess' => 'The test was successful. Your server is ready for installing the '.
+ 'module.*
',
+ 'globalNotSuccess' => 'The test wasn\'t successfull. Please check the red marked '.
+ 'conditions.
',
'deleteFile1' => 'Please delete this file after use on your server! Click here, to delete this file.',
'showPhpInfo' => 'show PHPinfo',
'dependentoffurther' => '* dependent of further unchecked conditions',
- 'oneandonedescription' => '** this check use execution directory only, provider dependend subdirectories have to check separately (e.g. at 1&1)',
+ 'oneandonedescription' => '** this check use execution directory only, provider dependend '.
+ 'subdirectories have to check separately (e.g. at 1&1)',
'or' => ' or ',
'toggleswitch' => 'click for details',
'unableDeleteFile' => 'Unable to delete file. Please delete it manually.',
@@ -874,8 +876,7 @@ class requRemote
/** @var stdClass $oModuleData */
$oModuleData = $this->_getRemoteServerData($sUrl);
- if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release))
- {
+ if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release)) {
return explode(',', $oModuleData->moduleversion->compatible_release->shopedition);
}
@@ -899,8 +900,7 @@ class requRemote
/** @var stdClass $oModuleData */
$oModuleData = $this->_getRemoteServerData($sUrl);
- if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release))
- {
+ if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release)) {
return $this->shortenVersion($oModuleData->moduleversion->compatible_release->fromshopversion);
}
@@ -924,8 +924,7 @@ class requRemote
/** @var stdClass $oModuleData */
$oModuleData = $this->_getRemoteServerData($sUrl);
- if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release))
- {
+ if ($oModuleData->status == 'OK' && isset($oModuleData->moduleversion->compatible_release)) {
return $this->shortenVersion($oModuleData->moduleversion->compatible_release->toshopversion);
}
@@ -970,8 +969,8 @@ class requRemote
if (extension_loaded('curl') &&
function_exists('curl_init') && function_exists('curl_exec') &&
- $ch = curl_init())
- {
+ $ch = curl_init()
+ ) {
$sCurl_URL = preg_replace('@^((http|https)://)@', '', $sFilePath);
curl_setopt($ch, CURLOPT_URL, $sCurl_URL);
if ($_SERVER['HTTP_USER_AGENT']) {
@@ -1097,11 +1096,8 @@ class requTests
{
$aResult[$this->getBasePath()] = false;
- if ((version_compare(phpversion(), $aConfiguration['aParams']['from'], '>=')) && (version_compare(
- phpversion(),
- $aConfiguration['aParams']['to'],
- '<'
- ))
+ if ((version_compare(phpversion(), $aConfiguration['aParams']['from'], '>=')) &&
+ (version_compare(phpversion(), $aConfiguration['aParams']['to'], '<'))
) {
$aResult[$this->getBasePath()] = true;
}
@@ -1163,10 +1159,15 @@ class requTests
$oEditionResult = $this->_getShopEdition();
$sEdition = strtoupper($oEditionResult->oxedition);
- $mMinRemoteVersion = $this->oRemote->getMinShopVersion($this->oConfig->sModId, $this->oConfig->sModVersion, $sEdition);
+ $mMinRemoteVersion = $this->oRemote->getMinShopVersion(
+ $this->oConfig->sModId,
+ $this->oConfig->sModVersion,
+ $sEdition
+ );
+
if ($mMinRemoteVersion) {
$aConfiguration['aParams'] = array('version' => $mMinRemoteVersion);
- } else {
+ } else {
$aConfiguration['aParams'] = array('version' => $aConfiguration['aParams'][$sEdition]);
}
@@ -1194,10 +1195,15 @@ class requTests
$oEditionResult = $this->_getShopEdition();
$sEdition = strtoupper($oEditionResult->oxedition);
- $mMaxRemoteVersion = $this->oRemote->getMaxShopVersion($this->oConfig->sModId, $this->oConfig->sModVersion, $sEdition);
+ $mMaxRemoteVersion = $this->oRemote->getMaxShopVersion(
+ $this->oConfig->sModId,
+ $this->oConfig->sModVersion,
+ $sEdition
+ );
+
if ($mMaxRemoteVersion) {
$aConfiguration['aParams'] = array('version' => $mMaxRemoteVersion);
- } else {
+ } else {
$aConfiguration['aParams'] = array('version' => $aConfiguration['aParams'][$sEdition]);
}
@@ -1219,7 +1225,12 @@ class requTests
if ($this->getDb()) {
$oResult = $this->_getShopEdition();
- $mRemoteShopEditions = $this->oRemote->getShopEdition($this->oConfig->sModId, $this->oConfig->sModVersion, $oResult->oxedition);
+ $mRemoteShopEditions = $this->oRemote->getShopEdition(
+ $this->oConfig->sModId,
+ $this->oConfig->sModVersion,
+ $oResult->oxedition
+ );
+
if (is_array($mRemoteShopEditions)) {
$aConfiguration['aParams'][0] = $mRemoteShopEditions;
}
@@ -1279,11 +1290,13 @@ class requTests
public function hasMinModCfgVersion(&$aConfiguration)
{
if ($this->getDb()) {
- $sSelect = "SELECT IF (INET_ATON(oxversion) >= INET_ATON('" . $aConfiguration['aParams']['version'] . "'), 1, 0) AS result
- FROM d3_cfg_mod WHERE
- oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND
- oxversion != 'basic'
- ORDER BY oxversion ASC LIMIT 1";
+ $sSelect = "SELECT IF ".
+ "(INET_ATON(oxversion) >= INET_ATON('" . $aConfiguration['aParams']['version'] . "'), 1, 0) AS result ".
+ "FROM d3_cfg_mod ".
+ "WHERE
+ oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND
+ oxversion != 'basic'
+ ORDER BY oxversion ASC LIMIT 1";
$rResult = mysql_query($sSelect, $this->getDb());
$aResult = mysql_fetch_assoc($rResult);
@@ -1309,11 +1322,11 @@ class requTests
{
if ($this->getDb()) {
$sSelect = "SELECT
- IF (INET_ATON(oxversion) <= INET_ATON('" . $aConfiguration['aParams']['version'] . "'), 1, 0) AS result
- FROM d3_cfg_mod WHERE
- oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND
- oxversion != 'basic'
- ORDER BY oxversion ASC LIMIT 1";
+ IF (INET_ATON(oxversion) <= INET_ATON('" . $aConfiguration['aParams']['version'] . "'), 1, 0) AS result
+ FROM d3_cfg_mod WHERE
+ oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND
+ oxversion != 'basic'
+ ORDER BY oxversion ASC LIMIT 1";
$rResult = mysql_query($sSelect, $this->getDb());
$aResult = mysql_fetch_assoc($rResult);
@@ -1337,9 +1350,7 @@ class requTests
{
$aResult = array($this->getBasePath() => false);
- if (
- (
- version_compare(phpversion(), '5.2.0', '>=') &&
+ if ((version_compare(phpversion(), '5.2.0', '>=') &&
version_compare(phpversion(), '5.2.900', '<') &&
function_exists('zend_optimizer_version')
) || (
@@ -1347,7 +1358,7 @@ class requTests
version_compare(phpversion(), '5.4.900', '<') &&
function_exists('zend_loader_version')
)
- ){
+ ) {
$aResult[$this->getBasePath()] = true;
}
@@ -1373,6 +1384,77 @@ class requTests
}
}
+/**
+ * Class requTransformation
+ */
+class requTransformation
+{
+ public $oCheck;
+
+ /**
+ * @param requCheck $oCheck
+ */
+ public function __construct(requCheck $oCheck)
+ {
+ $this->oCheck = $oCheck;
+ }
+
+ /**
+ * @param $aCheckList
+ */
+ public function transformCheckList($aCheckList)
+ {
+ $this->_removeDeprecatedLibs($aCheckList['hasMinModCfgVersion']);
+ $this->_removeDeprecatedLibs($aCheckList['hasMaxModCfgVersion']);
+
+ return $aCheckList;
+ }
+
+ /**
+ * @param array $aCheck
+ */
+ protected function _removeDeprecatedLibs(&$aCheck)
+ {
+ $blDelOldLibs = false;
+ $sCheckVersion = 0;
+
+ if (is_array($aCheck)) {
+ $sSelect = "SELECT oxversion as result ".
+ "FROM d3_cfg_mod ".
+ "WHERE oxmodid = 'd3modcfg_lib' LIMIT 1";
+ $rResult = mysql_query($sSelect, $this->oCheck->getDb());
+ if (is_resource($rResult)) {
+ $oResult = mysql_fetch_object($rResult);
+ if ($oResult->result) {
+ $sCheckVersion = $oResult->result;
+ }
+ }
+
+ foreach ($aCheck as $aModCfgCheck) {
+ if (isset($aModCfgCheck['aParams']['id']) &&
+ strtolower($aModCfgCheck['aParams']['id']) == 'd3modcfg_lib' &&
+ version_compare($sCheckVersion, '4.0.0.0', '>=')
+ ) {
+ $blDelOldLibs = true;
+ }
+ }
+
+ reset($aCheck);
+
+ if ($blDelOldLibs) {
+ $aOldLibs = array('d3install_lib', 'd3log_lib', 'd3clrtmp_lib');
+ foreach ($aCheck as $sKey => $aModCfgCheck) {
+ if (isset($aModCfgCheck['aParams']['id']) &&
+ in_array(strtolower($aModCfgCheck['aParams']['id']), $aOldLibs)
+ ) {
+ unset($aCheck[$sKey]);
+ }
+ }
+ }
+ }
+ }
+}
+
/**
* @param $mVar
*/