diff --git a/.gitattributes b/.gitattributes index 3f493e8..174bcdb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,18 +11,18 @@ Sources/UGA_Einstellungen.jpg -text Sources/UGA_Trichtereinrichtung.jpg -text Sources/UGA_Trichtereinrichtung_1.jpg -text Sources/trustedShops.jpg -text -changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl -text -changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl -text +changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl -text copy_this/.noencode -text copy_this/modules/d3/d3_googleanalytics/IntelliSenseHelper.php -text copy_this/modules/d3/d3_googleanalytics/controllers/admin/d3_cfg_googleanalytics.php -text diff --git a/Sources/Google Services-Installation.docx b/Sources/Google Services-Installation.docx index eb661cc..a26ab09 100644 Binary files a/Sources/Google Services-Installation.docx and b/Sources/Google Services-Installation.docx differ diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleadwordscode.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_googleanalytics.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/blocks/layout/d3_base_optout.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/d3_googleanalytics.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/d3ga_universal.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwords.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_adwordscode.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_campaigncode.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_custom.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_ecommerce.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_remarketing.tpl diff --git a/changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl b/changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl similarity index 100% rename from changed_full/470-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl rename to changed_full/490-/modules/d3/d3_googleanalytics/views/tpl/widget/inc/d3ga_universal_trustedstore.tpl diff --git a/copy_this/modules/d3/d3_googleanalytics/metadata.php b/copy_this/modules/d3/d3_googleanalytics/metadata.php index 8981be0..984bc44 100644 --- a/copy_this/modules/d3/d3_googleanalytics/metadata.php +++ b/copy_this/modules/d3/d3_googleanalytics/metadata.php @@ -40,7 +40,7 @@ $aModule = array( 'Trusted Shops account to your shop.', ), 'thumbnail' => 'picture.png', - 'version' => '3.3.3.0', + 'version' => '3.4.0.0', 'author' => 'D³ Data Development (Inh. Thomas Dartsch)', 'email' => 'support@shopmodule.com', 'url' => 'http://www.oxidmodule.com/', diff --git a/copy_this/modules/d3/d3_googleanalytics/setup/d3_googleanalytics_update.php b/copy_this/modules/d3/d3_googleanalytics/setup/d3_googleanalytics_update.php index ea349d2..2213f94 100644 --- a/copy_this/modules/d3/d3_googleanalytics/setup/d3_googleanalytics_update.php +++ b/copy_this/modules/d3/d3_googleanalytics/setup/d3_googleanalytics_update.php @@ -21,18 +21,18 @@ class d3_googleanalytics_update extends d3install_updatebase public $sModName = 'Google Services Schnittstelle'; - public $sModVersion = '3.3.3.0'; + public $sModVersion = '3.4.0.0'; - public $sModRevision = '237'; + public $sModRevision = '242'; // heredoc syntax using for class members is available from PHP 5.3 up public $sBaseConf = - "BZtOXBwVDA5M0hEL3JqNlIwbDZ5OC9lYzM0NFM3RC82d2ZnQzU5TjgvSHduVWJtMjNZd1hkSHVpYUd5d -mdDY1h0ejBtZmVWL01VL2dlQWF4NVBJY0d0ZHErSS9yOFY2UEtMcjhMWkN5T3J2ckdNMWl4RWhKSERCd -FdkMWZKZW5IZU9BMHJNeG5NdXExaWhRYXZqMEhPeHR2cTh0dEk2L2NTYkVsNWkzbGhiQnUvSk90L1pqb -Uk4amw1UXBaMTh2aUpoZlphbmN2ZG1ZcVAxQ2pUVW9ycUFhOFQrTHRDUlc0bFh6SXFEWWFjVDVzaHVBd -XYxSzhpcGxhMTRySGFVdmlnMTNSNDJ1aXJVQmMvRC9jaWltcnJQd3JwVmdobTlhWldrVm1WOXhwWGpiR -EpqbzRPb1QyYysrcy9oZHlJV3VMUDBmTmVjMzhWOG5kd0xJdVVYcWxsYTF3PT0="; + "ZJ0MzB1N2F3em43V1dqWXkvVnc1WXVOeStnMU95aHM2d1BiZEJlbGVhbzNIcE5nTVJxQlZYOEFwU2RrK +2dBSUlQNm43Ly9ldkNZUlFEemNNNmVvVXlTNWRwSVp5RGk4UGxKb2xTckQ4U2pRWUZKVFR1bWx3N0dRU +3FzbThEOGNqSWcvZDFXNVJhSlUydEFwejZ2OFRRektPai9nNVcvWGJURGV2SGJpTkZxMjBOM1pXMkJRU +jVoN1dybnBhTlFWQ0s2Lzh4NjMvZXZMMlJHV21LTnNJcDBIWngxSkJVM3hDODZ4bzBaWS9zRHZ1WC9jY +UtkNFB6WEdzR2NLMG8yWGpMdG9XTmZsQ0lCNkdGSzZ1N0JRMFVlV3JhRXhtZ2tNUi9pd3hsMDIwRlNHY +np5bjJIQjE5aGIycW4wSGpCQXI5alVwYmJreTBRS3NMckNQODZvYXJnZjdBPT0="; public $sRequirements = ''; diff --git a/setup+doku/Google Services-Installation.pdf b/setup+doku/Google Services-Installation.pdf index 499b769..35fad9c 100644 Binary files a/setup+doku/Google Services-Installation.pdf and b/setup+doku/Google Services-Installation.pdf differ diff --git a/setup+doku/Precheck/d3precheck.php b/setup+doku/Precheck/d3precheck.php index bcf0636..d9329d3 100644 --- a/setup+doku/Precheck/d3precheck.php +++ b/setup+doku/Precheck/d3precheck.php @@ -39,11 +39,11 @@ class requConfig { - public $sModName = 'Dł Google Services'; + public $sModName = 'D³ Google Services'; public $sModId = 'd3_googleanalytics'; - public $sModVersion = '3.3.2.0'; + public $sModVersion = '3.4.0.0'; /********************** check configuration section ************************/ @@ -68,14 +68,14 @@ class requConfig 'hasFromToPhpVersion' => array( 'blExec' => 1, 'aParams' => array( - 'from' => '5.2.0', + 'from' => '5.3.0', 'to' => '5.6.200', ) ), // benötigt Zend Optimizer (PHP 5.2) bzw. Zend Guard Loader (> PHP 5.2) 'hasZendLoaderOptimizer' => array( - 'blExec' => 1, + 'blExec' => 0, ), // benötigt IonCubeLoader @@ -83,7 +83,12 @@ class requConfig 'blExec' => 0, ), - // benötigt PHP-Extension (kaskadierbar (siehe "Desc1")) + // benötigt Zend Decoder oder IonCubeLoader + 'hasIonCubeOrZendLoader' => array( + 'blExec' => 0, + ), + + // benötigte PHP-Extension (kaskadierbar (siehe "Desc1")) 'hasExtension' => array( array( 'blExec' => 0, @@ -99,13 +104,29 @@ class requConfig ), ), + // benötigte cURL-Version + 'hasMinCurlVersion' => array( + 'blExec' => 0, + 'aParams' => array( + 'version' => '7.26.0', + ), + ), + + // benötigte OpenSSL-Version (Angabe in Versionsformat) + 'hasMinOpenSSLVersion' => array( + 'blExec' => 0, + 'aParams' => array( + 'version' => '1.0.1.5', + ), + ), + // minimal benötigte Shopversion (editionsgetrennt), wird (sofern möglich) Remote aktualisiert 'hasMinShopVersion' => array( 'blExec' => 1, 'aParams' => array( - 'PE' => '4.7.0', - 'CE' => '4.7.0', - 'EE' => '5.0.0' + 'PE' => '4.9.0', + 'CE' => '4.9.0', + 'EE' => '5.2.0' ), ), @@ -113,9 +134,9 @@ class requConfig 'hasMaxShopVersion' => array( 'blExec' => 1, 'aParams' => array( - 'PE' => '4.9.4', - 'CE' => '4.9.4', - 'EE' => '5.2.4' + 'PE' => '4.10.3', + 'CE' => '4.10.3', + 'EE' => '5.3.3' ), ), @@ -182,7 +203,7 @@ date_default_timezone_set('Europe/Berlin'); */ class requCheck { - public $sVersion = '4.3'; + public $sVersion = '4.10.2'; protected $_db = false; @@ -202,6 +223,8 @@ class requCheck protected $_sInFolderFileName = 'd3precheckinfolder.php'; + public $sVersionTag = '@@version@@'; + /********************** functional section ************************/ public $blGlobalResult = true; @@ -285,19 +308,41 @@ class requCheck $aIgnoreDirItems = array('.', '..'); $aCheckScripts = array(); - /** @var SplFileInfo $oFileInfo */ - foreach (new RecursiveDirectoryIterator($sFolder) as $oFileInfo) { - if (!in_array($oFileInfo->getFileName(), $aIgnoreDirItems) && $oFileInfo->isDir()) { - $aCheckScripts = array_merge($aCheckScripts, $this->_walkThroughDirs($oFileInfo->getRealPath())); - } elseif ($oFileInfo->isFile()) { - if (strtolower($oFileInfo->getFilename()) == $this->_sInFolderFileName) { - $aCheckScripts[] = str_replace('\\', '/', $oFileInfo->getRealPath()); + try { + /** @var SplFileInfo $oFileInfo */ + $oIterator = new RecursiveDirectoryIterator($sFolder); + + foreach ($oIterator as $oFileInfo) { + if (in_array($oFileInfo->getFileName(), $aIgnoreDirItems)) { + continue; + } + if ($oFileInfo->isDir()) { + $aCheckScripts = array_merge($aCheckScripts, $this->_walkThroughDirs($oFileInfo->getRealPath())); + } elseif ($oFileInfo->isFile()) { + if (strtolower($oFileInfo->getFilename()) == $this->_sInFolderFileName) { + $aCheckScripts[] = str_replace('\\', '/', $oFileInfo->getRealPath()); + } } } + } catch (UnexpectedValueException $oEx) { + sprintf($this->oLayout->translate('unableExecuteDirectoryIterator'), $oEx->getMessage()); + $this->addMessage( + sprintf($this->oLayout->translate('unableExecuteDirectoryIterator'), $oEx->getMessage()) + ); } return $aCheckScripts; } + + public function addMessage($sMessage) + { + $this->aMessages[md5($sMessage)] = $sMessage; + } + + public function getMessages() + { + return $this->aMessages; + } /** * @param $aScriptList @@ -317,15 +362,26 @@ class requCheck $aArguments ); + $sVersionUrl = $this->_getFolderCheckUrl( + $sScriptPath, + 'getVersion', + array() + ); + $sContent = serialize(null); + $sVersion = serialize(null); if ($this->_hasCurl()) { $sContent = $this->_getContentByCurl($sUrl); + $sVersion = $this->_getContentByCurl($sVersionUrl); } elseif ($this->_hasAllowUrlFopen()) { $sContent = file_get_contents($sUrl); + $sVersion = file_get_contents($sVersionUrl); } - $aReturn[$this->getBasePath($sScriptPath)] = unserialize($sContent); + $sBasePath = $this->getBasePath($sScriptPath); + $aReturn[$sBasePath] = unserialize($sContent); + $aReturn[$this->sVersionTag][$sBasePath] = unserialize($sVersion); } return $aReturn; @@ -362,15 +418,17 @@ class requCheck */ protected function _getContentByCurl($sUrl) { + $iTimeOut = 5; $ch = curl_init(); $sCurl_URL = preg_replace('@^((http|https)://)@', '', $sUrl); + curl_setopt($ch, CURLOPT_URL, $sCurl_URL); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); - curl_setopt($ch, CURLOPT_TIMEOUT, 5); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $iTimeOut); + curl_setopt($ch, CURLOPT_TIMEOUT, $iTimeOut); curl_setopt($ch, CURLOPT_POST, 0); $sContent = curl_exec($ch); curl_close($ch); @@ -431,14 +489,22 @@ class requCheck } /** - * @param $aResult + * @return string + */ + public function getVersion() + { + return $this->sVersion; + } + + /** + * @param $mResult * * @return bool */ - protected function _hasFalseInResult($aResult) + protected function _hasFalseInResult($mResult) { - if (is_array($aResult)) { - foreach ($aResult as $blResult) { + if (is_array($mResult)) { + foreach ($mResult as $blResult) { if (false === $blResult) { $this->blGlobalResult = false; @@ -449,22 +515,24 @@ class requCheck return false; } - if (false === $aResult) { + if (false === $mResult) { $this->blGlobalResult = false; + + return true; } - return !$aResult; + return false; } /** - * @param $aResult + * @param $mResult * * @return bool */ - protected function _hasNullInResult($aResult) + protected function _hasNullInResult($mResult) { - if (is_array($aResult)) { - foreach ($aResult as $blResult) { + if (is_array($mResult)) { + foreach ($mResult as $blResult) { if ($blResult === null) { $this->blGlobalResult = false; @@ -475,22 +543,23 @@ class requCheck return false; } - if ($aResult === null) { + if ($mResult === null) { $this->blGlobalResult = false; + return true; } - return !$aResult; + return false; } /** - * @param $aResult + * @param $mResult * * @return bool */ - protected function _hasNoticeInResult($aResult) + protected function _hasNoticeInResult($mResult) { - if (is_array($aResult)) { - foreach ($aResult as $blResult) { + if (is_array($mResult)) { + foreach ($mResult as $blResult) { if ($blResult === 'notice') { return true; } @@ -499,7 +568,7 @@ class requCheck return false; } - if ($aResult === 'notice') { + if ($mResult === 'notice') { return true; } @@ -538,8 +607,8 @@ class requCheck if (!$this->_db) { if (file_exists('config.inc.php')) { require_once('config.inc.php'); - $this->_db = mysql_connect($this->dbHost, $this->dbUser, $this->dbPwd); - mysql_select_db($this->dbName, $this->_db); + ini_set('error_reporting', E_ALL^E_NOTICE); + $this->_db = mysqli_connect($this->dbHost, $this->dbUser, $this->dbPwd, $this->dbName); } } @@ -627,7 +696,6 @@ class requCheck { $sGenCheckType = preg_replace("@(\_[0-9]$)@", "", $sCheckType); $oTests = new requTests($this, $this->oConfig, $this->getDb(), $this->oRemote); - if (method_exists($oTests, $sGenCheckType)) { $this->_checkResult($oTests, $sGenCheckType, $sCheckType, $aConfiguration); } else { @@ -644,17 +712,17 @@ class requCheck */ protected function _checkResult($oTests, $sGenCheckType, $sCheckType, $aConfiguration) { - $aResult = $oTests->{$sGenCheckType}($aConfiguration); + $mResult = $oTests->{$sGenCheckType}($aConfiguration); $sElementId = (md5($sGenCheckType . serialize($aConfiguration))); - if ($this->_hasNoticeInResult($aResult)) { - $this->oLayout->getUnknownItem($aResult, $sElementId, $sCheckType, $aConfiguration); - } elseif ($this->_hasNullInResult($aResult)) { - $this->oLayout->getUnknownItem($aResult, $sElementId, $sCheckType, $aConfiguration); - } elseif ($this->_hasFalseInResult($aResult)) { - $this->oLayout->getNoSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration); + if ($this->_hasNoticeInResult($mResult)) { + $this->oLayout->getUnknownItem($mResult, $sElementId, $sCheckType, $aConfiguration); + } elseif ($this->_hasNullInResult($mResult)) { + $this->oLayout->getUnknownItem($mResult, $sElementId, $sCheckType, $aConfiguration); + } elseif ($this->_hasFalseInResult($mResult)) { + $this->oLayout->getNoSuccessItem($mResult, $sElementId, $sCheckType, $aConfiguration); } else { - $this->oLayout->getSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration); + $this->oLayout->getSuccessItem($mResult, $sElementId, $sCheckType, $aConfiguration); } } @@ -696,12 +764,27 @@ class requLayout
' . $this->translate('ExecNotice') . '
' . PHP_EOL; @@ -777,6 +923,14 @@ EOT; $sScriptName = $_SERVER['SCRIPT_NAME']; $sTranslShopPhpInfo = $this->translate('showPhpInfo'); $sTranslDependent = $this->translate('dependentoffurther'); + + if (count($this->oBase->getMessages())) { + echo ' '; + } if ($this->oBase->blGlobalResult) { echo '' . $this->translate('globalSuccess') . '' . @@ -806,6 +960,29 @@ EOT; return; } + /** + * @param $aResult + * + * @return bool + */ + protected function hasRemoteVersionDiff($aResult) + { + $blDiff = false; + + if (is_array($aResult) + && isset($aResult[$this->oBase->sVersionTag]) + && is_array($aResult[$this->oBase->sVersionTag]) + ) { + foreach ($aResult[$this->oBase->sVersionTag] as $sRemoteVersion) { + if (version_compare($sRemoteVersion, $this->oBase->getVersion(), '!=')) { + $blDiff = true; + } + } + } + + return $blDiff; + } + /** * @param $aResult * @param $sElementId @@ -814,12 +991,19 @@ EOT; */ public function getNoSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration) { - echo "
" . + $sText = ''; + $sDesc = ''; + if ($this->hasRemoteVersionDiff($aResult)) { + $sText = '!'; + $sDesc = strip_tags($this->translate('RemoteVersionDiff')); + } + + echo '