diff --git a/CHANGELOG.md b/CHANGELOG.md index db8b457..ced49e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +4.0.0.1 24.08.2018 +- Test auf OXID 6.0.3 / 6.1.0 + 4.0.0.0 04.07.2018 - Umarbeitung für OXID 6 diff --git a/README.md b/README.md index a81890d..97ce262 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Bereiten Sie Ihrem Kunden mit einem automatisch generierten Geburtstagsgutschein eine Freude. ## Systemanforderungen: -- installierter OXID eShop +- installierter OXID eShop V6 - PHP-Version, für die Installationspakete verfügbar sind - Installation via Composer - ionCubeLoader diff --git a/composer.json b/composer.json index 4a06d79..c379ec0 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "php": "7.1 - 7.2", "ext-ionCube-Loader": "*", "oxid-esales/oxideshop-metapackage-ce": "~6.0.1 || ~6.1.0", - "d3/modcfg": "~5.1" + "d3/modcfg": ">=5.1.0.0" }, "autoload": { "psr-4": { diff --git a/docs/Documentation/changelog/Changelog.html b/docs/Documentation/changelog/Changelog.html index 279cf0a..fe248d1 100644 --- a/docs/Documentation/changelog/Changelog.html +++ b/docs/Documentation/changelog/Changelog.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html index 4bc7028..ab8f77d 100644 --- a/docs/Documentation/index.html +++ b/docs/Documentation/index.html @@ -48,7 +48,7 @@
-
Autor: D³ Data Development
Stand: 17.04.2018
Version: 4.0.0.0
Bearbeiter: MG/KH/TD/SK
+
Autor: D³ Data Development
Stand: 24.08.2018
Version: 4.0.0.1
Bearbeiter: MG/KH/TD/SK
diff --git a/docs/Documentation/installation/Anforderungen/Anforderungspruefung.html b/docs/Documentation/installation/Anforderungen/Anforderungspruefung.html index 22e1ec2..062685f 100644 --- a/docs/Documentation/installation/Anforderungen/Anforderungspruefung.html +++ b/docs/Documentation/installation/Anforderungen/Anforderungspruefung.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Anforderungen/Systemanforderungen.html b/docs/Documentation/installation/Anforderungen/Systemanforderungen.html index ccbf6b4..e43139c 100644 --- a/docs/Documentation/installation/Anforderungen/Systemanforderungen.html +++ b/docs/Documentation/installation/Anforderungen/Systemanforderungen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Anforderungen/Vorbereitungen.html b/docs/Documentation/installation/Anforderungen/Vorbereitungen.html index 293e344..ddd1373 100644 --- a/docs/Documentation/installation/Anforderungen/Vorbereitungen.html +++ b/docs/Documentation/installation/Anforderungen/Vorbereitungen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Deinstallation/Dateien_loeschen.html b/docs/Documentation/installation/Deinstallation/Dateien_loeschen.html index fdbd491..f0239c7 100644 --- a/docs/Documentation/installation/Deinstallation/Dateien_loeschen.html +++ b/docs/Documentation/installation/Deinstallation/Dateien_loeschen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Deinstallation/Datenbank_bereinigen.html b/docs/Documentation/installation/Deinstallation/Datenbank_bereinigen.html index 4f4aef7..fc7c650 100644 --- a/docs/Documentation/installation/Deinstallation/Datenbank_bereinigen.html +++ b/docs/Documentation/installation/Deinstallation/Datenbank_bereinigen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Deinstallation/Modul_aus_der_Installation_entfernen.html b/docs/Documentation/installation/Deinstallation/Modul_aus_der_Installation_entfernen.html index 888ba05..eac1c5b 100644 --- a/docs/Documentation/installation/Deinstallation/Modul_aus_der_Installation_entfernen.html +++ b/docs/Documentation/installation/Deinstallation/Modul_aus_der_Installation_entfernen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Deinstallation/Modul_deaktivieren.html b/docs/Documentation/installation/Deinstallation/Modul_deaktivieren.html index 64056c0..7cabd44 100644 --- a/docs/Documentation/installation/Deinstallation/Modul_deaktivieren.html +++ b/docs/Documentation/installation/Deinstallation/Modul_deaktivieren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Deinstallation/Modulerweiterungen_deaktivieren_und_entfernen.html b/docs/Documentation/installation/Deinstallation/Modulerweiterungen_deaktivieren_und_entfernen.html index f1ee7b9..eb3116d 100644 --- a/docs/Documentation/installation/Deinstallation/Modulerweiterungen_deaktivieren_und_entfernen.html +++ b/docs/Documentation/installation/Deinstallation/Modulerweiterungen_deaktivieren_und_entfernen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Deinstallation/TMP-Ordner_leeren.html b/docs/Documentation/installation/Deinstallation/TMP-Ordner_leeren.html index 4dab399..9e1e1d7 100644 --- a/docs/Documentation/installation/Deinstallation/TMP-Ordner_leeren.html +++ b/docs/Documentation/installation/Deinstallation/TMP-Ordner_leeren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/CMS-Seiten.html b/docs/Documentation/installation/Neuinstallation/CMS-Seiten.html index 854be72..bc111d7 100644 --- a/docs/Documentation/installation/Neuinstallation/CMS-Seiten.html +++ b/docs/Documentation/installation/Neuinstallation/CMS-Seiten.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/CronJobs.html b/docs/Documentation/installation/Neuinstallation/CronJobs.html index 7c8c389..0aed109 100644 --- a/docs/Documentation/installation/Neuinstallation/CronJobs.html +++ b/docs/Documentation/installation/Neuinstallation/CronJobs.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Konfiguration_einstellen.html b/docs/Documentation/installation/Neuinstallation/Konfiguration_einstellen.html index 694fe3c..2ce06e5 100644 --- a/docs/Documentation/installation/Neuinstallation/Konfiguration_einstellen.html +++ b/docs/Documentation/installation/Neuinstallation/Konfiguration_einstellen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Lizenz_eintragen.html b/docs/Documentation/installation/Neuinstallation/Lizenz_eintragen.html index c25123a..394c61b 100644 --- a/docs/Documentation/installation/Neuinstallation/Lizenz_eintragen.html +++ b/docs/Documentation/installation/Neuinstallation/Lizenz_eintragen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Modul_hinzufuegen.html b/docs/Documentation/installation/Neuinstallation/Modul_hinzufuegen.html index 27c8602..9d12daf 100644 --- a/docs/Documentation/installation/Neuinstallation/Modul_hinzufuegen.html +++ b/docs/Documentation/installation/Neuinstallation/Modul_hinzufuegen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Modul_im_Shop_aktivieren.html b/docs/Documentation/installation/Neuinstallation/Modul_im_Shop_aktivieren.html index c18f657..918584e 100644 --- a/docs/Documentation/installation/Neuinstallation/Modul_im_Shop_aktivieren.html +++ b/docs/Documentation/installation/Neuinstallation/Modul_im_Shop_aktivieren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Paketquelle_hinzufuegen.html b/docs/Documentation/installation/Neuinstallation/Paketquelle_hinzufuegen.html index d98a225..edf8c57 100644 --- a/docs/Documentation/installation/Neuinstallation/Paketquelle_hinzufuegen.html +++ b/docs/Documentation/installation/Neuinstallation/Paketquelle_hinzufuegen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Providerspezifische_Installation.html b/docs/Documentation/installation/Neuinstallation/Providerspezifische_Installation.html index 11634af..d4f0c59 100644 --- a/docs/Documentation/installation/Neuinstallation/Providerspezifische_Installation.html +++ b/docs/Documentation/installation/Neuinstallation/Providerspezifische_Installation.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Shopanpassungen_installieren.html b/docs/Documentation/installation/Neuinstallation/Shopanpassungen_installieren.html index 3883c49..e920d1e 100644 --- a/docs/Documentation/installation/Neuinstallation/Shopanpassungen_installieren.html +++ b/docs/Documentation/installation/Neuinstallation/Shopanpassungen_installieren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/TMP-Ordner_leeren.html b/docs/Documentation/installation/Neuinstallation/TMP-Ordner_leeren.html index 49ec5fc..27f903d 100644 --- a/docs/Documentation/installation/Neuinstallation/TMP-Ordner_leeren.html +++ b/docs/Documentation/installation/Neuinstallation/TMP-Ordner_leeren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/Verwendung_eigener_Themes.html b/docs/Documentation/installation/Neuinstallation/Verwendung_eigener_Themes.html index a7b0cca..ee9d718 100644 --- a/docs/Documentation/installation/Neuinstallation/Verwendung_eigener_Themes.html +++ b/docs/Documentation/installation/Neuinstallation/Verwendung_eigener_Themes.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Neuinstallation/index.html b/docs/Documentation/installation/Neuinstallation/index.html index ae74728..a39106d 100644 --- a/docs/Documentation/installation/Neuinstallation/index.html +++ b/docs/Documentation/installation/Neuinstallation/index.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/CMS-Seiten.html b/docs/Documentation/installation/Update/CMS-Seiten.html index 59e7f49..278dcb0 100644 --- a/docs/Documentation/installation/Update/CMS-Seiten.html +++ b/docs/Documentation/installation/Update/CMS-Seiten.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/CronJobs.html b/docs/Documentation/installation/Update/CronJobs.html index 7e36015..3c2174c 100644 --- a/docs/Documentation/installation/Update/CronJobs.html +++ b/docs/Documentation/installation/Update/CronJobs.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/Dateien_erneuern.html b/docs/Documentation/installation/Update/Dateien_erneuern.html index f6fd816..d8ce5cc 100644 --- a/docs/Documentation/installation/Update/Dateien_erneuern.html +++ b/docs/Documentation/installation/Update/Dateien_erneuern.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/Konfiguration_einstellen.html b/docs/Documentation/installation/Update/Konfiguration_einstellen.html index 4e49e06..32f11fb 100644 --- a/docs/Documentation/installation/Update/Konfiguration_einstellen.html +++ b/docs/Documentation/installation/Update/Konfiguration_einstellen.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/Modul_deaktivieren.html b/docs/Documentation/installation/Update/Modul_deaktivieren.html index 6ca2443..d2c1a4f 100644 --- a/docs/Documentation/installation/Update/Modul_deaktivieren.html +++ b/docs/Documentation/installation/Update/Modul_deaktivieren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/Modulinformationen_aktualisieren.html b/docs/Documentation/installation/Update/Modulinformationen_aktualisieren.html index 1ad2be3..a54378c 100644 --- a/docs/Documentation/installation/Update/Modulinformationen_aktualisieren.html +++ b/docs/Documentation/installation/Update/Modulinformationen_aktualisieren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/Providerspezifische_Installation.html b/docs/Documentation/installation/Update/Providerspezifische_Installation.html index d1a14d3..198f468 100644 --- a/docs/Documentation/installation/Update/Providerspezifische_Installation.html +++ b/docs/Documentation/installation/Update/Providerspezifische_Installation.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/Shopanpassungen_installieren.html b/docs/Documentation/installation/Update/Shopanpassungen_installieren.html index ee6f4d9..1ffc2b7 100644 --- a/docs/Documentation/installation/Update/Shopanpassungen_installieren.html +++ b/docs/Documentation/installation/Update/Shopanpassungen_installieren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/installation/Update/TMP-Ordner_leeren.html b/docs/Documentation/installation/Update/TMP-Ordner_leeren.html index 24d3b06..d04a718 100644 --- a/docs/Documentation/installation/Update/TMP-Ordner_leeren.html +++ b/docs/Documentation/installation/Update/TMP-Ordner_leeren.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/manual/Configuration/Options.html b/docs/Documentation/manual/Configuration/Options.html index 34f2be0..438250f 100644 --- a/docs/Documentation/manual/Configuration/Options.html +++ b/docs/Documentation/manual/Configuration/Options.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/manual/Getting_Started.html b/docs/Documentation/manual/Getting_Started.html index 5f41a9a..870073e 100644 --- a/docs/Documentation/manual/Getting_Started.html +++ b/docs/Documentation/manual/Getting_Started.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/support/Hilfe-und-Support.html b/docs/Documentation/support/Hilfe-und-Support.html index da5a5fa..496bbec 100644 --- a/docs/Documentation/support/Hilfe-und-Support.html +++ b/docs/Documentation/support/Hilfe-und-Support.html @@ -75,7 +75,7 @@
diff --git a/docs/Documentation/themes/d3/css/d3.css b/docs/Documentation/themes/d3/css/d3.css index 3e9deb4..4df6d3d 100644 --- a/docs/Documentation/themes/d3/css/d3.css +++ b/docs/Documentation/themes/d3/css/d3.css @@ -3,7 +3,6 @@ } .Brand{ - /*color: #336ed6;*/ color: #fff; } @@ -28,8 +27,9 @@ body, color : #fff; } +.SearchResults .SearchResults__url a, a{ - color: #407DC0; + color: #028fe8; } .s-content pre { @@ -40,6 +40,11 @@ a{ color: #028fe8; } +.Navbar .svg-inline--fa.d3fa-color-blue, .Navbar .fa.fa-d3color-blue, +.Brand .svg-inline--fa.d3fa-color-blue, .Brand .fa.fa-d3color-blue{ + color: white; +} + .HomepageFooter__links li{ float: left; min-width: 70px; @@ -55,9 +60,9 @@ blockquote.alert a { } blockquote.alert.alert-danger { - color: #A94442; + color: #ce2c2c; background-color: #f2dede; - border-color: #ebccd1; + border-color: #ce2c2c; } @@ -66,9 +71,9 @@ blockquote.alert.alert-danger a { } blockquote.alert.alert-warning { - color: #8a6d3b; + color: #e39c37; background-color: #fcf8e3; - border-color: #faebcc; + border-color: #e39c37; } blockquote.alert.alert-warning a { @@ -78,7 +83,7 @@ blockquote.alert.alert-warning a { blockquote.alert.alert-info { color: #31708f; background-color: #d9edf7; - border-color: #bce8f1; + border-color: #31708f; } blockquote.alert.alert-info a { @@ -131,8 +136,10 @@ aside .Links a { } .Navbar, -.Brand { - background-color: #4b4d54; +.Brand, +.Links, +.Columns__left.Collapsible { + background-color: #028fe8; } .Navbar { @@ -148,4 +155,41 @@ span.navi_element { border-radius: 5px 5px 0 0; padding: 0 5px; background-color: #f7f7f7; +} + +.Nav { + background-color: #f7f7f7; +} + +.Links a{ + color: #f7f7f7; +} + +.Links a:hover { + text-decoration: underline; +} + +.Links hr { + border-color: #028fe8; +} + +.HomepageFooter, +.Search { + background-color: #028fe8; +} + +.Search { + margin: 10px; +} + +li { + margin-bottom: 7px; +} + +.Search__field { + border-radius: 4px; +} + +.HomepageButtons{ + padding-right: 267px; } \ No newline at end of file diff --git a/docs/Precheck/d3precheck.php b/docs/Precheck/d3precheck.php index 4286bd0..b8a77e2 100644 --- a/docs/Precheck/d3precheck.php +++ b/docs/Precheck/d3precheck.php @@ -39,137 +39,143 @@ class requConfig { - public $sModName = 'D³ Geburtstagsgutscheine'; + public $sModName = 'D³ Geburtstagsgutscheine'; public $sModId = 'd3birthdayvoucher'; - public $sModVersion = '3.1.0.4'; + public $sModVersion = '4.0.0.1'; /********************** check configuration section ************************/ public $aCheck = array( // kleinste erlaubte PHP-Version 'hasMinPhpVersion' => array( - 'blExec' => 0, - 'aParams' => array( - 'version' => '5.2.0' - ) - ), + 'blExec' => 0, + 'aParams' => array( + 'version' => '5.6.0' + ) + ), // größte erlaubte PHP-Version 'hasMaxPhpVersion' => array( - 'blExec' => 0, - 'aParams' => array( - 'version' => '5.4.200' - ) - ), + 'blExec' => 0, + 'aParams' => array( + 'version' => '5.6.200' + ) + ), // PHP-Version zwischen 'from' und 'to' 'hasFromToPhpVersion' => array( - 'blExec' => 1, - 'aParams' => array( - 'from' => '5.2.0', - 'to' => '5.4.200', - ) - ), + 'blExec' => 1, + 'aParams' => array( + 'from' => '5.6.0', + 'to' => '7.0.900', + ) + ), // benötigt Zend Optimizer (PHP 5.2) bzw. Zend Guard Loader (> PHP 5.2) 'hasZendLoaderOptimizer' => array( - 'blExec' => 1, + 'blExec' => 0, ), // benötigt IonCubeLoader 'hasIonCubeLoader' => array( - 'blExec' => 0, + 'blExec' => 1, ), // benötigt PHP-Extension (kaskadierbar (siehe "Desc1")) 'hasExtension' => array( array( - 'blExec' => 1, - 'aParams' => array( - 'type' => 'curl', - ), - ), + 'blExec' => 1, + 'aParams' => array( + 'type' => 'curl', + ), + ), array( - 'blExec' => 1, - 'aParams' => array( - 'type' => 'soap' - ), - ), + 'blExec' => 0, + 'aParams' => array( + 'type' => 'soap' + ), + ), ), // 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' - ), - ), + 'blExec' => 1, + 'aParams' => array( + 'PE' => '6.0.0', + 'CE' => '6.0.0', + 'EE' => '6.0.0' + ), + ), // maximal verwendbare Shopversion (editionsgetrennt), wird (sofern möglich) Remote aktualisiert 'hasMaxShopVersion' => array( - 'blExec' => 1, - 'aParams' => array( - 'PE' => '4.8.4', - 'CE' => '4.8.4', - 'EE' => '5.1.4' - ), - ), + 'blExec' => 1, + 'aParams' => array( + 'PE' => '6.0.0', + 'CE' => '6.0.0', + 'EE' => '6.0.0' + ), + ), // verfügbar für diese Shopeditionen, wird (sofern möglich) Remote aktualisiert 'isShopEdition' => array( - 'blExec' => 1, - 'aParams' => array( - array( - 'PE', - 'EE', - 'CE', - ), - ), - ), + 'blExec' => 1, + 'aParams' => array( + array( + 'PE', + 'EE', + 'CE', + ), + ), + ), // benötigt Modul-Connector - 'hasModCfg' => array('blExec' => 1), + 'hasModCfg' => array( + 'blExec' => 1 + ), // benötigt mindestens diese Erweiterungen / Version lt. d3_cfg_mod (kaskadierbar (siehe "Desc1")) 'hasMinModCfgVersion' => array( - array( - 'blExec' => 1, - 'aParams' => array( - 'id' => 'd3modcfg_lib', - 'name' => 'Modul-Connector', - 'version' => '3.10.0.0', - ), - ), - array( - 'blExec' => 1, - 'aParams' => array( - 'id' => 'd3install_lib', - 'name' => 'Installationsautomatik', - 'version' => '2.6.0.0', - ), - ), + array( + 'blExec' => 1, + 'aParams' => array( + 'id' => 'd3modcfg_lib', + 'name' => 'Modul-Connector', + 'version' => '5.1.0.0', + ), + ), ), // verwendbar bis zu diesen Erweiterungen / Version lt. d3_cfg_mod (kaskadierbar (siehe "Desc1")) 'hasMaxModCfgVersion' => array( - array( - 'blExec' => 0, - 'aParams' => array( - 'id' => 'd3modcfg_lib', - 'name' => 'Modul-Connector', - 'version' => '3.10.0.0', - ), + array( + 'blExec' => 0, + 'aParams' => array( + 'id' => 'd3modcfg_lib', + 'name' => 'Modul-Connector', + 'version' => '5.1.0.0', + ), + ), ), + + // benötigt neuen Lizenzschlüssel + 'requireNewLicence' => array( + array( + 'blExec' => 1, + 'aParams' => array( + 'checkVersion' => true, // soll Versionsnummer des installierten Moduls gegengeprüft werden? + 'remainingDigits' => 2, // zu prüfende Stellen für neue Lizenz + ), + ), ), ); } /********* don't change content from here **********************/ + date_default_timezone_set('Europe/Berlin'); /** @@ -177,7 +183,7 @@ date_default_timezone_set('Europe/Berlin'); */ class requCheck { - public $sVersion = '4.1'; + public $sVersion = '4.10.2'; protected $_db = false; @@ -197,6 +203,8 @@ class requCheck protected $_sInFolderFileName = 'd3precheckinfolder.php'; + public $sVersionTag = '@@version@@'; + /********************** functional section ************************/ public $blGlobalResult = true; @@ -280,20 +288,42 @@ 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 * @param $sMethodName @@ -312,12 +342,87 @@ class requCheck $aArguments ); - $aReturn[$this->getBasePath($sScriptPath)] = unserialize(file_get_contents($sUrl)); + $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); + } + + $sBasePath = $this->getBasePath($sScriptPath); + $aReturn[$sBasePath] = unserialize($sContent); + $aReturn[$this->sVersionTag][$sBasePath] = unserialize($sVersion); } return $aReturn; } + /** + * @return bool + */ + protected function _hasCurl() + { + if (extension_loaded('curl') && function_exists('curl_init')) { + return true; + } + + return false; + } + + /** + * @return bool + */ + protected function _hasAllowUrlFopen() + { + if (ini_get('allow_url_fopen')) { + return true; + } + + return false; + } + + /** + * @param $sUrl + * + * @return bool|mixed + */ + 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, $iTimeOut); + curl_setopt($ch, CURLOPT_TIMEOUT, $iTimeOut); + curl_setopt($ch, CURLOPT_POST, 0); + $sContent = curl_exec($ch); + curl_close($ch); + + if (false == $sContent || + strstr(strtolower($sContent), strtolower('Request Entity Too Large')) || + strstr(strtolower($sContent), strtolower('not allow request data with POST requests')) + ) { + return false; + } + + return $sContent; + } + /** * @param $sScriptPath * @param $sMethodName @@ -364,15 +469,23 @@ 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 (!$blResult) { + if (is_array($mResult)) { + foreach ($mResult as $blResult) { + if (false === $blResult) { $this->blGlobalResult = false; return true; @@ -380,13 +493,66 @@ class requCheck } return false; - } else { - if (!$aResult) { - $this->blGlobalResult = false; + } + + if (false === $mResult) { + $this->blGlobalResult = false; + + return true; + } + + return false; + } + + /** + * @param $mResult + * + * @return bool + */ + protected function _hasNullInResult($mResult) + { + if (is_array($mResult)) { + foreach ($mResult as $blResult) { + if ($blResult === null) { + $this->blGlobalResult = false; + + return true; + } } - return !$aResult; + return false; } + + if ($mResult === null) { + $this->blGlobalResult = false; + return true; + } + + return false; + } + + /** + * @param $mResult + * + * @return bool + */ + protected function _hasNoticeInResult($mResult) + { + if (is_array($mResult)) { + foreach ($mResult as $blResult) { + if ($blResult === 'notice') { + return true; + } + } + + return false; + } + + if ($mResult === 'notice') { + return true; + } + + return false; } /********************** conversion function section ************************/ @@ -421,8 +587,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); } } @@ -441,17 +607,24 @@ class requCheck return sprintf( '%d%03d%03d%03d', - intval($match[0] !== null ? $match[0] : $iUnsetPart), - intval( - $match[1] !== null ? $match[1] : $iUnsetPart - ), - intval($match[2] !== null ? $match[2] : $iUnsetPart), - intval( - $match[3] !== null ? $match[3] : $iUnsetPart - ) + $this->_getVersionDigit($match[0], $iUnsetPart), + $this->_getVersionDigit($match[1], $iUnsetPart), + $this->_getVersionDigit($match[2], $iUnsetPart), + $this->_getVersionDigit($match[3], $iUnsetPart) ); } + /** + * @param $sMatch + * @param $iUnsetPart + * + * @return int + */ + protected function _getVersionDigit($sMatch, $iUnsetPart) + { + return intval($sMatch !== null ? $sMatch : $iUnsetPart); + } + /********************** layout function section ************************/ public function deleteme() @@ -503,22 +676,36 @@ class requCheck { $sGenCheckType = preg_replace("@(\_[0-9]$)@", "", $sCheckType); $oTests = new requTests($this, $this->oConfig, $this->getDb(), $this->oRemote); - if (method_exists($oTests, $sGenCheckType)) { - $aResult = $oTests->{$sGenCheckType}($aConfiguration); - $sElementId = (md5($sGenCheckType . serialize($aConfiguration))); - - if ($this->_hasFalseInResult($aResult)) { - $this->oLayout->getNoSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration); - } else { - $this->oLayout->getSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration); - } + $this->_checkResult($oTests, $sGenCheckType, $sCheckType, $aConfiguration); } else { $this->oLayout->getUncheckableItem($sCheckType, $aConfiguration); $this->blGlobalResult = false; } } + /** + * @param $oTests + * @param $sGenCheckType + * @param $sCheckType + * @param $aConfiguration + */ + protected function _checkResult($oTests, $sGenCheckType, $sCheckType, $aConfiguration) + { + $mResult = $oTests->{$sGenCheckType}($aConfiguration); + $sElementId = (md5($sGenCheckType . serialize($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($mResult, $sElementId, $sCheckType, $aConfiguration); + } + } + public function showinfo() { phpinfo(); @@ -557,23 +744,153 @@ class requLayout $sTranslRequCheck "$sModName" $sModVersion + - - + + EOT; echo "

" . $this->translate('RequCheck') . ' "' . $this->oConfig->sModName . ' ' . $sModVersion . '"

'; echo '

' . $this->translate('ExecNotice') . '

' . PHP_EOL; @@ -587,6 +904,14 @@ EOT; $sTranslShopPhpInfo = $this->translate('showPhpInfo'); $sTranslDependent = $this->translate('dependentoffurther'); + if (count($this->oBase->getMessages())) { + echo '
    '; + foreach ($this->oBase->getMessages() as $sMessage) { + echo '
  • '.$sMessage.'
  • '; + } + echo '
'; + } + if ($this->oBase->blGlobalResult) { echo '

' . $this->translate('globalSuccess') . '' . $this->translate('deleteFile1') . $sScriptName . $this->translate('deleteFile2') . '

'; @@ -599,10 +924,15 @@ EOT; $sTranslDependent

- $sTranslShopPhpInfo + + $sTranslShopPhpInfo +

- + EOT; @@ -610,6 +940,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 @@ -618,9 +971,19 @@ EOT; */ public function getNoSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration) { - echo "
" . $this->_addToggleScript($aResult, $sElementId) . - $this->translate($sCheckType, $aConfiguration) . "
" . PHP_EOL; + $sText = ''; + $sDesc = ''; + if ($this->hasRemoteVersionDiff($aResult)) { + $sText = '!'; + $sDesc = strip_tags($this->translate('RemoteVersionDiff')); + } + + echo '
'.$sText.'
' . + $this->_addToggleScript($aResult, $sElementId) . + $this->translate($sCheckType, $aConfiguration) . + $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) . + '
' . PHP_EOL; $this->getSubDirItems($aResult, $sElementId); } @@ -633,10 +996,44 @@ EOT; */ public function getSuccessItem($aResult, $sElementId, $sCheckType, $aConfiguration) { - echo "
" . + $sText = ''; + $sDesc = ''; + if ($this->hasRemoteVersionDiff($aResult)) { + $sText = '!'; + $sDesc = strip_tags($this->translate('RemoteVersionDiff')); + } + + echo '
'.$sText.'
' . $this->_addToggleScript($aResult, $sElementId) . - $this->translate($sCheckType, $aConfiguration) . "
" . PHP_EOL; + $this->translate($sCheckType, $aConfiguration) . + $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) . + '
' . PHP_EOL; + + $this->getSubDirItems($aResult, $sElementId); + } + + /** + * @param $aResult + * @param $sElementId + * @param $sCheckType + * @param $aConfiguration + */ + public function getUnknownItem($aResult, $sElementId, $sCheckType, $aConfiguration) + { + $sText = ''; + $sDesc = ''; + if ($this->hasRemoteVersionDiff($aResult)) { + $sText = '!'; + $sDesc = strip_tags($this->translate('RemoteVersionDiff')); + } + + echo '
'.$sText.'
' . + $this->_addToggleScript($aResult, $sElementId) . + $this->translate($sCheckType, $aConfiguration) . + $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) . + '
' . PHP_EOL; $this->getSubDirItems($aResult, $sElementId); } @@ -647,9 +1044,11 @@ EOT; */ public function getUncheckableItem($sCheckType, $aConfiguration) { - echo "
" . - $this->translate($sCheckType, $aConfiguration) . " (" . $this->translate('RequNotCheckable') . ")
"; + echo '
' . + $this->translate($sCheckType, $aConfiguration) . ' (' . $this->translate('RequNotCheckable') . ')' . + $this->_addDescBox($sCheckType.'_DESC', $aConfiguration) . + '
' . PHP_EOL; } /** @@ -659,17 +1058,33 @@ EOT; public function getSubDirItems($aResult, $sElementId) { if (is_array($aResult) && count($aResult)) { - echo "' . PHP_EOL; } } @@ -682,9 +1097,13 @@ EOT; protected function _addToggleScript($aResult, $sElementId) { if (is_array($aResult) && count($aResult)) { - $sScript = "
+
"; + $sScript = "
+
"; } else { $sScript = ""; } @@ -692,6 +1111,22 @@ EOT; return $sScript; } + /** + * @param $sTextIdent + * @param $aConfiguration + * + * @return string + */ + protected function _addDescBox($sTextIdent, $aConfiguration) + { + $sContent = "
?". + "
". + "
".$this->translate($sTextIdent, $aConfiguration)."
". + "
"; + + return $sContent; + } + /** * @param $sIdent * @param array $aConfiguration @@ -708,7 +1143,9 @@ EOT; array_walk($aConfiguration['aParams'], array($this->oBase, 'aTos'), $sIdent); } - if (($sTranslation = $aTransl[$this->oBase->getLang()][$sGenIdent])) { + if (isset($aTransl[$this->oBase->getLang()][$sGenIdent]) + && ($sTranslation = $aTransl[$this->oBase->getLang()][$sGenIdent]) + ) { if (isset($aConfiguration['aParams'])) { return vsprintf($sTranslation, $aConfiguration['aParams']); } else { @@ -721,7 +1158,24 @@ EOT; public function getPngButton() { - $sImg = "iVBORw0KGgoAAAANSUhEUgAABDgAAAAWCAYAAAAl+SzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABMpJREFUeNrs3Y1O4zgUhuFY4hbb2ZthRjtczOz0Ght7cZwfQ5u2E4K0a55XiNDUXyWcT+ZwfGyHw+HQvZI6AACAT+J0OgW9AAAAtnA8Hh/JWYSnbkxuvAYeeg0AAAAAAPynuJevOB6P+ZKe6sYvLy96DgAA7M7z87NOAAAAm7iVq8gxRs5p5CTH03Tz758/uzAUc7x+Hy4pf71ex9fDj2leyxLG1vnNELpmdJPqo21a7afy+/MIj/AIj7zVhS/seWPD4zoAAIAtxJhW44+cy/jx/ftw/2kRxDEQSd0Uraah/RKVlLfK+/kDS0T7eieGZnTdA33QfeF+CpFHeIRHeORSF1Lw3I0Nd3UAAACbEhwprscfadnma05wpL7v8v0Sh4QiLimREqWEt7mSmK9xnLlrSBe6fdq02k9D1oxHeIRHeORCFz13Y8NtHQAAwNYER+zX44+q3Zzg6GOcbw6haqhmXG5MvuQPiw3q9mrTaj/xCI/wCI9c13juxoY/0wEAANxNcPTxbvzxLsHRd7mEo8y+pJIFCWEupy2XMTcSxjKQUMqSl1mb/79urzbN9hOP8AiP8MgV3Zf2vLHhIR0AAMBWcr5iNf6o4owlwdGPCY68hiUsZbRh2DGsWkz7/mUaVl83oxu3R/xwm1b7KfEIj/AIj1zRDfc9d2PDTR0AAMA2hgqOtfijWqOybDKaExzj6pVpzWyYG04zdGn5vByohVC924ou7NSm3X7iER7hER55r/P3w9jw6NgAAADwp+SCjPX442oFR5URWeaY5pKPsmNpmI+SnctN5zKRVnR7tWm1nwKP8AiP8MiKznM3NqzrAAAANic4zuf1+ONaBce576dQZAhMplPepvWzYdn6vSoBCUNJSCkPaUS3V5tm+4lHeIRHeORS97U9b2x4RAcAALA5wZEPRVmJP1K4ckxsPJ/H9SzjOvpuEc11INP805gtWQ6Ka0gXdmrTaD8NGTMe4REe4ZFrOs/d2HBLBwAAsJHzuV+PP6qJlKqCI3ZdvaZliVGm3MiYKZm3EJuvXera0aW0T5tG+2kKYHmER3iER2pdU8/Pc/+0sQEAAGALec/Q9fjjSgVH358v/zFZJNXy6ukYuFQqREZBK7q0U5tm+4lHeIRHeOSqLnnuxoa7YwMAAMAWzvF8M/64THDEOB+xEsYIJlV7d5R1tdNGHsMnlvW2I63opirrj7Zptp86HuERHuGRS92X9ryx4cGxAQAAYBv5mNi1+OP6HhzDMbEVad5JrKoxrdbfzlFa155urzYt9lPgER7hER658bt47saGVR0AAMA28ikqj8QfVQVH3705ceU1KEm5qmM+0y7N8crwOqY5a5Ja0sWd2jTaTykmHuERHuGRS52/H8aGuzoAAIBtxCGIWok/riU4Yl8EZVOwEpSUG9X62XmRS1w+oV5z24RurzaN9tO0QR6P8AiP8MgbnedubLitAwAA2EqfExo34o+LBMevX7+6b9/+KkFItYZlmI0tP1XBS3UE3LhNeju6vdq02k8dj/AIj/DIhW48W8NzNzbcHBsAAAC2MGypsRJ//P7n9/J/yOFwGO6fTie9BgAAPgvrVAAAwFZuzpgcj8fh+jQGHGm6AQAAsDcmUgAAwFYezFeEfwUYAAoCUXB0RZrTAAAAAElFTkSuQmCC"; + $sImg = "iVBORw0KGgoAAAANSUhEUgAABDgAAAAWCAYAAAAl+SzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAB". + "MpJREFUeNrs3Y1O4zgUhuFY4hbb2ZthRjtczOz0Ght7cZwfQ5u2E4K0a55XiNDUXyWcT+ZwfGyHw+HQvZI6AACAT+J0OgW9AAAAtn". + "A8Hh/JWYSnbkxuvAYeeg0AAAAAAPynuJevOB6P+ZKe6sYvLy96DgAA7M7z87NOAAAAm7iVq8gxRs5p5CTH03Tz758/uzAUc7x+Hy4". + "pf71ex9fDj2leyxLG1vnNELpmdJPqo21a7afy+/MIj/AIj7zVhS/seWPD4zoAAIAtxJhW44+cy/jx/ftw/2kRxDEQSd0Uraah/RKV". + "lLfK+/kDS0T7eieGZnTdA33QfeF+CpFHeIRHeORSF1Lw3I0Nd3UAAACbEhwprscfadnma05wpL7v8v0Sh4QiLimREqWEt7mSmK9xn". + "LlrSBe6fdq02k9D1oxHeIRHeORCFz13Y8NtHQAAwNYER+zX44+q3Zzg6GOcbw6haqhmXG5MvuQPiw3q9mrTaj/xCI/wCI9c13juxo". + "Y/0wEAANxNcPTxbvzxLsHRd7mEo8y+pJIFCWEupy2XMTcSxjKQUMqSl1mb/79urzbN9hOP8AiP8MgV3Zf2vLHhIR0AAMBWcr5iNf6". + "o4owlwdGPCY68hiUsZbRh2DGsWkz7/mUaVl83oxu3R/xwm1b7KfEIj/AIj1zRDfc9d2PDTR0AAMA2hgqOtfijWqOybDKaExzj6pVp". + "zWyYG04zdGn5vByohVC924ou7NSm3X7iER7hER55r/P3w9jw6NgAAADwp+SCjPX442oFR5URWeaY5pKPsmNpmI+SnctN5zKRVnR7t". + "Wm1nwKP8AiP8MiKznM3NqzrAAAANic4zuf1+ONaBce576dQZAhMplPepvWzYdn6vSoBCUNJSCkPaUS3V5tm+4lHeIRHeORS97U9b2". + "x4RAcAALA5wZEPRVmJP1K4ckxsPJ/H9SzjOvpuEc11INP805gtWQ6Ka0gXdmrTaD8NGTMe4REe4ZFrOs/d2HBLBwAAsJHzuV+PP6q". + "JlKqCI3ZdvaZliVGm3MiYKZm3EJuvXera0aW0T5tG+2kKYHmER3iER2pdU8/Pc/+0sQEAAGALec/Q9fjjSgVH358v/zFZJNXy6ukY". + "uFQqREZBK7q0U5tm+4lHeIRHeOSqLnnuxoa7YwMAAMAWzvF8M/64THDEOB+xEsYIJlV7d5R1tdNGHsMnlvW2I63opirrj7Zptp86H". + "uERHuGRS92X9ryx4cGxAQAAYBv5mNi1+OP6HhzDMbEVad5JrKoxrdbfzlFa155urzYt9lPgER7hER658bt47saGVR0AAMA28ikqj8". + "QfVQVH3705ceU1KEm5qmM+0y7N8crwOqY5a5Ja0sWd2jTaTykmHuERHuGRS52/H8aGuzoAAIBtxCGIWok/riU4Yl8EZVOwEpSUG9X". + "62XmRS1w+oV5z24RurzaN9tO0QR6P8AiP8MgbnedubLitAwAA2EqfExo34o+LBMevX7+6b9/+KkFItYZlmI0tP1XBS3UE3LhNeju6". + "vdq02k8dj/AIj/DIhW48W8NzNzbcHBsAAAC2MGypsRJ//P7n9/J/yOFwGO6fTie9BgAAPgvrVAAAwFZuzpgcj8fh+jQGHGm6AQAAs". + "DcmUgAAwFYezFeEfwUYAAoCUXB0RZrTAAAAAElFTkSuQmCC"; header("Content-type: image/png"); echo base64_decode($sImg); exit; @@ -729,7 +1183,64 @@ EOT; public function getPngLogo() { - $sImg = "iVBORw0KGgoAAAANSUhEUgAAADMAAAA0CAYAAAAnpACSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAEIxJREFUeNq8Wgl4VNXZfu+dLZkkk5BA9kACYQlB2aIga6myuIEtFX+kLW1BJVT/akVrRds+rVqRX2lLRSsal5/nUaCgtmhi8BeaUhAl7EYTIWyGQPZlMsnM3Lnn/865dzJ3biaLVnsfDpk59yzf++3fOSMxxvANPlZqUdQs1FRqXmq+Ac7NpbaI2jxqQ6nZqDVR+z9qr1H71DxB+nfBPHYYSHUCK8fATl+HUZtK7Wpqo1SGeZ0BQCEYFolQETSrhDJ6d4rax9Q+pFa18SQ8HX6aHAcszUUS9T3U0IU1710ASqiddwNuBciMARbSDjcQtDQnnnj7HNYuGvY1gqHnW9RWBBi+f7kT+LwVKG8AjlDj38+0AR1EiJ1kk0XEZFAbO4gQJwOj44F0+m6TsYvWKKKWQOQUvVwFPHCAxNBlZDs1psk30wXsv4XWi8VvqefXXwcYWg6FRPy8racBzsXjjQxtXim4sra5bKCG6X3QCLOR4lxBwGakS1g+ChhORN5FcttWpSumpCunZADEH5L2iATa71bAaUUW9XzxVcEs4yCq2zD9qaMML1QQXQGdaMmwYW8PM41RQxwvmgu0+yU8Qap7uUMbN59UykUKXF4P0J5hgD4gi5qTjuW6DQkDHehDfMNvLnbgvp/vV7GdpKEGdA5aTMRiAIAQDj6HJHR7rgyHBc+T/a16jaQzNFbYB0FDXa0HC0a+QSrrD82J1qj3G73NQJ6buTT+eppdf+cehuauCCCCLDeDkcwAWM8xjA+T8JcKxp3FKu4oFGLUOZJEpyJNIqKfpP4F/kBI9bLIWUxIErPLvozNFLb5sOmRgwwbj6kaMbIUrjJMJzIIRooAUOpNzwzdAcMX+hfvlFC6UEaCQ8K0N4FGrzbVQuM+InuZNBjruOcLzpL7AbLSr2LT0lIVG8tpBZnpxDOtwfgX4X2snz5z4y8swaYRfWM2+fhkaS/3gotyqE/RVGnrAgHkz6daQ0D6A8Mlsvm24gDerSYgNhaZiP4avvq4giFCgkdJzZa+MAv442zCQxby9hmgK4C7c+MxZCBgZtJam24tVvBmlS4RhoERaH6nRhpvkg4FKfipKXrj32nPjy+p+NsZ9d4WL16noPvTu/OBuSSt/z1BaUCNoPN2c7phfhJoqbLfk1qVconwEUw3DEm3L1Xq3W0x9Ix0TDLnHTpwzZ5W5MsYP1gCqTSsxN5jFK+KTgbweiW1ChXzhksoXmh7lkx11Vvz8fxsCsaXOsVKI/sD84t3z6pYu5fkaZdCXJUkLSbQd56aWCQz5ZLJ57Juwn3csFV9jaDDCeoEfX+owIbceGmT3qseqmOri44oWjam8vmWoMt4iYJk/Pb5WPdpi/h+vC8wszwKHrpzt08zRE4Ql4LEwqL39httGJckD8in8yleUhs7sfVsG8MFN0PJ2QB2nAp0A/RrXmzrU+VK2YOTrWlXJEmr7y2w4C0ac90wGQ8UWPmwe1+pCCg/GmvZnO7EOovmPZ19gSn8w2E/LraomlRUg6fSmc0lMi1NRopTmjCAeB+UFN80YfQgiUeGoSvzLXMrm9nsxw76sOWYQvmbirxEy3i3j5Vtr1Jqbx1lXbBhtq3wd9Nsi2JteIfmPPer/b53HCKuWZafa2dYuduLD74XtYHo2UKdDeY4c2t1K9s2qsgj7E8I3Kw11AZFEYdXRlOKIZEp4tzsHT4Rdny6vrtINdq8DA76nEBjaygtSaIi4Hu5FhSfU9FFBs6Xeusm+xKyka1PH/LjUJ2KN25w8PlLlhd3bR8WL2Goy4qV4yxxtxd72/laL893pNK0R4/Vq6t/VOLF0Ysqdi6OwndyLb+i/t+ZwXxw127vnBdIMkJXI5kAETwxRcZHy5x8Y/L+8NyyywdKNZBNEfm2kTJON6nYVulHTryMKekyTjWrpGYS8pOtKK9jcJPX4uBHJkhYP8M2nta4Z8Nh/4r9NQG8OM+BeIf0Z+qjZAluPceglBJ5LV62nIeIHxZ3IaDncwUZRMtSJ1dBXn74g2AyPH72Re5LHtS2q707bNLtFRNstGnUe/RtAe96eJ8PWS4Z01IlJJIEslwWzsEMPWequ39P16Wq5gAmJVuQ6LTgIAFqpkienyhhIsWRZWOskzv87FD28x1IiqHsOd+GkYNkwYxOkmJFYwDnyda2fKrgXLMalkJxs65cGUMZtHw9fS0J2sxtB2oDqG0OaFLpLcOhtaani9WOBrsmEEH5SZoRE5ApRNiHfHOeBA6mdOTpOVH/omGbHz/Q9Wqak+HaDF5sSeRAJMTSmLdPKeWLcq3/s+E6x5of7PTg4fqApgnBPCyo7rJJ9fkQkvLm4z48OSuqkIORdYBPFx33adT2E6XzNS92LLhgLXmnd6sV7D6naA6k3IsrX2xHXlE7xtDfJX/zTP/7aeWVtddEbeK2aJd5ccZQ5w5QUAzgRL1wZe9clWKBhTNS1uOZVU9tJC2ARgzUtNZrn/hBWrWQawOnLLexk2FnpU+P9KrWVL0xHSB9jqINsuPlcP9O72Ta6IGrHXz28rLzCmW8ZOjkEWrIS23/xIuFW9txsFYpXJpnX9alcAdBCkBuKI8YMzpRrFeV5ZIwhNRMeB/VkD2YswlVDX0moLXNCg5fFgy5lq805RSpV1eXakozQh5MW4QhJ0HmBsonng9iibNrHo6e5E4S+4l6xRDhma4aDH85Is4xttwx3i4pKhMSaupUcdktInGHhazYaWEh5jHdylUWYm7QWQXfiX6GDy8KrZjFt5q274ISmsQMC+iDxV/i2NQ0UTy9T3Pag2AoNqDdKzbJqyHCLrUEQioRlC6BO3rJL9IVeuzbKrzYd8GHzFgJmXGCEVHcEfkUfT+oBimo4RIS/dDX1hi274Koz/K5Axj+aYMSLo1IyRZNLEgT/uKk8e2JOiVY3ow7SfrPWITii/ClkApZtXHKt4dZyVMBu075hI3fMsqeQK6X1C8oDUOKFFbMRfBMNKShQ0xwceoyq5uVUKTv45mcIsB8ZOzjbjR4znW+lajmQUAyJQYEMI3AUHfxmvfdAU5ffLQMa7SkxQyiodFDYDyqyWP1TxN/39wpbIY7R8R+wYmQ+phIxEhESZJTEHnW+CrZKWvSJuY3dhhUwpjpUN+0DMGIE7F2SbzxikyABaU66bNGJZwRPQrSCBWqTm9rl+CIg+9gc3sD4VxgekWJUJYbbZMQL7JoLQ8KPpfd3bXu0MpGv67v4SUCp2/BCB6ksWtyqlW84XbmJ5A6eXNLT3t1G5HCj6UkYwkSQdXoq0870pA5GCWaK7MaiFCHsO4Jg0klXJonazKudY4MftONLhflXNccqfUb0iCdEiL427kOpMeJYHuwneyCM2bEIC2UT820pdPcubsqO00luYEh3bWP2rPaoC82jSMqB+PmXuVMAzOkMSaVI0/GOWrXLLjZCGZ6lk2YTksXw1kuGWbkHmcbw9oZMVydVq/bx30f6bWdZwxM0EhgZleQO7/YpIiz25DxM5PNs8jaRovEOwThPv5/3XDOpUAf0Z+4Oz5VFEgvw7CdiHYNQsbjqgiI32+I1Dz4UeBcPT0Gs7MdfMyr1w53YA595mVEdVNASJWeG3dUdA7gnEANxa4wV60iMVqg6+CSqbwy2TpLGxDpiEjrvzpD6Pwhs29QNOv/1t5q0nmeoAU0I3GRY1g3LwF3XhXLpbL4klv1pMVS8kiAp2TYxHYFGfZC8oDLNvyjLfycofusTYrgBGAoxTU3nqw5plYO5vDkdLsehCTzyZwYzA147BBbjxgjDpzH8BsLfD5miBX/PTMOIxKtGE2fx6fakRpneYberW/wqJeaPAGUVXfiDIWBRfkxmDbUMZyEt+mON5vQyYshrviqGgIhzEENnTWHqZehwCKveGWKoO0MB1PGCXGS3/fwRU14eEuLt5BbFnrZ404kWTPs55aMc4LaOPrcoo8rXfxGY+WDM1y42OrDsYteECjUk/smIHzfNa8dcaP0kw5DVduLvZj/Gg2aNGdOjlDjUr7oZ8mxFszKtqOkwoNgmDZG7/GpNsRoLqPRDGZLeTsWXxnbvPGA+4nPyYhvGBklJMklQCUvPr7QiaM1XRgcQw6EjGXr7ckjaNr9JVWdhT/ZWq/t91VvImhabJSM8WnCBMqs+sHR2nuuiXu85AQVdxZTZUa6MGuYgxP4qtn4+fPI2/XYdqwdflKNFkocm1u9WDIhFh2Ur2TGyGij6Gwho+FG/8xNSYXkhje9Wu7Gqh31+jFvX1Ge9X3MQPZ3x4w4Ks/lYl6dBouz12dmRz3u4pt7TekIcW1iukB+JOKC5BaPX/B2B7RaovGmPCc2Lx7CjYnfnUzmHpxaweEa79Sf72rEP6o6Q0cprD+6+5Aa0baiIE4cQRlPZ87EOeR/fndczMxXPmwVV1lBjsmkBukihcN8vYWv91RupN1jKY7MaqE0o5pc9p7TnaRuXuw82aHZRlCVVaPn6hFA+pYKacyEoVEYM0QwusR81PTcfTPjZ76yv8WwicaV1TvqqG6hOtvSvxZwT+4iPa5u8uOzOj/aOgIhB8TVStbT9+50KZzT3QeO/YmMnFXhVBe3ij/xGGM+neGlkbK2uBG/L2nQ6lvzxVAk8RuPXoMMUAz1u3lymJs1EGrsY4aBkhR+tyOCG9VWOdHYuzqLskspjzsx88F5gKZd//C1gxDH3XBADVV0YOFltKqGru/CxhjuMSVT9A5O6C7F1fCC0Fh4ITzCh0V+vRX9VyoH8mAQSKRbgJJYu/yHjd9NoRw9SDALJ5gZozALVw9jqmGu9LqBm3I/4x1ON1NgcJyGdflDdK2aOQh5yfb3j9d61/d3pfHsD69y4Z7rEvkhsYGDhvMAY3ltrtG736H3iyUjk4xSCkoNxvMIA1hfAFdkReGZRcnCxr1KeKSIBOYUqdt31t+cjGtyozUJhXE/Aje7uWzipvlkxaiW5kOTsLXR82SGCOfZxnuFWbyEeKS6wbeTHyoO5LLpLdLHNcWFw5Cf6dAlFEG/zX2RiOhxCYWBXVIhHAgv6fb8LBtpLutTlXW+x/nhiBLAgMDw5+n4KPnRsp/lYPrIGHHvFvn2DF/t2m+gjVxwOuWGx9fmYmyK49mqOt8veiO4v0uWx0iU979LElo+fZAmIfVrJraPGorvN2loNPbdNxx5KY4n/3nac3dfxA7kxugZCoJLX1qWgUdvTtESTkWNcIJi0vkw2zGU0oz19GbmrEXRwPxgWiL23puDnCT7w6WfuX/Z7y3Ql/i5Cc+vCmta/Mt+vOUCdp9s1wKaBaHAJvXyK4w+k0jDxIBWoU7KceLF72diYmb0Xu61XtjftC070U6GLyMlzhqGe3Sy/d/6VdMqX4A9V/xJO/60pwF7PneD+fXfYMkSvvTDdBA0dSKp1E9IGsunJCIuSv7liwean+QXWLQfvikw4oiZ2l2kCetP13vx+qEWvHygUTvQ0AnrBiYhdDFrVCk9/0uItWJpQYIAcUV6NI/qfxTS+FdTJT+rs1m+eTDBx6ar353tXnXpR2c94O3QeQ9qWv3ooBjVTIkmJ8ZG4FxUzbqiLUgmABMyojBleAymZDsxJNZayu9wqO3+bfHl1iQq5PgtwX8ajPFJ039IN4faWP36Llb/WaOs5yc+PcNt1a/6+I94PuBnCF8HAf8vwADS7GaT0D4fMwAAAABJRU5ErkJggg=="; + $sImg = "iVBORw0KGgoAAAANSUhEUgAAADMAAAA0CAYAAAAnpACSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAE". + "IxJREFUeNq8Wgl4VNXZfu+dLZkkk5BA9kACYQlB2aIga6myuIEtFX+kLW1BJVT/akVrRds+rVqRX2lLRSsal5/nUaCgtmhi8BeaUh". + "Al7EYTIWyGQPZlMsnM3Lnn/865dzJ3biaLVnsfDpk59yzf++3fOSMxxvANPlZqUdQs1FRqXmq+Ac7NpbaI2jxqQ6nZqDVR+z9qr1H". + "71DxB+nfBPHYYSHUCK8fATl+HUZtK7Wpqo1SGeZ0BQCEYFolQETSrhDJ6d4rax9Q+pFa18SQ8HX6aHAcszUUS9T3U0IU1710ASqid". + "dwNuBciMARbSDjcQtDQnnnj7HNYuGvY1gqHnW9RWBBi+f7kT+LwVKG8AjlDj38+0AR1EiJ1kk0XEZFAbO4gQJwOj44F0+m6TsYvWK". + "KKWQOQUvVwFPHCAxNBlZDs1psk30wXsv4XWi8VvqefXXwcYWg6FRPy8racBzsXjjQxtXim4sra5bKCG6X3QCLOR4lxBwGakS1g+Ch". + "hORN5FcttWpSumpCunZADEH5L2iATa71bAaUUW9XzxVcEs4yCq2zD9qaMML1QQXQGdaMmwYW8PM41RQxwvmgu0+yU8Qap7uUMbN59". + "UykUKXF4P0J5hgD4gi5qTjuW6DQkDHehDfMNvLnbgvp/vV7GdpKEGdA5aTMRiAIAQDj6HJHR7rgyHBc+T/a16jaQzNFbYB0FDXa0H". + "C0a+QSrrD82J1qj3G73NQJ6buTT+eppdf+cehuauCCCCLDeDkcwAWM8xjA+T8JcKxp3FKu4oFGLUOZJEpyJNIqKfpP4F/kBI9bLIW". + "UxIErPLvozNFLb5sOmRgwwbj6kaMbIUrjJMJzIIRooAUOpNzwzdAcMX+hfvlFC6UEaCQ8K0N4FGrzbVQuM+InuZNBjruOcLzpL7Ab". + "LSr2LT0lIVG8tpBZnpxDOtwfgX4X2snz5z4y8swaYRfWM2+fhkaS/3gotyqE/RVGnrAgHkz6daQ0D6A8Mlsvm24gDerSYgNhaZiP4". + "avvq4giFCgkdJzZa+MAv442zCQxby9hmgK4C7c+MxZCBgZtJam24tVvBmlS4RhoERaH6nRhpvkg4FKfipKXrj32nPjy+p+NsZ9d4W". + "L16noPvTu/OBuSSt/z1BaUCNoPN2c7phfhJoqbLfk1qVconwEUw3DEm3L1Xq3W0x9Ix0TDLnHTpwzZ5W5MsYP1gCqTSsxN5jFK+KT". + "gbweiW1ChXzhksoXmh7lkx11Vvz8fxsCsaXOsVKI/sD84t3z6pYu5fkaZdCXJUkLSbQd56aWCQz5ZLJ57Juwn3csFV9jaDDCeoEfX". + "+owIbceGmT3qseqmOri44oWjam8vmWoMt4iYJk/Pb5WPdpi/h+vC8wszwKHrpzt08zRE4Ql4LEwqL39httGJckD8in8yleUhs7sfV". + "sG8MFN0PJ2QB2nAp0A/RrXmzrU+VK2YOTrWlXJEmr7y2w4C0ac90wGQ8UWPmwe1+pCCg/GmvZnO7EOovmPZ19gSn8w2E/LraomlRU". + "g6fSmc0lMi1NRopTmjCAeB+UFN80YfQgiUeGoSvzLXMrm9nsxw76sOWYQvmbirxEy3i3j5Vtr1Jqbx1lXbBhtq3wd9Nsi2JteIfmP". + "Per/b53HCKuWZafa2dYuduLD74XtYHo2UKdDeY4c2t1K9s2qsgj7E8I3Kw11AZFEYdXRlOKIZEp4tzsHT4Rdny6vrtINdq8DA76nE". + "BjaygtSaIi4Hu5FhSfU9FFBs6Xeusm+xKyka1PH/LjUJ2KN25w8PlLlhd3bR8WL2Goy4qV4yxxtxd72/laL893pNK0R4/Vq6t/VOL". + "F0Ysqdi6OwndyLb+i/t+ZwXxw127vnBdIMkJXI5kAETwxRcZHy5x8Y/L+8NyyywdKNZBNEfm2kTJON6nYVulHTryMKekyTjWrpGYS". + "8pOtKK9jcJPX4uBHJkhYP8M2nta4Z8Nh/4r9NQG8OM+BeIf0Z+qjZAluPceglBJ5LV62nIeIHxZ3IaDncwUZRMtSJ1dBXn74g2AyP". + "H72Re5LHtS2q707bNLtFRNstGnUe/RtAe96eJ8PWS4Z01IlJJIEslwWzsEMPWequ39P16Wq5gAmJVuQ6LTgIAFqpkienyhhIsWRZW". + "Oskzv87FD28x1IiqHsOd+GkYNkwYxOkmJFYwDnyda2fKrgXLMalkJxs65cGUMZtHw9fS0J2sxtB2oDqG0OaFLpLcOhtaani9WOBrs". + "mEEH5SZoRE5ApRNiHfHOeBA6mdOTpOVH/omGbHz/Q9Wqak+HaDF5sSeRAJMTSmLdPKeWLcq3/s+E6x5of7PTg4fqApgnBPCyo7rJJ". + "9fkQkvLm4z48OSuqkIORdYBPFx33adT2E6XzNS92LLhgLXmnd6sV7D6naA6k3IsrX2xHXlE7xtDfJX/zTP/7aeWVtddEbeK2aJd5c". + "cZQ5w5QUAzgRL1wZe9clWKBhTNS1uOZVU9tJC2ARgzUtNZrn/hBWrWQawOnLLexk2FnpU+P9KrWVL0xHSB9jqINsuPlcP9O72Ta6I". + "GrHXz28rLzCmW8ZOjkEWrIS23/xIuFW9txsFYpXJpnX9alcAdBCkBuKI8YMzpRrFeV5ZIwhNRMeB/VkD2YswlVDX0moLXNCg5fFgy". + "5lq805RSpV1eXakozQh5MW4QhJ0HmBsonng9iibNrHo6e5E4S+4l6xRDhma4aDH85Is4xttwx3i4pKhMSaupUcdktInGHhazYaWEh". + "5jHdylUWYm7QWQXfiX6GDy8KrZjFt5q274ISmsQMC+iDxV/i2NQ0UTy9T3Pag2AoNqDdKzbJqyHCLrUEQioRlC6BO3rJL9IVeuzbK". + "rzYd8GHzFgJmXGCEVHcEfkUfT+oBimo4RIS/dDX1hi274Koz/K5Axj+aYMSLo1IyRZNLEgT/uKk8e2JOiVY3ow7SfrPWITii/ClkA". + "pZtXHKt4dZyVMBu075hI3fMsqeQK6X1C8oDUOKFFbMRfBMNKShQ0xwceoyq5uVUKTv45mcIsB8ZOzjbjR4znW+lajmQUAyJQYEMI3". + "AUHfxmvfdAU5ffLQMa7SkxQyiodFDYDyqyWP1TxN/39wpbIY7R8R+wYmQ+phIxEhESZJTEHnW+CrZKWvSJuY3dhhUwpjpUN+0DMGI". + "E7F2SbzxikyABaU66bNGJZwRPQrSCBWqTm9rl+CIg+9gc3sD4VxgekWJUJYbbZMQL7JoLQ8KPpfd3bXu0MpGv67v4SUCp2/BCB6ks". + "WtyqlW84XbmJ5A6eXNLT3t1G5HCj6UkYwkSQdXoq0870pA5GCWaK7MaiFCHsO4Jg0klXJonazKudY4MftONLhflXNccqfUb0iCdEi". + "L427kOpMeJYHuwneyCM2bEIC2UT820pdPcubsqO00luYEh3bWP2rPaoC82jSMqB+PmXuVMAzOkMSaVI0/GOWrXLLjZCGZ6lk2YTks". + "Xw1kuGWbkHmcbw9oZMVydVq/bx30f6bWdZwxM0EhgZleQO7/YpIiz25DxM5PNs8jaRovEOwThPv5/3XDOpUAf0Z+4Oz5VFEgvw7Cd". + "iHYNQsbjqgiI32+I1Dz4UeBcPT0Gs7MdfMyr1w53YA595mVEdVNASJWeG3dUdA7gnEANxa4wV60iMVqg6+CSqbwy2TpLGxDpiEjrv". + "zpD6Pwhs29QNOv/1t5q0nmeoAU0I3GRY1g3LwF3XhXLpbL4klv1pMVS8kiAp2TYxHYFGfZC8oDLNvyjLfycofusTYrgBGAoxTU3nq". + "w5plYO5vDkdLsehCTzyZwYzA147BBbjxgjDpzH8BsLfD5miBX/PTMOIxKtGE2fx6fakRpneYberW/wqJeaPAGUVXfiDIWBRfkxmDb". + "UMZyEt+mON5vQyYshrviqGgIhzEENnTWHqZehwCKveGWKoO0MB1PGCXGS3/fwRU14eEuLt5BbFnrZ404kWTPs55aMc4LaOPrcoo8r". + "XfxGY+WDM1y42OrDsYteECjUk/smIHzfNa8dcaP0kw5DVduLvZj/Gg2aNGdOjlDjUr7oZ8mxFszKtqOkwoNgmDZG7/GpNsRoLqPRD". + "GZLeTsWXxnbvPGA+4nPyYhvGBklJMklQCUvPr7QiaM1XRgcQw6EjGXr7ckjaNr9JVWdhT/ZWq/t91VvImhabJSM8WnCBMqs+sHR2n". + "uuiXu85AQVdxZTZUa6MGuYgxP4qtn4+fPI2/XYdqwdflKNFkocm1u9WDIhFh2Ur2TGyGij6Gwho+FG/8xNSYXkhje9Wu7Gqh31+jF". + "vX1Ge9X3MQPZ3x4w4Ks/lYl6dBouz12dmRz3u4pt7TekIcW1iukB+JOKC5BaPX/B2B7RaovGmPCc2Lx7CjYnfnUzmHpxaweEa79Sf". + "72rEP6o6Q0cprD+6+5Aa0baiIE4cQRlPZ87EOeR/fndczMxXPmwVV1lBjsmkBukihcN8vYWv91RupN1jKY7MaqE0o5pc9p7TnaRuX". + "uw82aHZRlCVVaPn6hFA+pYKacyEoVEYM0QwusR81PTcfTPjZ76yv8WwicaV1TvqqG6hOtvSvxZwT+4iPa5u8uOzOj/aOgIhB8TVSt". + "bT9+50KZzT3QeO/YmMnFXhVBe3ij/xGGM+neGlkbK2uBG/L2nQ6lvzxVAk8RuPXoMMUAz1u3lymJs1EGrsY4aBkhR+tyOCG9VWOdH". + "YuzqLskspjzsx88F5gKZd//C1gxDH3XBADVV0YOFltKqGru/CxhjuMSVT9A5O6C7F1fCC0Fh4ITzCh0V+vRX9VyoH8mAQSKRbgJJY". + "u/yHjd9NoRw9SDALJ5gZozALVw9jqmGu9LqBm3I/4x1ON1NgcJyGdflDdK2aOQh5yfb3j9d61/d3pfHsD69y4Z7rEvkhsYGDhvMAY". + "3ltrtG736H3iyUjk4xSCkoNxvMIA1hfAFdkReGZRcnCxr1KeKSIBOYUqdt31t+cjGtyozUJhXE/Aje7uWzipvlkxaiW5kOTsLXR82". + "SGCOfZxnuFWbyEeKS6wbeTHyoO5LLpLdLHNcWFw5Cf6dAlFEG/zX2RiOhxCYWBXVIhHAgv6fb8LBtpLutTlXW+x/nhiBLAgMDw5+n". + "4KPnRsp/lYPrIGHHvFvn2DF/t2m+gjVxwOuWGx9fmYmyK49mqOt8veiO4v0uWx0iU979LElo+fZAmIfVrJraPGorvN2loNPbdNxx5". + "KY4n/3nac3dfxA7kxugZCoJLX1qWgUdvTtESTkWNcIJi0vkw2zGU0oz19GbmrEXRwPxgWiL23puDnCT7w6WfuX/Z7y3Ql/i5Cc+vC". + "mta/Mt+vOUCdp9s1wKaBaHAJvXyK4w+k0jDxIBWoU7KceLF72diYmb0Xu61XtjftC070U6GLyMlzhqGe3Sy/d/6VdMqX4A9V/xJO/". + "60pwF7PneD+fXfYMkSvvTDdBA0dSKp1E9IGsunJCIuSv7liwean+QXWLQfvikw4oiZ2l2kCetP13vx+qEWvHygUTvQ0AnrBiYhdDF". + "rVCk9/0uItWJpQYIAcUV6NI/qfxTS+FdTJT+rs1m+eTDBx6ar353tXnXpR2c94O3QeQ9qWv3ooBjVTIkmJ8ZG4FxUzbqiLUgmABMy". + "ojBleAymZDsxJNZayu9wqO3+bfHl1iQq5PgtwX8ajPFJ039IN4faWP36Llb/WaOs5yc+PcNt1a/6+I94PuBnCF8HAf8vwADS7GaT0". + "D4fMwAAAABJRU5ErkJggg=="; header("Content-type: image/png"); echo base64_decode($sImg); exit; @@ -737,7 +1248,12 @@ EOT; public function getGifBg() { - $sImg = "R0lGODlhCgAyANUAANHo+pfK85rM8/X6/vb6/v///5jL85bJ8+Hv/KbS9dzt+87m+qTR9fH4/er1/b7e+MTh+P3+/63V9u/3/dfq+rnc97fa96DP9Nns+53N9LLY9tTp+sHg+Mzl+cfi+OPx/Pv9/7DX9p/O9Oz2/bTZ9uXy/KLQ9Pj7/ujz/bzd9/7+//r8//P5/snj+ZvM897u+6nT9avU9qvU9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKADIAAAbFwINwSAwYj0iDcskUOJ9Ql3RKzVivWJF2y714v2CTeExmmM/ohHrNhrnf8Jh8PpdJ7vh8aM/va/6AgSSDhIUWh4iJFYuMjSmPkJEPk5SVHJeYmRCbnJ0en6ChLaOkpR2nqKkLq6ytAK+wsRuztLUUt7i5GLu8vQq/wMEvw8TFCMfIyR/LzM0lz9DRKNPU1Q7X2Nkj29zdE9/g4Q3j5OUs5+jpA+vs7QTv8PEn8/T1K/f4+SD7/P0R/wADqhhIsGCBgwgTBgEAOw=="; + $sImg = "R0lGODlhCgAyANUAANHo+pfK85rM8/X6/vb6/v///5jL85bJ8+Hv/KbS9dzt+87m+qTR9fH4/er1/b7e+MTh+P3+/63V9u/3/". + "dfq+rnc97fa96DP9Nns+53N9LLY9tTp+sHg+Mzl+cfi+OPx/Pv9/7DX9p/O9Oz2/bTZ9uXy/KLQ9Pj7/ujz/bzd9/7+//r8//P5/s". + "nj+ZvM897u+6nT9avU9qvU9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKADIAAAb". + "FwINwSAwYj0iDcskUOJ9Ql3RKzVivWJF2y714v2CTeExmmM/ohHrNhrnf8Jh8PpdJ7vh8aM/va/6AgSSDhIUWh4iJFYuMjSmPkJEP". + "k5SVHJeYmRCbnJ0en6ChLaOkpR2nqKkLq6ytAK+wsRuztLUUt7i5GLu8vQq/wMEvw8TFCMfIyR/LzM0lz9DRKNPU1Q7X2Nkj29zdE". + "9/g4Q3j5OUs5+jpA+vs7QTv8PEn8/T1K/f4+SD7/P0R/wADqhhIsGCBgwgTBgEAOw=="; header("Content-type: image/Gif"); echo base64_decode($sImg); exit; @@ -745,7 +1261,9 @@ EOT; public function getGifDe() { - $sImg = "R0lGODlhEgANAIQZAAAAABAFBhEGBhIGBhQHBxUHCCYNDZQqH5QrI9c4M+M4M9w9M+g/MuNDM/BFM99tI+t3H+CyDerIB+zIBuzKBurLCPfcAPfgAPjlAP///////////////////////////ywAAAAAEgANAAAFVaARCGRpmoExAGzrvsBAwHRLFHVdIEfv/8ADouEoGo9IR2PBaDqfUMYioahar1hF4gHper9gyKOCKZvPaExFcmm73/CLZGKp2+94yyRCmfj/gIAUESEAOw=="; + $sImg = "R0lGODlhEgANAIQZAAAAABAFBhEGBhIGBhQHBxUHCCYNDZQqH5QrI9c4M+M4M9w9M+g/MuNDM/BFM99tI+t3H+CyDerIB+zIB". + "uzKBurLCPfcAPfgAPjlAP///////////////////////////ywAAAAAEgANAAAFVaARCGRpmoExAGzrvsBAwHRLFHVdIEfv/8ADou". + "EoGo9IR2PBaDqfUMYioahar1hF4gHper9gyKOCKZvPaExFcmm73/CLZGKp2+94yyRCmfj/gIAUESEAOw=="; header("Content-type: image/Gif"); echo base64_decode($sImg); exit; @@ -753,7 +1271,20 @@ EOT; public function getGifEn() { - $sImg = "R0lGODlhEgANAOfRANzd6P9LQP7//93e6ba32v8HB/J4ef//+/85Of8fFVddwP8aFq+13P8aFPr////f3f8XE/n//62s3fQuLAIDj6ys3uHZ5P8uLOjp793f6dbX6uvBxsyasurCx/9fXcadtS88r+Da5EZHr+Hi7A0NlUVGqcjR9MKaunh5x/8REQAAkv9IP/9BPnh6wi4/td3c5uLl7P8PD7vO9aGSw7bM9uDh6UpLsf8hFv/f3PPx9/Dx9DFCuMDE4cHF4/sAANPU3ufp8JSDvuVocf8ODvz8+/xRTPQgG+PM0ZSWzs/R476+4ujp8v8/PurO0uPZ3//u5fQCAOPj6nFxxf8UE8rM4P/w5YGM18PH4/79/ExUuP3//4CAxqmo3KaZxv7+/RcstO3v89XW6fS8waOj2snM7Nra7Ccon+no9v03OFJZvuK2xBEipP89Ov8dE+be4u3u8/w3OOVocv8sKv8EBOjo9+/u+Kap15SFvgwRlba327uXteHh7tvc5yo3q9XX5SQ4uU5MrtjW5qaVxvDS2f8DA+Tj6vr6/j1FtVlgvL+euvHw9v+rqe7u+XKJ1ebn7p2x7CUmnvb2+dPW8P8cEc/P4efn8/38/5Ws66mYx/ccGNfY5vh0d927zSUlov96ev88OgAAjmmA09rb5v+xsPF5eMnR8i0upuuAgvEyLx0rq97f6cunwEBIuO/Aw/9/fuTm6vn5+vTEyM7P5rq63BESlf+Fgv8fF8SWsOfp7+2rrvX1+La23RgmqLe43PPV2vdydhcnqIWQ2BEgoube4wASn82atOHj6uTT2f97etKjuf9dWsSduZyb08fJ4fn5+/z8/f+ZAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ywAAAAAEgANAAAI/gB/YHCkig+AAVGGuSmUAYCoEbpgGXsFY8kWM7T6JEI14QMIEpBaVNIBRBOSOtEqmAK27EabYqk6jYl2hpksKnjSmIgmqdEqWw2ShSITrZQCFXb8IDpkRdGBCLGmpBDj4ECOYKyyXHFyyoCQX8hceShQQFktT5viGCDV5AgUaHDjypXrI9exIgHYwEHA5MIcQnJYIEDzKcCKVi+63BE0CMeTUTGGLKrywBemIDMCJVnz5ZIWATI4LYCghoaAaI/+EGNAqQQXQ4xQuDiRYBKHHVLoWJIAaFaNZkSU2KAgTI+RTLd4gRKxC0uZPQPAvAnTiwCPEB02WOiRh4CGZ15wAgUEADs="; + $sImg = "R0lGODlhEgANAOfRANzd6P9LQP7//93e6ba32v8HB/J4ef//+/85Of8fFVddwP8aFq+13P8aFPr////f3f8XE/n//62s3fQuL". + "AIDj6ys3uHZ5P8uLOjp793f6dbX6uvBxsyasurCx/9fXcadtS88r+Da5EZHr+Hi7A0NlUVGqcjR9MKaunh5x/8REQAAkv9IP/9BPn". + "h6wi4/td3c5uLl7P8PD7vO9aGSw7bM9uDh6UpLsf8hFv/f3PPx9/Dx9DFCuMDE4cHF4/sAANPU3ufp8JSDvuVocf8ODvz8+/xRTPQ". + "gG+PM0ZSWzs/R476+4ujp8v8/PurO0uPZ3//u5fQCAOPj6nFxxf8UE8rM4P/w5YGM18PH4/79/ExUuP3//4CAxqmo3KaZxv7+/Rcs". + "tO3v89XW6fS8waOj2snM7Nra7Ccon+no9v03OFJZvuK2xBEipP89Ov8dE+be4u3u8/w3OOVocv8sKv8EBOjo9+/u+Kap15SFvgwRl". + "ba327uXteHh7tvc5yo3q9XX5SQ4uU5MrtjW5qaVxvDS2f8DA+Tj6vr6/j1FtVlgvL+euvHw9v+rqe7u+XKJ1ebn7p2x7CUmnvb2+d". + "PW8P8cEc/P4efn8/38/5Ws66mYx/ccGNfY5vh0d927zSUlov96ev88OgAAjmmA09rb5v+xsPF5eMnR8i0upuuAgvEyLx0rq97f6cu". + "nwEBIuO/Aw/9/fuTm6vn5+vTEyM7P5rq63BESlf+Fgv8fF8SWsOfp7+2rrvX1+La23RgmqLe43PPV2vdydhcnqIWQ2BEgoube4wAS". + "n82atOHj6uTT2f97etKjuf9dWsSduZyb08fJ4fn5+/z8/f+ZAP///////////////////////////////////////////////////". + "/////////////////////////////////////////////////////////////////////////////////////////////////////". + "///////////////////////////////////ywAAAAAEgANAAAI/gB/YHCkig+AAVGGuSmUAYCoEbpgGXsFY8kWM7T6JEI14QMIEpB". + "aVNIBRBOSOtEqmAK27EabYqk6jYl2hpksKnjSmIgmqdEqWw2ShSITrZQCFXb8IDpkRdGBCLGmpBDj4ECOYKyyXHFyyoCQX8hceShQ". + "QFktT5viGCDV5AgUaHDjypXrI9exIgHYwEHA5MIcQnJYIEDzKcCKVi+63BE0CMeTUTGGLKrywBemIDMCJVnz5ZIWATI4LYCghoaAa". + "I/+EGNAqQQXQ4xQuDiRYBKHHVLoWJIAaFaNZkSU2KAgTI+RTLd4gRKxC0uZPQPAvAnTiwCPEB02WOiRh4CGZ15wAgUEADs="; header("Content-type: image/Gif"); echo base64_decode($sImg); exit; @@ -772,42 +1303,254 @@ 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.', - 'RequSucc' => 'Bedingung erfüllt', - 'RequNotSucc' => 'Bedingung nicht erfüllt', - 'RequNotCheckable' => 'Bedingung nicht prüfbar', - 'hasMinPhpVersion' => 'mindestens PHP Version %s', - 'hasMaxPhpVersion' => 'maximal PHP Version %s', - 'hasFromToPhpVersion' => 'Server verwendet PHP Version zwischen %s und %s', - 'hasSoap' => 'SOAP-Erweiterung verfügbar', - 'hasCurl' => 'Curl-Erweiterung verfügbar', - 'hasExtension' => '%s-Erweiterung verfügbar', - 'hasMinShopVersion' => 'mindestens Shop Version %s', - 'hasMaxShopVersion' => 'maximal Shop Version %s', - 'hasMinModCfgVersion' => 'ModCfg-Eintrag "%s" (%s) mit mindestens Version %s', - 'hasMaxModCfgVersion' => 'ModCfg-Eintrag "%s" (%s) mit maximal Version %s', + '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.', + 'RequSucc' => 'Bedingung erfüllt', + 'RequNotSucc' => 'Bedingung nicht erfüllt', + 'RequUnknown' => 'Bedingung unklar, siehe Hinweise im Hilfetext', + 'RequNotCheckable' => 'Bedingung nicht prüfbar', + 'hasMinPhpVersion' => 'mindestens PHP Version %1$s', + 'hasMinPhpVersion_DESC' => '
Das Modul erfordert eine PHP-Version die nicht kleiner ist '. + 'als %1$s.
'. + '
Die passende PHP-Version '. + 'ist auf Ihrem Server aktiv.
'. + '
Das Modul kann in '. + 'PHP-Versionen kleiner als %1$s nicht ausgeführt werden. Fragen Sie Ihren Serverprovider '. + 'nach der Anpassung der PHP-Installation oder kontaktieren Sie uns für eine alternative '. + 'Modulversion.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasMaxPhpVersion' => 'maximal PHP Version %1$s', + 'hasMaxPhpVersion_DESC' => '
Das Modul erfordert eine PHP-Version die nicht höher ist '. + 'als %1$s.
'. + '
Die passende PHP-Version '. + 'ist auf Ihrem Server aktiv.
'. + '
Das Modul kann in '. + 'PHP-Versionen höher als %1$s nicht ausgeführt werden. Fragen Sie Ihren Serverprovider '. + 'nach der Anpassung der PHP-Installation oder kontaktieren Sie uns für eine alternative '. + 'Modulversion.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasFromToPhpVersion' => 'Server verwendet PHP Version zwischen %1$s und %2$s', + 'hasFromToPhpVersion_DESC' => '
Das Modul erfordert eine PHP-Version zwischen %1$s und %2$s.
'. + '
Die passende PHP-Version '. + 'ist auf Ihrem Server aktiv.
'. + '
Das Modul kann '. + 'außerhalb der PHP-Versionen nicht ausgeführt werden. Fragen Sie Ihren Serverprovider '. + 'nach der Anpassung der PHP-Installation oder kontaktieren Sie uns für eine alternative '. + 'Modulversion.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasExtension' => '%1$s-Erweiterung verfügbar', + 'hasExtension_DESC' => '
Das Modul erfordert die %1$s-Servererweiterung.
'. + '
Die %1$s-Erweiterung ist '. + 'auf Ihrem Server vorhanden.
'. + '
Das Modul kann ohne die '. + '%1$s-Erweiterung nicht ausgeführt werden. Fragen Sie bei Ihrem Serverprovider nach der '. + 'Installation dieser Erweiterung.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasMinCurlVersion' => 'mindestens cURL Version %1$s', + 'hasMinCurlVersion_DESC' => '
Das Modul benötigt cURL ab der Version %1$s.
'. + '
cURL ist in '. + 'passender Version installiert.
'. + '
cURL ist nicht oder in einer '. + 'älteren Version installiert. Fragen Sie Ihren Serverprovider nach einer passenden '. + 'cURL-Version.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasMinOpenSSLVersion' => 'mindestens OpenSSL Version %1$s', + 'hasMinOpenSSLVersion_DESC' => '
Das Modul benötigt OpenSSL ab der Version %1$s.
'. + '
OpenSSL ist in '. + 'passender Version installiert.
'. + '
OpenSSL ist nicht oder in '. + 'einer älteren Version installiert. Fragen Sie Ihren Serverprovider nach einer passenden '. + 'OpenSSL-Version.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasMinShopVersion' => 'mindestens Shop Version %1$s', + 'hasMinShopVersion_DESC' => '
Das Modul ist ab Shopversion %1$s freigegeben.
'. + '
Die Shopsoftware ist in '. + 'passender Version installiert.
'. + '
Das Modul kann in dieser '. + 'Version der Shopsoftware nicht installiert werden. Fragen Sie nach einer früheren '. + 'Modulversion, die für Ihre Shopversion getestet wurde.
'. + '
Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasMaxShopVersion' => 'maximal Shop Version %1$s', + 'hasMaxShopVersion_DESC' => '
Das Modul ist bis zur Shopversion %1$s freigegeben.
'. + '
Die Shopsoftware ist in '. + 'passender Version installiert.
'. + '
Wir können nicht '. + 'garantieren, dass das Modul in Ihrer Shopversion funktioniert. Fragen Sie nach einer aktuelleren '. + 'Modulversion, die für Ihren Shop passt.
'. + '
Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasMinModCfgVersion' => '%2$s (ModCfg-Eintrag "%1$s") mindestens in Version %3$s', + 'hasMinModCfgVersion_DESC' => '
Das Modul benötigt die Zusatzsoftware "%2$s" mindestens in '. + 'Version %3$s
'. + '
Die Software ist in '. + 'passender Version installiert.
'. + '
Die Zusatzsoftware ist '. + 'möglicherweise gar nicht oder in falscher Version installiert. Bitte installieren Sie die '. + 'Zusatzsoftware, bevor Sie diese Installation fortsetzen.
'. + '
Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasMaxModCfgVersion' => '%2$s (ModCfg-Eintrag "%1$s") maximal in Version %3$s', + 'hasMaxModCfgVersion_DESC' => '
Das Modul benötigt die Zusatzsoftware "%2$s" höchstens '. + 'in Version %3$s
'. + '
Die Software ist in '. + 'passender Version installiert.
'. + '
Die Zusatzsoftware ist '. + 'möglicherweise gar nicht oder in falscher Version installiert. Bitte installieren Sie die '. + 'Zusatzsoftware, bevor Sie diese Installation fortsetzen.
'. + '
Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'requireNewLicence' => 'bisheriger Lizenzschlüssel kann verwendet werden', + 'requireNewLicence_DESC' => '
Diese Prüfung versucht zu ermitteln, ob Sie für den '. + 'Einsatz dieses Moduls einen aktuellen Lizenzschlüssel benötigen:
'. + '
Sie haben für dieses '. + 'Modul einen Lizenzschlüssel hinterlegt, der wahrscheinlich auch für die neue '. + 'Modulversion geeignet ist.
'. + '
Sie benötigen '. + 'für dieses Modul wahrscheinlich einen neuen Lizenzschlüssel. Haben Sie diesen schon '. + 'vorliegen, führen Sie die Installation aus und tragen den Lizenzschlüssel dann im '. + 'Adminbereich Ihres Shops ein. Ansonsten können Sie den Lizenzschlüssel in unserem Shop '. + 'www.oxidmodule.com erwerben oder '. + 'sich ebenfalls im Adminbereich Ihres Shops einen kostenfreien Test-Lizenzschlüssel '. + 'erstellen.
'. + '
Für Details wenden Sie sich bitte an '. + 'buchhaltung@shopmodule.com.
', 'hasModCfg' => 'Modul-'. 'Connector installiert', - 'isShopEdition' => 'ist Shopedition %s', - '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 '. + 'hasModCfg_DESC' => '
Das Modul erfordert zwingend den D3 Modul-Connector.
'. + '
Der Modul-Connector ist '. + 'installiert.
'. + '
Das Modul kann ohne den Modul-'. + 'Connector nicht ausgeführt werden. Bitte laden Sie sich diesen kostenfrei aus unserem Shop '. + 'unter www.oxidmodule.com/'. + 'connector/ und installieren diesen vorab.
'. + '
Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'isShopEdition' => 'ist Shopedition %1$s', + 'isShopEdition_DESC' => '
Das Modul erfordert eine dieser Shopeditionen: %1$s
'. + '
Der Shop ist in der '. + 'passenden Edition installiert.
'. + '
Das Modul kann in Ihrer '. + 'Shopedition nicht ausgeführt werden. Bitte fragen Sie nach einer Modulversion für Ihre '. + 'Shopedition.
'. + '
Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) oder Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) '. + 'installiert (auf passendes Zend-Installationspaket achten!)', + 'hasZendLoaderOptimizer_DESC' => '
Das Modul erfordert (je nach PHP-Version) den Zend Optimizer '. + 'bzw. den Zend Guard Loader. Achten Sie darauf, ein für den verfügbaren Decoder '. + 'erstelltes Installationspaket zu verwenden.
'. + '
Der passende Decoder ist '. + 'auf Ihrem Server installiert.
'. + '
Der passende Decoder ist '. + 'auf Ihrem Server installiert. Es ist eine zusätzliche Erweiterungen (Zend OPcache) installiert, '. + 'die im Zusammenspiel mit dem Decoder Fehler verursachen kann.
'. + '
Das Modul kann ohne den '. + 'passenden Decoder nicht ausgeführt werden. Fragen Sie Ihren Serverprovider nach der '. + 'Installation des passenden Zend-Decoders.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasIonCubeLoader' => 'ionCube Loader installiert (auf passendes ionCube-Installationspaket achten!)', + 'hasIonCubeLoader_DESC' => '
Das Modul erfordert den ionCube Loader. Achten Sie darauf, ein '. + 'für den verfügbaren Decoder erstelltes Installationspaket zu verwenden.
'. + '
Der passende Decoder ist '. + 'auf Ihrem Server installiert.
'. + '
Das Modul kann ohne den '. + 'passenden Decoder nicht ausgeführt werden. Fragen Sie Ihren Serverprovider nach der '. + 'Installation des ionCube Loaders.
'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'hasIonCubeOrZendLoader' => 'ionCube Loader oder Zend Optimizer / Guard Loader installiert '. + '(%1$s)', + 'hasIonCubeOrZendLoader_DESC' => '
Das Modul erfordert den ionCube Loader oder den Zend '. + 'Optimizer / Guard Loader. Achten Sie darauf, ein für die verfügbaren Decoder erstelltes '. + 'Installationspaket zu verwenden (%1$s).
'. + '
Ein passender Decoder ist '. + 'auf Ihrem Server installiert.
'. + '
Ein passender Decoder ist '. + 'auf Ihrem Server installiert. Es ist jedoch ein Abbruchgrund festgestellt worden, der zu Fehlern '. + 'führen kann. Details entnehmen Sie bitte den folgenden Hinweisen.
'. + '
Das Modul kann ohne einen '. + 'passenden Decoder nicht ausgeführt werden. Fragen Sie Ihren Serverprovider nach der '. + 'Installation des ionCube Loaders oder des Zend Optimizers / Guard Loaders.
'. + '%2$s'. + '
Über den [+]-Button können Sie Ergebnisse zu den getesteten Verzeichnissen '. + 'abrufen. Je nach Servereinstellung können die Ergebnisse abweichen. Nur die rot markierten '. + 'Verzeichnisse erfordern eine Anpassung.
'. + '
Details zu Ihrer Serverinstallation sehen Sie durch Klick auf den Button "PHPInfo anzeigen". '. + 'Bei Fragen kontaktieren Sie uns bitte über '. + 'support@shopmodule.com.
', + 'RemoteVersionDiff' => ' (Remotescript hat abweichende Version oder ist nicht '. + 'prüfbar, Ergebnis mglw. nicht sicher)', + 'globalSuccess' => 'Die technische Prüfung war erfolgreich. Sie können das Modul '. + 'installieren.*

', + 'globalNotSuccess' => 'Die technische Prüfung war nicht erfolgreich. Bitte kontrollieren '. + 'Sie die rot oder orange markierten Bedingungen.

', + 'deleteFile1' => 'Löschen Sie diese Datei nach der Verwendung bitte unbedingt wieder von '. 'Ihrem Server! Klicken Sie hier, um diese Datei zu löschen.', + 'deleteFile2' => '?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)', + '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)', 'or' => ' oder ', - 'toggleswitch' => 'Klick für Details zur Prüfung', - 'unableDeleteFile' => 'Datei konnte nicht gelöscht werden. Bitte löschen Sie diese manuell.', + 'toggleswitch' => 'Klick für Details zur Prüfung', + 'unableDeleteFile' => 'Datei konnte nicht gelöscht werden. Bitte löschen Sie diese '. + 'manuell.', 'goodBye' => 'Auf Wiedersehen.', + 'unableExecuteDirectoryIterator' => 'Es können nicht alle Unterverzeichnisse auf weitere Prüfungen '. + 'kontrolliert werden. (%1$s)', + 'availableDecoder' => 'verfügbar: %1$s - auf passendes Installationspaket achten!', + 'noDecoderAvailable' => 'kein verwendbarer Decoder verfügbar', + 'availableDecoder_hasZendLoaderOptimizer' => 'Zend Guard Loader / Optimizer', + 'notAvailableDecoder_hasZendLoaderOptimizer' => '
  • Der Zend Guard Loader / Optimizer ist nicht '. + 'installiert.
  • ', + 'decoderIssue_hasZendLoaderOptimizer' => '
  • Der Zend-Decoder ist '. + 'auf Ihrem Server installiert. Es ist jedoch eine zusätzliche Erweiterungen (Zend OPcache) '. + 'installiert, die im Zusammenspiel mit dem Zend-Decoder Fehler verursachen kann.
  • ', + 'availableDecoder_hasIonCubeLoader' => 'ionCube Loader', + 'notAvailableDecoder_hasIonCubeLoader' => '
  • Der ionCube Loader ist nicht installiert.
  • ', + 'decoderIssue_hasIonCubeLoader' => '
  • Es wurde ein nicht definierter Abbruchgrund bei der '. + 'Verwendung des ionCube-Decoders festgestellt.
  • ', ), 'en' => array( 'RequCheck' => 'Requirement check', @@ -815,25 +1558,193 @@ class requTranslations 'case only checks can executed succesfully.', 'RequSucc' => 'condition is fulfilled', 'RequNotSucc' => 'condition isn\'t fulfilled', + 'RequUnknown' => 'condition unclear, see notes in help text', 'RequNotCheckable' => 'condition isn\'t checkable', - 'hasMinPhpVersion' => 'at least PHP version %s', - 'hasMaxPhpVersion' => 'not more than PHP version %s', - 'hasFromToPhpVersion' => 'server use PHP version between %s and %s', - 'hasSoap' => 'SOAP extension available', - 'hasCurl' => 'curl extension available', - 'hasExtension' => '%s extension is available', - 'hasMinShopVersion' => 'at least shop version %s', - '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', + 'hasMinPhpVersion' => 'at least PHP version %1$s', + 'hasMinPhpVersion_DESC' => '
    The module requires a PHP version at least %1$s
    '. + '
    The appropriate version of PHP '. + 'is activated on your server.
    '. + '
    The module can not be executed within '. + 'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '. + 'contact us for another module version.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasMaxPhpVersion' => 'not more than PHP version %1$s', + 'hasMaxPhpVersion_DESC' => '
    The module requires a PHP version not more than %1$s
    '. + '
    The appropriate version of PHP '. + 'is activated on your server.
    '. + '
    The module can not be executed within '. + 'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '. + 'contact us for another module version.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasFromToPhpVersion' => 'server use PHP version between %1$s and %2$s', + 'hasFromToPhpVersion_DESC'=> '
    The module requires a PHP version between %1$s and %2$s
    '. + '
    The appropriate version of PHP '. + 'is activated on your server.
    '. + '
    The module can not be executed within '. + 'the actived PHP version. Ask your server provider for for the adaption of your PHP installation or '. + 'contact us for another module version.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasExtension' => '%1$s extension is available', + 'hasExtension_DESC' => '
    The module requires the %1$s server extension.
    '. + '
    The %1$s server extension is '. + 'available on your server.
    '. + '
    The module can not be executed '. + 'without the %1$s extension. Ask your server provider for installing this extension.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasMinCurlVersion' => 'at least cURL version %1$s', + 'hasMinCurlVersion_DESC' => '
    The module requires at least cURL version %1$s.
    '. + '
    cURL is available '. + 'in a compatible version.
    '. + '
    cURL is not installed or '. + 'installed in an older version. Ask your server provider for an appropriate version.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasMinOpenSSLVersion' => 'at least OpenSSL version %1$s', + 'hasMinOpenSSLVersion_DESC' => '
    The module requires at least OpenSSL version %1$s.
    '. + '
    OpenSSL is availabe '. + 'in a compatible version.
    '. + '
    OpenSSL is not installed or '. + 'installed in an older version. Ask your server provider for an appropriate version.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasMinShopVersion' => 'at least shop version %1$s', + 'hasMinShopVersion_DESC' => '
    The module is released to shop version %1$s
    '. + '
    The shop software is installed '. + 'in a compatible version.
    '. + '
    We can not guarantee, '. + 'that this module works properly in your shop version. Please ask for a matching module version.
    '. + '
    If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasMaxShopVersion' => 'not more than shop version %1$s', + 'hasMaxShopVersion_DESC' => '
    The module is released to shop version %1$s
    '. + '
    The shop software is installed '. + 'in a compatible version.
    '. + '
    We can not guarantee, '. + 'that this module works properly in your shop version. Please ask for a matching module version.
    '. + '
    If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasMinModCfgVersion' => '%2$s (ModCfg item "%1$s") at least in version %3$s', + 'hasMinModCfgVersion_DESC' => '
    The module requires additional software "%2$s" at least '. + 'in version %3$s
    '. + '
    The software is installed '. + 'in a compatible version.
    '. + '
    The additional software is '. + 'not installed or in wrong version available. Please install the additional software before '. + 'proceeding this installation.
    '. + '
    If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasMaxModCfgVersion' => '%2$s (ModCfg item "%1$s") not more than in version %3$s', + 'hasMaxModCfgVersion_DESC' => '
    The module requires additional software "%2$s" not more than '. + 'in version %3$s
    '. + '
    The software is installed '. + 'in a compatible version.
    '. + '
    The additional software is '. + 'be installed or in wrong version available. Please install the additional software before '. + 'proceeding this installation.
    '. + '
    If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'requireNewLicence' => 'former licence key can be used', + 'requireNewLicence_DESC' => '
    This test tries to determine whether you need a new licence key '. + 'for the use of this module
    '. + '
    You have stored a license key '. + 'for this module, which is probably also compatible for the new module version.
    '. + '
    You need likely a new license '. + 'key for this module. Do you have already one, run the installation and then apply the license '. + 'key in the admin panel of your shop. Otherwise, you can purchase it in our shop '. + 'oxidmodule.com or also create a '. + 'free trial license key in the admin panel of your shop.
    '. + '
    If you have any questions, please contact us at '. + 'buchhaltung@shopmodule.com.
    ', '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 '. + 'hasModCfg_DESC' => '
    The module requires necessarily the D3 Module Connector.
    '. + '
    The Module Connector is '. + 'installed.
    '. + '
    The module can not be executed '. + 'without the Module Connector. Please download this free of charge from our shop '. + 'www.oxidmodule.com/'. + 'connector/ and install it beforehand.
    '. + '
    If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'isShopEdition' => 'shop edition is %1$s', + 'isShopEdition_DESC' => '
    The module requires one of these shop editions: %1$s
    '. + '
    The shop is installed '. + 'in the appropriate edition.
    '. + '
    The module can not be executed '. + 'in your shop edition. Please ask for a module version for your shop edition.
    '. + '
    If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) or Zend Guard Loader (PHP 5.3, 5.4, 5.5, 5.6) '. + 'installed (pay attention to the compatible Zend installation package!)', + 'hasZendLoaderOptimizer_DESC' => '
    The module requires (depending on the PHP version) the Zend Guard Optimizer '. + 'or the Zend Guard Loader.
    '. + '
    The appropriate decoder is '. + 'installed on your server.
    '. + '
    The decoder is '. + 'installed on your server. There is an additional installed extension (Zend OPcache), '. + 'which can cause errors in combination with the decoder.
    '. + '
    The decoder isn\'t '. + 'installed on your server. The module can\'t installed or executed. Please contact your server provider.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasIonCubeLoader' => 'ionCube Loader installed (pay attention to the compatible ionCube installation package!)', + 'hasIonCubeLoader_DESC' => '
    The module requires the ionCube Loader.
    '. + '
    The appropriate decoder is '. + 'installed on your server.
    '. + '
    The decoder isn\'t '. + 'installed on your server. The module can\'t installed or executed. Please contact your server provider.
    '. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'hasIonCubeOrZendLoader' => 'ionCube Loader or Zend Optimizer / Guard Loader installed '. + '(%1$s)', + 'hasIonCubeOrZendLoader_DESC' => '
    The module requires the ionCube Loader or the Zend '. + 'Optimizer / Guard Loader. Pay attention to use a compatible installation package (%1$s).
    '. + '
    One of the appropriate '. + 'decoders is installed on your server.
    '. + '
    One of the appropriate '. + 'decoder is installed on your server. An undefined abort reason has been found, which can cause '. + 'to errors. For details, please refer to the following notes.
    '. + '
    None of the decoders is '. + 'installed on your server. The module can\'t installed or executed. Please contact your server provider.
    '. + '%2$s'. + '
    The [+] button show details for all tested directories. Depending on the server settings, '. + 'the results may vary. Only the red marked directories requires adaptation.
    '. + '
    Details about your server installation you can see by clicking on the button "show PHPinfo". '. + 'If you have any questions, please contact us at '. + 'support@shopmodule.com.
    ', + 'RemoteVersionDiff' => ' (Remote script has different version or isn\'t '. + 'callable, result may not be safe)', + 'globalSuccess' => 'The technical test was successful. Your server is ready for installing '. + 'the module.*

    ', + 'globalNotSuccess' => 'The technical test wasn\'t successfull. Please check the red or orange marked '. 'conditions.

    ', 'deleteFile1' => 'Please delete this file after use on your server! Click here, to delete this file.', @@ -845,6 +1756,19 @@ class requTranslations 'toggleswitch' => 'click for details', 'unableDeleteFile' => 'Unable to delete file. Please delete it manually.', 'goodBye' => 'Good Bye.', + 'unableExecuteDirectoryIterator' => 'Unable to check subdirectories for further checks. (%1$s)', + 'availableDecoder' => 'available: %1$s - pay attention to the compatible installation package!', + 'noDecoderAvailable' => 'no usable decoder available', + 'availableDecoder_hasZendLoaderOptimizer' => 'Zend Guard Loader / Optimizer', + 'notAvailableDecoder_hasZendLoaderOptimizer' => '
  • Zend Guard Loader / Optimizer isn\'t '. + 'available.
  • ', + 'decoderIssue_hasZendLoaderOptimizer' => '
  • The Zend decoder is '. + 'installed on your server. There is an additional installed extension (Zend OPcache), '. + 'which can cause errors in combination with the decoder.
  • ', + 'availableDecoder_hasIonCubeLoader' => 'ionCube Loader', + 'notAvailableDecoder_hasIonCubeLoader' => '
  • ionCube Loader isn\'t available.
  • ', + 'decoderIssue_hasIonCubeLoader' => '
  • An undefined abort reason has been found when using the '. + 'ionCube decoder.
  • ', ), ); } @@ -934,28 +1858,30 @@ class requRemote /** * @param $sUrl * - * @return string + * @return stdClass */ protected function _getRemoteServerData($sUrl) { - if ($this->oModuleData) { - return $this->oModuleData; + if (isset($this->oModuleData[$sUrl])) { + return $this->oModuleData[$sUrl]; } - if ($this->blUseRemote) { - $sUrl = '/serialized/' . $sUrl; + $oFailureData = new stdClass(); + $oFailureData->status = 'NOK'; - $sHost = "http://update.oxidmodule.com"; - $sData = $this->curlConnect($sHost . $sUrl); - $oData = unserialize($sData); - - $this->oModuleData = $oData; - } else { - $oData = new stdClass(); - $oData->status = 'NOK'; + if (false === $this->blUseRemote) { + return $oFailureData; } + $sHost = "http://update.oxidmodule.com"; + $sData = $this->curlConnect($sHost . '/serialized/' . $sUrl); + $oData = unserialize($sData); - return $oData; + if (false == $oData) { + return $oFailureData; + } + $this->oModuleData[$sUrl] = $oData; + + return $this->oModuleData[$sUrl]; } /** @@ -967,10 +1893,7 @@ class requRemote { $sContent = ''; - if (extension_loaded('curl') && - function_exists('curl_init') && function_exists('curl_exec') && - $ch = curl_init() - ) { + if (($ch = $this->_hasCurl())) { $sCurl_URL = preg_replace('@^((http|https)://)@', '', $sFilePath); curl_setopt($ch, CURLOPT_URL, $sCurl_URL); if ($_SERVER['HTTP_USER_AGENT']) { @@ -989,6 +1912,21 @@ class requRemote return $sContent; } + /** + * @return null|resource + */ + protected function _hasCurl() + { + if (extension_loaded('curl') + && function_exists('curl_init') + && function_exists('curl_exec') + ) { + return curl_init(); + } + + return null; + } + /** * @param $sVersion * @@ -1076,7 +2014,7 @@ class requTests */ public function hasMinPhpVersion(&$aConfiguration) { - $aResult[$this->getBasePath()] = false; + $aResult = array($this->getBasePath() => false); if (version_compare(phpversion(), $aConfiguration['aParams']['version'], '>=')) { $aResult[$this->getBasePath()] = true; @@ -1094,7 +2032,7 @@ class requTests */ public function hasFromToPhpVersion(&$aConfiguration) { - $aResult[$this->getBasePath()] = false; + $aResult = array($this->getBasePath() => false); if ((version_compare(phpversion(), $aConfiguration['aParams']['from'], '>=')) && (version_compare(phpversion(), $aConfiguration['aParams']['to'], '<')) @@ -1114,7 +2052,7 @@ class requTests */ public function hasMaxPhpVersion(&$aConfiguration) { - $aResult[$this->getBasePath()] = false; + $aResult = array($this->getBasePath() => false); if (version_compare(phpversion(), $aConfiguration['aParams']['version'], '<=')) { $aResult[$this->getBasePath()] = true; @@ -1132,7 +2070,7 @@ class requTests */ public function hasExtension(&$aConfiguration) { - $aResult[$this->getBasePath()] = false; + $aResult = array($this->getBasePath() => false); if (extension_loaded($aConfiguration['aParams']['type'])) { $aResult[$this->getBasePath()] = true; @@ -1143,6 +2081,69 @@ class requTests return $aResult; } + /** + * @param $aConfiguration + * @return array + */ + public function hasMinCurlVersion(&$aConfiguration) + { + $aCurlVersion = curl_version(); + $aResult = array( + $this->getBasePath() => version_compare($aCurlVersion['version'], $aConfiguration['aParams']['version'], '>=') + ); + + $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams'])); + + return $aResult; + } + + /** + * @param $aConfiguration + * @return array + */ + public function hasMinOpenSSLVersion(&$aConfiguration) + { + $aResult = array( + $this->getBasePath() => version_compare($this->get_openssl_version_number(true), $aConfiguration['aParams']['version'], '>=') + ); + + $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__, $aConfiguration['aParams'])); + + return $aResult; + } + + /** + * @param bool $patch_as_number + * @param null $openssl_version_number + * @return bool|string + */ + protected function get_openssl_version_number($patch_as_number=false,$openssl_version_number=null) { + if (is_null($openssl_version_number)) $openssl_version_number = OPENSSL_VERSION_NUMBER; + $openssl_numeric_identifier = str_pad((string)dechex($openssl_version_number),8,'0',STR_PAD_LEFT); + + $openssl_version_parsed = array(); + $preg = '/(?[[:xdigit:]])(?[[:xdigit:]][[:xdigit:]])(?[[:xdigit:]][[:xdigit:]])'; + $preg.= '(?[[:xdigit:]][[:xdigit:]])(?[[:xdigit:]])/'; + preg_match_all($preg, $openssl_numeric_identifier, $openssl_version_parsed); + $openssl_version = false; + if (!empty($openssl_version_parsed)) { + $alphabet = array(1=>'a',2=>'b',3=>'c',4=>'d',5=>'e',6=>'f',7=>'g',8=>'h',9=>'i',10=>'j',11=>'k', + 12=>'l',13=>'m',14=>'n',15=>'o',16=>'p',17=>'q',18=>'r',19=>'s',20=>'t',21=>'u', + 22=>'v',23=>'w',24=>'x',25=>'y',26=>'z'); + $openssl_version = intval($openssl_version_parsed['major'][0]).'.'; + $openssl_version.= intval($openssl_version_parsed['minor'][0]).'.'; + $openssl_version.= intval($openssl_version_parsed['fix'][0]); + $patchlevel_dec = hexdec($openssl_version_parsed['patch'][0]); + if (!$patch_as_number && array_key_exists($patchlevel_dec, $alphabet)) { + $openssl_version.= $alphabet[$patchlevel_dec]; // ideal for text comparison + } + else { + $openssl_version.= '.'.$patchlevel_dec; // ideal for version_compare + } + } + return $openssl_version; + } + /** * @param $aConfiguration * @@ -1153,8 +2154,8 @@ class requTests if ($this->getDb()) { $sField = 'oxversion'; $sSelect = "SELECT " . $sField . " FROM oxshops WHERE 1 ORDER BY oxversion ASC LIMIT 1"; - $rResult = mysql_query($sSelect, $this->getDb()); - $oResult = mysql_fetch_object($rResult); + $rResult = mysqli_query($this->getDb(), $sSelect); + $oResult = mysqli_fetch_object($rResult); $oEditionResult = $this->_getShopEdition(); $sEdition = strtoupper($oEditionResult->oxedition); @@ -1189,8 +2190,8 @@ class requTests if ($this->getDb()) { $sField = 'oxversion'; $sSelect = "SELECT " . $sField . " FROM oxshops WHERE 1 ORDER BY oxversion DESC LIMIT 1"; - $rResult = mysql_query($sSelect, $this->getDb()); - $oResult = mysql_fetch_object($rResult); + $rResult = mysqli_query($this->getDb(), $sSelect); + $oResult = mysqli_fetch_object($rResult); $oEditionResult = $this->_getShopEdition(); $sEdition = strtoupper($oEditionResult->oxedition); @@ -1252,8 +2253,8 @@ class requTests if ($this->getDb()) { $sField = 'oxedition'; $sSelect = "SELECT " . $sField . " FROM oxshops WHERE 1 LIMIT 1"; - $rResult = mysql_query($sSelect, $this->getDb()); - $oResult = mysql_fetch_object($rResult); + $rResult = mysqli_query($this->getDb(), $sSelect); + $oResult = mysqli_fetch_object($rResult); return $oResult; } @@ -1269,11 +2270,11 @@ class requTests if ($this->getDb()) { $sModId = 'd3modcfg_lib'; $sSelect = "SELECT 1 as result FROM d3_cfg_mod WHERE oxmodid = '" . $sModId . "' LIMIT 1"; - $rResult = mysql_query($sSelect, $this->getDb()); - if (is_resource($rResult)) { - $oResult = mysql_fetch_object($rResult); + $rResult = mysqli_query($this->getDb(), $sSelect); + if (is_object($rResult)) { + $oResult = mysqli_fetch_object($rResult); - if ($oResult->result) { + if ((bool) $oResult->result == true) { return true; } } @@ -1294,18 +2295,19 @@ class requTests "(INET_ATON(oxversion) >= INET_ATON('" . $aConfiguration['aParams']['version'] . "'), 1, 0) AS result ". "FROM d3_cfg_mod ". "WHERE - oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND + oxmodid = '" . $aConfiguration['aParams']['id'] . "' AND oxversion != 'basic' ORDER BY oxversion ASC LIMIT 1"; - $rResult = mysql_query($sSelect, $this->getDb()); - $aResult = mysql_fetch_assoc($rResult); + $rResult = mysqli_query($this->getDb(), $sSelect); + $oResult = mysqli_fetch_object($rResult); + $blReturn = (bool)$oResult->result; - if (!(int)$aResult['result']) { + if (false == $blReturn) { $this->setGlobalResult(false); } - return (int)$aResult['result']; + return $blReturn; } $this->setGlobalResult(false); @@ -1328,14 +2330,15 @@ class requTests oxversion != 'basic' ORDER BY oxversion ASC LIMIT 1"; - $rResult = mysql_query($sSelect, $this->getDb()); - $aResult = mysql_fetch_assoc($rResult); + $rResult = mysqli_query($this->getDb(), $sSelect); + $oResult = mysqli_fetch_object($rResult); + $blResult = (bool)$oResult->result; - if (!(int)$aResult['result']) { + if (false == $blResult) { $this->setGlobalResult(false); } - return (int)$aResult['result']; + return $blResult; } $this->setGlobalResult(false); @@ -1343,26 +2346,86 @@ class requTests return false; } + /** + * @param $aConfiguration + * + * @return bool + */ + public function requireNewLicence(&$aConfiguration) + { + if ($this->getDb()) { + $sSelect = "SELECT + oxversion as oxversion + FROM d3_cfg_mod WHERE + oxmodid = '" . $this->oConfig->sModId . "' + ORDER BY oxversion ASC LIMIT 1"; + + $rResult = mysqli_query($this->getDb(), $sSelect); + $oResult = mysqli_fetch_object($rResult); + + if (isset($oResult) + && is_object($oResult) + && isset($oResult->oxversion) + && isset($aConfiguration['aParams']['checkVersion']) + ) { + $sInstalledVersion = $this->_getConvertedVersion( + $oResult->oxversion, + $aConfiguration['aParams']['remainingDigits'] + ); + $sNewVersion = $this->_getConvertedVersion( + $this->oConfig->sModVersion, + $aConfiguration['aParams']['remainingDigits'] + ); + if (version_compare($sInstalledVersion, $sNewVersion, '>=')) { + return true; + } + } + } + + return 'notice'; + } + + /** + * cut not used version digits + * @param string $sVersion + * @param int $iRemainingDigits + * + * @return string + */ + protected function _getConvertedVersion($sVersion, $iRemainingDigits) + { + $aInstalledVersion = explode('.', $sVersion); + return implode('.', array_slice($aInstalledVersion, 0, $iRemainingDigits)); + } + /** * @return array */ - public function hasZendLoaderOptimizer() + public function hasZendLoaderOptimizer(&$aConfiguration, $blCheckBasePathOnly = false) { $aResult = array($this->getBasePath() => false); - if ((version_compare(phpversion(), '5.2.0', '>=') && - version_compare(phpversion(), '5.2.900', '<') && - function_exists('zend_optimizer_version') + if ((version_compare(phpversion(), '5.2.0', '>=') + && version_compare(phpversion(), '5.2.900', '<') + && function_exists('zend_optimizer_version') ) || ( - version_compare(phpversion(), '5.3.0', '>=') && - version_compare(phpversion(), '5.4.900', '<') && - function_exists('zend_loader_version') - ) - ) { - $aResult[$this->getBasePath()] = true; + version_compare(phpversion(), '5.3.0', '>=') + && version_compare(phpversion(), '5.6.900', '<') + && function_exists('zend_loader_version') + )) { + if (function_exists('opcache_get_status') + && ($aOpCacheStatus = opcache_get_status()) + && $aOpCacheStatus['opcache_enabled'] + ) { + $aResult[$this->getBasePath()] = null; + } else { + $aResult[$this->getBasePath()] = true; + } } - $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__)); + if ($blCheckBasePathOnly == false) { + $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__)); + } return $aResult; } @@ -1370,7 +2433,7 @@ class requTests /** * @return array */ - public function hasIonCubeLoader() + public function hasIonCubeLoader(&$aConfiguration, $blCheckBasePathOnly = false) { $aResult = array($this->getBasePath() => false); @@ -1378,7 +2441,59 @@ class requTests $aResult[$this->getBasePath()] = true; } - $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__)); + if ($blCheckBasePathOnly == false) { + $aResult = array_merge($aResult, $this->checkInSubDirs(__FUNCTION__)); + } + + return $aResult; + } + + /** + * @return array + */ + public function hasIonCubeOrZendLoader(&$aConfiguration) + { + $oLayout = $this->getBase()->oLayout; + + $aDecoderTexts = array(); + $aDecoderErrorTexts = array(); + foreach (array('hasZendLoaderOptimizer', 'hasIonCubeLoader') as $sDecoderCheck) { + $aReturn = call_user_func_array(array($this, $sDecoderCheck), array($aConfiguration, true)); + if ($aReturn[$this->getBasePath()]) { + $aDecoderTexts[$sDecoderCheck] = $oLayout->translate('availableDecoder_'.$sDecoderCheck); + } elseif ($aReturn[$this->getBasePath()] === null) { + $aDecoderErrorTexts[$sDecoderCheck] = $oLayout->translate('decoderIssue_'.$sDecoderCheck); + } else { + $aDecoderErrorTexts[$sDecoderCheck] = $oLayout->translate('notAvailableDecoder_'.$sDecoderCheck); + } + } + + $sDecoderText = count($aDecoderTexts) ? + sprintf($oLayout->translate('availableDecoder'), implode(' + ', $aDecoderTexts)) : + $oLayout->translate('noDecoderAvailable'); + $aConfiguration['aParams'][1] = $sDecoderText; + + $sDecoderErrorText = count($aDecoderErrorTexts) ? + '
      '.implode('', $aDecoderErrorTexts).'
    ' : + ''; + $aConfiguration['aParams'][2] = $sDecoderErrorText; + + $aZendLoaderResults = $this->hasZendLoaderOptimizer($aConfiguration); + $aIonCubeLoaderResults = $this->hasIonCubeLoader($aConfiguration); + + $aResult = array(); + foreach (array_keys($aZendLoaderResults) as $sPath) { + // transfer meta data + if (strstr($sPath, '@@')) { + $aResult[$sPath] = $aZendLoaderResults[$sPath]; + } elseif ($aIonCubeLoaderResults[$sPath] || $aZendLoaderResults[$sPath]) { + $aResult[$sPath] = true; + } elseif ($aIonCubeLoaderResults[$sPath] === null || $aZendLoaderResults[$sPath] === null) { + $aResult[$sPath] = null; + } else { + $aResult[$sPath] = false; + } + } return $aResult; } @@ -1422,9 +2537,10 @@ class requTransformation $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); + $rResult = mysqli_query($this->oCheck->getDb(), $sSelect); + + if (is_object($rResult)) { + $oResult = mysqli_fetch_object($rResult); if ($oResult->result) { $sCheckVersion = $oResult->result; } @@ -1470,4 +2586,4 @@ if (isset($_REQUEST['fnc']) && $_REQUEST['fnc']) { $oRequCheck->{$_REQUEST['fnc']}(); } else { $oRequCheck->startCheck(); -} \ No newline at end of file +} diff --git a/src/Application/Model/d3voucher.php b/src/Application/Model/d3voucher.php index 0b997a0..c8d3671 100644 --- a/src/Application/Model/d3voucher.php +++ b/src/Application/Model/d3voucher.php @@ -1,510 +1,510 @@ -1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> -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 \ No newline at end of file +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 +8DngcreOBvVteUztsvYEUi0nerk/lE+kGzS= \ No newline at end of file diff --git a/src/Application/Model/reminder.php b/src/Application/Model/reminder.php index 2f74b4c..9661dbf 100644 --- a/src/Application/Model/reminder.php +++ b/src/Application/Model/reminder.php @@ -1,193 +1,193 @@ -1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> -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 -Id+1rnsReGkzwticMW== \ No newline at end of file +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 +H8rVh9bWIIKq3QUW2aTQgG== \ No newline at end of file diff --git a/src/Application/Model/utils_birthdayvoucher.php b/src/Application/Model/utils_birthdayvoucher.php index b797da9..0c197e5 100644 --- a/src/Application/Model/utils_birthdayvoucher.php +++ b/src/Application/Model/utils_birthdayvoucher.php @@ -1,146 +1,146 @@ -1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> -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 \ No newline at end of file +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 +6fm9sniv0AUE4YGojRFWEAOHHVWD \ No newline at end of file diff --git a/src/Setup/d3birthdayvoucher_update.php b/src/Setup/d3birthdayvoucher_update.php index ce151e0..d8a3796 100644 --- a/src/Setup/d3birthdayvoucher_update.php +++ b/src/Setup/d3birthdayvoucher_update.php @@ -20,16 +20,16 @@ class d3birthdayvoucher_update extends d3install_updatebase public $aRenameTables = array(); - public $sModRevision = '260'; + public $sModRevision = '265'; public $sModKey = 'd3birthdayvoucher'; public $sModName = 'Geburtstagsgutscheine'; - public $sModVersion = '4.0.0.0'; - public $sModBaseConfKey = '9arv2==YzNXSDI1Zm9OY0dVaHc5RE9hcktJWHJnVzF4UUVmcFVDQ2F3YVd3OFMyUE5VRkNQRkNiQzY2M -1hnL3NkbnJ6YUVtb0lkY0JRazJ3eG9SaFZoYTVMTTVxWEdOK1NIbDRmWmJOaDNtSllORElCYWtGV05ma -kxFUklBWExVeFZCOCtCWlN1SktzcDhIcmJDaktTd3dXLzhkbHRIZlQ5TnZQdkxZcldSV2NtRVYyNVJ3M -GFVUTgwcXJYNFJwMDJPQzZWYjNJdmdSa2Q3eFlteUVlYWVhUkZjOW5mS2x6TU5meDlENjU5K2lVZFJtY -3lucDNFTW5yVjhqbFBWQmZBbmRraXFmWk9HUW9Gd0tQK3QvVHJ1QzEvdi9sY2RWSUExYzUwOFQ0S0ZRd -0pXb3cwUVdVUFozTk1XbUg1TGNvR05VeVNpVUM3WVQ5WmVoSUNqUUxuSzh3UElnPT0='; + public $sModVersion = '4.0.0.1'; + public $sModBaseConfKey = 'fYgv2==ZjZmL2ZqYlBCY0ZoOTJtNFUxUFFDKzluYUplWFBsbzBDb3AzK1pLVElCZERxbmlhSGZhdzF2Z +itYZHErYkhKazRLTDZtNVFycVdQbllyMVhsdEpNc3ZBZ1BVUWVNYWJ4NVAvcjZqdkNnSXVGd1FEaGRzM +VRiVFQzc05uc0VPT2hoV2xKWlk1ck1tVVlxalFwOWZWZFA4YUFxVlZ6aUxObXpwbkQ1R0hKMjdwOEEva +3lCbGNuSWJBajdtWmRiem04WWlhYVlVbFRmRTA0eHNTbzdmUDl3RCt5bUQ5enZ1cFZvdUE4Ky9PdTNHe +C9nZmQ5V0ErV1hoMUpwSksrajU2ZjZpSW0xYWg0MGFFWmdZcElzMDRndHZFU3R4MFZzT3JFc2xHRFBjV +0lZMXhtS2pGN2cvM2dqL0R3ak1CcFZSR2FMTC9pR0FPRmIxYVNzKzBVRnV2UFVRPT0='; public $sRequirements =''; diff --git a/src/metadata.php b/src/metadata.php index a65681a..028a71c 100644 --- a/src/metadata.php +++ b/src/metadata.php @@ -25,7 +25,7 @@ $aModule = array( , 'thumbnail' => 'picture.png', - 'version' => '4.0.0.0', + 'version' => '4.0.0.1', 'author' => 'D³ Data Development', 'url' => 'http://www.shopmodule.com', 'email' => 'support@shopmodule.com', diff --git a/src/translations/de/d3_d3birtdayvoucherdate_lang.php b/src/translations/de/d3_d3birtdayvoucherdate_lang.php index 21a0b59..6df96d2 100644 --- a/src/translations/de/d3_d3birtdayvoucherdate_lang.php +++ b/src/translations/de/d3_d3birtdayvoucherdate_lang.php @@ -1,15 +1,15 @@ -1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); ?> -HR+cP/zqlVLaieNEIqi8O4U8GWL4HaPp+3wQGD9g1l9mi8/t908zFYJ8i+KYTbIxWzr/DJvx8nqc -XeFCYB+PUV2GjTfcJvui9IovZtZZ5NyIUVRfGyyoKyfyP8JZt0N6dWlJsvY+lfXR7Ylfo8F30uNq -ntP9cA4nqbq0XJXvMI9r9MwRp6V3HRHD1wFGbbrakXqFNcD6epPU9kMbuXHBr3jHuab+Q9NJeXIB -p0Wti4pBh6hBMc2niRCEgKQlzL2Ukkp0N3FqXHP1nKMrjXU7Dm0DoFsj0orqPdXzmQd5d6NHkTMO -Aks5EV/cldFpelTl4Y1Eom03WGN4hLCuc+5QyCzpyp5OC8Z2R2EzxFNoV9zw6JTwT4O/9DYVP2l+ -i63b2ph8CP0mLHqOoOgGNbiSuLM0jHsBpNcx+HElx7dmOt+/VeofcecFZNOo1tKbaY03w7bQ3GGG -YbpjfTIrUvFGcIxspZrCL0OV6CimVe329E3StHiNz9lSYaSEY3WfQPvSfikIM2gxowHda5EMIHcZ -w77UUGg/b8iO3K7BTvORM3Ix+AhMu86d9ZW7jTbGr4HjqyXDGmbLAyKf/3yjFLz7dg2tT1QyJ2cq -TF69tmulRdrbZj76nCWApk1dBIogvFDuFwq/1BC+CL8xK4VaMzuhgZKlYfIuCR2Yoso2Lwk8v1n7 -CDLN0G7i/knC/cFL05xp0crhgj/mgxv8XNXYOH2KeRHhi1MsJkKcR3HlHMzIAWrdMLJobWPvguDw -conR1q3i94gXDnARK1G2RT6kpgazAW== \ No newline at end of file +HR+cPvE1w5fVRj6T9ZHzULr0QihC/aOm3ZYg/FsUT3hKbt9GP2E59CYuEuElZSwBXXVwooRr73BQ +76WFDjdecYioWWN9nXM+ISxL8O9AdgqKZHbOuw/QM8jW9JC9TyOrAaZWm+AmzBv4zuGYPuojm/0e +5UBkkQW+AQzL2SKbGorMSThh0Amm0AxnRnJZlNHK4nupd3XiIxCi22aUsc4RJpaUYMnldPTlUhyv +SXhO6QmOkOFlAfwGJes6GXUy6VF7Cu1myY3romrGdOzSb1uo5VVwmddUyjipPVmboOPszWKWDYSn +l8IcQno7mDZXA7/3LssfltEUaZenNTZmlzfmosN6PjAqYnS9uj39SbRohVDl4CsPHzh2ONxfkIni +X9qvfMX9Cd3WAp+cA7R4Gm5gKGcFSLa/iY9ua9uDK5RpqkMP0/fKRWXlmGcRf2vvYj5FgeS22OEt +5tUmI8pb47oEi0SRTWy/cQrxCdhhkHFc99vu9SLT4q31C8iQyw+cvtVVFhmz1i9lLwthNg+2uGOh +E2B9gkk6+aj8/Tbu67PBK8UwpzCVoaesPggWDMnndkHTeQCQcHoA4XJCbBt3WAd66Y+YnN+NWeQI +I51BNDG24+DGItyKakFCPBwTyA0Dfj1pxgMBXLB9ea2F5Ya+1bD5KPkPh9w3SbJIqW8ddyiAgR2e +mxz2WUTOcWD97Fps9TCvGCxA9axXWEeAmD/8tKCEabJfylOcjOY9J+siorwwLLr/b44eeOXhfkkJ +Wlby4o/ERzj/Xdn/csZ7MPAYiRBMJW== \ No newline at end of file