commit 5264d09893bc5d7686460b80a4e0fd21c03dad9a
Author: MarkusGaertner
Date: Fri Jul 6 12:06:56 2018 +0200
add 4.0.0.0 (ionCube for PHP 5.6 - 7.0)
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..db8b457
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,68 @@
+4.0.0.0 04.07.2018
+- Umarbeitung fr OXID 6
+
+3.2.0.0 17.10.2016
+- neue Funktion Ablaufwarnung fr Gutscheine mit Ablaufdatum
+- neue Funtkion Erinnerungsfunktion fr Gutscheine ohne Ablaufdatum
+
+3.1.0.4 02.09.2016
+- Test und Anpassung auf Version 4.10 / 5.3
+- Bugfix: Logout im Admin, im Zusammenhang mit dem aktuellen Modul-Connnector und dem neuen Admin-Theme
+- neuer Menpunkt Logmeldungen im Modul
+- Gutscheine haben jetzt ein Gltig-Bis Datum
+- Logmeldungen des Moduls sind jetzt ber die Menstruktur des Moduls erreichbar
+
+3.1.0.3 15.07.2015
+- Test / Anpassung auf 4.9 / 5.2
+- Test / Anpassung auf PHP 5.4 und PHP 5.6
+
+3.1.0.2 12.08.2.14
+- Fehler bei Speicherung der Kundengruppen
+
+3.1.0.1 28.04.2014
+- nderung Precheck
+
+3.1.0.0 26.02.2014
+- Testmodus implementiert
+- Einschrnkungen auf Kundengruppen
+- Einschrnkung fr E-Mailadressen
+- Logging erweitert
+- Altersbegrenzung implementiert
+
+3.0.1.0 03.01.2014
+- Test/Anpassung auf 4.8 / 5.0
+- kleine Schnheitskorrekturen im Modul
+
+3.0.0.1
+- Bugfix, mit angeschaltetem Modul wurde ein Fehler beim Registrieren erzeugt, Kunde wurde angelegt, jedoch fehlten einige Kundendaten, er bekam im Frontend eine Fehlermeldung und er wurde nicht automatisch eingeloggt
+
+3.0.0.0 30.04.2013
+- Anpassung fr PE/CE 4.7 - EE 5.0
+- halbautomatische Installation
+- Verwaltung ber Lizenzschlssel
+- Verhinderung von Betrugsversuchen
+
+2.2.2
+- fr 4.6, nur noch lauffhig ab 4.5
+- E-Mails werden in der History angelegt
+- Zustzliche Option um Kunden ohne Kundenkonto auszuschlieen
+
+2.2.1
+- Bug mit E-Mails in anderen Sprachen,
+- Hilfetexte
+- Prfung ob generierter Gutscheincode schon vorhanden ist
+
+2.2.0
+- Anpassung an 4.5.x, eigener Adminbereich,
+
+2.0
+- Komplette berarbeitung des Moduls fr OXID4
+
+1.3
+- Geburtstagsgutscheine knnen zeitlich begrenzt werden
+
+1.2
+- Mailtemplates werden nun in verschiedenen Sprachen geschickt
+
+1.1
+- Im Template werden jetzt die Rabatte automatisch eingetragen.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a81890d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,16 @@
+# D³ Geburtstagsgutscheine für OXID eShop
+Bereiten Sie Ihrem Kunden mit einem automatisch generierten Geburtstagsgutschein eine Freude.
+
+## Systemanforderungen:
+- installierter OXID eShop
+- PHP-Version, für die Installationspakete verfügbar sind
+- Installation via Composer
+- ionCubeLoader
+- D3 Modul Connector
+
+Die jeweils geforderten Versionen und sonstige Anforderungen entnehmen Sie bitte der Dokumentation im docs-Verzeichnis dieses Paketes.
+
+## Installation:
+
+Verwenden Sie zur Installation bitte immer unser Quellenverzeichnis unter https://satis.oxidmodule.com.
+Eine detaillierte Installationsanleitung finden Sie im docs-Verzeichnis dieses Pakets.
\ No newline at end of file
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..a46f98d
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,45 @@
+{
+ "name": "d3/birthdayvoucher",
+ "description": "Birthdayvoucher.",
+ "type": "oxideshop-module",
+ "keywords": [
+ "oxid",
+ "modules",
+ "eShop",
+ "d3",
+ "Premiumpoints"
+ ],
+ "authors": [
+ {
+ "name": "D3 Data Development (Inh. Thomas Dartsch)",
+ "email": "info@shopmodule.com",
+ "homepage": "http://www.d3data.com",
+ "role": "Owner"
+ }
+ ],
+ "support": {
+ "email": "support@shopmodule.com"
+ },
+ "homepage": "https://www.oxidmodule.com/",
+ "license": [
+ "proprietary"
+ ],
+ "suggest": {
+ },
+ "extra": {
+ "oxideshop": {
+ "source-directory": "/src",
+ "target-directory": "d3/birthdayvoucher"
+ }
+ },
+ "require": {
+ "php": "5.6 - 7.0", "ext-ionCube-Loader": "*",
+ "oxid-esales/oxideshop-ce": "6.0 - 6.2",
+ "d3/modcfg": ">=5.1.0.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "D3\\Birthdayvoucher\\": "../../../source/modules/d3/birthdayvoucher"
+ }
+ }
+}
diff --git a/docs/CMS/d3birthdayvouchermail.txt b/docs/CMS/d3birthdayvouchermail.txt
new file mode 100644
index 0000000..9576be9
--- /dev/null
+++ b/docs/CMS/d3birthdayvouchermail.txt
@@ -0,0 +1,34 @@
+Ident:
+d3birthdayvouchermail
+
+Titel:
+Geburtstags-EMail Text
+
+
+Content:
+Guten Tag [{ $user->oxuser__oxsal->value|oxmultilangsal }] [{ $user->oxuser__oxfname->value }] [{ $user->oxuser__oxlname->value }],
+
+
Ihr [{ $shop->oxshops__oxname->value }] mchte Ihnen ganz herzlich zum Geburtstag gratulieren.
+
+Als kleines Prsent senden wir Ihnen im Folgenden einen Gutschein im Wert von
+[{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{if $voucherserie->oxvoucherseries__oxdiscounttype->value == "absolute"}]EUR[{else}]%[{/if}] zu.
+
+
Ihre persnlicher Geburtstagsgutschein-Nr. lautet: [{$voucher->oxvouchers__oxvouchernr->value}]*
+
+Und so einfach gehts:
+Gehen Sie in unseren Onlineshop unter [{ $shop->oxshops__oxurl->value }].
+Stbern Sie in Ruhe unter der Vielzahl an Artikeln und legen Sie die gewnschten Produkte in den Warenkorb.
+Klicken Sie nun auf den Warenkorb um eine bersicht Ihrer gewhlten Artikel zu sehen.
+Unter der Artikelliste finden Sie das Eingabefeld fr den Gutscheincode.
+Geben Sie diesen dort ein, besttigen Sie die Eingabe und fhren Sie den Bestellvorgang ganz normal durch.
+In Schritt 4 des Bestellvorgangs sehen Sie nun in der Zusammenfassung den abgezogenen Gutscheinwert.
+
+Noch einen schnen Tag wnscht
+
Ihr [{ $shop->oxshops__oxname->value }] Team
+
+
+
+*Der Gutschein ist gltig bis: [{$voucher->oxvouchers__d3voucherexpirationdate->value|date_format:"%d.%m.%Y"}].
+
+
+
diff --git a/docs/CMS/d3birthdayvoucherplainmail.txt b/docs/CMS/d3birthdayvoucherplainmail.txt
new file mode 100644
index 0000000..4e18bac
--- /dev/null
+++ b/docs/CMS/d3birthdayvoucherplainmail.txt
@@ -0,0 +1,33 @@
+Ident:
+d3birthdayvoucherplainmail
+
+Title:
+Geburtstags-EMail Plain-Text
+
+Content:
+Guten Tag [{ $user->oxuser__oxsal->value|oxmultilangsal }] [{ $user->oxuser__oxfname->value }] [{ $user->oxuser__oxlname->value }],
+
+Ihr [{ $shop->oxshops__oxname->value }] mchte Ihnen ganz herzlich zum Geburtstag gratulieren.
+
+Als kleines Prsent senden wir Ihnen im Folgenden einen Gutschein im Wert von [{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{if $voucherserie->oxvoucherseries__oxdiscounttype->value == "absolute"}]EUR[{else}]%[{/if}] zu.
+
+
+Ihre persnlicher Geburtstagsgutschein-Nr. lautet: [{$voucher->oxvouchers__oxvouchernr->value}]*
+
+Und so einfach gehts:
+Gehen Sie in unseren Onlineshop unter [{ $shop->oxshops__oxurl->value }].
+Stbern Sie in Ruhe unter der Vielzahl an Artikeln und legen Sie die gewnschten Produkte in den Warenkorb.
+Klicken Sie nun auf den Warenkorb um eine bersicht Ihrer gewhlten Artikel zu sehen.
+Unter der Artikelliste finden Sie das Eingabefeld fr den Gutscheincode.
+Geben Sie diesen dort ein, besttigen Sie die Eingabe und fhren Sie den Bestellvorgang ganz normal durch.
+
+In Schritt 4 des Bestellvorgangs sehen Sie nun in der Zusammenfassung den abgezogenen Gutscheinwert.
+
+Noch einen schnen Tag wnscht
+
+Ihr [{ $shop->oxshops__oxname->value }] Team
+
+
+*Der Gutschein ist gltig bis: [{$voucher->oxvouchers__d3voucherexpirationdate->value|date_format:"%d.%m.%Y"}].
+
+
diff --git a/docs/CMS/d3birthdayvouchersubjectmail.txt b/docs/CMS/d3birthdayvouchersubjectmail.txt
new file mode 100644
index 0000000..f214a96
--- /dev/null
+++ b/docs/CMS/d3birthdayvouchersubjectmail.txt
@@ -0,0 +1,8 @@
+Ident:
+d3birthdayvouchersubjectmail
+
+Title:
+Geburtstags-EMail Betreff-Text
+
+Content:
+Ihr Gutschein zum Geburtstag!
\ No newline at end of file
diff --git a/docs/CMS/d3bvreminderexpirationmailhtml.txt b/docs/CMS/d3bvreminderexpirationmailhtml.txt
new file mode 100644
index 0000000..2c45f0b
--- /dev/null
+++ b/docs/CMS/d3bvreminderexpirationmailhtml.txt
@@ -0,0 +1,19 @@
+Ident:
+d3bvreminderexpirationmailhtml
+
+Titel:
+Geburtstags-EMail Text
+
+
+Content:
+Guten Tag [{ $user->oxuser__oxsal->value|oxmultilangsal }] [{ $user->oxuser__oxfname->value }] [{ $user->oxuser__oxlname->value }],
+
+
+Ihr Geburtstagsgutschein verfllt am [{$voucher->oxvouchers__d3voucherexpirationdate->value|date_format:"%d.%m.%Y"}]! Sichern Sie sich noch schnell den [{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{$currency->sign}] Geburtstagsrabatt!
+
+
+ffnen Sie unseren Shop unter [{$shop->oxshops__oxurl->value}],legen Sie einen gewnschten Artikel in den Warenkorb und tragen Sie dort die folgende Gutscheinnummer ein: [{$voucher->oxvouchers__oxvouchernr->value}]
+
+
+Noch einen schnen Tag wnscht
+
Ihr [{ $shop->oxshops__oxname->value }] Team
\ No newline at end of file
diff --git a/docs/CMS/d3bvreminderexpirationmailplain.txt b/docs/CMS/d3bvreminderexpirationmailplain.txt
new file mode 100644
index 0000000..e9c51f1
--- /dev/null
+++ b/docs/CMS/d3bvreminderexpirationmailplain.txt
@@ -0,0 +1,18 @@
+Ident:
+d3bvreminderexpirationmailplain
+
+Titel:
+Geburtstags-EMail Text
+
+
+Content:
+Guten Tag [{ $user->oxuser__oxsal->value|oxmultilangsal }] [{ $user->oxuser__oxfname->value }] [{ $user->oxuser__oxlname->value }],
+
+Ihr Geburtstagsgutschein verfllt am [{$voucher->oxvouchers__d3voucherexpirationdate->value|date_format:"%d.%m.%Y"}]! Sichern Sie sich noch schnell den [{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{$currency->sign}] Geburtstagsrabatt!
+
+ffnen Sie unseren Shop unter [{$shop->oxshops__oxurl->value}],legen Sie einen gewnschten Artikel in den Warenkorb und tragen Sie dort die folgende Gutscheinnummer ein: [{$voucher->oxvouchers__oxvouchernr->value}]
+
+
+Noch einen schnen Tag wnscht
+Ihr [{ $shop->oxshops__oxname->value }] Team
+
diff --git a/docs/CMS/d3bvreminderexpirationsubject.txt b/docs/CMS/d3bvreminderexpirationsubject.txt
new file mode 100644
index 0000000..6d57cdb
--- /dev/null
+++ b/docs/CMS/d3bvreminderexpirationsubject.txt
@@ -0,0 +1,8 @@
+Ident:
+d3bvreminderexpirationsubject
+
+Title:
+Ihr Geburtstagsgutschein ist nur noch wenige Tage gltig!
+
+Content:
+Ihr Geburtstagsgutschein ist nur noch wenige Tage gltig!
\ No newline at end of file
diff --git a/docs/CMS/d3bvremindermailhtml.txt b/docs/CMS/d3bvremindermailhtml.txt
new file mode 100644
index 0000000..5107cc9
--- /dev/null
+++ b/docs/CMS/d3bvremindermailhtml.txt
@@ -0,0 +1,19 @@
+Ident:
+d3bvremindermailhtml
+
+Title:
+Erinnerung: Sie haben vor wenigen Tagen einen Geburtstagsgutschein erhalten:
+
+Content:
+Guten Tag [{$user->oxuser__oxsal->value|oxmultilangsal}] [{$user->oxuser__oxfname->value}] [{$user->oxuser__oxlname->value}],
+
+Ihr Geburtstagsgutschein wurde noch nicht eingelst! Sichern Sie sich schnell noch die [{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{$currency->sign}] Geburtstagsrabatt!
+
+
+ffnen Sie unseren Shop unter [{$shop->oxshops__oxurl->value}], legen Sie einen gewnschten Artikel in den Warenkorb und tragen Sie dort die folgende Gutscheinnummer ein: [{$voucher->oxvouchers__oxvouchernr->value}]
+
+
+
+Noch einen schnen Tag wnscht
+
Ihr [{$shop->oxshops__oxname->value}] Team
+
diff --git a/docs/CMS/d3bvremindermailplain.txt b/docs/CMS/d3bvremindermailplain.txt
new file mode 100644
index 0000000..219f416
--- /dev/null
+++ b/docs/CMS/d3bvremindermailplain.txt
@@ -0,0 +1,17 @@
+Ident:
+d3bvremindermailplain
+
+Title:
+Geburtstags-EMail Plain-Text
+
+Content:
+Guten Tag [{$user->oxuser__oxsal->value|oxmultilangsal}] [{$user->oxuser__oxfname->value}] [{$user->oxuser__oxlname->value}],
+
+Ihr Geburtstagsgutschein wurde noch nicht eingelst! Sichern Sie sich schnell noch die [{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{$currency->sign}] Geburtstagsrabatt!
+
+ffnen Sie unseren Shop unter [{$shop->oxshops__oxurl->value}], legen Sie einen gewnschten Artikel in den Warenkorb und tragen Sie dort die folgende Gutscheinnummer ein: [{$voucher->oxvouchers__oxvouchernr->value}]
+
+
+Noch einen schnen Tag wnscht
+
+Ihr [{$shop->oxshops__oxname->value}] Team
\ No newline at end of file
diff --git a/docs/CMS/d3bvremindersubject.txt b/docs/CMS/d3bvremindersubject.txt
new file mode 100644
index 0000000..792a7f2
--- /dev/null
+++ b/docs/CMS/d3bvremindersubject.txt
@@ -0,0 +1,8 @@
+Ident:
+d3bvremindersubject
+
+Title:
+Geburtstags-EMail Betreff-Text
+
+Content:
+Erinnerung: Sie haben vor wenigen Tagen einen Geburtstagsgutschein erhalten:
\ No newline at end of file
diff --git a/docs/Documentation/changelog/Changelog.html b/docs/Documentation/changelog/Changelog.html
new file mode 100644
index 0000000..279cf0a
--- /dev/null
+++ b/docs/Documentation/changelog/Changelog.html
@@ -0,0 +1,197 @@
+
+
+
+ Changelog - Geburtstagsgutscheine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
neue Funktion Ablaufwarnung für Gutscheine mit Ablaufdatum
+
neue Funtkion Erinnerungsfunktion für Gutscheine ohne Ablaufdatum
+
+
3.1.0.4 02.09.2016
+
+
Test und Anpassung auf Version 4.10 / 5.3
+
Bugfix: Logout im Admin, im Zusammenhang mit dem aktuellen Modul-Connnector und dem neuen Admin-Theme
+
neuer Menüpunkt Logmeldungen im Modul
+
Gutscheine haben jetzt ein Gültig-Bis Datum
+
Logmeldungen des Moduls sind jetzt über die Menüstruktur des Moduls erreichbar
+
+
3.1.0.3 15.07.2015
+
+
Test / Anpassung auf 4.9 / 5.2
+
Test / Anpassung auf PHP 5.4 und PHP 5.6
+
+
3.1.0.2 12.08.2.14
+
+
Fehler bei Speicherung der Kundengruppen
+
+
3.1.0.1 28.04.2014
+
+
Änderung Precheck
+
+
3.1.0.0 26.02.2014
+
+
Testmodus implementiert
+
Einschränkungen auf Kundengruppen
+
Einschränkung für E-Mailadressen
+
Logging erweitert
+
Altersbegrenzung implementiert
+
+
3.0.1.0 03.01.2014
+
+
Test/Anpassung auf 4.8 / 5.0
+
kleine Schönheitskorrekturen im Modul
+
+
3.0.0.1
+
+
Bugfix, mit angeschaltetem Modul wurde ein Fehler beim Registrieren erzeugt, Kunde wurde angelegt, jedoch fehlten einige Kundendaten, er bekam im Frontend eine Fehlermeldung und er wurde nicht automatisch eingeloggt
+
+
3.0.0.0 30.04.2013
+
+
Anpassung für PE/CE 4.7 - EE 5.0
+
halbautomatische Installation
+
Verwaltung über Lizenzschlüssel
+
Verhinderung von Betrugsversuchen
+
+
2.2.2
+
+
für 4.6, nur noch lauffähig ab 4.5
+
E-Mails werden in der History angelegt
+
Zusätzliche Option um Kunden ohne Kundenkonto auszuschließen
+
+
2.2.1
+
+
Bug mit E-Mails in anderen Sprachen,
+
Hilfetexte
+
Prüfung ob generierter Gutscheincode schon vorhanden ist
+
+
2.2.0
+
+
Anpassung an 4.5.x, eigener Adminbereich,
+
+
2.0
+
+
Komplette Überarbeitung des Moduls für OXID4
+
+
1.3
+
+
Geburtstagsgutscheine können zeitlich begrenzt werden
+
+
1.2
+
+
Mailtemplates werden nun in verschiedenen Sprachen geschickt
+
+
1.1
+
+
Im Template werden jetzt die Rabatte automatisch eingetragen.
Im Ordner docs finden Sie den Ordner Precheck. Mit dessen Inhalt können Sie die Mindestanforderungen auf Ihrem
+Server direkt prüfen. Kopieren Sie die enthaltenen Dateien und Ordner unverändert in das source-Verzeichnis Ihres
+installierten OXID-Shops. Rufen Sie nun über Ihren Browser die folgende Adresse auf:
+ Modul-Connector (kostenfrei bei erhältlich) ab Version 5.1.0.0
+
Installation via Composer
+
mindestens ein freier Cronjob zur automatischen Ausführung der angelegten Aufgaben
+
Beachten Sie, dass die Ihnen vorliegende Modulversion entsprechend für PHP 5.6 oder PHP 7.0 sowie dem auf Ihrem Server vorhandenen Decoder (ionCube Loader) kompatibel ist. Im Zweifelsfall kontaktieren Sie uns und nennen den für Ihren Shop genutzten Decoder und die PHP-Version.
+
Kontrollieren Sie bitte auch, ob diese Modulversion für die von Ihnen eingesetzte Shopedition (Professional Edition (PE) oder Enterprise Edition (EE)) ausgelegt ist.
Installieren Sie bitte zuerst unseren Modul-Connector in der erforderlichen Version.
+Ob dies evtl. schon geschehen ist, können Sie im Adminbereich Ihres Shops prüfen. Existiert der Punkt Module -> Modul-Connector, können Sie die installierte Version unter Bibliotheksverwaltung ablesen. Fehlt dieser Eintrag, installieren Sie den kostenfreien Connector.
+Informationen zu dessen Installation finden Sie auf unserer Homepage.
+
Klicken Sie auf den Reiter Downloads und wählen dort das für Ihre Installation passende Paket.
+
alte Modul-Dateien entfernen
+
PHP-Dateien, Templates und Moduleinträge aus einer älteren Modul-Version als 5.0.0.0 müssen entfernt werden. Bestehende Einträge in der Datenbank bleiben weiterhin bestehen und müssen nicht entfernt werden.
Löschen Sie den Ordner birthdayvoucher und seine enthaltenen Elemente aus dem Verzeichnis source/modules/d3 Ihres Shops.
+Bestätigen Sie anschließend im Shopadmin unter Erweiterungen -> Module -> Installierte Shop-Module die Nachricht:
+
+
Es gibt registrierte Erweiterungen im eShop, deren Verzeichnis nicht vorhanden ist.
+Möchten Sie alle Modulinformationen einschließlich Konfigurationseinstellungen und Blockinformationen für Templates löschen?
Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres Shops (oberhalb des source- und vendor-Verzeichnisses). Führen Sie Sie dort diesen Befehl aus:
Achten Sie darauf, dass die Installation über Composer mit derselben PHP-Version erfolgt, in der auch Ihr Shop installiert ist. Sie erhalten sonst unpassende Modulpakete.
+
+
+
Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die Dokumentation von Composer.
Deaktivieren Sie das Modul Geburtstagsgutscheine über den Shopadmin Erweiterungen -> Module. Klicken Sie nach Auswahl von Geburtstagsgutscheine auf den Button Deaktivieren.
Deaktivieren Sie alle vorhandenen Erweiterungen, die auf dem Modul Geburtstagsgutscheine aufbauen und löschen bitte alle Dateien dieser Erweiterungen. Entfernen Sie ebenfalls alle individuellen Templateanpassungen für dieses Modul.
Leeren Sie das Verzeichnis tmp über Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren.
+Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch.
+
+
Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus.
Mit der Installation des Moduls wurden CMS-Seiten angelegt. CMS-Texte sowie Sprachbausteine werden im Modul nur in der Standardsprache 1 (Deutsch) mitgeliefert.
+Passen Sie den Inhalt bitte an Ihre Wünsche an.
Die Dateien für den CronJob befinden Sich im Verzeichnis /source/modules/d3/birthdayvoucher/public/. Die Datei d3_birthday_voucher.sh muss vor der Ausführung angepasst werden! Diese sh-Datei bitte mit einem txt-Editor öffnen und den Pfad zur startenden php-Datei anpassen. Ggf. muss der Pfad für den Aufruf des Cronjobs ebenfalls angepasst werden.
+
Die Datei d3_birthday_voucher.sh ist u.a. für den Provider Profihost einsetzbar. Bei anderen Providern muss der Inhalt ggf. angepasst werden!
+
Details zur Einrichtung erfahren Sie von Ihrem Provider. Technische Nachfragen richten Sie bitte direkt an den Support Ihres Providers, bei dem Ihr Shop gehostet ist.
+
+
Sie sollten unbedingt den Aufruf von .sh-Dateien via Browser verhindern, so dass kein Unbefugter die Datei von außen aufrufen kann. Dazu können Sie z.B. die .htaccess-Datei des Shops um folgende Zeilen erweitern:
Leeren Sie das Verzeichnis tmp über Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren.
+Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch.
+
+
Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus.
Das Modul verwendet Lizenzschlüssel, um die Lizenzverwaltung für Sie und auch für uns einfacher zu gestalten. Hierbei haben Sie je nach Modul die Wahl zwischen einer kostenfreien Testlizenz und einer Lizenz für den Einsatz im Livebetrieb.
+
Rufen Sie zum Anfordern des Lizenzschlüssels die Modulverwaltung im Adminbereich unter Module -> Modul-Connector -> Modulverwaltung auf. Klappen Sie den Eintrag des jeweiligen Moduls aus.
+Sofern erforderlich, können Sie hier den Lizenzassistenten starten, der schnell und einfach ihr Modul aktiviert.
Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres Shops (oberhalb des source- und vendor-Verzeichnisses). Senden Sie dort diesen Befehl ab:
Achten Sie darauf, dass die Installation über Composer mit derselben PHP-Version erfolgt, in der auch Ihr Shop installiert ist. Sie erhalten sonst unpassende Modulpakete.
+
+
+
Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die Dokumentation von Composer.
Manche Provider erfordern besondere Einstellungen für installierte Module. Ob Ihr Anbieter spezielle Anforderungen stellt und wie diese aussehen, kontrollieren Sie bitte in unserer FAQ.
Direkt nach der Modulaktivierung startet der Assistent, der Sie durch die Shopanpassung führt. Darin können Sie verschiedene Optionen der Installation wählen.
+
Den Installationsassistenten finden Sie auch unter den Menüpunkten Admin -> Module -> Modul-Connector -> Modulverwaltung -> Modulinstallation.
+
Bei tiefgreifenden Änderungen an Ihrem Shop (z.B. Hinzufügen weiterer Sprachen oder Mandanten) rufen Sie den Installationsassistenten bitte erneut auf, um dann eventuell notwendige Nacharbeiten für das Modul ausführen zu lassen.
+
Möchten Sie die Änderungen manuell installieren, können Sie sich über diesen Assistenten ebenfalls eine Checkliste erstellen.
Leeren Sie das Verzeichnis tmp über Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren.
+Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch.
+
+
Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus.
Das Modul ist für die Verwendung mit den folgenden OXID-Themes vorbereitet:
+
+
Flow
+
Azure
+
+
Verwenden Sie in Ihrem Shop ein angepasstes Verzeichnis für Ihre Templates (neues Theme oder CustomTheme), kopieren Sie die Templates und / oder die CSS-Dateien in die neuen Ordner.
+Ähnelt Ihr neues Theme technisch einem der OXID-Originale, können Sie dieses darauf umleiten. Childs von originalen OXID- Themes benötigen keine Umleitung.
+
Weitere Informationen zur Umleitung finden Sie in unserer FAQ.
Dem Modul liegen CMS-Texte bei. Diese finden Sie im Verzeichnis /docs/CMS. Gleichen Sie die vorhandenen CMS-Texte in Ihrem Shop mit den beigelegten CMS-Texten ab. Der Dateiname entspricht dabei dem Ident (OXLOADID).
Die Dateien für den CronJob befinden Sich im Verzeichnis /source/modules/d3/birthdayvoucher/public/. Die Datei d3_birthday_voucher.sh muss vor der Ausführung angepasst werden! Diese sh-Datei bitte mit einem txt-Editor öffnen und den Pfad zur startenden php-Datei anpassen. Ggf. muss der Pfad für den Aufruf des Cronjobs ebenfalls angepasst werden.
+
Die Datei d3_birthday_voucher.sh ist u.a. für den Provider "Profihost" einsetzbar. Bei anderen Providern muss der Inhalt ggf. angepasst werden!
+
Technische Nachfragen richten Sie bitte direkt an den Support Ihres Providers, bei dem Ihr Shop gehostet ist.
+
+
Sie sollten unbedingt den Aufruf von .sh-Dateien via Browser verhindern, so dass kein Unbefugter die Datei von aussen aufrufen kann. Dazu können Sie z.B. die .htaccess-Datei des Shops um folgende Zeilen erweitern:
Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres
+Shops (oberhalb des source- und vendor-Verzeichnisses). Führen Sie Sie dort nacheinander folgende Befehle aus:
Achten Sie darauf, dass die Installation über Composer mit derselben PHP-Version erfolgt, in der auch Ihr Shop installiert ist. Sie erhalten sonst unpassende Modulpakete.
+
+
+
Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl bitte entsprechend ab. Für weitere Optionen dieses Befehls lesen Sie bitte die Dokumentation von Composer.
Die Einstellungen für das Modul werden ab Version 3.0 im Admin unter
+ Module -> Geburtstagsgutscheine -> Konfiguration vorgenommen.
+
Die Einstellung bei älteren Modulen befand sich bisher in der Datei config_inc.php.
+Modul-Einstellung müssen somit übertragen werden und können anschließend aus der Datei config_inc.php entfernt werden.
+
Die Grund-Konfiguration des Moduls ab Version 3.0.0 ist schon in der Datenbank abgelegt und wird von der neuen Version erkannt
Ob Shopanpassungen notwendig sind, ist von der Versionsänderung des Moduls abhängig.
+
Möglicherweise sehen Sie nach dem Neuaktivieren des Moduls den Installationsassistent, der Sie durch die Änderungen führt. Folgen Sie dann den einzelnen Schritten. Möchten Sie die Änderungen manuell installieren, können Sie sich über diesen Assistenten ebenfalls eine Checkliste erstellen.
+
Wird der Assistent nicht gezeigt (Sie sehen wieder die Modulübersicht), waren keine Anpassungen am Shop notwendig.
+
Ob erforderliche Updates ausgeführt werden sollen, können Sie jederzeit im Adminbereich unter Module -> Modul-Connector -> Modulverwaltung -> Modulinstallation prüfen.
Leeren Sie das Verzeichnis tmp über Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren.
+Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch.
+
+
Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus.
Bei Bedarf bieten wir Ihnen auch gern die Installation des Moduls in Ihrem Shop an. Geben Sie uns bitte unter den unten genannten Kontaktdaten Bescheid.
+
Haben Sie Fragen oder Unklarheiten in Verbindung mit diesem Modul oder dessen Installation, stehen Ihnen Hilfetexte in unserer Modul-FAQ zur Verfügung. Finden Sie darin die benötigten Antworten nicht, kontaktieren Sie uns bitte unter den folgenden Möglichkeiten:
per Telefon: (+49) 37 21 / 26 80 90 zu unseren Bürozeiten
+
+
Geben Sie bitte an, wo und wie wir gegebenenfalls vorhandene Schwierigkeiten nachvollziehen können. Sind Ihre Fragen shopspezifisch, benötigen wir möglicherweise Zugangsdaten zum betreffenden Shop.
+
Wir wünschen Ihnen mit Ihrem Shop und dem Modul viel Erfolg!
';
+ }
+ }
+ }
+
+ $("body").addClass("with-search").scrollTop(0);
+ tipue_backdrop.show();
+ tipue_container.scrollTop(0);
+ tipue_container.show().html(output);
+ }
+
+ };
+
+})(jQuery);
diff --git a/docs/Documentation/tipuesearch/tipuesearch_content.json b/docs/Documentation/tipuesearch/tipuesearch_content.json
new file mode 100644
index 0000000..2202918
--- /dev/null
+++ b/docs/Documentation/tipuesearch/tipuesearch_content.json
@@ -0,0 +1 @@
+{"pages":[{"title":"<\/i> Geburtstagsgutscheine","text":"Kauf und weitere Informationen zum Modul Geburtstagsgutscheine finden Sie in unserem Shop: https:\/\/www.oxidmodule.com\/OXID-eShop\/Module\/Geburtstagsgutschein-fuer-Oxid-PE.html","tags":"","url":"index.html"},{"title":"Changelog","text":"4.0.0.0 04.07.2018 Umarbeitung f\u00fcr OXID 6 3.2.0.0 17.10.2016 neue Funktion Ablaufwarnung f\u00fcr Gutscheine mit Ablaufdatum neue Funtkion Erinnerungsfunktion f\u00fcr Gutscheine ohne Ablaufdatum 3.1.0.4 02.09.2016 Test und Anpassung auf Version 4.10 \/ 5.3 Bugfix: Logout im Admin, im Zusammenhang mit dem aktuellen Modul-Connnector und dem neuen Admin-Theme neuer Men\u00fcpunkt Logmeldungen im Modul Gutscheine haben jetzt ein G\u00fcltig-Bis Datum Logmeldungen des Moduls sind jetzt \u00fcber die Men\u00fcstruktur des Moduls erreichbar 3.1.0.3 15.07.2015 Test \/ Anpassung auf 4.9 \/ 5.2 Test \/ Anpassung auf PHP 5.4 und PHP 5.6 3.1.0.2 12.08.2.14 Fehler bei Speicherung der Kundengruppen 3.1.0.1 28.04.2014 \u00c4nderung Precheck 3.1.0.0 26.02.2014 Testmodus implementiert Einschr\u00e4nkungen auf Kundengruppen Einschr\u00e4nkung f\u00fcr E-Mailadressen Logging erweitert Altersbegrenzung implementiert 3.0.1.0 03.01.2014 Test\/Anpassung auf 4.8 \/ 5.0 kleine Sch\u00f6nheitskorrekturen im Modul 3.0.0.1 Bugfix, mit angeschaltetem Modul wurde ein Fehler beim Registrieren erzeugt, Kunde wurde angelegt, jedoch fehlten einige Kundendaten, er bekam im Frontend eine Fehlermeldung und er wurde nicht automatisch eingeloggt 3.0.0.0 30.04.2013 Anpassung f\u00fcr PE\/CE 4.7 - EE 5.0 halbautomatische Installation Verwaltung \u00fcber Lizenzschl\u00fcssel Verhinderung von Betrugsversuchen 2.2.2 f\u00fcr 4.6, nur noch lauff\u00e4hig ab 4.5 E-Mails werden in der History angelegt Zus\u00e4tzliche Option um Kunden ohne Kundenkonto auszuschlie\u00dfen 2.2.1 Bug mit E-Mails in anderen Sprachen, Hilfetexte Pr\u00fcfung ob generierter Gutscheincode schon vorhanden ist 2.2.0 Anpassung an 4.5.x, eigener Adminbereich, 2.0 Komplette \u00dcberarbeitung des Moduls f\u00fcr OXID4 1.3 Geburtstagsgutscheine k\u00f6nnen zeitlich begrenzt werden 1.2 Mailtemplates werden nun in verschiedenen Sprachen geschickt 1.1 Im Template werden jetzt die Rabatte automatisch eingetragen.","tags":"","url":"changelog\/Changelog.html"},{"title":"Systemanforderungen","text":"PHP Version 5.6.x bis PHP 7.0.x PHP Decoder installierter ionCube Loader *Shopversionen \/ -editionen OXID eShop Professional Edition in Version 6.0.x oder OXID eShop Enterprise Edition in Version 6.0.x Modul-Connector (kostenfrei bei erh\u00e4ltlich) ab Version 5.1.0.0 Installation via Composer mindestens ein freier Cronjob zur automatischen Ausf\u00fchrung der angelegten Aufgaben Beachten Sie, dass die Ihnen vorliegende Modulversion entsprechend f\u00fcr PHP 5.6 oder PHP 7.0 sowie dem auf Ihrem Server vorhandenen Decoder (ionCube Loader) kompatibel ist. Im Zweifelsfall kontaktieren Sie uns und nennen den f\u00fcr Ihren Shop genutzten Decoder und die PHP-Version. Kontrollieren Sie bitte auch, ob diese Modulversion f\u00fcr die von Ihnen eingesetzte Shopedition (Professional Edition (PE) oder Enterprise Edition (EE)) ausgelegt ist.","tags":"","url":"installation\/Anforderungen\/Systemanforderungen.html"},{"title":"Anforderungspr\u00fcfung","text":"Im Ordner docs finden Sie den Ordner Precheck. Mit dessen Inhalt k\u00f6nnen Sie die Mindestanforderungen auf Ihrem Server direkt pr\u00fcfen. Kopieren Sie die enthaltenen Dateien und Ordner unver\u00e4ndert in das source-Verzeichnis Ihres installierten OXID-Shops. Rufen Sie nun \u00fcber Ihren Browser die folgende Adresse auf: http:\/\/www.ihreadresse.de\/d3precheck.php Ihnen werden nun Details und Ergebnisse zur Anforderungspr\u00fcfung angezeigt. L\u00f6schen Sie diese Scripte mit Hilfe der in der \u00dcbersicht enthaltenen Funktion bitte unbedingt nach der Pr\u00fcfung wieder von Ihrem Server.","tags":"","url":"installation\/Anforderungen\/Anforderungspruefung.html"},{"title":"Vorbereitungen","text":"Modul-Connector Installieren Sie bitte zuerst unseren Modul-Connector in der erforderlichen Version. Ob dies evtl. schon geschehen ist, k\u00f6nnen Sie im Adminbereich Ihres Shops pr\u00fcfen. Existiert der Punkt Module -> Modul-Connector, k\u00f6nnen Sie die installierte Version unter Bibliotheksverwaltung ablesen. Fehlt dieser Eintrag, installieren Sie den kostenfreien Connector. Informationen zu dessen Installation finden Sie auf unserer Homepage. Klicken Sie auf den Reiter Downloads und w\u00e4hlen dort das f\u00fcr Ihre Installation passende Paket. alte Modul-Dateien entfernen PHP-Dateien, Templates und Moduleintr\u00e4ge aus einer \u00e4lteren Modul-Version als 5.0.0.0 m\u00fcssen entfernt werden. Bestehende Eintr\u00e4ge in der Datenbank bleiben weiterhin bestehen und m\u00fcssen nicht entfernt werden.","tags":"","url":"installation\/Anforderungen\/Vorbereitungen.html"},{"title":"Neuinstallation","text":"php composer config repositories.d3 composer https:\/\/satis.oxidmodule.com php composer require d3\/birthdayvoucher \u2013-update-no-dev Detailliertere Angaben zur Installation entnehmen Sie bitte den folgenden Schritten.","tags":"","url":"installation\/Neuinstallation\/index.html"},{"title":"Paketquelle hinzuf\u00fcgen","text":"Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres Shops (oberhalb des source- und vendor-Verzeichnisses). Senden Sie dort diesen Befehl ab: php composer config repositories.d3 composer https:\/\/satis.oxidmodule.com Achten Sie darauf, dass die Installation \u00fcber Composer mit derselben PHP-Version erfolgt, in der auch Ihr Shop installiert ist. Sie erhalten sonst unpassende Modulpakete. Ben\u00f6tigt Ihre Installation einen anderen Aufruf von Composer, \u00e4ndern Sie den Befehl bitte entsprechend ab. F\u00fcr weitere Optionen dieses Befehls lesen Sie bitte die Dokumentation von Composer.","tags":"","url":"installation\/Neuinstallation\/Paketquelle_hinzufuegen.html"},{"title":"Modul zur Installation hinzuf\u00fcgen","text":"F\u00fchren Sie in der Konsole im selben Verzeichnis diesen Befehl aus, um das Modul Geburtstagsgutscheine zur Installation hinzuzuf\u00fcgen: php composer require d3\/birthdayvoucher --update-no-dev","tags":"","url":"installation\/Neuinstallation\/Modul_hinzufuegen.html"},{"title":"Providerspezifische Installation","text":"Manche Provider erfordern besondere Einstellungen f\u00fcr installierte Module. Ob Ihr Anbieter spezielle Anforderungen stellt und wie diese aussehen, kontrollieren Sie bitte in unserer FAQ.","tags":"","url":"installation\/Neuinstallation\/Providerspezifische_Installation.html"},{"title":"Verwendung eigener Themes","text":"Das Modul ist f\u00fcr die Verwendung mit den folgenden OXID-Themes vorbereitet: Flow Azure Verwenden Sie in Ihrem Shop ein angepasstes Verzeichnis f\u00fcr Ihre Templates (neues Theme oder CustomTheme), kopieren Sie die Templates und \/ oder die CSS-Dateien in die neuen Ordner. \u00c4hnelt Ihr neues Theme technisch einem der OXID-Originale, k\u00f6nnen Sie dieses darauf umleiten. Childs von originalen OXID- Themes ben\u00f6tigen keine Umleitung. Weitere Informationen zur Umleitung finden Sie in unserer FAQ.","tags":"","url":"installation\/Neuinstallation\/Verwendung_eigener_Themes.html"},{"title":"Modul im Shop aktivieren","text":"Aktivieren Sie das Modul \u00fcber den Shopadmin Erweiterungen -> Module. Klicken Sie nach Auswahl von Geburtstagsgutscheine auf den Button Aktivieren. Enterprise Editon: Achten Sie darauf, dass das Modul in weiteren Shops (Mall) ebenfalls aktiviert werden muss, um dessen Funktion dort auch zu nutzen.","tags":"","url":"installation\/Neuinstallation\/Modul_im_Shop_aktivieren.html"},{"title":"Shopanpassungen installieren","text":"Direkt nach der Modulaktivierung startet der Assistent, der Sie durch die Shopanpassung f\u00fchrt. Darin k\u00f6nnen Sie verschiedene Optionen der Installation w\u00e4hlen. Den Installationsassistenten finden Sie auch unter den Men\u00fcpunkten Admin -> Module -> Modul-Connector -> Modulverwaltung -> Modulinstallation. Bei tiefgreifenden \u00c4nderungen an Ihrem Shop (z.B. Hinzuf\u00fcgen weiterer Sprachen oder Mandanten) rufen Sie den Installationsassistenten bitte erneut auf, um dann eventuell notwendige Nacharbeiten f\u00fcr das Modul ausf\u00fchren zu lassen. M\u00f6chten Sie die \u00c4nderungen manuell installieren, k\u00f6nnen Sie sich \u00fcber diesen Assistenten ebenfalls eine Checkliste erstellen.","tags":"","url":"installation\/Neuinstallation\/Shopanpassungen_installieren.html"},{"title":"CMS-Seiten","text":"Mit der Installation des Moduls wurden CMS-Seiten angelegt. CMS-Texte sowie Sprachbausteine werden im Modul nur in der Standardsprache 1 (Deutsch) mitgeliefert. Passen Sie den Inhalt bitte an Ihre W\u00fcnsche an. Nachfolgend die Liste mit den Idents (OXLOADID): Idents Idents d3birthdayvouchermail d3bvreminderexpirationsubject d3birthdayvoucherplainmail d3bvremindermailhtml d3birthdayvouchersubjectmail d3bvreminderexpirationmailhtml d3bvreminderexpirationmailhtml d3bvremindermailplain d3bvreminderexpirationmailplain d3bvremindersubject","tags":"","url":"installation\/Neuinstallation\/CMS-Seiten.html"},{"title":"Cronjob anpassen \/ automatische Vergabe der Geburtstagsgutscheine","text":"Die Dateien f\u00fcr den CronJob befinden Sich im Verzeichnis \/source\/modules\/d3\/birthdayvoucher\/public\/. Die Datei d3_birthday_voucher.sh muss vor der Ausf\u00fchrung angepasst werden! Diese sh-Datei bitte mit einem txt-Editor \u00f6ffnen und den Pfad zur startenden php-Datei anpassen. Ggf. muss der Pfad f\u00fcr den Aufruf des Cronjobs ebenfalls angepasst werden. Die Datei d3_birthday_voucher.sh ist u.a. f\u00fcr den Provider Profihost einsetzbar. Bei anderen Providern muss der Inhalt ggf. angepasst werden! Details zur Einrichtung erfahren Sie von Ihrem Provider. Technische Nachfragen richten Sie bitte direkt an den Support Ihres Providers, bei dem Ihr Shop gehostet ist. Sie sollten unbedingt den Aufruf von .sh-Dateien via Browser verhindern, so dass kein Unbefugter die Datei von au\u00dfen aufrufen kann. Dazu k\u00f6nnen Sie z.B. die .htaccess-Datei des Shops um folgende Zeilen erweitern: <Files *.sh> Require all denied <\/Files>","tags":"","url":"installation\/Neuinstallation\/CronJobs.html"},{"title":"TMP-Ordner leeren","text":"Leeren Sie das Verzeichnis tmp \u00fcber Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren. Sofern die Views nicht automatisch aktualisiert werden, f\u00fchren Sie dies noch durch. Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, f\u00fchren Sie diese bitte aus.","tags":"","url":"installation\/Neuinstallation\/TMP-Ordner_leeren.html"},{"title":"Lizenzschl\u00fcssel eintragen","text":"Das Modul verwendet Lizenzschl\u00fcssel, um die Lizenzverwaltung f\u00fcr Sie und auch f\u00fcr uns einfacher zu gestalten. Hierbei haben Sie je nach Modul die Wahl zwischen einer kostenfreien Testlizenz und einer Lizenz f\u00fcr den Einsatz im Livebetrieb. Rufen Sie zum Anfordern des Lizenzschl\u00fcssels die Modulverwaltung im Adminbereich unter Module -> Modul-Connector -> Modulverwaltung auf. Klappen Sie den Eintrag des jeweiligen Moduls aus. Sofern erforderlich, k\u00f6nnen Sie hier den Lizenzassistenten starten, der schnell und einfach ihr Modul aktiviert.","tags":"","url":"installation\/Neuinstallation\/Lizenz_eintragen.html"},{"title":"Konfiguration einstellen","text":"Leeren Sie das Verzeichnis tmp \u00fcber Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren. Sofern die Views nicht automatisch aktualisiert werden, f\u00fchren Sie dies noch durch. Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, f\u00fchren Sie diese bitte aus.","tags":"","url":"installation\/Neuinstallation\/Konfiguration_einstellen.html"},{"title":"Updatef\u00e4higkeit","text":"Bei individuellen \u00e4nderungen von Moduldateien empfehlen wir, jeweils die \u00fcberladungsm\u00f6glichkeiten des Shops daf\u00fcr zu verwenden. So brauchen Sie die originalen Moduldateien nicht ver\u00e4ndern und erhalten sich so die Updatef\u00e4higkeit des Shops und des Moduls. Beachten Sie, dass Moduldateien bei Updateinstallationen \u00fcberschrieben werden. Weitere Informationen zu den \u00dcberladungsm\u00f6glichkeiten verschiedener Dateien finden Sie in unserer FAQ.","tags":"","url":"installation\/Neuinstallation\/Updatef\u00e4higkeit.html"},{"title":"Modul deaktivieren","text":"Deaktivieren Sie das Modul \u00fcber den Shopadmin Erweiterungen -> Module. Klicken Sie nach Auswahl von Geburtstagsgutscheine auf den Button Deaktivieren.","tags":"","url":"installation\/Update\/Modul_deaktivieren.html"},{"title":"Dateien erneuern","text":"Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres Shops (oberhalb des source- und vendor-Verzeichnisses). F\u00fchren Sie Sie dort nacheinander folgende Befehle aus: php composer update d3\/birthdayvoucher --no-dev php composer composer clear-cache Achten Sie darauf, dass die Installation \u00fcber Composer mit derselben PHP-Version erfolgt, in der auch Ihr Shop installiert ist. Sie erhalten sonst unpassende Modulpakete. Ben\u00f6tigt Ihre Installation einen anderen Aufruf von Composer, \u00e4ndern Sie den Befehl bitte entsprechend ab. F\u00fcr weitere Optionen dieses Befehls lesen Sie bitte die Dokumentation von Composer.","tags":"","url":"installation\/Update\/Dateien_erneuern.html"},{"title":"CMS-Texte anpassen","text":"Dem Modul liegen CMS-Texte bei. Diese finden Sie im Verzeichnis \/docs\/CMS. Gleichen Sie die vorhandenen CMS-Texte in Ihrem Shop mit den beigelegten CMS-Texten ab. Der Dateiname entspricht dabei dem Ident (OXLOADID).","tags":"","url":"installation\/Update\/CMS-Seiten.html"},{"title":"Cronjob anpassen \/ automatische Vergabe der Geburtstagsgutscheine","text":"Die Dateien f\u00fcr den CronJob befinden Sich im Verzeichnis \/source\/modules\/d3\/birthdayvoucher\/public\/. Die Datei d3_birthday_voucher.sh muss vor der Ausf\u00fchrung angepasst werden! Diese sh-Datei bitte mit einem txt-Editor \u00f6ffnen und den Pfad zur startenden php-Datei anpassen. Ggf. muss der Pfad f\u00fcr den Aufruf des Cronjobs ebenfalls angepasst werden. Die Datei d3_birthday_voucher.sh ist u.a. f\u00fcr den Provider "Profihost" einsetzbar. Bei anderen Providern muss der Inhalt ggf. angepasst werden! Technische Nachfragen richten Sie bitte direkt an den Support Ihres Providers, bei dem Ihr Shop gehostet ist. Sie sollten unbedingt den Aufruf von .sh-Dateien via Browser verhindern, so dass kein Unbefugter die Datei von aussen aufrufen kann. Dazu k\u00f6nnen Sie z.B. die .htaccess-Datei des Shops um folgende Zeilen erweitern: <Files *.sh> Require all denied <\/Files>","tags":"","url":"installation\/Update\/CronJobs.html"},{"title":"Providerspezifische Installation","text":"Manche Provider erfordern besondere Einstellungen f\u00fcr installierte Module. Ob Ihr Anbieter spezielle Anforderungen stellt und wie diese aussehen, kontrollieren Sie bitte unter http:\/\/faq.oxidmodule.com\/Modulinstallation\/providerspezifische-Installation\/.","tags":"","url":"installation\/Update\/Providerspezifische_Installation.html"},{"title":"Modulinformationen aktualisieren","text":"Wechseln Sie im Adminbereich zu Erweiterungen -> Module. Klicken Sie nach Auswahl von Geburtstagsgutscheine auf den Button Aktivieren.","tags":"","url":"installation\/Update\/Modulinformationen_aktualisieren.html"},{"title":"Shopanpassungen installierren","text":"Ob Shopanpassungen notwendig sind, ist von der Versions\u00e4nderung des Moduls abh\u00e4ngig. M\u00f6glicherweise sehen Sie nach dem Neuaktivieren des Moduls den Installationsassistent, der Sie durch die \u00c4nderungen f\u00fchrt. Folgen Sie dann den einzelnen Schritten. M\u00f6chten Sie die \u00c4nderungen manuell installieren, k\u00f6nnen Sie sich \u00fcber diesen Assistenten ebenfalls eine Checkliste erstellen. Wird der Assistent nicht gezeigt (Sie sehen wieder die Modul\u00fcbersicht), waren keine Anpassungen am Shop notwendig. Ob erforderliche Updates ausgef\u00fchrt werden sollen, k\u00f6nnen Sie jederzeit im Adminbereich unter Module -> Modul-Connector -> Modulverwaltung -> Modulinstallation pr\u00fcfen.","tags":"","url":"installation\/Update\/Shopanpassungen_installieren.html"},{"title":"TMP-Ordner leeren","text":"Leeren Sie das Verzeichnis tmp \u00fcber Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren. Sofern die Views nicht automatisch aktualisiert werden, f\u00fchren Sie dies noch durch. Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, f\u00fchren Sie diese bitte aus.","tags":"","url":"installation\/Update\/TMP-Ordner_leeren.html"},{"title":"Konfiguration einstellen","text":"Die Einstellungen f\u00fcr das Modul werden ab Version 3.0 im Admin unter Module -> Geburtstagsgutscheine -> Konfiguration vorgenommen. Die Einstellung bei \u00e4lteren Modulen befand sich bisher in der Datei config_inc.php. Modul-Einstellung m\u00fcssen somit \u00fcbertragen werden und k\u00f6nnen anschlie\u00dfend aus der Datei config_inc.php entfernt werden. Die Grund-Konfiguration des Moduls ab Version 3.0.0 ist schon in der Datenbank abgelegt und wird von der neuen Version erkannt","tags":"","url":"installation\/Update\/Konfiguration_einstellen.html"},{"title":"Modulerweiterungen deaktivieren und entfernen","text":"Deaktivieren Sie alle vorhandenen Erweiterungen, die auf dem Modul Geburtstagsgutscheine aufbauen und l\u00f6schen bitte alle Dateien dieser Erweiterungen. Entfernen Sie ebenfalls alle individuellen Templateanpassungen f\u00fcr dieses Modul.","tags":"","url":"installation\/Deinstallation\/Modulerweiterungen_deaktivieren_und_entfernen.html"},{"title":"Modul deaktivieren","text":"Deaktivieren Sie das Modul Geburtstagsgutscheine \u00fcber den Shopadmin Erweiterungen -> Module. Klicken Sie nach Auswahl von Geburtstagsgutscheine auf den Button Deaktivieren.","tags":"","url":"installation\/Deinstallation\/Modul_deaktivieren.html"},{"title":"Modul aus der Installation entfernen","text":"Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres Shops (oberhalb des source- und vendor-Verzeichnisses). F\u00fchren Sie Sie dort diesen Befehl aus: php composer remove d3\/birthdayvoucher --no-update Achten Sie darauf, dass die Installation \u00fcber Composer mit derselben PHP-Version erfolgt, in der auch Ihr Shop installiert ist. Sie erhalten sonst unpassende Modulpakete. Ben\u00f6tigt Ihre Installation einen anderen Aufruf von Composer, \u00e4ndern Sie den Befehl bitte entsprechend ab. F\u00fcr weitere Optionen dieses Befehls lesen Sie bitte die Dokumentation von Composer.","tags":"","url":"installation\/Deinstallation\/Modul_aus_der_Installation_entfernen.html"},{"title":"Dateien l\u00f6schen","text":"L\u00f6schen Sie den Ordner birthdayvoucher und seine enthaltenen Elemente aus dem Verzeichnis source\/modules\/d3 Ihres Shops. Best\u00e4tigen Sie anschlie\u00dfend im Shopadmin unter Erweiterungen -> Module -> Installierte Shop-Module die Nachricht: Es gibt registrierte Erweiterungen im eShop, deren Verzeichnis nicht vorhanden ist. M\u00f6chten Sie alle Modulinformationen einschlie\u00dflich Konfigurationseinstellungen und Blockinformationen f\u00fcr Templates l\u00f6schen?","tags":"","url":"installation\/Deinstallation\/Dateien_loeschen.html"},{"title":"Datenbank bereinigen","text":"","tags":"","url":"installation\/Deinstallation\/Datenbank_bereinigen.html"},{"title":"TMP-Ordner leeren","text":"Leeren Sie das Verzeichnis tmp \u00fcber Admin -> Module -> Modul-Connector -> TMP leeren. Markieren Sie komplett leeren und klicken auf TMP leeren. Sofern die Views nicht automatisch aktualisiert werden, f\u00fchren Sie dies noch durch. Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder zum Aktualisieren der Datenbank-Viewtabellen, f\u00fchren Sie diese bitte aus.","tags":"","url":"installation\/Deinstallation\/TMP-Ordner_leeren.html"},{"title":"Getting Started","text":"It starts here.","tags":"","url":"manual\/Getting_Started.html"},{"title":"Options","text":"Some configuration options","tags":"","url":"manual\/Configuration\/Options.html"},{"title":"Hilfe und Support","text":"Bei Bedarf bieten wir Ihnen auch gern die Installation des Moduls in Ihrem Shop an. Geben Sie uns bitte unter den unten genannten Kontaktdaten Bescheid. Haben Sie Fragen oder Unklarheiten in Verbindung mit diesem Modul oder dessen Installation, stehen Ihnen Hilfetexte in unserer Modul-FAQ zur Verf\u00fcgung. Finden Sie darin die ben\u00f6tigten Antworten nicht, kontaktieren Sie uns bitte unter den folgenden M\u00f6glichkeiten: per E-Mail: support@shopmodule.com oder \u00fcber das Kontaktformular auf Oxidmodule.com oder per Telefon: (+49) 37 21 \/ 26 80 90 zu unseren B\u00fcrozeiten Geben Sie bitte an, wo und wie wir gegebenenfalls vorhandene Schwierigkeiten nachvollziehen k\u00f6nnen. Sind Ihre Fragen shopspezifisch, ben\u00f6tigen wir m\u00f6glicherweise Zugangsdaten zum betreffenden Shop. Wir w\u00fcnschen Ihnen mit Ihrem Shop und dem Modul viel Erfolg! Ihr -Team.","tags":"","url":"support\/Hilfe-und-Support.html"}]}
\ No newline at end of file
diff --git a/docs/Precheck/d3precheck.php b/docs/Precheck/d3precheck.php
new file mode 100644
index 0000000..4286bd0
--- /dev/null
+++ b/docs/Precheck/d3precheck.php
@@ -0,0 +1,1473 @@
+
+ * @link http://www.oxidmodule.com
+ */
+
+/**
+ * Alle Anforderungen sind ber $this->_aCheck konfigurierbar. Manche Anforderungen haben dazu noch weitergehende
+ * Informationen. Die Struktur dieser Requirementbeschreibungen:
+ *
+ * array(
+ * 'blExec' => 1, // obligatorisch: 0 = keine Prfung, 1 = Pfung wird ausgefhrt
+ * 'aParams' => array(...), // optional, Inhalt ist von jeweiliger Prfung abhngig
+ * )
+ *
+ * "Desc1": Diese Struktur kann allein eine Bedingung beschreiben. Wenn mehrere dieser Bedingungen
+ * ntig sind (z.B. bei unterschiedlichen Bibliotheksanforderungen), kann diese Struktur als
+ * Arrayelemente auch mehrfach genannt werden (kaskadierbar). Grundstzlich sind alle Requirements
+ * kaskadierbar, jedoch ergibt dies nicht bei allen Sinn. :) Eine Kaskadierung sieht so aus:
+ *
+ * array(
+ * array(
+ * 'blExec' => 1,
+ * ...
+ * ),
+ * array(
+ * 'blExec' => 1,
+ * ...
+ * )
+ * )
+ *
+ * Unbedingt zu vermeiden sind nderungen in der Scriptlogik, da diese bei Updates nur schwer zu bernehmen sind.
+ */
+
+class requConfig
+{
+ public $sModName = 'D Geburtstagsgutscheine';
+
+ public $sModId = 'd3birthdayvoucher';
+
+ public $sModVersion = '3.1.0.4';
+
+ /********************** check configuration section ************************/
+
+ public $aCheck = array(
+ // kleinste erlaubte PHP-Version
+ 'hasMinPhpVersion' => array(
+ 'blExec' => 0,
+ 'aParams' => array(
+ 'version' => '5.2.0'
+ )
+ ),
+
+ // grte erlaubte PHP-Version
+ 'hasMaxPhpVersion' => array(
+ 'blExec' => 0,
+ 'aParams' => array(
+ 'version' => '5.4.200'
+ )
+ ),
+
+ // PHP-Version zwischen 'from' und 'to'
+ 'hasFromToPhpVersion' => array(
+ 'blExec' => 1,
+ 'aParams' => array(
+ 'from' => '5.2.0',
+ 'to' => '5.4.200',
+ )
+ ),
+
+ // bentigt Zend Optimizer (PHP 5.2) bzw. Zend Guard Loader (> PHP 5.2)
+ 'hasZendLoaderOptimizer' => array(
+ 'blExec' => 1,
+ ),
+
+ // bentigt IonCubeLoader
+ 'hasIonCubeLoader' => array(
+ 'blExec' => 0,
+ ),
+
+ // bentigt PHP-Extension (kaskadierbar (siehe "Desc1"))
+ 'hasExtension' => array(
+ array(
+ 'blExec' => 1,
+ 'aParams' => array(
+ 'type' => 'curl',
+ ),
+ ),
+ array(
+ 'blExec' => 1,
+ 'aParams' => array(
+ 'type' => 'soap'
+ ),
+ ),
+ ),
+
+ // minimal bentigte Shopversion (editionsgetrennt), wird (sofern mglich) Remote aktualisiert
+ 'hasMinShopVersion' => array(
+ 'blExec' => 1,
+ 'aParams' => array(
+ 'PE' => '4.7.0',
+ 'CE' => '4.7.0',
+ 'EE' => '5.0.0'
+ ),
+ ),
+
+ // maximal verwendbare Shopversion (editionsgetrennt), wird (sofern mglich) Remote aktualisiert
+ 'hasMaxShopVersion' => array(
+ 'blExec' => 1,
+ 'aParams' => array(
+ 'PE' => '4.8.4',
+ 'CE' => '4.8.4',
+ 'EE' => '5.1.4'
+ ),
+ ),
+
+ // verfgbar fr diese Shopeditionen, wird (sofern mglich) Remote aktualisiert
+ 'isShopEdition' => array(
+ 'blExec' => 1,
+ 'aParams' => array(
+ array(
+ 'PE',
+ 'EE',
+ 'CE',
+ ),
+ ),
+ ),
+
+ // bentigt Modul-Connector
+ 'hasModCfg' => array('blExec' => 1),
+
+ // bentigt 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',
+ ),
+ ),
+ ),
+
+ // 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',
+ ),
+ ),
+ ),
+ );
+}
+
+/********* don't change content from here **********************/
+
+date_default_timezone_set('Europe/Berlin');
+
+/**
+ * Class requcheck
+ */
+class requCheck
+{
+ public $sVersion = '4.1';
+
+ protected $_db = false;
+
+ public $dbHost;
+
+ public $dbUser;
+
+ public $dbPwd;
+
+ public $dbName;
+
+ /** @var requConfig */
+ public $oConfig;
+
+ /** @var requLayout */
+ public $oLayout;
+
+ protected $_sInFolderFileName = 'd3precheckinfolder.php';
+
+ /********************** functional section ************************/
+
+ public $blGlobalResult = true;
+
+ /**
+ *
+ */
+ public function __construct()
+ {
+ $this->oConfig = new requConfig();
+ $this->oLayout = new requLayout($this, $this->oConfig);
+ $this->oRemote = new requRemote();
+ }
+
+ /**
+ * @param string $sName
+ * @param array $aArguments
+ */
+ public function __call ($sName, $aArguments)
+ {
+ $this->oLayout->{$sName}($aArguments);
+ }
+
+ public function startCheck()
+ {
+ $this->oLayout->getHTMLHeader();
+
+ $oCheckTransformation = new requTransformation($this);
+ $this->oConfig->aCheck = $oCheckTransformation->transformCheckList($this->oConfig->aCheck);
+
+ $this->_runThroughChecks($this->oConfig->aCheck);
+
+ $this->oLayout->getHTMLFooter();
+ }
+
+ /**
+ * traversable requirement check
+ *
+ * @param $aCheckList
+ * @param string $sForceCheckType
+ */
+ protected function _runThroughChecks($aCheckList, $sForceCheckType = '')
+ {
+ foreach ($aCheckList as $sCheckType => $aConf) {
+ if (array_key_exists('blExec', $aConf)) {
+ if ($aConf['blExec']) {
+ if (strlen($sForceCheckType)) {
+ $sCheckType = $sForceCheckType;
+ }
+ $this->displayCheck($sCheckType, $aConf);
+ }
+ } else {
+ $this->_runThroughChecks($aConf, $sCheckType);
+ }
+ }
+ }
+
+ /**
+ * @param $sMethodName
+ * @param null $aArguments
+ *
+ * @return array
+ */
+ public function checkInSubDirs($sMethodName, $aArguments = null)
+ {
+ $sFolder = '.';
+
+ $aCheckScripts = $this->_walkThroughDirs($sFolder);
+ $aReturn = $this->_checkScripts($aCheckScripts, $sMethodName, $aArguments);
+
+ return $aReturn;
+ }
+
+ /**
+ * @param $sFolder
+ *
+ * @return array
+ */
+ protected function _walkThroughDirs($sFolder)
+ {
+ $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());
+ }
+ }
+ }
+
+ return $aCheckScripts;
+ }
+
+ /**
+ * @param $aScriptList
+ * @param $sMethodName
+ * @param $aArguments
+ *
+ * @return array
+ */
+ protected function _checkScripts($aScriptList, $sMethodName, $aArguments)
+ {
+ $aReturn = array();
+
+ foreach ($aScriptList as $sScriptPath) {
+ $sUrl = $this->_getFolderCheckUrl(
+ $sScriptPath,
+ $sMethodName,
+ $aArguments
+ );
+
+ $aReturn[$this->getBasePath($sScriptPath)] = unserialize(file_get_contents($sUrl));
+ }
+
+ return $aReturn;
+ }
+
+ /**
+ * @param $sScriptPath
+ * @param $sMethodName
+ * @param $aArguments
+ *
+ * @return string
+ */
+ protected function _getFolderCheckUrl($sScriptPath, $sMethodName, $aArguments)
+ {
+ $sBaseDir = str_replace(
+ array(basename($_SERVER['SCRIPT_FILENAME']), '\\'),
+ array('', '/'),
+ realpath($_SERVER['SCRIPT_FILENAME'])
+ );
+ $sUrlAdd = str_replace($sBaseDir, '', $sScriptPath);
+ $sBaseUrl = 'http://' . $_SERVER['HTTP_HOST'] . str_replace(
+ basename($_SERVER['SCRIPT_NAME']),
+ '',
+ $_SERVER['SCRIPT_NAME']
+ );
+
+ $sUrl = $sBaseUrl . $sUrlAdd . '?fnc=' . $sMethodName . '¶ms=' . urlencode(serialize($aArguments));
+
+ return $sUrl;
+ }
+
+ /**
+ * @param null $sFolder
+ *
+ * @return mixed
+ */
+ public function getBasePath($sFolder = null)
+ {
+ if (!$sFolder) {
+ $sFolder = $_SERVER['SCRIPT_FILENAME'];
+ }
+
+ $sScriptFileName = str_replace('\\', '/', realpath($_SERVER['SCRIPT_FILENAME']));
+ $sSearch = substr(str_replace(basename($sScriptFileName), '', $sScriptFileName), 0, -1);
+
+ $sFolder = str_replace('\\', '/', realpath($sFolder));
+
+ return str_replace(array(basename($sFolder), $sSearch), '', $sFolder);
+ }
+
+ /**
+ * @param $aResult
+ *
+ * @return bool
+ */
+ protected function _hasFalseInResult($aResult)
+ {
+ if (is_array($aResult)) {
+ foreach ($aResult as $blResult) {
+ if (!$blResult) {
+ $this->blGlobalResult = false;
+
+ return true;
+ }
+ }
+
+ return false;
+ } else {
+ if (!$aResult) {
+ $this->blGlobalResult = false;
+ }
+
+ return !$aResult;
+ }
+ }
+
+ /********************** conversion function section ************************/
+
+ /**
+ * @param $mParam
+ */
+ public function aTos(&$mParam)
+ {
+ if (is_array($mParam)) {
+ $mParam = implode($this->oLayout->translate('or'), $mParam);
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function getLang()
+ {
+ if (isset($_REQUEST['lang'])) {
+ return strtolower($_REQUEST['lang']);
+ }
+
+ return 'de';
+ }
+
+ /**
+ * @return bool|resource
+ */
+ public function getDb()
+ {
+ 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);
+ }
+ }
+
+ return $this->_db;
+ }
+
+ /**
+ * @param $version
+ * @param int $iUnsetPart
+ *
+ * @return string
+ */
+ public function versionToInt($version, $iUnsetPart = 0)
+ {
+ $match = explode('.', $version);
+
+ 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
+ )
+ );
+ }
+
+ /********************** layout function section ************************/
+
+ public function deleteme()
+ {
+ $sFolder = '.';
+
+ $this->_checkDelFilesInDir($sFolder);
+ $this->_delFile($_SERVER['SCRIPT_FILENAME']);
+
+ if (is_file($_SERVER['SCRIPT_FILENAME'])) {
+ exit($this->oLayout->translate('unableDeleteFile'));
+ } else {
+ exit($this->oLayout->translate('goodBye'));
+ }
+ }
+
+ /**
+ * @param $sFolder
+ */
+ protected function _checkDelFilesInDir($sFolder)
+ {
+ $aIgnoreDirItems = array('.', '..');
+
+ /** @var SplFileInfo $oFileInfo */
+ foreach (new RecursiveDirectoryIterator($sFolder) as $oFileInfo) {
+ if (!in_array($oFileInfo->getFileName(), $aIgnoreDirItems) && $oFileInfo->isDir()) {
+ $this->_checkDelFilesInDir($oFileInfo->getRealPath());
+ } elseif ($oFileInfo->isFile()) {
+ if (strtolower($oFileInfo->getFilename()) == $this->_sInFolderFileName) {
+ $this->_delFile(str_replace('\\', '/', $oFileInfo->getRealPath()));
+ }
+ }
+ }
+ }
+
+ /**
+ * @param $sPath
+ */
+ protected function _delFile($sPath)
+ {
+ unlink($sPath);
+ }
+
+ /**
+ * @param $sCheckType
+ * @param $aConfiguration
+ */
+ public function displayCheck($sCheckType, &$aConfiguration)
+ {
+ $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);
+ }
+ } else {
+ $this->oLayout->getUncheckableItem($sCheckType, $aConfiguration);
+ $this->blGlobalResult = false;
+ }
+ }
+
+ public function showinfo()
+ {
+ phpinfo();
+ }
+}
+
+/**
+ * Class requLayout
+ */
+class requLayout
+{
+ public $oBase;
+ public $oConfig;
+
+ /**
+ * @param requCheck $oBase
+ * @param requConfig $oConfig
+ */
+ public function __construct(requCheck $oBase, requConfig $oConfig)
+ {
+ $this->oBase = $oBase;
+ $this->oConfig = $oConfig;
+ }
+
+ public function getHTMLHeader()
+ {
+ $sScriptName = $_SERVER['SCRIPT_NAME'];
+ $sTranslRequCheck = $this->translate('RequCheck');
+ $sModName = $this->oConfig->sModName;
+ $sModVersion = $this->oConfig->sModVersion;
+
+ echo <<< EOT
+
+
+
+
+ $sTranslRequCheck "$sModName" $sModVersion
+
+
+
+
+
+
+EOT;
+ echo "
";
+ } else {
+ $sScript = "";
+ }
+
+ return $sScript;
+ }
+
+ /**
+ * @param $sIdent
+ * @param array $aConfiguration
+ *
+ * @return mixed|string
+ */
+ public function translate($sIdent, $aConfiguration = array())
+ {
+ $sGenIdent = preg_replace("@(\_[0-9]$)@", "", $sIdent);
+ $oTranslations = new requTranslations();
+ $aTransl = $oTranslations->getTranslations();
+
+ if (isset($aConfiguration['aParams']) && is_array($aConfiguration['aParams'])) {
+ array_walk($aConfiguration['aParams'], array($this->oBase, 'aTos'), $sIdent);
+ }
+
+ if (($sTranslation = $aTransl[$this->oBase->getLang()][$sGenIdent])) {
+ if (isset($aConfiguration['aParams'])) {
+ return vsprintf($sTranslation, $aConfiguration['aParams']);
+ } else {
+ return $sTranslation;
+ }
+ } else {
+ return $sGenIdent;
+ }
+ }
+
+ 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";
+ header("Content-type: image/png");
+ echo base64_decode($sImg);
+ exit;
+ }
+
+ public function getPngLogo()
+ {
+ $sImg = "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";
+ header("Content-type: image/png");
+ echo base64_decode($sImg);
+ exit;
+ }
+
+ 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==";
+ header("Content-type: image/Gif");
+ echo base64_decode($sImg);
+ exit;
+ }
+
+ public function getGifDe()
+ {
+ $sImg = "R0lGODlhEgANAIQZAAAAABAFBhEGBhIGBhQHBxUHCCYNDZQqH5QrI9c4M+M4M9w9M+g/MuNDM/BFM99tI+t3H+CyDerIB+zIBuzKBurLCPfcAPfgAPjlAP///////////////////////////ywAAAAAEgANAAAFVaARCGRpmoExAGzrvsBAwHRLFHVdIEfv/8ADouEoGo9IR2PBaDqfUMYioahar1hF4gHper9gyKOCKZvPaExFcmm73/CLZGKp2+94yyRCmfj/gIAUESEAOw==";
+ header("Content-type: image/Gif");
+ echo base64_decode($sImg);
+ exit;
+ }
+
+ 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=";
+ header("Content-type: image/Gif");
+ echo base64_decode($sImg);
+ exit;
+ }
+}
+
+/**
+ * Class requTranslations
+ */
+class requTranslations
+{
+ /**
+ * @return array
+ */
+ public function getTranslations()
+ {
+ return array(
+ 'de' => array(
+ 'RequCheck' => 'Mindestanforderungsprfung',
+ 'ExecNotice' => 'Fhren Sie diese Prfung immer aus dem Stammverzeichnis Ihres Shops aus. '.
+ 'Nur dann knnen die Prfungen erfolgreich durchgefhrt werden.',
+ 'RequSucc' => 'Bedingung erfllt',
+ 'RequNotSucc' => 'Bedingung nicht erfllt',
+ 'RequNotCheckable' => 'Bedingung nicht prfbar',
+ 'hasMinPhpVersion' => 'mindestens PHP Version %s',
+ 'hasMaxPhpVersion' => 'maximal PHP Version %s',
+ 'hasFromToPhpVersion' => 'Server verwendet PHP Version zwischen %s und %s',
+ 'hasSoap' => 'SOAP-Erweiterung verfgbar',
+ 'hasCurl' => 'Curl-Erweiterung verfgbar',
+ 'hasExtension' => '%s-Erweiterung verfgbar',
+ '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',
+ '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 Prfung war erfolgreich. Sie knnen das Modul installieren.*
',
+ 'globalNotSuccess' => 'Die Prfung war nicht erfolgreich. Bitte kontrollieren Sie die rot '.
+ 'markierten Bedingungen.
',
+ 'deleteFile1' => 'Lschen Sie diese Datei nach der Verwendung bitte unbedingt wieder von '.
+ 'Ihrem Server! Klicken Sie hier, um diese Datei zu lschen.',
+ 'showPhpInfo' => 'PHPinfo anzeigen',
+ 'dependentoffurther' => '* abhngig von ungeprften Voraussetzungen',
+ 'oneandonedescription' => '** geprft wurde das Ausfhrungsverzeichnis, providerabhngig mssen '.
+ 'Unterverzeichnisse separat geprft werden (z.B. bei 1&1)',
+ 'or' => ' oder ',
+ 'toggleswitch' => 'Klick fr Details zur Prfung',
+ 'unableDeleteFile' => 'Datei konnte nicht gelscht werden. Bitte lschen Sie diese manuell.',
+ 'goodBye' => 'Auf Wiedersehen.',
+ ),
+ 'en' => array(
+ 'RequCheck' => 'Requirement check',
+ 'ExecNotice' => 'Execute this check script in the root directory of your shop. In this '.
+ 'case only checks can executed succesfully.',
+ 'RequSucc' => 'condition is fulfilled',
+ 'RequNotSucc' => 'condition isn\'t fulfilled',
+ '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',
+ 'hasModCfg' => 'Module '.
+ 'Connector installed',
+ 'isShopEdition' => 'shop edition is %s',
+ 'hasZendLoaderOptimizer' => 'Zend Optimizer (PHP 5.2) or Zend Guard Loader (PHP 5.3, 5.4) installed',
+ 'hasIonCubeLoader' => 'ionCube loader installed',
+ 'globalSuccess' => 'The test was successful. Your server is ready for installing the '.
+ 'module.*
',
+ 'globalNotSuccess' => 'The test wasn\'t successfull. Please check the red marked '.
+ 'conditions.
+[{/if}]
+[{*** D3 Geburtstagsgutscheine ADD END ***}]
\ No newline at end of file
diff --git a/src/Application/views/admin/de/d3_d3birthdayvoucher_lang.php b/src/Application/views/admin/de/d3_d3birthdayvoucher_lang.php
new file mode 100644
index 0000000..75d43ab
--- /dev/null
+++ b/src/Application/views/admin/de/d3_d3birthdayvoucher_lang.php
@@ -0,0 +1,143 @@
+ 'UTF-8',
+
+'d3birthdayvoucher_TRANSL' => 'Geburtstagsgutscheine',
+'d3birthdayvoucher_HELPLINK' => 'Geburtstagsgutscheine/',
+
+//ModCfg
+'d3mxd3birthdayvoucher' => 'Geburtstagsgutscheine',
+'d3cfgd3birthdayvoucher' => 'Konfiguration',
+'d3tbcld3birthdayvoucher_settings_main' => 'Konfiguration',
+'d3mxd3birthdayvoucher_SETTINGS' => 'Konfiguration',
+'d3mxd3birthdayvoucher_SUPPORT' => 'Support',
+
+'D3_CFG_MOD_GENERAL_MODULELOGGING' => 'Logging',
+'D3_CFG_d3birthdayvoucher_LOGGING_HELP' => 'Logging: Mit dieser Auswahl können Sie die Priorität des Logging einstellen. Meldungen oder Fehler haben eine vordefinierte Priorität. Anhand der Priorität wird entschieden, welche Einträge in die Datenbank geschrieben werden.
+
+
kein Protokoll: in der Datenbank wird kein Logeintrag geschrieben. Ist diese Einstellung gesetzt wird das Modul weder eine normale Meldung schreiben noch eine schwere Fehlermeldung.
+
Alles protokollieren: sämtliche Meldungen egal ob schwerer Fehler oder nur Statusmeldungen werden in der Datenbank abgespeichert. Diese Option sollte zur Fehleranalyse bzw. eine kurze Zeit nach Installation des Moduls aktiviert werden. Achtung: es werden sehr viele Daten in der Datenbank gespeichert!
+
Fehler mitschreiben: nur Meldungen mit dem Status eines Fehlers werden gespeichert.
+
',
+
+'D3_CFG_MOD_d3birthdayvoucher_MODULEACTIVE' => 'Modul aktiv',
+
+'D3_CFG_d3birthdayvoucher_DEBUG_MODUS' => 'Debug-Modus',
+'D3_CFG_d3birthdayvoucher_DEBUG_MODUS_HELP' => 'Debug-Modus: Ist diese Checkbox aktiviert, werden weitere zusätzliche Informationen ausgegeben bzw. in der Log-Tabelle gespeichert.
+ Dieser Modus dient zur Untersuchung von eventuell auftretenden Fehlern und sollte nur kurzzeitig aktiviert sein. ',
+
+'D3_CFG_d3birthdayvoucher_TEST_MODUS' => 'Test-Modus',
+'D3_CFG_d3birthdayvoucher_TEST_MODUS_HELP' => 'Test-Modus Ist dieser Modus aktiviert werden die E-Mails an die Info-E-Mailadresse des Shops gesendet.',
+
+'D3_CFG_MOD_d3birthdayvoucher_CRONJOBS_OWERVIEW' => 'Übersicht CronJob',
+'D3_CFG_MOD_d3birthdayvoucher_CRONJOBS_ACTIVE' => 'CronJob:',
+'D3_CFG_MOD_d3birthdayvoucher_CRONJOBS_ACTIVE_HELP' => 'Cronjob: De/Aktiviert den Cronjob. Eine separate Änderung in den Cronjob-Einstellung bei Ihrem Provider ist nicht nötig. Diese Option ist Vorraussetzung für die enthaltenen Funktionen.',
+'D3_CFG_MOD_d3birthdayvoucher_LAST_STARTS_CRONJOBS' => 'letzte Ausführung:',
+'D3_CFG_MOD_d3birthdayvoucher_CRONJOBS_LINK' => 'Link:',
+
+'D3_CFG_MOD_d3birthdayvoucher_ACCESSKEY' => 'Zugriffsschutz für den CronJob:',
+'D3_CFG_MOD_d3birthdayvoucher_ACCESSKEY_HELP' => 'Zugriffsschutz für den CronJob: Vergeben Sie hier ein mehrstelliges Passwort (ca. 6-8 Zeichen), um unberechtigte Aufrufe des CronJobs zu unterbinden.',
+
+'D3_CFG_MOD_d3birthdayvoucher_MAIN_SAVE' => 'Einstellung speichern',
+'D3_CFG_MOD_d3birthdayvoucher_SETTINGS' => 'Test-Modus',
+
+'D3_CFG_MOD_d3birthdayvoucher_MAIL4BCC' => 'Blindkopie-E-Mailadresse angeben',
+'D3_CFG_MOD_d3birthdayvoucher_MAIL4BCC_HELP' => 'Blindkopie-E-Mailadresse angeben: Alle ausgehenden E-Mails werden zusätzlich als BCC (Blindkopie) an die eingetragene E-Mailadresse versendet.',
+
+'D3_CFG_MOD_d3birthdayvoucher_TEST_MODUS_ADDRESS' => 'Test-E-Mailadresse angeben',
+'D3_CFG_MOD_d3birthdayvoucher_TEST_MODUS_ADDRESS_HELP' => 'Test-E-Mailadresse angeben: Im Testmodus werden alle ausgehenden E-Mails an die eingetragene E-Mailadresse versendet.',
+
+'D3_CFG_MOD_d3birthdayvoucher_VOUCHER_NUMBER_OF_CHARAKTER' => 'Anzahl der Zeichen des Gutscheincodes',
+'D3_CFG_MOD_d3birthdayvoucher_VOUCHER_NUMBER_OF_CHARAKTER_HELP' => 'Anzahl der Stellen des Gutscheincodes:
+ Anzahl der Stellen, die ein Gutscheincode bei der Erstellung bekommen soll. Die Generierung erfolgt per Zufall mit n Stellen.',
+
+'D3_CFG_MOD_d3birthdayvoucher_blOnly_Registered_User' => 'Nur Kunden mit Passwort',
+'D3_CFG_MOD_d3birthdayvoucher_blOnly_Registered_User_HELP' => 'Ist diese Option nicht gesetzt, erhalten alle Kunden mit dem richtigen Geburtsdatum einen Gutschein. Soll die Vergabe von Gutscheinen jedoch nur auf registrierte Kunden mit Passwort eingeschränkt werden aktivieren Sie diese Option. Damit erhalten nur Kunden mit einem Kundenkonto Gutscheine.',
+
+'D3_BIRTHDAY_UPDATE_ITEMINSTALL' => 'Das Modul beinhaltet 3 CMS-Texte.'.PHP_EOL.'Diese können leider nicht automatisch installiert oder aktualisiert werden. Bitte installieren Sie diese manuell.'.PHP_EOL.PHP_EOL.
+ 'Diese CMS-Texte liegen als txt-Dateien im Order "changed_full/CMS" des Installationsverzeichnis.',
+
+'D3_CFG_MOD_d3birthdayvoucher_SELECT_ORDERS' => 'Benutzer einschränken',
+
+'D3_CFG_MOD_d3birthdayvoucher_GROUPS_FOR_VOUCHER' => 'Benutzergruppen erlauben',
+'D3_CFG_MOD_d3birthdayvoucher_GROUPS_FOR_VOUCHER_HELP' => '',
+'D3_CFG_MOD_d3birthdayvoucher_GROUPS_FOR_NO_VOUCHER' => 'Benutzergruppen ausschließen',
+'D3_CFG_MOD_d3birthdayvoucher_GROUPS_FOR_NO_VOUCHER_HELP' => '',
+
+'D3_CFG_MOD_d3birthdayvoucher_ADRESSES_FOR_BLACKLIST' => 'E-Mailadressen ausschließen',
+'D3_CFG_MOD_d3birthdayvoucher_ADRESSES_FOR_BLACKLIST_HELP' => '
+
pro Zeile eine Adresse
+
vollständige Adressen und Adressen mit Platzhalter können gemischt werden
+
Beispiel vollständige Adresse: test@test.de
+
Beispiel vollständige Adresse mit Platzhalter: *@test.de
+
Platzhalter: *
+ ',
+
+'d3tbcld3birthdayvoucher_settings_agelimit' => 'Altersbegrenzung',
+'D3_CFG_MOD_d3birthdayvoucher_AGE_GENERAL' => 'globale Altersbegrenzung',
+'D3_CFG_MOD_d3birthdayvoucher_AGE_GENERAL_HELP' => 'Diese Angabe dient als Standartvorgabe für Altersangaben.
+ Ist an einem Land keine Altersgrenze hinterlegt wird dieser Wert als Vorgabe verwendet.
+Wenn an einem Land ein Alter hinterlegt ist, hat die Angabe am Land Prioriät.
+',
+'D3_CFG_MOD_d3birthdayvoucher_COUNTRIES' => 'Länder',
+'D3_CFG_MOD_d3birthdayvoucher_COUNTRIES_ACTIVE' => 'Aktiv',
+'D3_CFG_MOD_d3birthdayvoucher_COUNTRIES_ACTIVE_HELP' => '',
+'D3_CFG_MOD_d3birthdayvoucher_COUNTRIES_AGE' => 'Alter',
+'D3_CFG_MOD_d3birthdayvoucher_COUNTRIES_AGE_HELP' => 'Angabe in Jahren',
+'D3_CFG_MOD_d3birthdayvoucher_COUNTRIES_COUNTRY' => 'Länder',
+
+
+//order_main
+'ORDER_MAIN_D3BIRTHDAYVOUCHER_LASTDATA' => 'Erstellung letzter Geburtstagsgutschein:',
+'ORDER_MAIN_D3BIRTHDAYVOUCHER_LASTDATA_HELP' => 'Zur Kontrolle der letzten Vergabe eines Geburtstagsgutscheins.
+ Der Kunde erhält nur einen Gutschein pro Kalenderjahr.',
+
+/*Gutscheine mit Ablaufdatum*/
+'D3_CFG_MOD_d3birthdayvoucher_LIMIT_FOR_VALIDITY' => 'Gültig-Bis',
+'D3_CFG_MOD_d3birthdayvoucher_LIMIT_FOR_VALIDITY_IN_DAYS' => 'Gültigkeit der Gutscheine in Tagen',
+'D3_CFG_MOD_d3birthdayvoucher_LIMIT_FOR_VALIDITY_IN_DAYS_HELP' => 'Nach Ablauf dieser Tage wird der Gutschein vom Modul entwertet.
+Die Angabe erfolgt in Tagen. Bei 0 wird am Gutschein kein Datum hinterlegt.
+
+Das Modul kann periodisch E-Mails versenden. Ist ein Ablaufdatum gegeben dann werden die Mails vor Ablauf gesendet,
+ist kein Ablaufdatum hinterlegt dann erhält der Kunde nach der Erstellung die Mails.',
+
+
+
+'D3_CFG_MOD_d3birthdayvoucher_REMIDNER_FOR_EXPIRATION' => 'Erinnerungsmail für Gutscheine mit Ablaufdatum',
+'D3_CFG_MOD_d3birthdayvoucher_iDaysForReminderRangeExpiration' => 'Interval in Tagen',
+'D3_CFG_MOD_d3birthdayvoucher_iDaysForReminderRangeExpiration_HELP' => 'Diese Anzahl an Tagen vor Ablauf der Gültigkeit des Gutscheines
+
+
Die Angabe erfolgt in Tagen.
+
Bei 0 wird keine Prüfung der Gutschein vorgenommen, und damit keine E-Mail versendet.
+
',
+'D3_CFG_MOD_d3birthdayvoucher_iLoopForReminderRangeExpiration' => 'Wie oft wird soll der Kunde eine E-Mail erhalten',
+'D3_CFG_MOD_d3birthdayvoucher_iLoopForReminderRangeExpiration_HELP' => 'Anzahl der Wiederholungen
+Diese Angabe vervielfacht die Angabe zum Interval.
+Beispiel:
+-Interval: 15 Tage
+-Anzahl der Wiederholungen: 3
+An folgenden Tage vor dem Ablaufdatum des Gutscheines erhält der Kunden eine E-Mail: 45, 30 und 15 Tage. ',
+
+
+
+'D3_CFG_MOD_d3birthdayvoucher_REMIDNER_FOR_VOUCHERS_WITHTOU_EXPIRATION' => 'Erinnerungsmail für Gutscheine ohne Ablaufdatum',
+'D3_CFG_MOD_d3birthdayvoucher_iDaysForReminderRange' => 'Interval in Tagen',
+'D3_CFG_MOD_d3birthdayvoucher_iDaysForReminderRange_HELP' => 'Die Anzahl an Tagen nach der Vergabe des Gutscheines
+
+
Die Angabe erfolgt in Tagen.
+
Bei 0 wird keine Prüfung der Gutschein vorgenommen, und damit keine E-Mail versendet.
+
+',
+'D3_CFG_MOD_d3birthdayvoucher_iLoopForReminderRange' => 'Wie oft soll der Kunde eine E-Mail erhalten',
+'D3_CFG_MOD_d3birthdayvoucher_iLoopForReminderRange_HELP' => 'Anzahl der Wiederholungen
+Diese Angabe vervielfacht die Angabe zum Interval.
+Beispiel:
+-Interval: 15 Tage
+-Anzahl der Wiederholungen: 3
+An folgenden Tage nach der Erstelung des Gutscheines erhält der Kunden eine E-Mail: 15, 30 und 45 Tage. ',
+
+);
\ No newline at end of file
diff --git a/src/Application/views/admin/tpl/d3birthdayvoucher_settings.tpl b/src/Application/views/admin/tpl/d3birthdayvoucher_settings.tpl
new file mode 100644
index 0000000..7a31fa7
--- /dev/null
+++ b/src/Application/views/admin/tpl/d3birthdayvoucher_settings.tpl
@@ -0,0 +1,438 @@
+[{include file="headitem.tpl" title="D3_CFG_MOD"|oxmultilangassign}]
+
+
+
+
+
+
+
+
+
+
+[{include file="d3_cfg_mod_inc.tpl"}]
diff --git a/src/Application/views/admin/tpl/d3birthdayvoucher_settings_agelimit.tpl b/src/Application/views/admin/tpl/d3birthdayvoucher_settings_agelimit.tpl
new file mode 100644
index 0000000..faad765
--- /dev/null
+++ b/src/Application/views/admin/tpl/d3birthdayvoucher_settings_agelimit.tpl
@@ -0,0 +1,201 @@
+[{include file="headitem.tpl" title="D3_CFG_MOD"|oxmultilangassign}]
+
+
+
+
+
+
+
+
+
+[{include file="d3_cfg_mod_inc.tpl"}]
diff --git a/src/Application/views/tpl/email/d3_email_birthdayvoucher_html.tpl b/src/Application/views/tpl/email/d3_email_birthdayvoucher_html.tpl
new file mode 100644
index 0000000..27170fc
--- /dev/null
+++ b/src/Application/views/tpl/email/d3_email_birthdayvoucher_html.tpl
@@ -0,0 +1,15 @@
+[{ assign var="shop" value=$oEmailView->getShop() }]
+[{ assign var="oViewConf" value=$oEmailView->getViewConfig() }]
+[{ assign var="currency" value=$oEmailView->getCurrency() }]
+[{ assign var="user" value=$oEmailView->getUser() }]
+
+[{oxcontent ident="d3birthdayvouchersubjectmail" assign="title"}]
+
+[{include file="email/html/header.tpl" title=$shop->oxshops__oxordersubject->value|cat:" | "|cat:$title }]
+
+ [{ oxcontent ident="d3birthdayvouchermail" }]
+
Ihr [{ $shop->oxshops__oxname->value }] m�chte Ihnen ganz herzlich zum Geburtstag gratulieren.
+
+Als kleines Pr�sent senden wir Ihnen im Folgenden einen Gutschein im Wert von
+[{$voucherserie->oxvoucherseries__oxdiscount->value|string_format:"%.2f"|replace:".":","}] [{if $voucherserie->oxvoucherseries__oxdiscounttype->value == "absolute"}]EUR[{else}]%[{/if}] zu.
+
+
Ihre pers�nlicher Geburtstagsgutschein-Nr. lautet: [{$voucher->oxvouchers__oxvouchernr->value}]
+
+Und so einfach gehts:
+Gehen Sie in unseren Onlineshop unter [{ $shop->oxshops__oxurl->value }].
+St�bern Sie in Ruhe unter der Vielzahl an Aritkeln und legen Sie die gew�nschten Produkte in den Warenkorb.
+Klicken Sie nun auf den Warenkorb um eine �bersicht Ihrer gew�hlten Artikel zu sehen.
+Unter der Artikelliste finden Sie das Eingabefeld f�r den Gutscheincode.
+Geben Sie diesen dort ein, best�tigen Sie die Eingabe und f�hren Sie den Bestellvorgang ganz normal durch.
+In Schritt 4 des Bestellvorgangs sehen Sie nun in der Zusammenfassung den abgezogenen Gutscheinwert.
+
+Noch einen sch�nen Tag w�nscht