Eigene Felder im Kontaktformular (ContactFormMessageBuilder)

Ich möchte ein paar eigene Felder zum Kontaktformular hinzufügen.

Den ContactFormMessageBuilder kann ich leider nicht einfach überschreiben da er im EshopCommunity Namespace liegt. Oder gibt es eine Möglichkeit die Klasse doch via Modul zu erweitern?

Mein nächster Versuch war dann die ContactFormBridge.php und alles drum und dran im eigenen Modul abzubilden aber ich verstehe nicht, an welcher Stelle der Container merkt, welche Klasse er anhand des übergebenen Interfaces verwenden soll.

Ist bestimmt ganz easy aber ich checke es irgendwie nicht, bin für jede Hilfe dankbar :slight_smile:

Moin :slight_smile:

selber würde ich

  1. Child Theme vom Shop Kontaktformular um Eingabefelder im Frontend erweitern
  2. Über Modulüberladung den Contact Controller überladen, damit die neuen Eingabewerte auch verarbeitet

Die ContactFormMessageBuilder ist ein Services. Mehr Infos dazu findest in der Dokumentation Service Container — OXID eShop developer documentation 6.4.0 documentation

Dort wäre die Frage was Du erreichen möchtest, was mit den neuen eigenen Eingabefelder passieren soll?

Viele Grüße,
Tim

Die Felder selbst habe ich schon im Formular und auch den ContactController habe ich entsprechend angepasst, die neuen Felder sollen aber auch in der Mail ausgegeben werden und das läuft ja über den ContactFormMessageBuilder.

Vielen Dank für den Link zur Dokumentation, ich werde mich da mal durchlesen.

Von der Vorgehensweise würde ich den Contact Controller überladen mit einem Modul und dann siehst in diesem Array die definierten Werte die an die Form übergeben werden https://github.com/OXID-eSales/oxideshop_ce/blob/v6.10.1/source/Application/Controller/ContactController.php#L206

Dort würde ich die eigenen Felder bekannt machen und dann solltest Du über das Mapping Deine eigene Felder im Template der E-Mail die raus geht verfügbar haben. Heißt musst im Child Theme noch das E-Mail Template anpassen und die Werte mit ausgeben lassen.

Gerne. Aber den Service würdest dann meiner Meinung gar nicht benötigen.

Das Problem ist, dass es beim Kontaktformular kein E-Mail Template gibt, das erweitern im ContactController bringt alleine nichts da der Inhalt der Mail im ContactFormMessageBuilder zusammengestellt wird und nicht dynamisch ist.
Das mit den Services habe ich jetzt aber verstanden und baue mir nen Modul welches dann ermöglicht, auch für das Kontaktformular ein E-Mail Template zu haben, welches man individuell erweitern kann.
Wenn ich es fertig habe, kann ich es ja hier mal posten. Könnte auch für andere interessant sein.

Ah okay, stimmt.

Du könntest zusätzlich noch die E-Mail Klasse überladen und ein eigenes E-Mail Template über E-Mail Klasse Überladung und Modul definieren. Dann bist freier in der E-Mail Gestaltung.

You mean Erweiterung des OXID eShops mit Hilfe des Symfony DI containers - Teil 3 • OXID eSales AG ?

This is the German forum. Please open your own thread in the English-speaking forum English forums - OXID eShop forum

Your description is not very helpful. You should describe exactly what you want to achieve and what you have already tried.