Catalog-Formular mit Empfängeradresse aus Catalog-Item befüllen
Aus Contao Community Documentation
betrifft | |
---|---|
TYPOlight Version | ab 2.8 |
Contao Version | ab 2.9 |
Extensions | Catalog bis 2.0.0 beta1 |
Inhaltsverzeichnis
Ziel der Anpassung
Das Ziel der nachfolgend beschriebenen Anpassung ist, dass man ein Formular aus dem Formulargenerator im catalog_full Template aufrufen kann, das als Empfänger eine Mailadresse vom aktuellen Catalog-Eintrag nutzt.
So kann zum Beispiel der Besucher in einem Branchenindex die Firmen in der Detailansicht über das Kontaktformular individuell kontaktieren.
1. Schritt: Formular anlegen
Man muss im Formulargenerator ein Formular mit den folgenden Einstellungen erstellen:
- Titel: Dieses Feld wird später im Formular beim Versand der E-Mail als Betreffzeile genutzt.
- Weiterleitungsseite: Hier definiert man die Bestätigungsseite auf die der Besucher nach dem erfolgreichen Absenden weitergeleitet wird.
- Übertragungsmethode: Hier wählt man den Eintrag "POST".
- Formular-ID: Hier gibt man catalogform ein.
Danach legt man im Formular die gewünschten Felder an, die Besucher später ausfüllen sollen. Ein typischer Aufbau für ein einfaches Formular ist:
Feldtyp | Feldname | Feldbezeichnung | Sonstiges |
Textfeld | Name | Name: | Haken bei Pflichtfeld |
Textfeld | Telefon | Telefon: | bei Eingabeprüfung Telefonnummer auswählen |
Textfeld | Absender | E-Mail: | Haken bei Pflichtfeld |
Textarea | Mitteilung | Mitteilung: | Haken bei Pflichtfeld, bei Reihen 10 und bei Spalten 30 eingeben |
Absendefeld | bei Bezeichnung der Absende-Schaltfläche Absenden eingeben |
2. Schritt: Formular als Modul anlegen
- Man legt ein neues Modul an und benennt es z. B. "Catalog-Formular",
- dann wählt man als Modultyp "Formular" aus und
- danach wählt aus dem Formular-Dropdown den Eintrag mit dem Titel des Formulars, das man bei Schritt 1 angelegt hat.
Im Modul steht oben ein Hinweis nach dem Schema "Datensatz ID ... bearbeiten". Die angegebene ID ) muss man sich merken, da man damit später den Insert-Tag insert_module anlegen kann.
3. Schritt: Formularaufruf in Template einbinden
Nun muss man den Formularaufruf in das Template für die Detailanzeige der Catalog-Einträge einbinden. Dazu öffnet man im Contao-Backend das Template catalog_full.tpl und trägt an der gewünschten Stelle den Aufruf ein:
{{insert_module::ID}}
ID tauscht man dabei gegen die ID des Moduls aus, in dem man das Formular aufgerufen hat (siehe Schritt 2).
4. Schritt: Catalog-Felder modifizieren
Das Formular benötigt zwingend in jedem Catalog-Eintrag ein Feld mit der E-Mail-Adresse an die es gesendet werden soll. Wenn es sich z. B. um einen Catalog handelt, der als Firmenliste dient, wird man hier bei den Firmen üblicherweise die offizielle E-Mail-Adresse der Firma hinterlegen.
Man klickt im Contao Backend in der Navigation auf Catalog und klickt dann rechts beim gewünschten Catalog das Funktionssymbol hinter dem sich die Felderkonfiguration verbirgt.
Nun legt man ein neues Feld mit diesen Angaben an:
Label | |
Description | Geben Sie die E-Mail Adresse ein. |
Column name | |
Type | Text |
Mandatory | anhaken, damit das Feld zum Pflichtfeld wird |
5. Schritt: Catalog Formular Mailer konfigurieren
Nun lädt man aus dem Contao-Forum die kleine Erweiterung Catalog Formular Mailer herunter. Diese Erweiterung liegt nicht im Extension Repository, da es sich nur um eine Minimalkonfiguration handelt, die jeder Nutzer noch auf seine jeweiligen Bedürfnisse anpassen muss.
Man entpackt die Erweiterung und öffnet die Datei /system/modules/catalog_power_mailer/CatalogPowerMailer.php mit einem Editor im UTF-8 Zeichensatz.
Wenn man dieser Anleitung exakt folgte, kann man die Datei belassen wie sie ist. Es macht aber Sinn die Abschnitte nochmal zu prüfen:
Zeile | Nötige Änderung |
37 | Der Wert catalogform entspricht der Formular ID, die man im entsprechenden Feld "Formular-ID" ganz am Ende der Einstellungen des Formulars definiert hat. Es handelt sich hierbei NICHT um die CSS-ID! |
48 | Hier gibt man die Datensatz ID des Formulars ein. Man findet sie, indem man im Formulargenerator beim Formular auf das Details-Funktionssymbol (blaues i) klickt. |
54 | Hier gibt man an, welches Feld aus dem Formular die E-Mail-Adresse des Absenders enthält. Wenn man einen anderen Feldnamen vergeben hat, muss man den Eintrag entsprechend abändern. |
61-64 | Hier legt man fest, welche Felder als Inhalt der E-Mail versandt werden. Die Variable wird dabei mit dem Inhalt der entsprechenden Felder aus dem Formular befüllt. Die einzelnen Einträge werden mit . "\n" . mit einander verknüpft. Die Angabe von \n bewirkt, dass es in der E-Mail nach jedem Feld einen Zeilenumbruch gibt. |
70 | Hier muss man cat_beispielkatalog mit dem Namen der Datenbanktabelle ersetzen in der der gewünschte Katalog liegt. Man kann den Tabellennamen in den Katalog-Einstellungen oder direkt in der Datenbank nachlesen. |
Sobald man die gewünschten Werte angepasst hat, speichert man die Datei und lädt dann den Ordner contao_power_mailer mit allen darin abgelegten Inhalten per FTP in system/modules/ der Contao-Installation. Es ist nicht notwendig, dass man danach ein Datenbank-Update macht.
Nun sollte das Formular wie gewünscht in den Details der Katalogeinträge erscheinen und an die E-Mail-Adresse des jeweiligen Katalogeintrages versandt werden.
leo.unglaub hat im Contao-Forum noch weitere Infos darüber geschrieben, wie man individuelle E-Mails mit dem Contao-Framework versendet.