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

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.

Man darf keinen Haken bei den Feldern "Per E-Mail versenden" und "Eingaben speichern" setzen!

"Wichtig"

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

Das E-Mail Feld dient im Catalog-Formular als Absendeadresse für die E-Mail.

"Information"


2. Schritt: Formular als Modul anlegen

Momentan gibt es leider noch keine direkte Möglichkeit wie man ein Formular per Insert-Tag aufrufen kann (siehe Ticket). Deshalb muss man derzeit noch den beschriebenen Umweg über ein Modul gehen.

"Information"


  • Man legt ein neues Modul an und benennt es z. B. "Catalog-Formular".
  • Anschliessend wählt man als Modultyp "Formular" aus.
  • Danach wählt man 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 E-Mail
Description Geben Sie die E-Mail Adresse ein.
Column name email
Type Text
Mandatory anhaken, damit das Feld zum Pflichtfeld wird

Wichtig ist hierbei der Column name (wird in der E-Mail Konfiguration benötigt) und dass das Feld ein Pflichtfeld ist.

"Wichtig"


Sobald dieses Feld angelegt ist, muss man bei allen bestehenden Einträgen die E-Mail-Adresse ergänzen, damit die Einträge vollständig sind.

"Information"


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.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Chuck Norris programmiert kein PHP, er diktiert das Ergebnis. Den Rest macht der Editor aus Angst.

Stefan Lindecke
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge