From 9e005a531bedc94ce6bb10ea2ca97557d634706a Mon Sep 17 00:00:00 2001 From: MarkusGaertner Date: Fri, 24 Aug 2018 11:42:50 +0200 Subject: [PATCH] add 4.0.0.1 (ionCube for PHP 5.6 - 7.0) --- CHANGELOG.md | 3 + README.md | 2 +- composer.json | 2 +- docs/Documentation/changelog/Changelog.html | 2 +- docs/Documentation/index.html | 2 +- .../Anforderungen/Anforderungspruefung.html | 2 +- .../Anforderungen/Systemanforderungen.html | 2 +- .../Anforderungen/Vorbereitungen.html | 2 +- .../Deinstallation/Dateien_loeschen.html | 2 +- .../Deinstallation/Datenbank_bereinigen.html | 2 +- .../Modul_aus_der_Installation_entfernen.html | 2 +- .../Deinstallation/Modul_deaktivieren.html | 2 +- ...eiterungen_deaktivieren_und_entfernen.html | 2 +- .../Deinstallation/TMP-Ordner_leeren.html | 2 +- .../Neuinstallation/CMS-Seiten.html | 2 +- .../Neuinstallation/CronJobs.html | 2 +- .../Konfiguration_einstellen.html | 2 +- .../Neuinstallation/Lizenz_eintragen.html | 2 +- .../Neuinstallation/Modul_hinzufuegen.html | 2 +- .../Modul_im_Shop_aktivieren.html | 2 +- .../Paketquelle_hinzufuegen.html | 2 +- .../Providerspezifische_Installation.html | 2 +- .../Shopanpassungen_installieren.html | 2 +- .../Neuinstallation/TMP-Ordner_leeren.html | 2 +- .../Verwendung_eigener_Themes.html | 2 +- .../installation/Neuinstallation/index.html | 2 +- .../installation/Update/CMS-Seiten.html | 2 +- .../installation/Update/CronJobs.html | 2 +- .../installation/Update/Dateien_erneuern.html | 2 +- .../Update/Konfiguration_einstellen.html | 2 +- .../Update/Modul_deaktivieren.html | 2 +- .../Modulinformationen_aktualisieren.html | 2 +- .../Providerspezifische_Installation.html | 2 +- .../Update/Shopanpassungen_installieren.html | 2 +- .../Update/TMP-Ordner_leeren.html | 2 +- .../manual/Configuration/Options.html | 2 +- .../Documentation/manual/Getting_Started.html | 2 +- .../support/Hilfe-und-Support.html | 2 +- docs/Documentation/themes/d3/css/d3.css | 62 +- docs/Precheck/d3precheck.php | 1626 ++++++++++++++--- src/Application/Model/d3voucher.php | 949 +++++----- src/Application/Model/reminder.php | 354 ++-- .../Model/utils_birthdayvoucher.php | 263 ++- src/Setup/d3birthdayvoucher_update.php | 16 +- src/metadata.php | 2 +- .../de/d3_d3birtdayvoucherdate_lang.php | 34 +- 46 files changed, 2272 insertions(+), 1111 deletions(-) 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 f7b715a..8f3c2d9 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "php": "5.6 - 7.0", "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..e2b5d02 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.0'; /********************** 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 = "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"; + $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 2ba10a2..448c67c 100644 --- a/src/Application/Model/d3voucher.php +++ b/src/Application/Model/d3voucher.php @@ -1,477 +1,476 @@ -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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 +MpEGa4wPXw3xfHAL \ No newline at end of file diff --git a/src/Application/Model/reminder.php b/src/Application/Model/reminder.php index 8cbd380..5fc1fcb 100644 --- a/src/Application/Model/reminder.php +++ b/src/Application/Model/reminder.php @@ -1,179 +1,179 @@ -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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 +vl2SM/fgQRnSbh42t1dH \ No newline at end of file diff --git a/src/Application/Model/utils_birthdayvoucher.php b/src/Application/Model/utils_birthdayvoucher.php index d048372..540048e 100644 --- a/src/Application/Model/utils_birthdayvoucher.php +++ b/src/Application/Model/utils_birthdayvoucher.php @@ -1,134 +1,133 @@ -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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 +vR349voasn90RegULl8LRLhmmCHpWheSsI1Z \ 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 a255c60..46264ba 100644 --- a/src/translations/de/d3_d3birtdayvoucherdate_lang.php +++ b/src/translations/de/d3_d3birtdayvoucherdate_lang.php @@ -1,19 +1,19 @@ -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+cPxALZVLOVtRw9ICOrY0ATaHFd+LPvslWJD04MaVzxTXhdS/jnYfToVqn1dQDMdulslYsz5TT -QdjWqrE2xhLS5cC8wkOpQdtHaGgqSy3y5GK8EPwSpPl/3d4h+0CDXjfeyHGCMdDYbOcd+iA+M5P6 -StuOqA9UQNdWgumo+qkLjahNFGwvW46902BEM+smHwdZ+d/OlW6lvs9o3wfawEJBE7+ocT5o0l1c -TUei/7hHsB/n/B00aO8WBWTGVMkhAvm3ZOkMjNG5L4XKNMZgGGoUB7lyN3T6UclvUAHW9LZbPB0s -bbGkd6h/wVBRL756GXQae6KTuhJeWP6E0NXJWBAE18FFrztq+4u6sg/V5bYazpPXgUCUny5YjviD -9Rq4ELQdIWx3TBmK3AL3xB7N35aauzk55dCgMWNcIn6t9iHb/1e79ZdQoa+wM0sa1X9RnhTQiQgU -6ogkzJ9XMJ7dkPOd4wY499zB5Jaerg+ZbLt2mAK7y+byWVC+lcuG5E3zydd5NeaNEGkA+WDNVDol -0cSEKOPVUCbaWDxe+fY2tdtJNmMmNiybPFXAV+v9ufu9hOIsVMSljYNuVrhSaA63bThaRTuPiZ1u -YQZYwm3a6vy877e0R0oAV1xtG0phQ5o13MDfDz5s/b442BLxqDbLVzFfmhtKpA+UE+laWBDALVeV -9YvegjqAKCVUU8i6YzdvmzoALlAno6CJoTFqObwACnlbnpBvM9DMRUye5dvllj1HI76wHy0AC39C -RKzstPO93tGFWpbityKVMgva48O/+ez0q3Bx+R0GO9NWIMQxcKVAlTJGgwNjrnTuIRcUeyZl1YQM -k9yK8rv/Mhh+/y0sEd+E67D63W2VLVQC0HLKyEMYANrowguYk8H+gck5RlAhYCejIMMFggKXToMa -SrcxUynnux+gdkZeHEoPlKGNFolgoUfoNMYyjYnQBDYXXhZFmM9MeS6E53BVNITVuRpkvm7gs413 -lfD1U/L00xLxE/Uq0d5WqdA2nS0vnfvnIqQRTg9XcKGgdNS3l2w0SlS8xVDiDB2R+oUKaZEzG+lH -1IQ6cNNX25CahVf0eGWbDRi= \ No newline at end of file +HR+cP//5XHv5q6/ZQgqpYsPRBAAI+Yf0o9UnhDqhf2ppbo8SN+ynU8DOKJA4KNPm14/oO+/0xyC6 +TfcUOe/JcjewK5sDJ4Iht86CveoUzGGG5pyZIr3q5YGzei4k1JLLjjq61Cd7YDKcbnYZiW3MLLpr ++SQar3Ylu8X14QSXC4ib9jvr/Yyao2fQBwTp35UkM+ZqZ7XdViJbkzHptV58YU6C2YT35oIuSDS6 +tlzu8c+mBWWFHD4g+2IbTRXvqI2LGdZQ2GwCZPwywO9Xo029R00JWYxwyBriPi/7wK+crQdFZp3n +vaTVN+VTIfx5aFFbsqNnypg2i+126DZlmf0cahzezZX2BR/YYDaTCiP9gY2BgKjyWtnoo28R4GRK +HB8k6Sa3yLgONGnlW3+WhAze6hshkDkiD8p1fegaj2aNdEsjpox4owCa4jNtdUuvSmH7y4/YF+s/ +637jvpCXTvWCliJn2JKrAtq8ImloyNgzm1npG3ZWyH4Um7wbqLPlOwwBvSTCMdMRxYDaj25H1YAv +18HhQYzanqkJHv0mQiDt0xI3Ggn0vSO+lp17rMvohSMldm4XduLcZom+ubmtLqb7BrSQXXUVeHmA +SX22Qua3qKwVh7ONKYrOEgxcB1GBJvh5MWDTHNMow9zMdR87dPWlhTHC32+h8kttuz8VY5l2DWzo +fjgV9VFBgi6eTy2UoFA21hBMgxWLn6/bLaMRlDWRskuWT5BmjQJcFtUZMLrID4iV2LF6fSUz923L +yGi1Idbal1hxhCZzBLRkxLI++PITUq5WqEdEL3DgULV3tF0OsKjKQLxI6XB/16hDaOttSMfmEGnJ +hDPPOcgKx440sTmvk5Bdm7o+pkOzu1Y7rarX3QK9NKNY5b1y27nETs1ZJTMew6ULtFW4rkqPNvGD +klaPkxCZZ+Lwjfhsdl7/vXI5CujVYk3sK2sRCXAcUAWALKphGXkz60q+2gM4gmrNacQEZBFxhifm +slVDKTRtA5lLB5K2nXcLLqyuJMrwa9s8kvTTQDo50KAzr/MMQtL0Znt+PIexDvSrsdwd++qiLwFX +idM1q8ZWZg0vzQE+HHBcErcZrYEl60== \ No newline at end of file